diff --git a/.buildkite/package.yml b/.buildkite/package.yml index e0405b2ef7f..ab7c500adb7 100644 --- a/.buildkite/package.yml +++ b/.buildkite/package.yml @@ -1,6 +1,8 @@ notify: - slack: "#apm-server" if: build.state == "failed" + - slack: "#observablt-bots" + if: "build.state != 'passed'" env: IMAGE_UBUNTU_X86_64: "family/core-ubuntu-2004" diff --git a/.ci/jobs/apm-server-package-mbp.yml b/.ci/jobs/apm-server-package-mbp.yml index 4cb4ebd3acb..deb7bcee001 100644 --- a/.ci/jobs/apm-server-package-mbp.yml +++ b/.ci/jobs/apm-server-package-mbp.yml @@ -14,7 +14,7 @@ discover-pr-origin: merge-current discover-tags: false disable-pr-notifications: true - head-filter-regex: '(main|7\.17|8\.\d+)' + head-filter-regex: '(main|7\.17|8\.9|8\.1\d+)' notification-context: 'apm-server-package' repo: apm-server repo-owner: elastic diff --git a/.ci/jobs/defaults.yml b/.ci/jobs/defaults.yml index 83ce01b29e1..88f926f5d93 100644 --- a/.ci/jobs/defaults.yml +++ b/.ci/jobs/defaults.yml @@ -3,7 +3,7 @@ ##### GLOBAL METADATA - meta: - cluster: apm-ci + cluster: beats-ci ##### JOB DEFAULTS diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000000..be09f01d2be --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,42 @@ +version: 2 +updates: + + # GitHub actions + - package-ecosystem: "github-actions" + directory: "/" + reviewers: + - "elastic/observablt-ci" + schedule: + interval: "weekly" + day: "sunday" + time: "22:00" + groups: + github-actions: + patterns: + - "*" + + # GitHub composite actions + - package-ecosystem: "github-actions" + directory: "/.github/workflows/generate-smoke-tests-list" + schedule: + interval: "weekly" + day: "sunday" + time: "22:00" + reviewers: + - "elastic/observablt-ci" + groups: + github-actions: + patterns: + - "*" + - package-ecosystem: "github-actions" + directory: "/.github/workflows/setup-cluster-env" + schedule: + interval: "weekly" + day: "sunday" + time: "22:00" + reviewers: + - "elastic/observablt-ci" + groups: + github-actions: + patterns: + - "*" diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 01d6d721bc4..6a8055f63cc 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -44,13 +44,13 @@ jobs: TF_VAR_REPO: ${{ github.repository }} GOBENCH_TAGS: branch=${{ github.head_ref || github.ref }},commit=${{ github.sha }},target_branch=${{ github.base_ref }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-go@v4 with: go-version-file: 'go.mod' - - uses: rlespinasse/github-slug-action@d1ca8ffbce40ea2371e35bca356db0acacf567d2 + - uses: rlespinasse/github-slug-action@00d4236bb38fcea6fc4aa6b1dacc7187fc8e38a0 - name: Set up env run: | @@ -67,7 +67,7 @@ jobs: echo "BENCHMARK_RUN=${{ inputs.benchmarkRun }}" >> "$GITHUB_ENV" fi - - uses: hashicorp/vault-action@v2.6.0 + - uses: hashicorp/vault-action@v2.7.4 env: AWS_CREDENTIALS_PATH: secret/observability-team/ci/elastic-observability-aws-account-auth BENCHMARK_CLOUD_CREDENTIALS_PATH: secret/observability-team/ci/benchmark-cloud @@ -97,7 +97,7 @@ jobs: url: ${{ secrets.VAULT_ADDR }} roleId: ${{ secrets.VAULT_ROLE_ID }} secretId: ${{ secrets.VAULT_SECRET_ID }} - - uses: hashicorp/setup-terraform@v2 + - uses: hashicorp/setup-terraform@v3 with: terraform_version: 1.3.7 terraform_wrapper: false @@ -166,7 +166,7 @@ jobs: uses: elastic/apm-pipeline-library/.github/actions/notify-build-status@current with: message: | - Nightly benchmarks failed! SDH Duty assignee, please have a look and follow this ! + Nightly APM Server benchmarks failed! SDH Duty assignee, please have a look and follow this ! vaultUrl: ${{ secrets.VAULT_ADDR }} vaultRoleId: ${{ secrets.VAULT_ROLE_ID }} vaultSecretId: ${{ secrets.VAULT_SECRET_ID }} @@ -187,7 +187,7 @@ jobs: "type": "section", "text": { "type": "mrkdwn", - "text": "${{ github.event_name == 'schedule' && 'Nightly succesfully executed!' || 'Benchmarks succesfully executed!' }}" + "text": "${{ github.event_name == 'schedule' && 'Nightly' || '' }} APM Server benchmarks succesfully executed!" }, "accessory": { "type": "button", diff --git a/.github/workflows/bump-elastic-stack.yml b/.github/workflows/bump-elastic-stack.yml index 426c7f635f4..6680ec511db 100644 --- a/.github/workflows/bump-elastic-stack.yml +++ b/.github/workflows/bump-elastic-stack.yml @@ -26,7 +26,7 @@ jobs: fail-fast: false matrix: ${{ fromJson(needs.filter.outputs.matrix) }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ matrix.branch }} diff --git a/.github/workflows/bump-golang.yml b/.github/workflows/bump-golang.yml index c76efe51de9..da8e4009e6b 100644 --- a/.github/workflows/bump-golang.yml +++ b/.github/workflows/bump-golang.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: elastic/apm-pipeline-library/.github/actions/updatecli@current with: vaultUrl: ${{ secrets.VAULT_ADDR }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d01d7b28567..d1eee923412 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,8 +26,8 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-go@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-go@v4 with: go-version-file: go.mod cache: true @@ -45,18 +45,20 @@ jobs: os: ['macos-latest', 'ubuntu-latest', 'windows-latest'] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 - - uses: actions/setup-go@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-go@v4 with: go-version-file: go.mod cache: true - - run: go test -v ./... + - env: + CGO_ENABLED: "0" + run: go test -v ./... system-test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-go@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-go@v4 with: go-version-file: systemtest/go.mod cache: true diff --git a/.github/workflows/generate-smoke-tests-list/action.yml b/.github/workflows/generate-smoke-tests-list/action.yml index c2d690d0ac0..12984edeaa3 100644 --- a/.github/workflows/generate-smoke-tests-list/action.yml +++ b/.github/workflows/generate-smoke-tests-list/action.yml @@ -33,6 +33,7 @@ runs: - id: generate name: Generate matrix and date run: | - echo "tests=$(make smoketest/discover)" >> "${GITHUB_OUTPUT}" + # remove the full path and use a relative path instead to be github runner agnostic + echo "tests=$(make smoketest/discover | sed "s#${GITHUB_WORKSPACE}/#./#g")" >> "${GITHUB_OUTPUT}" echo "date=$(date +%s)" >> "${GITHUB_OUTPUT}" shell: 'bash' diff --git a/.github/workflows/setup-cluster-env/action.yml b/.github/workflows/setup-cluster-env/action.yml index 47c23237482..f4b28c3fe0c 100644 --- a/.github/workflows/setup-cluster-env/action.yml +++ b/.github/workflows/setup-cluster-env/action.yml @@ -13,30 +13,34 @@ inputs: vault-secret-id: description: 'Vault secret ID' required: true + ec-key-secret: + default: 'secret/observability-team/ci/elastic-cloud/observability-pro' + description: 'EC Key secret' + required: false + aws-account-secret: + default: 'secret/observability-team/ci/elastic-observability-aws-account-auth' + description: 'AWS account secret' + required: false runs: using: "composite" steps: - - uses: actions/setup-go@v3 + - uses: actions/setup-go@v4 with: go-version-file: go.mod - cache: true cache-dependency-path: | go.sum tools/go.sum - - uses: hashicorp/vault-action@v2.5.0 - env: - AWS_ACCOUNT_SECRET: 'secret/observability-team/ci/elastic-observability-aws-account-auth' - EC_KEY_SECRET: 'secret/observability-team/ci/elastic-cloud/observability-pro' + - uses: hashicorp/vault-action@v2.7.4 with: url: ${{ inputs.vault-url }} roleId: ${{ inputs.vault-role-id }} secretId: ${{ inputs.vault-secret-id }} method: approle secrets: | - ${{ env.EC_KEY_SECRET }} apiKey | EC_API_KEY ; - ${{ env.AWS_ACCOUNT_SECRET }} user | AWS_PROFILE ; - ${{ env.AWS_ACCOUNT_SECRET }} csv | AWS_ACCOUNT_IMPORT + ${{ inputs.ec-key-secret }} apiKey | EC_API_KEY ; + ${{ inputs.aws-account-secret }} user | AWS_PROFILE ; + ${{ inputs.aws-account-secret }} csv | AWS_ACCOUNT_IMPORT - name: Configure AWS account run: | echo "${AWS_ACCOUNT_IMPORT}" > ${{ runner.temp }}/account.csv; diff --git a/.github/workflows/smoke-tests-ess.yml b/.github/workflows/smoke-tests-ess.yml index f80202ba176..b8266ed40dd 100644 --- a/.github/workflows/smoke-tests-ess.yml +++ b/.github/workflows/smoke-tests-ess.yml @@ -21,7 +21,7 @@ jobs: tests: ${{ steps.generate.outputs.tests }} date: ${{ steps.generate.outputs.date }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ inputs.branch }} - id: generate @@ -50,7 +50,7 @@ jobs: - '7.17' - 'latest' steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ inputs.branch }} - name: Setup cluster env @@ -66,23 +66,3 @@ jobs: - if: always() name: Teardown smoke test infra run: make smoketest/cleanup TEST_DIR=${{ matrix.test }} - - all-smoke-tests-ess: - name: All Smoke Tests ESS - if: always() - runs-on: ubuntu-latest - needs: - - smoke-tests-ess - steps: - - id: check - uses: elastic/apm-pipeline-library/.github/actions/check-dependent-jobs@current - with: - needs: ${{ toJSON(needs) }} - - uses: elastic/apm-pipeline-library/.github/actions/notify-build-status@current - with: - status: ${{ steps.check.outputs.status }} - vaultUrl: ${{ secrets.VAULT_ADDR }} - vaultRoleId: ${{ secrets.VAULT_ROLE_ID }} - vaultSecretId: ${{ secrets.VAULT_SECRET_ID }} - slackChannel: "#apm-server" - message: "Build result for Smoke Tests ESS" diff --git a/.github/workflows/smoke-tests-os.yml b/.github/workflows/smoke-tests-os.yml index d8c66ffe978..d71a7f7a7e6 100644 --- a/.github/workflows/smoke-tests-os.yml +++ b/.github/workflows/smoke-tests-os.yml @@ -20,7 +20,7 @@ jobs: tests: ${{ steps.generate.outputs.tests }} date: ${{ steps.generate.outputs.date }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ inputs.branch }} - id: generate @@ -42,7 +42,7 @@ jobs: TF_VAR_REPO: ${{ github.repository }} TF_VAR_CREATED_DATE: ${{ needs.prepare.outputs.date }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ inputs.branch }} - name: Get version diff --git a/.github/workflows/smoke-tests-schedule.yml b/.github/workflows/smoke-tests-schedule.yml index 0a32d3e0bda..2ac98b2fddd 100644 --- a/.github/workflows/smoke-tests-schedule.yml +++ b/.github/workflows/smoke-tests-schedule.yml @@ -2,7 +2,7 @@ name: smoke-tests run-name: Smoke Tests on: - workflow_dispatch: + workflow_dispatch: ~ schedule: - cron: '0 3 * * 1-5' @@ -17,7 +17,7 @@ jobs: outputs: matrix: ${{ steps.generate.outputs.matrix }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - id: generate name: Generate matrix uses: elastic/apm-pipeline-library/.github/actions/elastic-stack-snapshot-branches@current @@ -35,12 +35,20 @@ jobs: branch: ${{ matrix.branch }} secrets: inherit - all-smoke-tests-os: - name: All Smoke Tests OS + smoke-tests-ess: + name: Run smoke tests ESS + uses: ./.github/workflows/smoke-tests-ess.yml + with: + branch: 'main' + secrets: inherit + + all-smoke-tests: + name: All Smoke Tests if: always() runs-on: ubuntu-latest needs: - smoke-tests-os + - smoke-tests-ess steps: - id: check uses: elastic/apm-pipeline-library/.github/actions/check-dependent-jobs@current @@ -53,10 +61,3 @@ jobs: vaultRoleId: ${{ secrets.VAULT_ROLE_ID }} vaultSecretId: ${{ secrets.VAULT_SECRET_ID }} slackChannel: "#apm-server" - - smoke-tests-ess: - name: Run smoke tests ESS - uses: ./.github/workflows/smoke-tests-ess.yml - with: - branch: 'main' - secrets: inherit diff --git a/.github/workflows/terraform-fmt.yml b/.github/workflows/terraform-fmt.yml index d0605b73bdf..23a3518b502 100644 --- a/.github/workflows/terraform-fmt.yml +++ b/.github/workflows/terraform-fmt.yml @@ -12,6 +12,6 @@ jobs: terraform-fmt: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: hashicorp/setup-terraform@v2 + - uses: actions/checkout@v4 + - uses: hashicorp/setup-terraform@v3 - run: terraform fmt -recursive -check -diff diff --git a/.github/workflows/update-beats.yml b/.github/workflows/update-beats.yml index ac5213772ec..31605a85463 100644 --- a/.github/workflows/update-beats.yml +++ b/.github/workflows/update-beats.yml @@ -25,8 +25,8 @@ jobs: fail-fast: false matrix: ${{ fromJson(needs.filter.outputs.matrix) }} steps: - - uses: actions/checkout@v3 - - uses: actions/setup-go@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-go@v4 with: go-version-file: go.mod - uses: elastic/apm-pipeline-library/.github/actions/updatecli@current diff --git a/.go-version b/.go-version index 8909929f6e7..20a1265cf39 100644 --- a/.go-version +++ b/.go-version @@ -1 +1 @@ -1.20.7 +1.21.4 diff --git a/.mergify.yml b/.mergify.yml index d06ba9c242c..1f3ae86e04f 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -92,6 +92,8 @@ pull_request_rules: - "{{ author }}" branches: - "7.17" + labels: + - "backport" title: "[{{ destination_branch }}] {{ title }} (backport #{{ number }})" - name: backport patches to 7.16 branch conditions: @@ -288,3 +290,17 @@ pull_request_rules: labels: - "backport" title: "[{{ destination_branch }}] {{ title }} (backport #{{ number }})" + - name: backport patches to 8.11 branch + conditions: + - merged + - base=main + - label=backport-8.11 + actions: + backport: + assignees: + - "{{ author }}" + branches: + - "8.11" + labels: + - "backport" + title: "[{{ destination_branch }}] {{ title }} (backport #{{ number }})" diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index a557b5f3192..ea8a6729f14 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -1,4 +1,5 @@ include::./changelogs/head.asciidoc[] +include::./changelogs/8.11.asciidoc[] include::./changelogs/8.10.asciidoc[] include::./changelogs/8.9.asciidoc[] include::./changelogs/8.8.asciidoc[] diff --git a/Makefile b/Makefile index ef501a19afd..a71f48b4045 100644 --- a/Makefile +++ b/Makefile @@ -37,9 +37,7 @@ CURRENT_DIR=$(shell dirname $(shell readlink -f $(firstword $(MAKEFILE_LIST)))) APM_SERVER_BINARIES:= \ build/apm-server-linux-amd64 \ - build/apm-server-linux-386 \ build/apm-server-linux-arm64 \ - build/apm-server-windows-386.exe \ build/apm-server-windows-amd64.exe \ build/apm-server-darwin-amd64 \ build/apm-server-darwin-arm64 @@ -64,7 +62,6 @@ $(APM_SERVER_BINARIES): build/apm-server-linux-%: GOOS=linux build/apm-server-darwin-%: GOOS=darwin build/apm-server-windows-%: GOOS=windows -build/apm-server-%-386 build/apm-server-%-386.exe: GOARCH=386 build/apm-server-%-amd64 build/apm-server-%-amd64.exe: GOARCH=amd64 build/apm-server-%-amd64 build/apm-server-%-amd64.exe: GOFLAGS+=-buildmode=pie build/apm-server-%-arm64 build/apm-server-%-arm64.exe: GOARCH=arm64 @@ -75,7 +72,6 @@ GOVERSIONINFO_FLAGS := \ -product-version "$(APM_SERVER_VERSION)" \ -comment "commit=$(GITCOMMIT)" -build/apm-server-windows-386.exe: x-pack/apm-server/versioninfo_windows_386.syso build/apm-server-windows-amd64.exe: x-pack/apm-server/versioninfo_windows_amd64.syso x-pack/apm-server/versioninfo_windows_amd64.syso: GOVERSIONINFO_FLAGS+=-64 x-pack/apm-server/versioninfo_%.syso: $(GOVERSIONINFO) $(GITREFFILE) packaging/versioninfo.json diff --git a/NOTICE.txt b/NOTICE.txt index 61971c24517..e4ed62b5f71 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -362,11 +362,11 @@ these terms. -------------------------------------------------------------------------------- Dependency : github.com/elastic/apm-data -Version: v0.1.1-0.20230815073233-455fb9f1280f +Version: v0.1.1-0.20231019120308-82201b991ae5 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/apm-data@v0.1.1-0.20230815073233-455fb9f1280f/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/elastic/apm-data@v0.1.1-0.20231019120308-82201b991ae5/LICENSE: Apache License Version 2.0, January 2004 @@ -573,11 +573,11 @@ Contents of probable licence file $GOMODCACHE/github.com/elastic/apm-data@v0.1.1 -------------------------------------------------------------------------------- Dependency : github.com/elastic/beats/v7 -Version: v7.0.0-alpha2.0.20230906094532-4cf4292be494 +Version: v7.0.0-alpha2.0.20231121082709-886d078ba1f0 Licence type (autodetected): Elastic -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/beats/v7@v7.0.0-alpha2.0.20230906094532-4cf4292be494/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/elastic/beats/v7@v7.0.0-alpha2.0.20231121082709-886d078ba1f0/LICENSE.txt: Source code in this repository is variously licensed under the Apache License Version 2.0, an Apache compatible license, or the Elastic License. Outside of @@ -596,11 +596,11 @@ License Version 2.0. -------------------------------------------------------------------------------- Dependency : github.com/elastic/elastic-agent-client/v7 -Version: v7.3.0 +Version: v7.4.0 Licence type (autodetected): Elastic -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-client/v7@v7.3.0/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-client/v7@v7.4.0/LICENSE.txt: ELASTIC LICENSE AGREEMENT @@ -829,11 +829,11 @@ SOFTWARE -------------------------------------------------------------------------------- Dependency : github.com/elastic/elastic-agent-libs -Version: v0.3.13 +Version: v0.6.2 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-libs@v0.3.13/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-libs@v0.6.2/LICENSE: Apache License Version 2.0, January 2004 @@ -1040,11 +1040,11 @@ Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-l -------------------------------------------------------------------------------- Dependency : github.com/elastic/elastic-agent-system-metrics -Version: v0.6.1 +Version: v0.8.1 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-system-metrics@v0.6.1/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-system-metrics@v0.8.1/LICENSE.txt: Apache License Version 2.0, January 2004 @@ -1251,11 +1251,11 @@ Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-s -------------------------------------------------------------------------------- Dependency : github.com/elastic/gmux -Version: v0.2.0 +Version: v0.3.1 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/gmux@v0.2.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/elastic/gmux@v0.3.1/LICENSE: Apache License Version 2.0, January 2004 @@ -1673,11 +1673,11 @@ Contents of probable licence file $GOMODCACHE/github.com/elastic/go-docappender@ -------------------------------------------------------------------------------- Dependency : github.com/elastic/go-elasticsearch/v8 -Version: v8.9.0 +Version: v8.10.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/go-elasticsearch/v8@v8.9.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/elastic/go-elasticsearch/v8@v8.10.0/LICENSE: Apache License Version 2.0, January 2004 @@ -4194,6 +4194,37 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +Dependency : github.com/stretchr/testify +Version: v1.8.4 +Licence type (autodetected): MIT +-------------------------------------------------------------------------------- + +Contents of probable licence file $GOMODCACHE/github.com/stretchr/testify@v1.8.4/LICENSE: + +MIT License + +Copyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors. + +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. + + -------------------------------------------------------------------------------- Dependency : go.elastic.co/apm/module/apmelasticsearch/v2 Version: v2.4.4 @@ -5251,11 +5282,11 @@ Contents of probable licence file $GOMODCACHE/go.elastic.co/apm/module/apmotel/v -------------------------------------------------------------------------------- Dependency : go.elastic.co/apm/v2 -Version: v2.4.4 +Version: v2.4.5 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.elastic.co/apm/v2@v2.4.4/LICENSE: +Contents of probable licence file $GOMODCACHE/go.elastic.co/apm/v2@v2.4.5/LICENSE: Apache License Version 2.0, January 2004 @@ -5495,11 +5526,11 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/consumer -Version: v0.81.0 +Version: v0.87.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/consumer@v0.81.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/consumer@v0.87.0/LICENSE: Apache License @@ -5707,11 +5738,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/cons -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/pdata -Version: v1.0.0-rcv0013 +Version: v1.0.0-rcv0016 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pdata@v1.0.0-rcv0013/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pdata@v1.0.0-rcv0016/LICENSE: Apache License @@ -5919,11 +5950,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pdat -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/otel -Version: v1.17.0 +Version: v1.19.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel@v1.17.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel@v1.19.0/LICENSE: Apache License Version 2.0, January 2004 @@ -6130,11 +6161,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel@v1.17.0/L -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/otel/metric -Version: v1.17.0 +Version: v1.19.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/metric@v1.17.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/metric@v1.19.0/LICENSE: Apache License Version 2.0, January 2004 @@ -6341,11 +6372,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/metric@v1 -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/otel/sdk/metric -Version: v0.40.0 +Version: v1.19.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/sdk/metric@v0.40.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/sdk/metric@v1.19.0/LICENSE: Apache License Version 2.0, January 2004 @@ -6580,11 +6611,11 @@ THE SOFTWARE. -------------------------------------------------------------------------------- Dependency : go.uber.org/zap -Version: v1.25.0 +Version: v1.26.0 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.uber.org/zap@v1.25.0/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/go.uber.org/zap@v1.26.0/LICENSE.txt: Copyright (c) 2016-2017 Uber Technologies, Inc. @@ -6609,11 +6640,11 @@ THE SOFTWARE. -------------------------------------------------------------------------------- Dependency : golang.org/x/net -Version: v0.14.0 +Version: v0.17.0 Licence type (autodetected): BSD-3-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/golang.org/x/net@v0.14.0/LICENSE: +Contents of probable licence file $GOMODCACHE/golang.org/x/net@v0.17.0/LICENSE: Copyright (c) 2009 The Go Authors. All rights reserved. @@ -6646,11 +6677,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : golang.org/x/sync -Version: v0.3.0 +Version: v0.4.0 Licence type (autodetected): BSD-3-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/golang.org/x/sync@v0.3.0/LICENSE: +Contents of probable licence file $GOMODCACHE/golang.org/x/sync@v0.4.0/LICENSE: Copyright (c) 2009 The Go Authors. All rights reserved. @@ -6683,11 +6714,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : golang.org/x/term -Version: v0.11.0 +Version: v0.13.0 Licence type (autodetected): BSD-3-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/golang.org/x/term@v0.11.0/LICENSE: +Contents of probable licence file $GOMODCACHE/golang.org/x/term@v0.13.0/LICENSE: Copyright (c) 2009 The Go Authors. All rights reserved. @@ -6757,11 +6788,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : google.golang.org/grpc -Version: v1.56.1 +Version: v1.58.3 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/google.golang.org/grpc@v1.56.1/LICENSE: +Contents of probable licence file $GOMODCACHE/google.golang.org/grpc@v1.58.3/LICENSE: Apache License @@ -7171,11 +7202,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- Dependency : github.com/apache/thrift -Version: v0.18.1 +Version: v0.19.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/apache/thrift@v0.18.1/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/apache/thrift@v0.19.0/LICENSE: Apache License @@ -14379,6 +14410,43 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- +Dependency : github.com/pmezard/go-difflib +Version: v1.0.0 +Licence type (autodetected): BSD-3-Clause +-------------------------------------------------------------------------------- + +Contents of probable licence file $GOMODCACHE/github.com/pmezard/go-difflib@v1.0.0/LICENSE: + +Copyright (c) 2013, Patrick Mezard +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + The names of its contributors may not 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 +HOLDER 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. + + -------------------------------------------------------------------------------- Dependency : github.com/prometheus/client_golang Version: v1.16.0 @@ -15014,11 +15082,11 @@ Contents of probable licence file $GOMODCACHE/github.com/prometheus/common@v0.44 -------------------------------------------------------------------------------- Dependency : github.com/prometheus/procfs -Version: v0.10.1 +Version: v0.11.1 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/prometheus/procfs@v0.10.1/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/prometheus/procfs@v0.11.1/LICENSE: Apache License Version 2.0, January 2004 @@ -15812,6 +15880,38 @@ Exhibit B - "Incompatible With Secondary Licenses" Notice +-------------------------------------------------------------------------------- +Dependency : github.com/stretchr/objx +Version: v0.5.0 +Licence type (autodetected): MIT +-------------------------------------------------------------------------------- + +Contents of probable licence file $GOMODCACHE/github.com/stretchr/objx@v0.5.0/LICENSE: + +The MIT License + +Copyright (c) 2014 Stretchr, Inc. +Copyright (c) 2017-2018 objx contributors + +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. + + -------------------------------------------------------------------------------- Dependency : github.com/tklauser/go-sysconf Version: v0.3.11 @@ -17339,11 +17439,11 @@ Contents of probable licence file $GOMODCACHE/go.elastic.co/ecszap@v1.0.1/LICENS -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/semconv -Version: v0.81.0 +Version: v0.87.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/semconv@v0.81.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/semconv@v0.87.0/LICENSE: Apache License @@ -17551,11 +17651,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/semc -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/otel/sdk -Version: v1.17.0 +Version: v1.19.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/sdk@v1.17.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/sdk@v1.19.0/LICENSE: Apache License Version 2.0, January 2004 @@ -17762,11 +17862,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/sdk@v1.17 -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/otel/trace -Version: v1.17.0 +Version: v1.19.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/trace@v1.17.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/trace@v1.19.0/LICENSE: Apache License Version 2.0, January 2004 @@ -18031,11 +18131,11 @@ THE SOFTWARE. -------------------------------------------------------------------------------- Dependency : golang.org/x/crypto -Version: v0.12.0 +Version: v0.14.0 Licence type (autodetected): BSD-3-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/golang.org/x/crypto@v0.12.0/LICENSE: +Contents of probable licence file $GOMODCACHE/golang.org/x/crypto@v0.14.0/LICENSE: Copyright (c) 2009 The Go Authors. All rights reserved. @@ -18105,11 +18205,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : golang.org/x/sys -Version: v0.11.0 +Version: v0.13.0 Licence type (autodetected): BSD-3-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/golang.org/x/sys@v0.11.0/LICENSE: +Contents of probable licence file $GOMODCACHE/golang.org/x/sys@v0.13.0/LICENSE: Copyright (c) 2009 The Go Authors. All rights reserved. @@ -18142,11 +18242,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : golang.org/x/text -Version: v0.12.0 +Version: v0.13.0 Licence type (autodetected): BSD-3-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/golang.org/x/text@v0.12.0/LICENSE: +Contents of probable licence file $GOMODCACHE/golang.org/x/text@v0.13.0/LICENSE: Copyright (c) 2009 The Go Authors. All rights reserved. @@ -18179,11 +18279,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : google.golang.org/genproto/googleapis/rpc -Version: v0.0.0-20230530153820-e85fd2cbaebc +Version: v0.0.0-20231002182017-d307bd883b97 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/google.golang.org/genproto/googleapis/rpc@v0.0.0-20230530153820-e85fd2cbaebc/LICENSE: +Contents of probable licence file $GOMODCACHE/google.golang.org/genproto/googleapis/rpc@v0.0.0-20231002182017-d307bd883b97/LICENSE: Apache License diff --git a/README.md b/README.md index 12bf23907bf..349684aef62 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ To get started with APM, see our [Quick start guide](https://www.elastic.co/guid ### Requirements -* [Go][golang-download] 1.20.x +* [Go][golang-download] 1.21.x [golang-download]: https://golang.org/dl/ diff --git a/apmpackage/apm/changelog.yml b/apmpackage/apm/changelog.yml index 654ee5d0668..6906aa2b13d 100644 --- a/apmpackage/apm/changelog.yml +++ b/apmpackage/apm/changelog.yml @@ -1,5 +1,13 @@ - version: generated changes: + - description: Placeholder + type: enhancement + link: https://github.com/elastic/apm-server/pull/123 +- version: 8.11.0 + changes: + - description: Add geoip processing to add client.geo.* fields for app_logs + type: enhancement + link: https://github.com/elastic/apm-server/pull/11699 - description: Define data retentions to support DLM type: enhancement link: https://github.com/elastic/apm-server/pull/11539 @@ -12,6 +20,15 @@ - description: Remove unused `processor.event` field from logs data streams type: enhancement link: https://github.com/elastic/apm-server/pull/11494 + - description: Explicitly set `event.ingested` in traces-apm.sampled + type: enhancement + link: https://github.com/elastic/apm-server/pull/11623 + - description: Remove `ecs.version` from all data streams + type: enhancement + link: https://github.com/elastic/apm-server/pull/11632 + - description: always set {span,transaction}.duration in traces-* + type: enhancement + link: https://github.com/elastic/apm-server/pull/11638 - version: "8.10.0" changes: - description: Add permissions to reroute to dedicated datasets for logs, metrics and traces diff --git a/apmpackage/apm/data_stream/app_logs/elasticsearch/ilm/default_policy.json b/apmpackage/apm/data_stream/app_logs/elasticsearch/ilm/default_policy.json index 8a46dcb692a..acf21096844 100644 --- a/apmpackage/apm/data_stream/app_logs/elasticsearch/ilm/default_policy.json +++ b/apmpackage/apm/data_stream/app_logs/elasticsearch/ilm/default_policy.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "30d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/app_logs/elasticsearch/ingest_pipeline/default.yml b/apmpackage/apm/data_stream/app_logs/elasticsearch/ingest_pipeline/default.yml index 1f20b44c199..0d8331bd71f 100644 --- a/apmpackage/apm/data_stream/app_logs/elasticsearch/ingest_pipeline/default.yml +++ b/apmpackage/apm/data_stream/app_logs/elasticsearch/ingest_pipeline/default.yml @@ -8,4 +8,6 @@ processors: - pipeline: name: observer_ids - pipeline: - name: ecs_version + name: remove_ecs_version + - pipeline: + name: client_geoip diff --git a/apmpackage/apm/data_stream/app_logs/fields/ecs.yml b/apmpackage/apm/data_stream/app_logs/fields/ecs.yml index a17c24c0b4e..e563e5b49f9 100644 --- a/apmpackage/apm/data_stream/app_logs/fields/ecs.yml +++ b/apmpackage/apm/data_stream/app_logs/fields/ecs.yml @@ -70,8 +70,6 @@ name: device.model.identifier - external: ecs name: device.manufacturer -- external: ecs - name: ecs.version - external: ecs name: error.stack_trace - external: ecs diff --git a/apmpackage/apm/data_stream/app_metrics/elasticsearch/ilm/default_policy.json b/apmpackage/apm/data_stream/app_metrics/elasticsearch/ilm/default_policy.json index 3f5bf4b44b8..c1cdcca3f7d 100644 --- a/apmpackage/apm/data_stream/app_metrics/elasticsearch/ilm/default_policy.json +++ b/apmpackage/apm/data_stream/app_metrics/elasticsearch/ilm/default_policy.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "30d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/app_metrics/elasticsearch/ingest_pipeline/default.yml b/apmpackage/apm/data_stream/app_metrics/elasticsearch/ingest_pipeline/default.yml index 835e4f6bb4c..6046f0df4a6 100644 --- a/apmpackage/apm/data_stream/app_metrics/elasticsearch/ingest_pipeline/default.yml +++ b/apmpackage/apm/data_stream/app_metrics/elasticsearch/ingest_pipeline/default.yml @@ -6,7 +6,7 @@ processors: - pipeline: name: observer_ids - pipeline: - name: ecs_version + name: remove_ecs_version - pipeline: name: user_agent - pipeline: diff --git a/apmpackage/apm/data_stream/app_metrics/fields/ecs.yml b/apmpackage/apm/data_stream/app_metrics/fields/ecs.yml index e6fb2280659..1d2169fbd09 100644 --- a/apmpackage/apm/data_stream/app_metrics/fields/ecs.yml +++ b/apmpackage/apm/data_stream/app_metrics/fields/ecs.yml @@ -70,8 +70,6 @@ name: device.model.identifier - external: ecs name: device.manufacturer -- external: ecs - name: ecs.version - external: ecs name: event.outcome - external: ecs diff --git a/apmpackage/apm/data_stream/error_logs/elasticsearch/ilm/default_policy.json b/apmpackage/apm/data_stream/error_logs/elasticsearch/ilm/default_policy.json index 8a46dcb692a..acf21096844 100644 --- a/apmpackage/apm/data_stream/error_logs/elasticsearch/ilm/default_policy.json +++ b/apmpackage/apm/data_stream/error_logs/elasticsearch/ilm/default_policy.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "30d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/error_logs/elasticsearch/ingest_pipeline/default.yml b/apmpackage/apm/data_stream/error_logs/elasticsearch/ingest_pipeline/default.yml index 1433914ef7a..455ec6b233a 100644 --- a/apmpackage/apm/data_stream/error_logs/elasticsearch/ingest_pipeline/default.yml +++ b/apmpackage/apm/data_stream/error_logs/elasticsearch/ingest_pipeline/default.yml @@ -6,7 +6,7 @@ processors: - pipeline: name: observer_ids - pipeline: - name: ecs_version + name: remove_ecs_version - pipeline: name: user_agent - pipeline: diff --git a/apmpackage/apm/data_stream/error_logs/fields/ecs.yml b/apmpackage/apm/data_stream/error_logs/fields/ecs.yml index fd11b6573ed..f7a010f7309 100644 --- a/apmpackage/apm/data_stream/error_logs/fields/ecs.yml +++ b/apmpackage/apm/data_stream/error_logs/fields/ecs.yml @@ -70,8 +70,6 @@ name: device.model.identifier - external: ecs name: device.manufacturer -- external: ecs - name: ecs.version - external: ecs name: error.id - external: ecs diff --git a/apmpackage/apm/data_stream/internal_metrics/elasticsearch/ilm/default_policy.json b/apmpackage/apm/data_stream/internal_metrics/elasticsearch/ilm/default_policy.json index 3f5bf4b44b8..c1cdcca3f7d 100644 --- a/apmpackage/apm/data_stream/internal_metrics/elasticsearch/ilm/default_policy.json +++ b/apmpackage/apm/data_stream/internal_metrics/elasticsearch/ilm/default_policy.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "30d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/internal_metrics/elasticsearch/ingest_pipeline/default.yml b/apmpackage/apm/data_stream/internal_metrics/elasticsearch/ingest_pipeline/default.yml index 4efa6d388e8..24142a5459b 100644 --- a/apmpackage/apm/data_stream/internal_metrics/elasticsearch/ingest_pipeline/default.yml +++ b/apmpackage/apm/data_stream/internal_metrics/elasticsearch/ingest_pipeline/default.yml @@ -6,7 +6,7 @@ processors: - pipeline: name: observer_ids - pipeline: - name: ecs_version + name: remove_ecs_version - pipeline: name: user_agent - pipeline: diff --git a/apmpackage/apm/data_stream/internal_metrics/fields/ecs.yml b/apmpackage/apm/data_stream/internal_metrics/fields/ecs.yml index 190090144ba..c361c28eece 100644 --- a/apmpackage/apm/data_stream/internal_metrics/fields/ecs.yml +++ b/apmpackage/apm/data_stream/internal_metrics/fields/ecs.yml @@ -62,8 +62,6 @@ name: destination.ip - external: ecs name: destination.port -- external: ecs - name: ecs.version - external: ecs name: event.outcome - external: ecs diff --git a/apmpackage/apm/data_stream/rum_traces/elasticsearch/ilm/default_policy.json b/apmpackage/apm/data_stream/rum_traces/elasticsearch/ilm/default_policy.json index 3f5bf4b44b8..c1cdcca3f7d 100644 --- a/apmpackage/apm/data_stream/rum_traces/elasticsearch/ilm/default_policy.json +++ b/apmpackage/apm/data_stream/rum_traces/elasticsearch/ilm/default_policy.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "30d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/rum_traces/elasticsearch/ingest_pipeline/default.yml b/apmpackage/apm/data_stream/rum_traces/elasticsearch/ingest_pipeline/default.yml index 7bcf6be7437..81f3d22e6d8 100644 --- a/apmpackage/apm/data_stream/rum_traces/elasticsearch/ingest_pipeline/default.yml +++ b/apmpackage/apm/data_stream/rum_traces/elasticsearch/ingest_pipeline/default.yml @@ -6,7 +6,7 @@ processors: - pipeline: name: observer_ids - pipeline: - name: ecs_version + name: remove_ecs_version - pipeline: name: user_agent - pipeline: diff --git a/apmpackage/apm/data_stream/sampled_traces/elasticsearch/ingest_pipeline/default.yml b/apmpackage/apm/data_stream/sampled_traces/elasticsearch/ingest_pipeline/default.yml index da849a6152a..5542776c285 100644 --- a/apmpackage/apm/data_stream/sampled_traces/elasticsearch/ingest_pipeline/default.yml +++ b/apmpackage/apm/data_stream/sampled_traces/elasticsearch/ingest_pipeline/default.yml @@ -5,3 +5,5 @@ processors: field: observer.id target_field: agent.ephemeral_id ignore_missing: true + - pipeline: + name: event_ingested diff --git a/apmpackage/apm/data_stream/service_destination_interval_metrics/elasticsearch/ilm/default_policy.10m.json b/apmpackage/apm/data_stream/service_destination_interval_metrics/elasticsearch/ilm/default_policy.10m.json index 0c61ace104e..6e76da1b75e 100644 --- a/apmpackage/apm/data_stream/service_destination_interval_metrics/elasticsearch/ilm/default_policy.10m.json +++ b/apmpackage/apm/data_stream/service_destination_interval_metrics/elasticsearch/ilm/default_policy.10m.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "14d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/service_destination_interval_metrics/elasticsearch/ilm/default_policy.1m.json b/apmpackage/apm/data_stream/service_destination_interval_metrics/elasticsearch/ilm/default_policy.1m.json index b38cbf7b32f..1f42f14f9c8 100644 --- a/apmpackage/apm/data_stream/service_destination_interval_metrics/elasticsearch/ilm/default_policy.1m.json +++ b/apmpackage/apm/data_stream/service_destination_interval_metrics/elasticsearch/ilm/default_policy.1m.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "7d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/service_destination_interval_metrics/elasticsearch/ilm/default_policy.60m.json b/apmpackage/apm/data_stream/service_destination_interval_metrics/elasticsearch/ilm/default_policy.60m.json index e3cf396022f..8f7dc0e16bd 100644 --- a/apmpackage/apm/data_stream/service_destination_interval_metrics/elasticsearch/ilm/default_policy.60m.json +++ b/apmpackage/apm/data_stream/service_destination_interval_metrics/elasticsearch/ilm/default_policy.60m.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "30d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/service_destination_interval_metrics/elasticsearch/ingest_pipeline/default.yml b/apmpackage/apm/data_stream/service_destination_interval_metrics/elasticsearch/ingest_pipeline/default.yml index 75c0d5350ec..736ae27b009 100644 --- a/apmpackage/apm/data_stream/service_destination_interval_metrics/elasticsearch/ingest_pipeline/default.yml +++ b/apmpackage/apm/data_stream/service_destination_interval_metrics/elasticsearch/ingest_pipeline/default.yml @@ -6,7 +6,7 @@ processors: - pipeline: name: observer_ids - pipeline: - name: ecs_version + name: remove_ecs_version - pipeline: name: set_metrics - remove: diff --git a/apmpackage/apm/data_stream/service_destination_interval_metrics/fields/ecs.yml b/apmpackage/apm/data_stream/service_destination_interval_metrics/fields/ecs.yml index c40ae35a38e..4110e05ac35 100644 --- a/apmpackage/apm/data_stream/service_destination_interval_metrics/fields/ecs.yml +++ b/apmpackage/apm/data_stream/service_destination_interval_metrics/fields/ecs.yml @@ -1,7 +1,5 @@ - external: ecs name: agent.name -- external: ecs - name: ecs.version - external: ecs name: event.outcome - external: ecs diff --git a/apmpackage/apm/data_stream/service_summary_interval_metrics/elasticsearch/ilm/default_policy.10m.json b/apmpackage/apm/data_stream/service_summary_interval_metrics/elasticsearch/ilm/default_policy.10m.json index 0c61ace104e..6e76da1b75e 100644 --- a/apmpackage/apm/data_stream/service_summary_interval_metrics/elasticsearch/ilm/default_policy.10m.json +++ b/apmpackage/apm/data_stream/service_summary_interval_metrics/elasticsearch/ilm/default_policy.10m.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "14d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/service_summary_interval_metrics/elasticsearch/ilm/default_policy.1m.json b/apmpackage/apm/data_stream/service_summary_interval_metrics/elasticsearch/ilm/default_policy.1m.json index b38cbf7b32f..1f42f14f9c8 100644 --- a/apmpackage/apm/data_stream/service_summary_interval_metrics/elasticsearch/ilm/default_policy.1m.json +++ b/apmpackage/apm/data_stream/service_summary_interval_metrics/elasticsearch/ilm/default_policy.1m.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "7d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/service_summary_interval_metrics/elasticsearch/ilm/default_policy.60m.json b/apmpackage/apm/data_stream/service_summary_interval_metrics/elasticsearch/ilm/default_policy.60m.json index e3cf396022f..8f7dc0e16bd 100644 --- a/apmpackage/apm/data_stream/service_summary_interval_metrics/elasticsearch/ilm/default_policy.60m.json +++ b/apmpackage/apm/data_stream/service_summary_interval_metrics/elasticsearch/ilm/default_policy.60m.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "30d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/service_summary_interval_metrics/elasticsearch/ingest_pipeline/default.yml b/apmpackage/apm/data_stream/service_summary_interval_metrics/elasticsearch/ingest_pipeline/default.yml index c7b1a67e155..ad01e6bc0f6 100644 --- a/apmpackage/apm/data_stream/service_summary_interval_metrics/elasticsearch/ingest_pipeline/default.yml +++ b/apmpackage/apm/data_stream/service_summary_interval_metrics/elasticsearch/ingest_pipeline/default.yml @@ -6,7 +6,7 @@ processors: - pipeline: name: observer_ids - pipeline: - name: ecs_version + name: remove_ecs_version - pipeline: name: set_metrics - remove: diff --git a/apmpackage/apm/data_stream/service_summary_interval_metrics/fields/ecs.yml b/apmpackage/apm/data_stream/service_summary_interval_metrics/fields/ecs.yml index 31cfaaa972c..84f45f36df4 100644 --- a/apmpackage/apm/data_stream/service_summary_interval_metrics/fields/ecs.yml +++ b/apmpackage/apm/data_stream/service_summary_interval_metrics/fields/ecs.yml @@ -1,7 +1,5 @@ - external: ecs name: agent.name -- external: ecs - name: ecs.version - external: ecs name: observer.hostname - external: ecs diff --git a/apmpackage/apm/data_stream/service_transaction_interval_metrics/elasticsearch/ilm/default_policy.10m.json b/apmpackage/apm/data_stream/service_transaction_interval_metrics/elasticsearch/ilm/default_policy.10m.json index 0c61ace104e..6e76da1b75e 100644 --- a/apmpackage/apm/data_stream/service_transaction_interval_metrics/elasticsearch/ilm/default_policy.10m.json +++ b/apmpackage/apm/data_stream/service_transaction_interval_metrics/elasticsearch/ilm/default_policy.10m.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "14d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/service_transaction_interval_metrics/elasticsearch/ilm/default_policy.1m.json b/apmpackage/apm/data_stream/service_transaction_interval_metrics/elasticsearch/ilm/default_policy.1m.json index b38cbf7b32f..1f42f14f9c8 100644 --- a/apmpackage/apm/data_stream/service_transaction_interval_metrics/elasticsearch/ilm/default_policy.1m.json +++ b/apmpackage/apm/data_stream/service_transaction_interval_metrics/elasticsearch/ilm/default_policy.1m.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "7d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/service_transaction_interval_metrics/elasticsearch/ilm/default_policy.60m.json b/apmpackage/apm/data_stream/service_transaction_interval_metrics/elasticsearch/ilm/default_policy.60m.json index e3cf396022f..8f7dc0e16bd 100644 --- a/apmpackage/apm/data_stream/service_transaction_interval_metrics/elasticsearch/ilm/default_policy.60m.json +++ b/apmpackage/apm/data_stream/service_transaction_interval_metrics/elasticsearch/ilm/default_policy.60m.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "30d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/service_transaction_interval_metrics/elasticsearch/ingest_pipeline/default.yml b/apmpackage/apm/data_stream/service_transaction_interval_metrics/elasticsearch/ingest_pipeline/default.yml index 08ccbadfc66..5a413ef1850 100644 --- a/apmpackage/apm/data_stream/service_transaction_interval_metrics/elasticsearch/ingest_pipeline/default.yml +++ b/apmpackage/apm/data_stream/service_transaction_interval_metrics/elasticsearch/ingest_pipeline/default.yml @@ -6,7 +6,7 @@ processors: - pipeline: name: observer_ids - pipeline: - name: ecs_version + name: remove_ecs_version - pipeline: name: set_metrics - remove: diff --git a/apmpackage/apm/data_stream/service_transaction_interval_metrics/fields/ecs.yml b/apmpackage/apm/data_stream/service_transaction_interval_metrics/fields/ecs.yml index 31cfaaa972c..84f45f36df4 100644 --- a/apmpackage/apm/data_stream/service_transaction_interval_metrics/fields/ecs.yml +++ b/apmpackage/apm/data_stream/service_transaction_interval_metrics/fields/ecs.yml @@ -1,7 +1,5 @@ - external: ecs name: agent.name -- external: ecs - name: ecs.version - external: ecs name: observer.hostname - external: ecs diff --git a/apmpackage/apm/data_stream/traces/elasticsearch/ilm/default_policy.json b/apmpackage/apm/data_stream/traces/elasticsearch/ilm/default_policy.json index 8a46dcb692a..acf21096844 100644 --- a/apmpackage/apm/data_stream/traces/elasticsearch/ilm/default_policy.json +++ b/apmpackage/apm/data_stream/traces/elasticsearch/ilm/default_policy.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "30d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/traces/elasticsearch/ingest_pipeline/apm_data_stream_migration.yml b/apmpackage/apm/data_stream/traces/elasticsearch/ingest_pipeline/apm_data_stream_migration.yml index a713b81b92e..ce9480e5fbc 100644 --- a/apmpackage/apm/data_stream/traces/elasticsearch/ingest_pipeline/apm_data_stream_migration.yml +++ b/apmpackage/apm/data_stream/traces/elasticsearch/ingest_pipeline/apm_data_stream_migration.yml @@ -9,7 +9,7 @@ processors: - pipeline: name: observer_ids - pipeline: - name: ecs_version + name: remove_ecs_version - pipeline: name: process_ppid - script: diff --git a/apmpackage/apm/data_stream/traces/elasticsearch/ingest_pipeline/default.yml b/apmpackage/apm/data_stream/traces/elasticsearch/ingest_pipeline/default.yml index 757fd71d9b0..e883ed2cc99 100644 --- a/apmpackage/apm/data_stream/traces/elasticsearch/ingest_pipeline/default.yml +++ b/apmpackage/apm/data_stream/traces/elasticsearch/ingest_pipeline/default.yml @@ -6,7 +6,7 @@ processors: - pipeline: name: observer_ids - pipeline: - name: ecs_version + name: remove_ecs_version - pipeline: name: user_agent - pipeline: diff --git a/apmpackage/apm/data_stream/traces/fields/ecs.yml b/apmpackage/apm/data_stream/traces/fields/ecs.yml index bd461852ea8..fe9f38cca77 100644 --- a/apmpackage/apm/data_stream/traces/fields/ecs.yml +++ b/apmpackage/apm/data_stream/traces/fields/ecs.yml @@ -70,8 +70,6 @@ name: device.model.identifier - external: ecs name: device.manufacturer -- external: ecs - name: ecs.version - external: ecs name: event.outcome - external: ecs diff --git a/apmpackage/apm/data_stream/transaction_interval_metrics/elasticsearch/ilm/default_policy.10m.json b/apmpackage/apm/data_stream/transaction_interval_metrics/elasticsearch/ilm/default_policy.10m.json index 0c61ace104e..6e76da1b75e 100644 --- a/apmpackage/apm/data_stream/transaction_interval_metrics/elasticsearch/ilm/default_policy.10m.json +++ b/apmpackage/apm/data_stream/transaction_interval_metrics/elasticsearch/ilm/default_policy.10m.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "14d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/transaction_interval_metrics/elasticsearch/ilm/default_policy.1m.json b/apmpackage/apm/data_stream/transaction_interval_metrics/elasticsearch/ilm/default_policy.1m.json index b38cbf7b32f..1f42f14f9c8 100644 --- a/apmpackage/apm/data_stream/transaction_interval_metrics/elasticsearch/ilm/default_policy.1m.json +++ b/apmpackage/apm/data_stream/transaction_interval_metrics/elasticsearch/ilm/default_policy.1m.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "7d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/transaction_interval_metrics/elasticsearch/ilm/default_policy.60m.json b/apmpackage/apm/data_stream/transaction_interval_metrics/elasticsearch/ilm/default_policy.60m.json index e3cf396022f..8f7dc0e16bd 100644 --- a/apmpackage/apm/data_stream/transaction_interval_metrics/elasticsearch/ilm/default_policy.60m.json +++ b/apmpackage/apm/data_stream/transaction_interval_metrics/elasticsearch/ilm/default_policy.60m.json @@ -5,7 +5,7 @@ "actions": { "rollover": { "max_age": "30d", - "max_size": "50gb" + "max_primary_shard_size": "50gb" }, "set_priority": { "priority": 100 diff --git a/apmpackage/apm/data_stream/transaction_interval_metrics/elasticsearch/ingest_pipeline/default.yml b/apmpackage/apm/data_stream/transaction_interval_metrics/elasticsearch/ingest_pipeline/default.yml index 810d1424115..faa319004bc 100644 --- a/apmpackage/apm/data_stream/transaction_interval_metrics/elasticsearch/ingest_pipeline/default.yml +++ b/apmpackage/apm/data_stream/transaction_interval_metrics/elasticsearch/ingest_pipeline/default.yml @@ -6,7 +6,7 @@ processors: - pipeline: name: observer_ids - pipeline: - name: ecs_version + name: remove_ecs_version - pipeline: name: set_metrics - remove: diff --git a/apmpackage/apm/data_stream/transaction_interval_metrics/fields/ecs.yml b/apmpackage/apm/data_stream/transaction_interval_metrics/fields/ecs.yml index cca34f6c2ad..83090622abe 100644 --- a/apmpackage/apm/data_stream/transaction_interval_metrics/fields/ecs.yml +++ b/apmpackage/apm/data_stream/transaction_interval_metrics/fields/ecs.yml @@ -22,8 +22,6 @@ name: cloud.service.name - external: ecs name: container.id -- external: ecs - name: ecs.version - external: ecs name: event.outcome - external: ecs diff --git a/apmpackage/cmd/genpackage/main.go b/apmpackage/cmd/genpackage/main.go index 17716315a5a..99e4b51fe3c 100644 --- a/apmpackage/cmd/genpackage/main.go +++ b/apmpackage/cmd/genpackage/main.go @@ -40,7 +40,7 @@ var ( ecsVersion = flag.String("ecs", "", "ECS version (required)") ) -func generatePackage(pkgfs fs.FS, version, ecsVersion *version.V, ecsReference string) error { +func generatePackage(pkgfs fs.FS, version *version.V, ecsReference string) error { // Walk files, performing some APM-specific validations and transformations as we go. // // We assume the target destination does not yet exist. @@ -77,7 +77,7 @@ func generatePackage(pkgfs fs.FS, version, ecsVersion *version.V, ecsReference s // Use `lifecycle.json` instead of e.g. `lifecycle.1m.json` outputPath = strings.Replace(filepath.Join(*outputDir, p.Path), d.Name(), "lifecycle.yml", -1) } - err := renderFile(pkgfs, path, outputPath, version, ecsVersion, ecsReference, p.Interval) + err := renderFile(pkgfs, path, outputPath, version, ecsReference, p.Interval) if err != nil { return err } @@ -86,7 +86,7 @@ func generatePackage(pkgfs fs.FS, version, ecsVersion *version.V, ecsReference s }) } -func renderFile(pkgfs fs.FS, path, outputPath string, version, ecsVersion *version.V, ecsReference, interval string) error { +func renderFile(pkgfs fs.FS, path, outputPath string, version *version.V, ecsReference, interval string) error { content, err := fs.ReadFile(pkgfs, path) if err != nil { return err @@ -111,7 +111,7 @@ func renderFile(pkgfs fs.FS, path, outputPath string, version, ecsVersion *versi } content = buf.Bytes() } - content, err = transformFile(path, content, version, ecsVersion, ecsReference, interval) + content, err = transformFile(path, content, version, ecsReference, interval) if err != nil { return fmt.Errorf("error transforming %q: %w", path, err) } @@ -176,7 +176,6 @@ func main() { *ecsReference = fmt.Sprintf("git@v%s", *ecsVersion) } pkgVersion := version.MustNew(*pkgVersion) - ecsVersion := version.MustNew(*ecsVersion) // Locate the apmpackage/apm directory. _, file, _, ok := runtime.Caller(0) @@ -188,7 +187,7 @@ func main() { // Generate a completely rendered _source_ package, which can then be fed to // `elastic-agent build` to build the final package for inclusion in package-storage. log.Printf("generating integration package v%s in %q", pkgVersion.String(), *outputDir) - if err := generatePackage(os.DirFS(pkgdir), pkgVersion, ecsVersion, *ecsReference); err != nil { + if err := generatePackage(os.DirFS(pkgdir), pkgVersion, *ecsReference); err != nil { log.Fatal(err) } } diff --git a/apmpackage/cmd/genpackage/pipelines.go b/apmpackage/cmd/genpackage/pipelines.go index 3387d9830de..a228549a304 100644 --- a/apmpackage/cmd/genpackage/pipelines.go +++ b/apmpackage/cmd/genpackage/pipelines.go @@ -36,14 +36,15 @@ import ( // - ... func getCommonPipeline(name string, version *version.V) []map[string]interface{} { commonPipelines := map[string][]map[string]interface{}{ - "observer_version": getObserverVersionPipeline(version), - "observer_ids": observerIDsPipeline, - "ecs_version": ecsVersionPipeline, - "user_agent": userAgentPipeline, - "process_ppid": processPpidPipeline, - "client_geoip": clientGeoIPPipeline, - "event_duration": eventDurationPipeline, - "set_metrics": setMetricsPipeline, + "observer_version": getObserverVersionPipeline(version), + "observer_ids": observerIDsPipeline, + "remove_ecs_version": removeECSVersionPipeline, + "user_agent": userAgentPipeline, + "process_ppid": processPpidPipeline, + "client_geoip": clientGeoIPPipeline, + "event_duration": eventDurationPipeline, + "set_metrics": setMetricsPipeline, + "event_ingested": eventIngestedPipeline, } return commonPipelines[name] } @@ -102,7 +103,7 @@ var observerIDsPipeline = []map[string]interface{}{{ }, }} -var ecsVersionPipeline = []map[string]interface{}{{ +var removeECSVersionPipeline = []map[string]interface{}{{ "remove": map[string]interface{}{ "field": "ecs", // remove ecs.version "ignore_missing": true, @@ -154,11 +155,16 @@ var clientGeoIPPipeline = []map[string]interface{}{{ // `event.duration`. See https://github.com/elastic/apm-server/issues/5999. var eventDurationPipeline = []map[string]interface{}{{ "script": map[string]interface{}{ - "if": "ctx.processor?.event != null && ctx.get(ctx.processor.event) != null && ctx.get(ctx.processor.event)?.duration == null", + "if": "ctx.processor?.event != null && ctx.get(ctx.processor.event)?.duration == null", "source": strings.TrimSpace(` def durationNanos = ctx.event?.duration ?: 0; def eventType = ctx.processor.event; -ctx.get(ctx.processor.event).duration = ["us": (long)(durationNanos/1000)]; +def rootObject = ctx.get(eventType); +if (rootObject == null) { + rootObject = [:]; + ctx[eventType] = rootObject; +} +rootObject.duration = ["us": (long)(durationNanos/1000)]; `), }, }, { @@ -226,3 +232,15 @@ ctx.metricset.remove("samples"); }, }, } + +// This pipeline sets `event.ingested` to the ingest timestamp, truncated +// to seconds for storage efficiency. +var eventIngestedPipeline = []map[string]interface{}{{ + "date": map[string]interface{}{ + "field": "_ingest.timestamp", + "target_field": "event.ingested", + "formats": []interface{}{"ISO8601"}, + "output_format": "date_time_no_millis", + "ignore_failure": true, + }, +}} diff --git a/apmpackage/cmd/genpackage/transform.go b/apmpackage/cmd/genpackage/transform.go index 83697346792..aaafe7d2858 100644 --- a/apmpackage/cmd/genpackage/transform.go +++ b/apmpackage/cmd/genpackage/transform.go @@ -33,7 +33,7 @@ const ( integrationName = "apm" ) -func transformFile(path string, content []byte, version, ecsVersion *version.V, ecsReference, interval string) ([]byte, error) { +func transformFile(path string, content []byte, version *version.V, ecsReference, interval string) ([]byte, error) { if path == "manifest.yml" { return transformPackageManifest(content, version) } @@ -43,9 +43,6 @@ func transformFile(path string, content []byte, version, ecsVersion *version.V, if isIngestPipeline(path) { return transformIngestPipeline(path, content, version) } - if isECSFieldsYAML(path) { - return transformECSFieldsYAML(content, ecsVersion) - } if path == "changelog.yml" { return transformChangelog(content, version) } @@ -55,33 +52,6 @@ func transformFile(path string, content []byte, version, ecsVersion *version.V, return content, nil } -func transformECSFieldsYAML(content []byte, ecsVersion *version.V) ([]byte, error) { - var doc yaml.Node - if err := yaml.Unmarshal(content, &doc); err != nil { - return nil, err - } - - var found bool - for _, fieldNode := range doc.Content[0].Content { - if yamlMapLookup(fieldNode, "name").Value != "ecs.version" { - continue - } - fieldNode.Content = append(fieldNode.Content, - &yaml.Node{Kind: yaml.ScalarNode, Value: "type"}, - &yaml.Node{Kind: yaml.ScalarNode, Value: "constant_keyword"}, - &yaml.Node{Kind: yaml.ScalarNode, Value: "value"}, - &yaml.Node{Kind: yaml.ScalarNode, Value: ecsVersion.String()}, - ) - found = true - break - } - if !found { - return content, nil - } - - return marshalYAML(&doc) -} - func transformBuildDependencies(content []byte, ecsReference string) ([]byte, error) { var doc yaml.Node if err := yaml.Unmarshal(content, &doc); err != nil { @@ -223,14 +193,6 @@ func isDataStreamManifest(path string) bool { return filepath.Base(dir) == "data_stream" } -func isECSFieldsYAML(path string) bool { - dir, file := filepath.Split(path) - if file != "ecs.yml" { - return false - } - return filepath.Base(dir) == "fields" -} - func yamlMapLookup(n *yaml.Node, key ...string) *yaml.Node { if n.Kind != yaml.MappingNode { panic(fmt.Sprintf("expected node kind %v, got %v", yaml.MappingNode, n.Kind)) diff --git a/changelogs/8.10.asciidoc b/changelogs/8.10.asciidoc index 90a5c53333d..574c859d40f 100644 --- a/changelogs/8.10.asciidoc +++ b/changelogs/8.10.asciidoc @@ -3,8 +3,41 @@ https://github.com/elastic/apm-server/compare/8.9\...8.10[View commits] +* <> +* <> +* <> +* <> * <> +[float] +[[release-notes-8.10.4]] +=== APM version 8.10.4 + +[float] +==== Bug fixes + +- RPM package upgrade no longer overwrites the apm-server.yml config {pull}11808[11808] + +[float] +[[release-notes-8.10.3]] +=== APM version 8.10.3 + +No significant changes. + +[float] +[[release-notes-8.10.2]] +=== APM version 8.10.2 + +No significant changes. + +[float] +[[release-notes-8.10.1]] +=== APM version 8.10.1 + +[float] +==== Bug fixes +Fix tail-based sampling discarding low throughput and low sample rate traces {pull}11642[11642] + [float] [[release-notes-8.10.0]] === APM version 8.10.0 @@ -13,9 +46,8 @@ https://github.com/elastic/apm-server/compare/8.9\...8.10[View commits] ==== Breaking Changes - Aggregated metrics now consider global labels to be part of a service's identity, and high cardinality global labels may cause services to be obscured {pull}11386[11386] - Event protobuf encoding for tail-based sampling changed (to a more efficient encoding) for event timestamp and duration {pull}11386[11386] - -[float] -==== Deprecations +- Use object notation for data_stream fields {pull}11311[11311] +- Removed `processor.event` and `processor.name` from the data model {pull}11028[11028] [float] ==== Bug fixes diff --git a/changelogs/8.11.asciidoc b/changelogs/8.11.asciidoc new file mode 100644 index 00000000000..e1f4696b4b3 --- /dev/null +++ b/changelogs/8.11.asciidoc @@ -0,0 +1,36 @@ +[[release-notes-8.11]] +== APM version 8.11 + +https://github.com/elastic/apm-server/compare/8.10\...8.11[View commits] + +* <> +* <> + +[float] +[[release-notes-8.11.1]] +=== APM version 8.11.1 + +https://github.com/elastic/apm-server/compare/v8.11.0\...v8.11.1[View commits] + +No significant changes. + +[float] +[[release-notes-8.11.0]] +=== APM version 8.11.0 + +[float] +==== Breaking Changes +- The `ecs.version` field has been removed from APM data streams {pull}11632[11632] + +[float] +==== Bug fixes +- Add back gzip support for grpc otlp endpoint {pull}11434[11434] +- Correctly mark jvm.memory.non_heap.pool.* and jvm.fd.* metrics as internal {pull}11303[11303] +- Fix tail-based sampling discarding low throughput and low sample rate traces {pull}11642[11642] +- Add memory based autoscaling for service destination aggregation groups {pull}11739[11739] + +[float] +==== Added +- Support and define DLM data retention period in the apmpackage {pull}11539[11539] +- Expose new metrics into the local batch processor {pull}11582[11582] +- Add geoip processing to app_logs ingest pipeline on `client.ip` {pull}11699[11699] diff --git a/changelogs/head.asciidoc b/changelogs/head.asciidoc index 40884e8bc20..5e6155333cf 100644 --- a/changelogs/head.asciidoc +++ b/changelogs/head.asciidoc @@ -1,33 +1,23 @@ [[release-notes-head]] == APM version HEAD -https://github.com/elastic/apm-server/compare/8.10\...main[View commits] +https://github.com/elastic/apm-server/compare/8.11\...main[View commits] [float] ==== Breaking Changes [float] -==== Deprecations +==== Bug fixes +- Switch built-in ILM rollover policies from max_size to max_primary_shard_size {pull}11729[11729]. [float] -==== Bug fixes -- Add back gzip support for grpc otlp endpoint {pull}11434[11434] -- Correctly mark jvm.memory.non_heap.pool.* and jvm.fd.* metrics as internal {pull}11303[11303] +==== Deprecations [float] ==== Intake API Changes [float] ==== Added -- Support and define DLM data retention period in the apmpackage -- Expose new metrics into the local batch processor {pull}11582[11582] : - - http.server.request.count - - http.server.response.valid.count - - http.server.response.errors.count - - http.server.errors.timeout - - http.server.errors.ratelimit - - grpc.server.request.count - - grpc.server.response.valid.count - - grpc.server.response.errors.count - - grpc.server.errors.timeout - - grpc.server.errors.ratelimit +- Update container base image to Ubuntu 22.04 {pull}11778[11778] +- Add support for returning partial success response in OTLP input {pull}11883[11883] +- Setting event timestamp from OTel observed timestamp when needed {pull}11935[11935] \ No newline at end of file diff --git a/cmd/intake-receiver/go.mod b/cmd/intake-receiver/go.mod index b95c173d590..c64217c60d7 100644 --- a/cmd/intake-receiver/go.mod +++ b/cmd/intake-receiver/go.mod @@ -1,6 +1,8 @@ module github.com/elastic/apm-server/cmd/intake-receiver -go 1.20 +go 1.21 + +toolchain go1.21.3 require ( github.com/stretchr/testify v1.6.1 diff --git a/cmd/intake-receiver/version.go b/cmd/intake-receiver/version.go index a13c8b643ee..dbe4d25625d 100644 --- a/cmd/intake-receiver/version.go +++ b/cmd/intake-receiver/version.go @@ -18,4 +18,4 @@ package main // version matches the APM Server's version -const version = "8.11.0" +const version = "8.12.0" diff --git a/docker-compose.yml b/docker-compose.yml index e023cc8a88b..851f2b786e9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,7 +10,7 @@ x-logging: &default-logging max-size: "1g" services: elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:8.11.0-d1486076-SNAPSHOT + image: docker.elastic.co/elasticsearch/elasticsearch:8.12.0-7521d760-SNAPSHOT ports: - 9200:9200 healthcheck: @@ -41,7 +41,7 @@ services: logging: *default-logging kibana: - image: docker.elastic.co/kibana/kibana:8.11.0-d1486076-SNAPSHOT + image: docker.elastic.co/kibana/kibana:8.12.0-7521d760-SNAPSHOT ports: - 5601:5601 healthcheck: @@ -52,7 +52,6 @@ services: ELASTICSEARCH_HOSTS: '["http://elasticsearch:9200"]' ELASTICSEARCH_USERNAME: "${KIBANA_ES_USER:-kibana_system_user}" ELASTICSEARCH_PASSWORD: "${KIBANA_ES_PASS:-changeme}" - XPACK_FLEET_AGENTS_FLEET_SERVER_HOSTS: '["https://fleet-server:8220"]' XPACK_FLEET_AGENTS_ELASTICSEARCH_HOSTS: '["http://elasticsearch:9200"]' depends_on: elasticsearch: { condition: service_healthy } @@ -60,44 +59,14 @@ services: - "./testing/docker/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml" logging: *default-logging - fleet-server: - image: docker.elastic.co/beats/elastic-agent:8.11.0-d1486076-SNAPSHOT - ports: - - 8220:8220 - healthcheck: - test: ["CMD-SHELL", "curl -s -k https://localhost:8220/api/status | grep -q 'HEALTHY'"] - retries: 300 - interval: 1s - environment: - FLEET_SERVER_ENABLE: "1" - FLEET_SERVER_POLICY_ID: "fleet-server-apm" - FLEET_SERVER_ELASTICSEARCH_HOST: http://elasticsearch:9200 - FLEET_SERVER_ELASTICSEARCH_USERNAME: "${ES_SUPERUSER_USER:-admin}" - FLEET_SERVER_ELASTICSEARCH_PASSWORD: "${ES_SUPERUSER_PASS:-changeme}" - FLEET_SERVER_CERT: /etc/pki/tls/certs/fleet-server.pem - FLEET_SERVER_CERT_KEY: /etc/pki/tls/private/fleet-server-key.pem - FLEET_URL: https://fleet-server:8220 - KIBANA_FLEET_SETUP: "true" - KIBANA_FLEET_HOST: "http://kibana:5601" - KIBANA_FLEET_USERNAME: "${ES_SUPERUSER_USER:-admin}" - KIBANA_FLEET_PASSWORD: "${ES_SUPERUSER_PASS:-changeme}" - depends_on: - elasticsearch: { condition: service_healthy } - kibana: { condition: service_healthy } - volumes: - - "./testing/docker/fleet-server/certificate.pem:/etc/pki/tls/certs/fleet-server.pem" - - "./testing/docker/fleet-server/key.pem:/etc/pki/tls/private/fleet-server-key.pem" - logging: *default-logging - metricbeat: - image: docker.elastic.co/beats/metricbeat:8.11.0-d1486076-SNAPSHOT + image: docker.elastic.co/beats/metricbeat:8.12.0-7521d760-SNAPSHOT environment: ELASTICSEARCH_HOSTS: '["http://elasticsearch:9200"]' ELASTICSEARCH_USERNAME: "${KIBANA_ES_USER:-admin}" ELASTICSEARCH_PASSWORD: "${KIBANA_ES_PASS:-changeme}" depends_on: elasticsearch: { condition: service_healthy } - fleet-server: { condition: service_healthy } volumes: - "./testing/docker/metricbeat/elasticsearch-xpack.yml://usr/share/metricbeat/modules.d/elasticsearch-xpack.yml" - "./testing/docker/metricbeat/apm-server.yml://usr/share/metricbeat/modules.d/apm-server.yml" diff --git a/docs/access-api-keys.asciidoc b/docs/access-api-keys.asciidoc index 8093843c674..fa5b9fe8c77 100644 --- a/docs/access-api-keys.asciidoc +++ b/docs/access-api-keys.asciidoc @@ -34,12 +34,24 @@ In the role descriptors box, assign the appropriate privileges to the new API ke { "names": ["{beat_default_index_prefix}-*"], "privileges": ["create_index", "create_doc"] - }, + } + ] + }, + "{beat_default_index_prefix}_sourcemap": { + "index": [ { - "names": ["{beat_default_index_prefix}-*sourcemap"], + "names": [".apm-source-map"], "privileges": ["read"] - }, - ] + } + ] + }, + "{beat_default_index_prefix}_agentcfg": { + "index": [ + { + "names": [".apm-agent-configuration"], + "privileges": ["read"] + } + ] } } ---- @@ -123,11 +135,23 @@ POST /_security/api_key { "names": ["{beat_default_index_prefix}-*"], "privileges": ["create_index", "create_doc"] - }, + } + ] + }, + "{beat_default_index_prefix}_sourcemap": { + "index": [ + { + "names": [".apm-source-map"], + "privileges": ["read"] + } + ] + }, + "{beat_default_index_prefix}_agentcfg": { + "index": [ { - "names": ["{beat_default_index_prefix}-*sourcemap"], + "names": [".apm-agent-configuration"], "privileges": ["read"] - }, + } ] } } diff --git a/docs/api-config.asciidoc b/docs/api-config.asciidoc index 7ce60c0979a..ef78db2272d 100644 --- a/docs/api-config.asciidoc +++ b/docs/api-config.asciidoc @@ -1,15 +1,22 @@ [[api-config]] -=== Agent configuration API +=== Elastic APM agent configuration API -APM Server exposes an API endpoint that allows agents to query the server for configuration changes. +APM Server exposes API endpoints that allow Elastic APM agents to query the APM Server for configuration changes. More information on this feature is available in {kibana-ref}/agent-configuration.html[{apm-agent} configuration in {kib}]. [float] [[api-config-endpoint]] -=== Agent configuration endpoint +=== Agent configuration endpoints -The Agent configuration endpoint accepts both `HTTP GET` and `HTTP POST` requests. -If <> or a <> is configured, requests to this endpoint must be authenticated. +[options="header"] +|==== +|Name |Endpoint +|Agent configuration intake |`/config/v1/agents` +|RUM configuration intake |`/config/v1/rum/agents` +|==== + +The Agent configuration endpoints accepts both `HTTP GET` and `HTTP POST` requests. +If an <> or <> is configured, requests to this endpoint must be authenticated. [float] [[api-config-api-get]] diff --git a/docs/api-events.asciidoc b/docs/api-events.asciidoc index 2c9acd56a03..e83604972f5 100644 --- a/docs/api-events.asciidoc +++ b/docs/api-events.asciidoc @@ -1,5 +1,5 @@ [[api-events]] -=== Events intake API +=== Elastic APM events intake API NOTE: Most users do not need to interact directly with the events intake API. @@ -24,7 +24,21 @@ See the <> to learn more about the different types of [[api-events-endpoint]] [float] -=== Endpoint +=== Endpoints + +APM Server exposes the following endpoints for Elastic APM agent data intake: + +[options="header"] +|==== +|Name |Endpoint +|APM agent event intake |`/intake/v2/events` +|RUM event intake (v2) |`/intake/v2/rum/events` +|RUM event intake (v3) |`/intake/v3/rum/events` +|==== + +[[api-events-example]] +[float] +=== Request Send an `HTTP POST` request to the APM Server `intake/v2/events` endpoint: @@ -49,11 +63,11 @@ Furthermore, asynchronous processing requests will only be scheduled if the APM service the incoming request, requests that cannot be serviced will receive an internal error `503` "queue is full" error. -For <> send an `HTTP POST` request to the APM Server `intake/v2/rum/events` endpoint instead: +For <> send an `HTTP POST` request to the APM Server `intake/v3/rum/events` endpoint instead: [source,bash] ------------------------------------------------------------ -http(s)://{hostname}:{port}/intake/v2/rum/events +http(s)://{hostname}:{port}/intake/v3/rum/events ------------------------------------------------------------ [[api-events-response]] diff --git a/docs/api-info.asciidoc b/docs/api-info.asciidoc index 517b90fa039..4287e7da44a 100644 --- a/docs/api-info.asciidoc +++ b/docs/api-info.asciidoc @@ -1,5 +1,5 @@ [[api-info]] -=== Server information API +=== APM Server information API The APM Server exposes an API endpoint to query general server information. This lightweight endpoint is useful as a server up/down health check. @@ -8,22 +8,56 @@ This lightweight endpoint is useful as a server up/down health check. [[api-info-endpoint]] === Server Information endpoint -Send an `HTTP GET` request to the server information endpoint: +This is the server information endpoint: [source,bash] ------------------------------------------------------------ http(s)://{hostname}:{port}/ ------------------------------------------------------------ -This endpoint always returns an HTTP 200. +Sending an `HTTP GET` or `HTTP POST` request to the server information endpoint +will return an HTTP 200, indicating that the server is up. -If <> or a <> is configured, requests to this endpoint must be authenticated. +To configure authenticated access to the APM server, +the instructions at <> or <>, +must be followed to configure the correct permissions for APM access. + +If an <> or a <> is passed along with +the `HTTP GET` or `HTTP POST` request, in addition to an HTTP 200, +the response payload will include some information about the APM server. + +[float] +[[api-info-example-get-without-credentials]] +==== Example: GET, without credentials + +Example APM Server status request with GET, without credentials: + +["source","sh",subs="attributes"] +--------------------------------------------------------------------------- +curl --verbose -X GET http://127.0.0.1:8200 + +* Trying 127.0.0.1:8200... +* TCP_NODELAY set +* Connected to 127.0.0.1 (10.244.3.40) port 8200 (#0) +> GET / HTTP/1.1 +> Host: 127.0.0.1:8200 +> User-Agent: curl/7.68.0 +> Accept: */* +> +* Mark bundle as not supporting multiuse +< HTTP/1.1 200 OK +< X-Content-Type-Options: nosniff +< Date: Tue, 17 Oct 2023 22:04:05 GMT +< Content-Length: 0 +< +* Connection #0 to host 127.0.0.1 left intact +--------------------------------------------------------------------------- [float] -[[api-info-examples]] -==== Example +[[api-info-example-post-with-secret-token]] +==== Example: POST, with secret token -Example APM Server information request: +Example APM Server information request with POST, with a <>: ["source","sh",subs="attributes"] --------------------------------------------------------------------------- diff --git a/docs/api-jaeger.asciidoc b/docs/api-jaeger.asciidoc new file mode 100644 index 00000000000..af4a8add47c --- /dev/null +++ b/docs/api-jaeger.asciidoc @@ -0,0 +1,14 @@ +[[api-jaeger]] +=== Jaeger event intake + +Elastic APM natively supports Jaeger, an open-source, distributed tracing system. +<>. + +**Jaeger/gRPC paths** + +[options="header"] +|==== +|Name |Endpoint +|Jaeger span intake |`/jaeger.api_v2.CollectorService/PostSpans` +|Sampling endpoint |`/jaeger.api_v2.SamplingManager/GetSamplingStrategy` +|==== \ No newline at end of file diff --git a/docs/api-otlp.asciidoc b/docs/api-otlp.asciidoc new file mode 100644 index 00000000000..99f583c4669 --- /dev/null +++ b/docs/api-otlp.asciidoc @@ -0,0 +1,37 @@ +[[api-otlp]] +=== OpenTelemetry intake API + +APM Server supports receiving traces, metrics, and logs over the +https://opentelemetry.io/docs/specs/otlp/[OpenTelemetry Protocol (OTLP)]. +OTLP is the default transfer protocol for OpenTelemetry and is supported natively by APM Server. + +APM Server supports two OTLP communication protocols on the same port: + +* OTLP/HTTP (protobuf) +* OTLP/gRPC + +[discrete] +=== OTLP/gRPC paths + +[options="header"] +|==== +|Name |Endpoint +|OTLP metrics intake |`/opentelemetry.proto.collector.metrics.v1.MetricsService/Export` +|OTLP trace intake |`/opentelemetry.proto.collector.trace.v1.TraceService/Export` +|OTLP logs intake |`/opentelemetry.proto.collector.logs.v1.LogsService/Export` +|==== + +[discrete] +==== OTLP/HTTP paths + +[options="header"] +|==== +|Name |Endpoint +|OTLP metrics intake |`/v1/metrics` +|OTLP trace intake |`/v1/traces` +|OTLP logs intake |`/v1/logs` +|==== + +TIP: See our OpenTelemetry documentation to learn how to send data to the APM Server from an +<> or +<>. diff --git a/docs/api.asciidoc b/docs/api.asciidoc index 8afaa83f25d..61e36d21a7a 100644 --- a/docs/api.asciidoc +++ b/docs/api.asciidoc @@ -3,10 +3,14 @@ The APM Server exposes endpoints for: -* <> -* <> -* <> +* <> +* <> +* <> +* <> +* <> +include::./api-info.asciidoc[] include::./api-events.asciidoc[] include::./api-config.asciidoc[] -include::./api-info.asciidoc[] +include::./api-otlp.asciidoc[] +include::./api-jaeger.asciidoc[] diff --git a/docs/apm-breaking.asciidoc b/docs/apm-breaking.asciidoc index 5bb62c26e44..58335f86b1b 100644 --- a/docs/apm-breaking.asciidoc +++ b/docs/apm-breaking.asciidoc @@ -7,6 +7,32 @@ This section describes the breaking changes and deprecations introduced in this release and previous minor versions. +// tag::811-bc[] +[float] +[[breaking-changes-8.11]] +=== 8.11 + +The following breaking changes are introduced in APM version 8.11.0: + +- The `ecs.version` field has been removed from APM data streams. +This change should not impact most users as this field is not used by the APM UI. +For more details, see https://github.com/elastic/apm-server/pull/11632[PR #11632] +// end::811-bc[] + +// tag::810-bc[] +[float] +[[breaking-changes-8.10]] +=== 8.10 + +The following breaking changes are introduced in APM version 8.10.0: + +- Aggregated metrics now consider global labels to be part of a service's identity, and high cardinality global labels may cause services to be obscured. +For more details, see https://github.com/elastic/apm-server/pull/11386[PR #11386]. + +- Event protobuf encoding for tail-based sampling changed to a more efficient encoding for event timestamp and duration +For more details, see https://github.com/elastic/apm-server/pull/11386[PR #11386]. +// end::810-bc[] + // tag::87-bc[] [float] [[breaking-changes-8.7]] @@ -191,7 +217,7 @@ APM Server no longer supports installation via Homebrew. ==== All removed and changed settings Below is a list of all **removed settings** (in alphabetical order) for -users upgrading a standalone (legacy) APM Server to {stack} version 8.0. +users upgrading a standalone APM Server to {stack} version 8.0. [source,yml] ---- @@ -211,7 +237,7 @@ setup.* ---- Below is a list of **renamed settings** (in alphabetical order) for -users upgrading a standalone (legacy) APM Server to {stack} version 8.0. +users upgrading a standalone APM Server to {stack} version 8.0. [source,yml] ---- @@ -228,7 +254,7 @@ apm-server.secret_token --> apm-server.auth.secret_token ==== Supported {ecloud} settings Below is a list of all **supported settings** (in alphabetical order) for -users upgrading an {ecloud} standalone (legacy) cluster to {stack} version 8.0. +users upgrading an {ecloud} standalone cluster to {stack} version 8.0. Any previously supported settings not listed below will be removed when upgrading. [source,yml] diff --git a/docs/apm-quick-start.asciidoc b/docs/apm-quick-start.asciidoc index 62cf252e561..a36092daa35 100644 --- a/docs/apm-quick-start.asciidoc +++ b/docs/apm-quick-start.asciidoc @@ -20,4 +20,4 @@ simply spin-up your instance and point your *APM agents* towards it. [float] == What will I learn in this guide? -include::{obs-repo-dir}/observability/ingest-traces.asciidoc[tag=apm-quick-start] +include::{obs-repo-dir}/observability/traces-get-started.asciidoc[tag=apm-quick-start] diff --git a/docs/common-problems.asciidoc b/docs/common-problems.asciidoc index 53885cf3522..527833638cd 100644 --- a/docs/common-problems.asciidoc +++ b/docs/common-problems.asciidoc @@ -7,7 +7,8 @@ This section describes common problems you might encounter when using a Fleet-ma * <> * <> * <> -* <> +* <> +* <> [float] [[no-data-indexed]] @@ -17,7 +18,7 @@ If no data shows up in {es}, first make sure that your APM components are proper include::{tab-widget-dir}/no-data-indexed-widget.asciidoc[] -[[data-indexed-no-apm-legacy]] +[[data-indexed-no-apm]] [float] === Data is indexed but doesn't appear in the APM app @@ -164,7 +165,7 @@ APM agent --> Load Balancer --> APM Server The APM Server timeout can be configured by updating the <>. -[[field-limit-exceeded-legacy]] +[[field-limit-exceeded]] [float] === Field limit exceeded @@ -187,3 +188,13 @@ In the agent logs, you won't see a sign of failures as the APM server asynchrono ---- {\"type\":\"illegal_argument_exception\",\"reason\":\"Limit of total fields [1000] in [INDEX_NAME] has been exceeded\"} ---- + +[[tail-based-sampling-memory-disk-io]] +[float] +=== Tail-based sampling causing high system memory usage and high disk IO + +Tail-based sampling requires minimal memory to run, and there should not be a noticeable increase in RSS memory usage. +However, since tail-based sampling writes data to disk, +it is possible to see a significant increase in OS page cache memory usage due to disk IO. +If you see a drop in throughput and excessive disk activity after enabling tail-based sampling, +please ensure that there is enough memory headroom in the system for OS page cache to perform disk IO efficiently. diff --git a/docs/configure/agent-config.asciidoc b/docs/configure/agent-config.asciidoc index 566aaa6a4a8..6261a389827 100644 --- a/docs/configure/agent-config.asciidoc +++ b/docs/configure/agent-config.asciidoc @@ -71,7 +71,4 @@ rejecting fetch request: no valid elasticsearch config This occurs because the user or API key set in either `apm-server.agent.config.elasticsearch` or `output.elasticsearch` (if `apm-server.agent.config.elasticsearch` is not set) does not have adequate permissions to read source maps from {es}. -To fix this error, add the following index-level privileges to the API key: - -* `read` privileges on the `.apm-agent-configuration` index -* `allow_restricted_indices: true` +To fix this error, ensure that {beatname_uc} has all the required privileges. See <> for more details. diff --git a/docs/configure/outputs/logstash.asciidoc b/docs/configure/outputs/logstash.asciidoc index ac52c93fe21..59290980cd8 100644 --- a/docs/configure/outputs/logstash.asciidoc +++ b/docs/configure/outputs/logstash.asciidoc @@ -54,7 +54,7 @@ include::../../shared-kibana-endpoint.asciidoc[tag=shared-kibana-config] === {ls} configuration pipeline Finally, you must create a {ls} configuration pipeline that listens for incoming -APM Server connections, dedots the `data_stream.*` fields, and indexes received events into {es}. +APM Server connections and indexes received events into {es}. . Use the {logstash-ref}/plugins-inputs-elastic_agent.html[Elastic Agent input plugin] to configure {ls} to receive events from the APM Server. A minimal `input` config might look like this: @@ -68,54 +68,6 @@ input { } ---- -. Use the {logstash-ref}/plugins-filters-mutate.html[Mutate filter plugin] to set up <>. -Because the {ls} {es} output doesn't understand dotted field notation, you must use this filter to -dedot the default `data_stream.*` fields sent from APM Server to {ls}. -+ -[source,conf] ----- -filter { - mutate { - rename => { - "[data_stream.type]" => "[data_stream][type]" - "[data_stream.dataset]" => "[data_stream][dataset]" - "[data_stream.namespace]" => "[data_stream][namespace]" - } - } -} ----- -+ -.Expand to learn more -[%collapsible] -==== -**** -APM Server sends data stream information to {ls} in the following format: - -[source,json] ----- -{ - "data_stream.dataset": "apm", - "data_stream.type": "traces", - "data_stream.namespace": "default" -} ----- - -{es} expects to receive data stream information in the following format: - -[source,json] ----- -"data_stream" { - "dataset": "apm", - "type": "traces", - "dataset": "default" -} ----- - -The mutation defined above transforms what APM Server sends to {ls} into a data format that {es} understands. -This allows you to automatically route APM data to the appropriate data streams. -**** -==== - . Use the {logstash-ref}/plugins-outputs-elasticsearch.html[{es} output plugin] to send events to {es} for indexing. A minimal `output` config might look like this: + @@ -142,16 +94,6 @@ input { } } -filter { - mutate { - rename => { - "[data_stream.type]" => "[data_stream][type]" - "[data_stream.dataset]" => "[data_stream][dataset]" - "[data_stream.namespace]" => "[data_stream][namespace]" - } - } -} - output { elasticsearch { data_stream => "true" @@ -184,7 +126,7 @@ APM Server sends the following `@metadata` to {ls}: <2> The current version of APM Server. In addition to `@metadata`, APM Server provides other potentially useful fields, like the -`processor.event` field and `data_stream` fields, which can be used to conditionally operate on +`data_stream` field, which can be used to conditionally operate on {apm-guide-ref}/data-model.html[event types], namespaces, or datasets. As an example, you might want to use {ls} to route all `metric` events to the same custom metrics data stream, @@ -194,7 +136,7 @@ rather than to service-specific data streams: ---- output { if [@metadata][beat] == "apm-server" { <1> - if [processor][event] == "metric" { <2> + if [data_stream][type] == "metrics" { <2> elasticsearch { index => "%{[data_stream][type]}-custom-%{[data_stream][namespace]}" <3> action => "create" <4> diff --git a/docs/configure/rum.asciidoc b/docs/configure/rum.asciidoc index 7d8cc7b59ae..2bc25ec9621 100644 --- a/docs/configure/rum.asciidoc +++ b/docs/configure/rum.asciidoc @@ -134,7 +134,7 @@ the options in this section are only supported by the APM Server binary. == `source_mapping.enabled` Used to enable/disable <> for RUM events. When enabled, the APM Server needs additional privileges to read source maps. -See <> for more details. +See <> for more details. Default: `true` diff --git a/docs/configure/sampling.asciidoc b/docs/configure/sampling.asciidoc index 4a81c9f5838..9a4e78fe83b 100644 --- a/docs/configure/sampling.asciidoc +++ b/docs/configure/sampling.asciidoc @@ -65,6 +65,9 @@ This final policy is used to catch remaining trace events that don't match a str [id="sampling-tail-storage_limit-{input-type}"] == Storage limit The amount of storage space allocated for trace events matching tail sampling policies. Caution: Setting this limit higher than the allowed space may cause APM Server to become unhealthy. + +If the configured storage limit is insufficient, it logs "configured storage limit reached". The event will bypass sampling and will always be indexed when storage limit is reached. + Default: `3GB`. (text) |==== diff --git a/docs/data-model.asciidoc b/docs/data-model.asciidoc index 918c48f2c23..20e0af115df 100644 --- a/docs/data-model.asciidoc +++ b/docs/data-model.asciidoc @@ -236,9 +236,7 @@ and {apm-go-ref-v}/metrics.html[Go runtime] metrics in the Go Agent. Infrastructure and application metrics are important sources of information when debugging production systems, which is why we've made it easy to filter metrics for specific hosts or containers in the {kib} {kibana-ref}/metrics.html[metrics overview]. -Metrics have the `processor.event` property set to `metric`. - -TIP: Most agents limit keyword fields (e.g. `processor.event`) to 1024 characters, +TIP: Most agents limit keyword fields to 1024 characters, non-keyword fields (e.g. `system.memory.total`) to 10,000 characters. Metrics are stored in metric indices. @@ -548,9 +546,10 @@ which is 500 transaction groups per service per GB of APM Server. ** For service-transaction metrics, there is an additional limit of 1000 total service transaction groups per GB of APM Server, and each service may only consume up to 10% of the service transaction groups, which is 100 service transaction groups per service per GB of APM Server. -** For service-destination metrics, there is an additional limit of a constant 10000 total service destination groups, +** For service-destination metrics, there is an additional limit of 5000 total service destination groups per GB of APM Server +starting with 10000 service destination groups for 1 GB APM Server, and each service may only consume up to 10% of the service destination groups, -which is 1000 service destination groups per service. +which is 1000 service destination groups for 1GB APM Server with 500 increment per GB of APM Server. ** For service-summary metrics, there is no additional limit. In the above, a service is defined as a combination of `service.name`, `service.environment`, `service.language.name` and `agent.name`. diff --git a/docs/feature-roles.asciidoc b/docs/feature-roles.asciidoc index 8b60c1abdb0..d99e70f1cf1 100644 --- a/docs/feature-roles.asciidoc +++ b/docs/feature-roles.asciidoc @@ -45,6 +45,7 @@ information, and another for viewing it. * <>: To create and manage API keys. * <>: To view APM Agent central configurations. +* <>: To read RUM source maps. {es-security-features} provides {ref}/built-in-roles.html[built-in roles] that grant a subset of the privileges needed by APM users. @@ -91,12 +92,10 @@ that has the following privileges: |Write events into {es} |==== -. If <> is enabled, additional privileges are required to read source maps. -See {kibana-ref}/rum-sourcemap-api.html[RUM source map API] for more details. -Assign these extra privileges to the *general writer role*. - . Assign the *general writer role* to users who need to publish APM data. +. If <> is enabled, create a separate <>. + //// *********************************** *********************************** *********************************** *********************************** @@ -319,27 +318,71 @@ PUT _security/role/apm_api_key <1> ++++ [[privileges-agent-central-config-server]] -==== APM Server central configuration management +==== APM Server agent central configuration management APM Server acts as a proxy between your APM agents and the {apm-app}. The {apm-app} communicates any changed settings to APM Server so that your agents only need to poll the Server to determine which central configuration settings have changed. -To grant an APM Server user with the required privileges for managing central configuration, +To grant an APM Server user with the required privileges for managing central configuration in {es} without {kib}, assign the user the following privileges: [options="header"] |==== |Type | Privilege | Purpose +| Index +|`read` on `.apm-agent-configuration` index +|Allow {beatname_uc} to manage central configurations in {es} +|==== + +The above privileges should be sufficient for APM agent central configuration to work properly +as long as {beatname_uc} communicates with {es} successfully. +If it fails, it may fallback to read agent central configuration via {kib} if configured, +which requires the following privileges: + +[options="header"] +|==== +|Type | Privilege | Purpose + | Spaces |`Read` on {beat_kib_app} |Allow {beatname_uc} to manage central configurations via the {beat_kib_app} |==== -TIP: Looking for privileges and roles needed use central configuration from the {apm-app} or {apm-app} API? +TIP: Looking for privileges and roles needed to use central configuration from the {apm-app} or {apm-app} API? See {kibana-ref}/apm-app-central-config-user.html[{apm-app} central configuration user]. +[[privileges-rum-source-map]] +=== Grant privileges and roles needed for reading source maps + +++++ +Create a _source map_ user +++++ + +[[privileges-rum-source-mapping]] +==== APM Server RUM source mapping + +If <> is enabled, additional privileges are required to read source maps. + +To grant an APM Server user with the required privileges for reading RUM source maps from {es} directly without {kib}, +assign the user the following privileges: + +[options="header"] +|==== +|Type | Privilege | Purpose + +|Index +|`read` on `.apm-source-map` index +|Allow {beatname_uc} to read RUM source maps from {es} +|==== + +The above privileges should be sufficient for RUM source mapping to work properly +as long as {beatname_uc} communicates with {es} successfully. +If it fails, it may fallback to read source maps via {kib} if configured, +which requires additional {kib} privileges. +See {kibana-ref}/rum-sourcemap-api.html[RUM source map API] for more details. + //// *********************************** *********************************** *********************************** *********************************** diff --git a/docs/integrations-index.asciidoc b/docs/integrations-index.asciidoc index 269ab78119e..9a5596a8ea7 100644 --- a/docs/integrations-index.asciidoc +++ b/docs/integrations-index.asciidoc @@ -2,7 +2,6 @@ include::./version.asciidoc[] include::{asciidoc-dir}/../../shared/attributes.asciidoc[] :apm-integration-docs: -:apm-package-dir: {docdir}/apm-package :obs-repo-dir: {observability-docs-root}/docs/en :tab-widget-dir: {docdir}/tab-widgets @@ -14,9 +13,6 @@ endif::[] // OTHER ATTRS // TODO: Check that these are still relevant - -:libbeat-dir: {docdir}/legacy/copied-from-beats/docs -:libbeat-outputs-dir: {docdir}/legacy/copied-from-beats/outputs :version: {apm_server_version} :beatname_lc: apm-server :beatname_uc: APM Server @@ -50,7 +46,6 @@ endif::[] :docker_platform: :win_os: :linux_os: -:apm-package-dir: {docdir}/legacy/apm-package :downloads: https://artifacts.elastic.co/downloads/apm-server diff --git a/docs/monitoring/monitoring-local-collection.asciidoc b/docs/monitoring/monitoring-local-collection.asciidoc index de7c0415712..e4b41b2e9a6 100644 --- a/docs/monitoring/monitoring-local-collection.asciidoc +++ b/docs/monitoring/monitoring-local-collection.asciidoc @@ -4,7 +4,7 @@ Use local collection ++++ -In 8.10 and later, we emit a selected set of metrics directly to the monitoring +In 8.11 and later, we emit a selected set of metrics directly to the monitoring cluster. The benefit of using local collection instead of internal collection is that the metrics are sent directly to your main monitoring index, making it easier @@ -21,11 +21,13 @@ collection. Here is the list of every metrics we currently expose: * http.server.request.count +* http.server.request.duration * http.server.response.valid.count * http.server.response.errors.count * http.server.errors.timeout * http.server.errors.ratelimit * grpc.server.request.count +* grpc.server.request.duration * grpc.server.response.valid.count * grpc.server.response.errors.count * grpc.server.errors.timeout diff --git a/docs/otel-direct.asciidoc b/docs/otel-direct.asciidoc index baf06727bf9..734178e0066 100644 --- a/docs/otel-direct.asciidoc +++ b/docs/otel-direct.asciidoc @@ -85,7 +85,8 @@ https://github.com/open-telemetry/opentelemetry-java-instrumentation[OpenTelemet See the https://opentelemetry.io/docs/instrumentation/[OpenTelemetry Instrumentation guides] to download the OpenTelemetry Agent or SDK for your language. -Define the following environment variables to configure the OpenTelemetry agent and enable communication with Elastic APM. +Define environment variables to configure the OpenTelemetry agent and enable communication with Elastic APM. +For example, if you are instrumenting a Java app, define the following environment variables: [source,bash] ---- @@ -114,7 +115,9 @@ For information on how to format an API key, see Please note the required space between `Bearer` and `an_apm_secret_token`, and `APIKey` and `an_api_key`. -| `OTEL_EXPORTER_OTLP_CERTIFICATE` | The trusted certificate used to verify the TLS credentials of the client. (optional) +| `OTEL_METRICS_EXPORTER` | Metrics exporter to use. See https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/#exporter-selection[exporter selection] for more information. + +| `OTEL_LOGS_EXPORTER` | Logs exporter to use. See https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/#exporter-selection[exporter selection] for more information. |=== @@ -142,5 +145,4 @@ https://github.com/elastic/apm-server/blob/main/dev_docs/otel.md#muxing-grpc-and ==== Next steps * <> -* Add <> * Learn about the <> diff --git a/docs/otel-limitations.asciidoc b/docs/otel-limitations.asciidoc index 82f29237e26..28d2ebeb959 100644 --- a/docs/otel-limitations.asciidoc +++ b/docs/otel-limitations.asciidoc @@ -33,7 +33,26 @@ APM Server does not yet support JSON Encoding for OTLP/HTTP. [[open-telemetry-collector-exporter]] ==== OpenTelemetry Collector exporter for Elastic -The https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/elasticexporter#legacy-opentelemetry-collector-exporter-for-elastic[OpenTelemetry Collector exporter for Elastic] -was deprecated in 7.13 and replaced by the native support of the OpenTelemetry Line Protocol in -Elastic {observability} (OTLP). To learn more, see -https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/elasticexporter#migration[migration]. +The https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.57.2/exporter/elasticexporter[OpenTelemetry Collector exporter for Elastic] +has been deprecated and replaced by the native support of the OpenTelemetry Line Protocol in Elastic Observability (OTLP). +// To learn more, see https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.57.2/exporter/elasticsearchexporter#migration[migration]. + +The https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/elasticsearchexporter#elasticsearch-exporter[Elasticsearch exporter for the OpenTelemetry Collector] +(which is different from the legacy exporter mentioned above) is not intended to be used with Elastic APM and Elastic Observability. Use <> instead. + +[float] +[[open-telemetry-tbs]] +==== OpenTelemetry's tail-based sampling + +Tail-based sampling allows to make sampling decisions after all spans of a trace have been completed. +This allows for more powerful and informed sampling rules. + +When using OpenTelemetry with Elastic APM, there are two different implementations available for tail-based sampling: + +* Tail-based sampling using the https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/tailsamplingprocessor[tailsamplingprocessor] in the OpenTelemetry Collector +* Native <> + +Using the https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/tailsamplingprocessor[tailsamplingprocessor] in the OpenTelemetry Collector comes with an important limitation. Elastic's APM backend calculates span and transaction metrics based on the incoming span events. +These metrics are accurate for 100% sampling scenarios. In scenarios with probabilistic sampling, Elastic's APM backend is being informed about the sampling rate of spans and can extrapolate throughput metrics based on the incoming, partial data. However, with tail-based sampling there's no clear probability for sampling decisions as the rules can be more complex and the OpenTelemetry Collector does not provide sampling probability information to the Elastic backend that could be used for extrapolation of data. Therefore, there's no way for Elastic APM to properly extrapolate throughput and count metrics that are derived from span events that have been tail-based sampled in the OpenTelemetry Collector. In these scenarios, derived throughput and count metrics are likely to be inaccurate. + +Therefore, we recommend using Elastic's native tail-based smapling when integrating with OpenTelemetry. diff --git a/docs/otel-metrics.asciidoc b/docs/otel-metrics.asciidoc index a72b101a3a4..27fad8d0703 100644 --- a/docs/otel-metrics.asciidoc +++ b/docs/otel-metrics.asciidoc @@ -38,7 +38,7 @@ include::{tab-widget-dir}/open-kibana-widget.asciidoc[] . Open the main menu, then click *Discover*. . Select `apm-*` as your index pattern. -. Filter the data to only show documents with metrics: `processor.event: "metric"` +. Filter the data to only show documents with metrics: `[data_stream][type]: "metrics"` . Narrow your search with a known OpenTelemetry field. For example, if you have an `order_value` field, add `order_value: *` to your search to return only OpenTelemetry metrics documents. @@ -46,45 +46,6 @@ only OpenTelemetry metrics documents. [[open-telemetry-visualize]] ==== Visualize in {kib} -TSVB within {kib} is the recommended visualization for OpenTelemetry metrics. TSVB is a time series data visualizer that allows you to use the -{es} aggregation framework's full power. With TSVB, you can combine an infinite number of aggregations to display complex data. +Use *Lens* to create visualizations for OpenTelemetry metrics. Lens enables you to build visualizations by dragging and dropping data fields. It makes smart visualization suggestions for your data, allowing you to switch between visualization types. -// lint ignore ecommerce -In this example eCommerce OpenTelemetry dashboard, there are four visualizations: sales, order count, product cache, and system load. The dashboard provides us with business -KPI metrics, along with performance-related metrics. - - -[role="screenshot"] -image::./images/ecommerce-dashboard.png[OpenTelemetry visualizations] - -Let's look at how this dashboard was created, specifically the Sales USD and System load visualizations. - -. Open the main menu, then click *Dashboard*. -. Click *Create dashboard*. -. Click *Save*, enter the name of your dashboard, and then click *Save* again. -. Let’s add a Sales USD visualization. Click *Edit*. -. Click *Create new* and then select *TSVB*. -. For the label name, enter Sales USD, and then select the following: -+ -* Aggregation: `Counter Rate`. -* Field: `order_sum`. -* Scale: `auto`. -* Group by: `Everything` -. Click *Save*, enter Sales USD as the visualization name, and then click *Save and return*. -. Now let's create a visualization of load averages on the system. Click *Create new*. -. Select *TSVB*. -. Select the following: -+ -* Aggregation: `Average`. -* Field: `system.cpu.load_average.1m`. -* Group by: `Terms`. -* By: `host.ip`. -* Top: `10`. -* Order by: `Doc Count (default)`. -* Direction: `Descending`. -. Click *Save*, enter System load per host IP as the visualization name, and then click *Save and return*. -+ -Both visualizations are now displayed on your custom dashboard. - -IMPORTANT: By default, Discover shows data for the last 15 minutes. If you have a time-based index -and no data displays, you might need to increase the time range. +For more information on using Lens, refer to the {kibana-ref}/lens.html[Lens documentation]. diff --git a/docs/otel-other.asciidoc b/docs/otel-other.asciidoc index 7da74573877..f896b832154 100644 --- a/docs/otel-other.asciidoc +++ b/docs/otel-other.asciidoc @@ -1,177 +1,11 @@ [[open-telemetry-other-env]] -=== Other execution environments - -** <> -** <> -** <> -** <> - -[float] -[[open-telemetry-aws-lambda]] === AWS Lambda Support +[[open-telemetry-aws-lambda]] AWS Lambda functions can be instrumented with OpenTelemetry and monitored with Elastic {observability}. To get started, follow the official AWS Distro for OpenTelemetry Lambda https://aws-otel.github.io/docs/getting-started/lambda[getting started documentation] and configure the OpenTelemetry Collector to output traces and metrics to your Elastic cluster. -[float] -[[open-telemetry-aws-lambda-java]] -==== Instrumenting AWS Lambda Java functions - -NOTE: For a better startup time, we recommend using SDK-based instrumentation, i.e. manual instrumentation of the code, rather than auto instrumentation. - -To instrument AWS Lambda Java functions, follow the official https://aws-otel.github.io/docs/getting-started/lambda/lambda-java[AWS Distro for OpenTelemetry Lambda Support For Java]. - -Noteworthy configuration elements: - -* AWS Lambda Java functions should extend `com.amazonaws.services.lambda.runtime.RequestHandler`, -+ -[source,java] ----- -public class ExampleRequestHandler implements RequestHandler { - public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent event, Context context) { - // add your code ... - } -} ----- - -* When using SDK-based instrumentation, frameworks you want to gain visibility of should be manually instrumented -** The below example instruments https://square.github.io/okhttp/4.x/okhttp/okhttp3/-ok-http-client/[OkHttpClient] with the OpenTelemetry instrument https://search.maven.org/artifact/io.opentelemetry.instrumentation/opentelemetry-okhttp-3.0/1.3.1-alpha/jar[io.opentelemetry.instrumentation:opentelemetry-okhttp-3.0:1.3.1-alpha] -+ -[source,java] ----- -import io.opentelemetry.instrumentation.okhttp.v3_0.OkHttpTracing; - -OkHttpClient httpClient = new OkHttpClient.Builder() - .addInterceptor(OkHttpTracing.create(GlobalOpenTelemetry.get()).newInterceptor()) - .build(); ----- - -* The configuration of the OpenTelemetry Collector, with the definition of the Elastic {observability} endpoint, can be added to the root directory of the Lambda binaries (e.g. defined in `src/main/resources/opentelemetry-collector.yaml`) -+ -[source,yaml] ----- -# Copy opentelemetry-collector.yaml in the root directory of the lambda function -# Set an environment variable 'OPENTELEMETRY_COLLECTOR_CONFIG_FILE' to '/var/task/opentelemetry-collector.yaml' -receivers: - otlp: - protocols: - http: - grpc: - -exporters: - logging: - loglevel: debug - otlp/elastic: - # Elastic APM server https endpoint without the "https://" prefix - endpoint: "${ELASTIC_OTLP_ENDPOINT}" <1> - headers: - # Elastic APM Server secret token - Authorization: "Bearer ${ELASTIC_OTLP_TOKEN}" <1> - -service: - pipelines: - traces: - receivers: [otlp] - exporters: [logging, otlp/elastic] - metrics: - receivers: [otlp] - exporters: [logging, otlp/elastic] - logs: - receivers: [otlp] - exporters: [logging, otlp/elastic] ----- -<1> Environment-specific configuration parameters can be conveniently passed in as environment variables: `ELASTIC_OTLP_ENDPOINT` and `ELASTIC_OTLP_TOKEN` - -* Configure the AWS Lambda Java function with: -** https://docs.aws.amazon.com/lambda/latest/dg/API_Layer.html[Function -layer]: The latest https://aws-otel.github.io/docs/getting-started/lambda/lambda-java[AWS -Lambda layer for OpenTelemetry] (e.g. `arn:aws:lambda:eu-west-1:901920570463:layer:aws-otel-java-wrapper-ver-1-2-0:1`) -** https://docs.aws.amazon.com/lambda/latest/dg/API_TracingConfig.html[`TracingConfig` / Mode] set to `PassTrough` -** https://docs.aws.amazon.com/lambda/latest/dg/API_FunctionConfiguration.html[`FunctionConfiguration` / Timeout] set to more than 10 seconds to support the longer cold start inherent to the Lambda Java Runtime -** Export the environment variables: -*** `AWS_LAMBDA_EXEC_WRAPPER="/opt/otel-proxy-handler"` for wrapping handlers proxied through the API Gateway (see https://aws-otel.github.io/docs/getting-started/lambda/lambda-java#enable-auto-instrumentation-for-your-lambda-function[here]) -*** `OTEL_PROPAGATORS="tracecontext, baggage"` to override the default setting that also enables X-Ray headers causing interferences between OpenTelemetry and X-Ray -*** `OPENTELEMETRY_COLLECTOR_CONFIG_FILE="/var/task/opentelemetry-collector.yaml"` to specify the path to your OpenTelemetry Collector configuration - -[float] -[[open-telemetry-aws-lambda-java-terraform]] -==== Instrumenting AWS Lambda Java functions with Terraform - -We recommend using an infrastructure as code solution like Terraform or Ansible to manage the configuration of your AWS Lambda functions. - -Here is an example of AWS Lambda Java function managed with Terraform and the https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function[AWS Provider / Lambda Functions]: - -* Sample Terraform code: https://github.com/cyrille-leclerc/my-serverless-shopping-cart/tree/main/checkout-function/deploy -* Note that the Terraform code to manage the HTTP API Gateway (https://github.com/cyrille-leclerc/my-serverless-shopping-cart/tree/main/utils/terraform/api-gateway-proxy[here]) is copied from the official OpenTelemetry Lambda sample https://github.com/open-telemetry/opentelemetry-lambda/tree/e72467a085a2a6e57af133032f85ac5b8bbbb8d1/utils[here] - -[float] -[[open-telemetry-aws-lambda-nodejs]] -==== Instrumenting AWS Lambda Node.js functions - -NOTE: For a better startup time, we recommend using SDK-based instrumentation for manual instrumentation of the code rather than auto instrumentation. - -To instrument AWS Lambda Node.js functions, see https://aws-otel.github.io/docs/getting-started/lambda/lambda-js[AWS Distro for OpenTelemetry Lambda Support For JavaScript]. - -The configuration of the OpenTelemetry Collector, with the definition of the Elastic {observability} endpoint, can be added to the root directory of the Lambda binaries: `src/main/resources/opentelemetry-collector.yaml`. - -[source,yaml] ----- -# Copy opentelemetry-collector.yaml in the root directory of the lambda function -# Set an environment variable 'OPENTELEMETRY_COLLECTOR_CONFIG_FILE' to '/var/task/opentelemetry-collector.yaml' -receivers: - otlp: - protocols: - http: - grpc: - -exporters: - logging: - loglevel: debug - otlp/elastic: - # Elastic APM server https endpoint without the "https://" prefix - endpoint: "${ELASTIC_OTLP_ENDPOINT}" <1> - headers: - # Elastic APM Server secret token - Authorization: "Bearer ${ELASTIC_OTLP_TOKEN}" <1> - -service: - pipelines: - traces: - receivers: [otlp] - exporters: [logging, otlp/elastic] - metrics: - receivers: [otlp] - exporters: [logging, otlp/elastic] - logs: - receivers: [otlp] - exporters: [logging, otlp/elastic] ----- -<1> Environment-specific configuration parameters can be conveniently passed in as environment variables: `ELASTIC_OTLP_ENDPOINT` and `ELASTIC_OTLP_TOKEN` - -Configure the AWS Lambda Node.js function: - -* https://docs.aws.amazon.com/lambda/latest/dg/API_Layer.html[Function -layer]: The latest https://aws-otel.github.io/docs/getting-started/lambda/lambda-js[AWS -Lambda layer for OpenTelemetry]. For example, `arn:aws:lambda:eu-west-1:901920570463:layer:aws-otel-nodejs-ver-0-23-0:1`) -* https://docs.aws.amazon.com/lambda/latest/dg/API_TracingConfig.html[`TracingConfig` / Mode] set to `PassTrough` -* https://docs.aws.amazon.com/lambda/latest/dg/API_FunctionConfiguration.html[`FunctionConfiguration` / Timeout] set to more than 10 seconds to support the cold start of the Lambda JavaScript Runtime -* Export the environment variables: -** `AWS_LAMBDA_EXEC_WRAPPER="/opt/otel-handler"` for wrapping handlers proxied through the API Gateway. See https://aws-otel.github.io/docs/getting-started/lambda/lambda-js#enable-auto-instrumentation-for-your-lambda-function[enable auto instrumentation for your lambda-function]. -** `OTEL_PROPAGATORS="tracecontext"` to override the default setting that also enables X-Ray headers causing interferences between OpenTelemetry and X-Ray -** `OPENTELEMETRY_COLLECTOR_CONFIG_FILE="/var/task/opentelemetry-collector.yaml"` to specify the path to your OpenTelemetry Collector configuration. -** `OTEL_TRACES_SAMPLER="AlwaysOn"` define the required sampler strategy if it is not sent from the caller. Note that `Always_on` can potentially create a very large amount of data, so in production set the correct sampling configuration, as per the https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk.md#sampling[specification]. - -[float] -[[open-telemetry-aws-lambda-nodejs-terraform]] -==== Instrumenting AWS Lambda Node.js functions with Terraform - -To manage the configuration of your AWS Lambda functions, we recommend using an infrastructure as code solution like Terraform or Ansible. - -Here is an example of AWS Lambda Node.js function managed with Terraform and the https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function[AWS Provider / Lambda Functions]: - -* https://github.com/michaelhyatt/terraform-aws-nodejs-api-worker-otel/tree/v0.24[Sample Terraform code] - [float] [[open-telemetry-lambda-next]] ==== Next steps diff --git a/docs/release-notes.asciidoc b/docs/release-notes.asciidoc index 624037d677f..95a488319fe 100644 --- a/docs/release-notes.asciidoc +++ b/docs/release-notes.asciidoc @@ -9,6 +9,7 @@ This section summarizes the changes in each release. **APM integration and APM Server** +* <> * <> * <> * <> diff --git a/docs/sampling.asciidoc b/docs/sampling.asciidoc index 7db04caecb4..6b9ae285a1e 100644 --- a/docs/sampling.asciidoc +++ b/docs/sampling.asciidoc @@ -47,11 +47,20 @@ image::./images/dt-sampling-example-2.png[Distributed tracing and head based sam **OpenTelemetry with head-based sampling** -Head-based sampling is implemented in the APM agents and SDKs, and -requires the sample rate to be propagated between services and the APM Server. -This functionality is not currently supported by OpenTelemetry, -which results in inaccurate APM throughput, latency, and error metrics. +Head-based sampling is implemented directly in the APM agents and SDKs. +The sample rate must be propagated between services and the managed intake service in order to produce accurate metrics. + +OpenTelemetry offers multiple samplers. However, most samplers do not propagate the sample rate. +This results in inaccurate span-based metrics, like APM throughput, latency, and error metrics. + +For accurate span-based metrics when using head-based sampling with OpenTelemetry, you must use +a [consistent probability sampler](https://opentelemetry.io/docs/specs/otel/trace/tracestate-probability-sampling/). +These samplers propagate the sample rate between services and the managed intake service, resulting in accurate metrics. + +NOTE: OpenTelemetry does not offer consistent probability samplers in all languanges. OpenTelemetry users should consider using tail-based sampling instead. ++ +Refer to the documentation of your favorite OpenTelemetry agent or SDK for more information on the availability of consistent probability samplers. [float] [[tail-based-sampling]] @@ -196,4 +205,4 @@ include::./configure/sampling.asciidoc[tag=tbs-top] **Policy settings:** include::./configure/sampling.asciidoc[tag=tbs-policy] -:leveloffset: -3 \ No newline at end of file +:leveloffset: -3 diff --git a/docs/shared-docker.asciidoc b/docs/shared-docker.asciidoc index d8bb0528cf7..79451dba14d 100644 --- a/docs/shared-docker.asciidoc +++ b/docs/shared-docker.asciidoc @@ -2,7 +2,7 @@ ==== Run {beatname_uc} on Docker Docker images for {beatname_uc} are available from the Elastic Docker -registry. The base image is https://hub.docker.com/_/centos/[centos:7]. +registry. The base image is https://hub.docker.com/_/ubuntu[ubuntu:22.04]. A list of all published Docker images and tags is available at https://www.docker.elastic.co[www.docker.elastic.co]. @@ -39,12 +39,21 @@ docker pull {dockerimage} . Verify the Docker image: + ["source", "sh", subs="attributes"] ------------------------------------------------- +---- wget https://artifacts.elastic.co/cosign.pub -cosign verify --key cosign.pub {dockerimage}:{version} ------------------------------------------------- +cosign verify --key cosign.pub {dockerimage} +---- ++ +The `cosign` command prints the check results and the signature payload in JSON format: + -For details about this step, refer to {ref}/docker.html#docker-verify-signature[Verify the {es} Docker image signature] in the {es} documentation. +[source,sh,subs="attributes"] +---- +Verification for {dockerimage} -- +The following checks were performed on each of these signatures: + - The cosign claims were validated + - Existence of the claims in the transparency log was verified offline + - The signatures were verified against the specified public key +---- endif::[] diff --git a/docs/tab-widgets/distributed-trace-receive.asciidoc b/docs/tab-widgets/distributed-trace-receive.asciidoc index 60dcbd1dd11..ecbeebfaa1f 100644 --- a/docs/tab-widgets/distributed-trace-receive.asciidoc +++ b/docs/tab-widgets/distributed-trace-receive.asciidoc @@ -3,8 +3,8 @@ // Need help with this example 1. Parse the incoming `TraceContext` with -https://godoc.org/go.elastic.co/apm/module/apmhttp#ParseTraceparentHeader[`ParseTraceparentHeader`] or -https://godoc.org/go.elastic.co/apm/module/apmhttp#ParseTracestateHeader[`ParseTracestateHeader`]. +https://pkg.go.dev/go.elastic.co/apm/module/apmhttp/v2#ParseTraceparentHeader[`ParseTraceparentHeader`] or +https://pkg.go.dev/go.elastic.co/apm/module/apmhttp/v2#ParseTracestateHeader[`ParseTracestateHeader`]. 2. Start a new transaction or span as a child of the incoming transaction with {apm-go-ref}/api.html#tracer-api-start-transaction-options[`StartTransactionOptions`] or @@ -21,7 +21,7 @@ traceContext.State, _ = apmhttp.ParseTracestateHeader(r.Header["Tracestate"]...) opts := apm.TransactionOptions{ TraceContext: traceContext, <3> } -transaction := apm.DefaultTracer.StartTransactionOptions("GET /", "request", opts) <4> +transaction := apm.DefaultTracer().StartTransactionOptions("GET /", "request", opts) <4> ---- <1> Parse the `TraceParent` header <2> Parse the `Tracestate` header diff --git a/docs/tab-widgets/distributed-trace-send.asciidoc b/docs/tab-widgets/distributed-trace-send.asciidoc index af3a689f6b0..b38b179f4f0 100644 --- a/docs/tab-widgets/distributed-trace-send.asciidoc +++ b/docs/tab-widgets/distributed-trace-send.asciidoc @@ -12,11 +12,11 @@ Example: [source,go] ---- -transaction := apm.DefaultTracer.StartTransaction("GET /", "request") <1> +transaction := apm.DefaultTracer().StartTransaction("GET /", "request") <1> traceContext := transaction.TraceContext() <2> // Send TraceContext to receiving service -traceparent := apmhttp.FormatTraceparentHeader(traceContext)) <3> +traceparent := apmhttp.FormatTraceparentHeader(traceContext) <3> tracestate := traceContext.State.String() ---- <1> Start a transaction diff --git a/docs/upgrading-to-8.x.asciidoc b/docs/upgrading-to-8.x.asciidoc index 12fb1560bac..bde78f8d963 100644 --- a/docs/upgrading-to-8.x.asciidoc +++ b/docs/upgrading-to-8.x.asciidoc @@ -29,7 +29,7 @@ See the APM <>, <> f Starting in version 7.14, there are two ways to run Elastic APM. Determine which method you're using, then use the links below to find the correct upgrading guide. -* **Standalone (legacy)**: Users in this mode run and configure the APM Server binary. +* **Standalone**: Users in this mode run and configure the APM Server binary. This mode has been deprecated and will be removed in a future release. * **{fleet} and the APM integration**: Users in this mode run and configure {fleet} and the Elastic APM integration. @@ -49,10 +49,10 @@ This mode has been deprecated and will be removed in a future release. ==== Upgrade a self-installation of APM Server standalone to {version} ++++ -Self-installation standalone (legacy) +Self-installation standalone ++++ -This upgrade guide is for the standalone (legacy) method of running APM Server. +This upgrade guide is for the standalone method of running APM Server. Only use this guide if both of the following are true: * You have a self-installation of the {stack}, i.e. you're not using {ecloud}. @@ -182,10 +182,10 @@ For more details, or for bulk upgrade instructions, see ==== Upgrade {ecloud} APM Server standalone to {version} ++++ -{ecloud} standalone (legacy) +{ecloud} standalone ++++ -This upgrade guide is for the standalone (legacy) method of running APM Server. +This upgrade guide is for the standalone method of running APM Server. Only use this guide if both of the following are true: * You're using {ecloud}. diff --git a/docs/upgrading-to-integration.asciidoc b/docs/upgrading-to-integration.asciidoc index 1b3a8745236..4dd771c3efa 100644 --- a/docs/upgrading-to-integration.asciidoc +++ b/docs/upgrading-to-integration.asciidoc @@ -137,10 +137,10 @@ no reconfiguration is required in your APM agents. [discrete] [[apm-integration-upgrade-5]] -==== Stop the legacy APM Server +==== Stop the APM Server Once data from upgraded APM agents is visible in the {apm-app}, -it's safe to stop the legacy APM Server process. +it's safe to stop the APM Server process. Congratulations -- you now have the latest and greatest in Elastic APM! diff --git a/docs/version.asciidoc b/docs/version.asciidoc index 494ddb39658..5f7517f251e 100644 --- a/docs/version.asciidoc +++ b/docs/version.asciidoc @@ -1,6 +1,6 @@ // doc-branch can be: master, 8.0, 8.1, etc. :doc-branch: master -:go-version: 1.20.7 +:go-version: 1.21.4 :python: 3.7 :docker: 1.12 :docker-compose: 1.11 diff --git a/go.mod b/go.mod index 676af4696fb..27b519300e7 100644 --- a/go.mod +++ b/go.mod @@ -1,27 +1,29 @@ module github.com/elastic/apm-server -go 1.20 +go 1.21 + +toolchain go1.21.3 require ( github.com/cespare/xxhash/v2 v2.2.0 github.com/dgraph-io/badger/v2 v2.2007.3-0.20201012072640-f5a7e0a1c83b github.com/dustin/go-humanize v1.0.1 github.com/elastic/apm-aggregation v0.0.0-20230815024520-e75a37d9ddd6 - github.com/elastic/apm-data v0.1.1-0.20230815073233-455fb9f1280f - github.com/elastic/beats/v7 v7.0.0-alpha2.0.20230906094532-4cf4292be494 - github.com/elastic/elastic-agent-client/v7 v7.3.0 - github.com/elastic/elastic-agent-libs v0.3.13 - github.com/elastic/elastic-agent-system-metrics v0.6.1 - github.com/elastic/gmux v0.2.0 + github.com/elastic/apm-data v0.1.1-0.20231019120308-82201b991ae5 + github.com/elastic/beats/v7 v7.0.0-alpha2.0.20231121082709-886d078ba1f0 + github.com/elastic/elastic-agent-client/v7 v7.4.0 + github.com/elastic/elastic-agent-libs v0.6.2 + github.com/elastic/elastic-agent-system-metrics v0.8.1 + github.com/elastic/gmux v0.3.1 github.com/elastic/go-docappender v0.2.1-0.20230829163624-c69a1cf8ce35 - github.com/elastic/go-elasticsearch/v8 v8.9.0 + github.com/elastic/go-elasticsearch/v8 v8.10.0 github.com/elastic/go-sysinfo v1.11.1 github.com/elastic/go-ucfg v0.8.6 github.com/go-sourcemap/sourcemap v2.1.3+incompatible github.com/gofrs/flock v0.8.1 github.com/gofrs/uuid v4.4.0+incompatible github.com/gogo/protobuf v1.3.2 - github.com/google/go-cmp v0.5.9 + github.com/google/go-cmp v0.6.0 github.com/gorilla/mux v1.8.0 github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/golang-lru v0.5.4 @@ -40,20 +42,20 @@ require ( go.elastic.co/apm/module/apmgrpc/v2 v2.4.4 go.elastic.co/apm/module/apmhttp/v2 v2.4.4 go.elastic.co/apm/module/apmotel/v2 v2.4.4 - go.elastic.co/apm/v2 v2.4.4 + go.elastic.co/apm/v2 v2.4.5 go.elastic.co/fastjson v1.3.0 - go.opentelemetry.io/collector/consumer v0.81.0 - go.opentelemetry.io/collector/pdata v1.0.0-rcv0013 - go.opentelemetry.io/otel v1.17.0 - go.opentelemetry.io/otel/metric v1.17.0 - go.opentelemetry.io/otel/sdk/metric v0.40.0 + go.opentelemetry.io/collector/consumer v0.87.0 + go.opentelemetry.io/collector/pdata v1.0.0-rcv0016 + go.opentelemetry.io/otel v1.19.0 + go.opentelemetry.io/otel/metric v1.19.0 + go.opentelemetry.io/otel/sdk/metric v1.19.0 go.uber.org/automaxprocs v1.5.2 - go.uber.org/zap v1.25.0 - golang.org/x/net v0.14.0 - golang.org/x/sync v0.3.0 - golang.org/x/term v0.11.0 + go.uber.org/zap v1.26.0 + golang.org/x/net v0.17.0 + golang.org/x/sync v0.4.0 + golang.org/x/term v0.13.0 golang.org/x/time v0.3.0 - google.golang.org/grpc v1.56.1 + google.golang.org/grpc v1.58.3 google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -63,7 +65,7 @@ require ( github.com/Microsoft/go-winio v0.6.1 // indirect github.com/OneOfOne/xxhash v1.2.8 // indirect github.com/Shopify/sarama v1.38.1 // indirect - github.com/apache/thrift v0.18.1 // indirect + github.com/apache/thrift v0.19.0 // indirect github.com/armon/go-radix v1.0.0 // indirect github.com/axiomhq/hyperloglog v0.0.0-20230201085229-3ddf4bad03dc // indirect github.com/beorn7/perks v1.0.1 // indirect @@ -87,7 +89,6 @@ require ( github.com/eapache/queue v1.1.0 // indirect github.com/elastic/elastic-agent-shipper-client v0.5.1-0.20230228231646-f04347b666f3 // indirect github.com/elastic/elastic-transport-go/v8 v8.3.0 // indirect - github.com/elastic/go-licenser v0.4.1 // indirect github.com/elastic/go-lumber v0.1.2-0.20220819171948-335fde24ea0f // indirect github.com/elastic/go-structform v0.0.10 // indirect github.com/elastic/go-windows v1.0.1 // indirect @@ -133,12 +134,13 @@ require ( github.com/prometheus/client_golang v1.16.0 // indirect github.com/prometheus/client_model v0.4.0 // indirect github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.10.1 // indirect + github.com/prometheus/procfs v0.11.1 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rogpeppe/go-internal v1.10.0 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/shirou/gopsutil/v3 v3.23.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/stretchr/objx v0.5.0 // indirect github.com/tklauser/go-sysconf v0.3.11 // indirect github.com/tklauser/numcpus v0.6.0 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect @@ -150,18 +152,18 @@ require ( github.com/yusufpapurcu/wmi v1.2.3 // indirect go.elastic.co/apm/module/apmzap/v2 v2.4.4 // indirect go.elastic.co/ecszap v1.0.1 // indirect - go.opentelemetry.io/collector/semconv v0.81.0 // indirect - go.opentelemetry.io/otel/sdk v1.17.0 // indirect - go.opentelemetry.io/otel/trace v1.17.0 // indirect + go.opentelemetry.io/collector/semconv v0.87.0 // indirect + go.opentelemetry.io/otel/sdk v1.19.0 // indirect + go.opentelemetry.io/otel/trace v1.19.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.12.0 // indirect + golang.org/x/crypto v0.14.0 // indirect golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 // indirect - golang.org/x/mod v0.12.0 // indirect - golang.org/x/sys v0.11.0 // indirect - golang.org/x/text v0.12.0 // indirect - golang.org/x/tools v0.12.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc // indirect + golang.org/x/mod v0.13.0 // indirect + golang.org/x/sys v0.13.0 // indirect + golang.org/x/text v0.13.0 // indirect + golang.org/x/tools v0.14.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97 // indirect gopkg.in/jcmturner/aescts.v1 v1.0.1 // indirect gopkg.in/jcmturner/dnsutils.v1 v1.0.1 // indirect gopkg.in/jcmturner/goidentity.v3 v3.0.0 // indirect diff --git a/go.sum b/go.sum index 1b34633a10b..aefe06004c2 100644 --- a/go.sum +++ b/go.sum @@ -1,45 +1,13 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.63.0/go.mod h1:GmezbQc7T2snqkEXWfZ0sy0VfkB/ivI2DdtJL2DEmlg= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/CloudyKit/fastprinter v0.0.0-20170127035650-74b38d55f37a/go.mod h1:EFZQ978U7x8IRnstaskI3IysnWY5Ao3QgZUKOXlsAdw= github.com/CloudyKit/jet v2.1.3-0.20180809161101-62edd43e4f88+incompatible/go.mod h1:HPYO+50pSWkPoj9Q/eq0aRGByCL6ScRlUmiEX5Zgm+w= github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= +github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= github.com/Joker/jade v1.0.1-0.20190614124447-d475f43051e7/go.mod h1:6E6s8o2AE4KhCrqr6GRJjdC/gNfTdxkIXvuGZZda2VM= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -53,30 +21,41 @@ github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMx github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= github.com/andrewkroh/goja v0.0.0-20190128172624-dd2ac4456e20 h1:7rj9qZ63knnVo2ZeepYHvHuRdG76f3tRUTdIQDzRBeI= github.com/andrewkroh/goja v0.0.0-20190128172624-dd2ac4456e20/go.mod h1:cI59GRkC2FRaFYtgbYEqMlgnnfvAwXzjojyZKXwklNg= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/apache/thrift v0.18.1 h1:lNhK/1nqjbwbiOPDBPFJVKxgDEGSepKuTh6OLiXW8kg= -github.com/apache/thrift v0.18.1/go.mod h1:rdQn/dCcDKEWjjylUeueum4vQEjG2v8v2PqriUnbr+I= +github.com/apache/thrift v0.19.0 h1:sOqkWPzMj7w6XaYbJQG7m4sGqVolaW/0D28Ln7yPzMk= +github.com/apache/thrift v0.19.0/go.mod h1:SUALL216IiaOw2Oy+5Vs9lboJ/t9g40C+G07Dc0QC1I= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aws/aws-sdk-go-v2 v1.18.0 h1:882kkTpSFhdgYRKVZ/VCgf7sd0ru57p2JCxz4/oN5RY= +github.com/aws/aws-sdk-go-v2 v1.18.0/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= github.com/aws/aws-sdk-go-v2/config v1.17.7 h1:odVM52tFHhpqZBKNjVW5h+Zt1tKHbhdTQRb+0WHrNtw= +github.com/aws/aws-sdk-go-v2/config v1.17.7/go.mod h1:dN2gja/QXxFF15hQreyrqYhLBaQo1d9ZKe/v/uplQoI= github.com/aws/aws-sdk-go-v2/credentials v1.12.20 h1:9+ZhlDY7N9dPnUmf7CDfW9In4sW5Ff3bh7oy4DzS1IE= +github.com/aws/aws-sdk-go-v2/credentials v1.12.20/go.mod h1:UKY5HyIux08bbNA7Blv4PcXQ8cTkGh7ghHMFklaviR4= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.17 h1:r08j4sbZu/RVi+BNxkBJwPMUYY3P8mgSDuKkZ/ZN1lE= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.17/go.mod h1:yIkQcCDYNsZfXpd5UX2Cy+sWA1jPgIhGTw9cOBzfVnQ= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33 h1:kG5eQilShqmJbv11XL1VpyDbaEJzWxd4zRiCG30GSn4= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33/go.mod h1:7i0PF1ME/2eUPFcjkVIwq+DOygHEoK92t5cDqNgYbIw= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27 h1:vFQlirhuM8lLlpI7imKOMsjdQLuN9CPi+k44F/OFVsk= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27/go.mod h1:UrHnn3QV/d0pBZ6QBAEQcqFLf8FAzLmoUfPVIueOvoM= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.24 h1:wj5Rwc05hvUSvKuOF29IYb9QrCLjU+rHAy/x/o0DK2c= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.24/go.mod h1:jULHjqqjDlbyTa7pfM7WICATnOv+iOhjletM3N0Xbu8= github.com/aws/aws-sdk-go-v2/service/ec2 v1.36.1 h1:FS8Ja6LuLDVHcX+rmoNpOXqYb52N2A5DwQy7Dgduq4Q= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.36.1/go.mod h1:KOy1O7Fc2+GRgsbn/Kjr15vYDVXMEQALBaPRia3twSY= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17 h1:Jrd/oMh0PKQc6+BowB+pLEwLIgaQF29eYbe7E1Av9Ug= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17/go.mod h1:4nYOrY41Lrbk2170/BGkcJKBhws9Pfn8MG3aGqjjeFI= github.com/aws/aws-sdk-go-v2/service/sso v1.11.23 h1:pwvCchFUEnlceKIgPUouBJwK81aCkQ8UDMORfeFtW10= +github.com/aws/aws-sdk-go-v2/service/sso v1.11.23/go.mod h1:/w0eg9IhFGjGyyncHIQrXtU8wvNsTJOP0R6PPj0wf80= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.5 h1:GUnZ62TevLqIoDyHeiWj2P7EqaosgakBKVvWriIdLQY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.5/go.mod h1:csZuQY65DAdFBt1oIjO5hhBR49kQqop4+lcuCjf2arA= github.com/aws/aws-sdk-go-v2/service/sts v1.16.19 h1:9pPi0PsFNAGILFfPCk8Y0iyEBGc6lu6OQ97U7hmdesg= +github.com/aws/aws-sdk-go-v2/service/sts v1.16.19/go.mod h1:h4J3oPZQbxLhzGnk+j9dfYHi5qIOVJ5kczZd658/ydM= github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= +github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/axiomhq/hyperloglog v0.0.0-20230201085229-3ddf4bad03dc h1:Keo7wQ7UODUaHcEi7ltENhbAK2VgZjfat6mLy03tQzo= github.com/axiomhq/hyperloglog v0.0.0-20230201085229-3ddf4bad03dc/go.mod h1:k08r+Yj1PRAmuayFiRK6MYuR5Ve4IuZtTfxErMIh0+c= github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -85,15 +64,11 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/datadriven v1.0.0/go.mod h1:5Ib8Meh+jk1RlHIXej6Pzevx/NLlNvQB9pmSBZErGA4= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= github.com/cockroachdb/errors v1.6.1/go.mod h1:tm6FTP5G81vwJ5lC0SizQo374JNCOPrHyXGitRJoDqM= github.com/cockroachdb/errors v1.8.1 h1:A5+txlVZfOqFBDa4mGz2bUWSp0aHElvHX2bKkdbQu+Y= github.com/cockroachdb/errors v1.8.1/go.mod h1:qGwQn6JmZ+oMjuLwjWzUNqblqk0xl4CVV3SQbGwK7Ac= @@ -134,9 +109,13 @@ github.com/dgryski/go-metro v0.0.0-20180109044635-280f6062b5bc/go.mod h1:c9O8+fp github.com/dlclark/regexp2 v1.8.1 h1:6Lcdwya6GjPUNsBct8Lg/yRPwMhABj269AAzdGSiR+0= github.com/dlclark/regexp2 v1.8.1/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= +github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/engine v0.0.0-20191113042239-ea84732a7725 h1:j0zqmciWFnhB01BT/CyfoXNEONoxerGjkcxM8i6tlXI= +github.com/docker/engine v0.0.0-20191113042239-ea84732a7725/go.mod h1:3CPr2caMgTHxxIAZgEMd3uLYPDlRvPqCpyeRf6ncPcY= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= +github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dop251/goja_nodejs v0.0.0-20171011081505-adff31b136e6 h1:RrkoB0pT3gnjXhL/t10BSP1mcr/0Ldea2uMyuBr2SWk= github.com/dop251/goja_nodejs v0.0.0-20171011081505-adff31b136e6/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= @@ -153,31 +132,29 @@ github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFP github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= github.com/elastic/apm-aggregation v0.0.0-20230815024520-e75a37d9ddd6 h1:Js+C3HEE0a5BDFmhEmJV/Uo4uzj/paHjd7yl6+KYguw= github.com/elastic/apm-aggregation v0.0.0-20230815024520-e75a37d9ddd6/go.mod h1:ba3gaJCuhxXN/O5AuiI56xxd6DukQdVOK0NfpzBntNo= -github.com/elastic/apm-data v0.1.1-0.20230815073233-455fb9f1280f h1:xNu3G/+e2RnI2S7IL4rEg4/bzsDZP7FeNeGYUhn9foc= -github.com/elastic/apm-data v0.1.1-0.20230815073233-455fb9f1280f/go.mod h1:lMTMoCWNadiDJih/tLechuMTtumEeedtKJlBOYAv030= -github.com/elastic/beats/v7 v7.0.0-alpha2.0.20230906094532-4cf4292be494 h1:yWPIx2nkbtPAvKdrkhJZHH/i8b/ZGF5NA/jVsPeef/A= -github.com/elastic/beats/v7 v7.0.0-alpha2.0.20230906094532-4cf4292be494/go.mod h1:srIutI4lvWid1a/qf+YhpA2BLw4//CQAF7gT0lHjXvE= -github.com/elastic/elastic-agent-autodiscover v0.6.2 h1:7P3cbMBWXjbzA80rxitQjc+PiWyZ4I4F4LqrCYgYlNc= -github.com/elastic/elastic-agent-client/v7 v7.3.0 h1:LugKtBXK7bp4SFL/uQqGU/f4Ppx12Jk5a36voGabLa0= -github.com/elastic/elastic-agent-client/v7 v7.3.0/go.mod h1:9/amG2K2y2oqx39zURcc+hnqcX+nyJ1cZrLgzsgo5c0= -github.com/elastic/elastic-agent-libs v0.3.13 h1:qFiBWeBfjsBId+i31rggyW2ZjzA9qBRz7wIiy+rkcvc= -github.com/elastic/elastic-agent-libs v0.3.13/go.mod h1:mpSfrigixx8x+uMxWKl4LtdlrKIhZbA4yT2eIeIazUQ= +github.com/elastic/apm-data v0.1.1-0.20231019120308-82201b991ae5 h1:URlDi0TZetSAo8KAIbaMZQhM5EG8+SDgs0jTen7WvMg= +github.com/elastic/apm-data v0.1.1-0.20231019120308-82201b991ae5/go.mod h1:z4iJVl8vyQa5v5o7UapWGHTsycBKsKfJfILuf2TZpYo= +github.com/elastic/beats/v7 v7.0.0-alpha2.0.20231121082709-886d078ba1f0 h1:ZVQuk/GSUNf/QvlC1bnI5EqXhBTpgrisbvQPT1S7p3w= +github.com/elastic/beats/v7 v7.0.0-alpha2.0.20231121082709-886d078ba1f0/go.mod h1:eIy7raRUU0xxzyz5Kz6CWyeed8l7L0TYdHxXwsJKzT8= +github.com/elastic/elastic-agent-autodiscover v0.6.4 h1:K+xC7OGgcy4fLXVuGgOGLs+eXCqRnRg2SQQinxP+KsA= +github.com/elastic/elastic-agent-autodiscover v0.6.4/go.mod h1:5+7NIBAILc0GkgxYW3ckXncu5wRZfltZhTY4aZAYP4M= +github.com/elastic/elastic-agent-client/v7 v7.4.0 h1:h75oTkkvIjgiKVm61NpvTZP4cy6QbQ3zrIpXKGigyjo= +github.com/elastic/elastic-agent-client/v7 v7.4.0/go.mod h1:9/amG2K2y2oqx39zURcc+hnqcX+nyJ1cZrLgzsgo5c0= +github.com/elastic/elastic-agent-libs v0.6.2 h1:tE5pFK4y7xm1FtXm+r+63G7STjJAaWh3+oKIQDzdPDo= +github.com/elastic/elastic-agent-libs v0.6.2/go.mod h1:o+EySawBZGeYu49shJxerg2wRCimS1dhrD4As0MS700= github.com/elastic/elastic-agent-shipper-client v0.5.1-0.20230228231646-f04347b666f3 h1:sb+25XJn/JcC9/VL8HX4r4QXSUq4uTNzGS2kxOE7u1U= github.com/elastic/elastic-agent-shipper-client v0.5.1-0.20230228231646-f04347b666f3/go.mod h1:rWarFM7qYxJKsi9WcV6ONcFjH/NA3niDNpTxO+8/GVI= -github.com/elastic/elastic-agent-system-metrics v0.6.1 h1:LCN1lvQTkdUuU/rKlpKyVMDU/G/I8/iZWCaW6K+mo4o= -github.com/elastic/elastic-agent-system-metrics v0.6.1/go.mod h1:Bj8XM/uNKm553blQHkGNEICRLGnVEtw8yttmV5vBngA= +github.com/elastic/elastic-agent-system-metrics v0.8.1 h1:eg6actuLeGJlIJFotHRdlAsz/3WhX2G8E0qI301IKBA= +github.com/elastic/elastic-agent-system-metrics v0.8.1/go.mod h1:9C1UEfj0P687HAzZepHszN6zXA+2tN2Lx3Osvq1zby8= github.com/elastic/elastic-transport-go/v8 v8.0.0-20230329154755-1a3c63de0db6/go.mod h1:87Tcz8IVNe6rVSLdBux1o/PEItLtyabHU3naC7IoqKI= github.com/elastic/elastic-transport-go/v8 v8.3.0 h1:DJGxovyQLXGr62e9nDMPSxRyWION0Bh6d9eCFBriiHo= github.com/elastic/elastic-transport-go/v8 v8.3.0/go.mod h1:87Tcz8IVNe6rVSLdBux1o/PEItLtyabHU3naC7IoqKI= -github.com/elastic/gmux v0.2.0 h1:HzaJ6FQAZzKJ2RTrINIfDXN1voO5EEEJKLb1Hlrn8pw= -github.com/elastic/gmux v0.2.0/go.mod h1:6+9rYPXZXAyCIb7g3WQ0OVWoLNpU/xHz2VXUrtw6BUg= +github.com/elastic/gmux v0.3.1 h1:ghT+5Y9jW5udQTBrhDeMOtQVdRBwk9Y2h1o+4Rb7mhE= +github.com/elastic/gmux v0.3.1/go.mod h1:IBFLojLnACU9tsUnoSavOaMdhq63/HOH/Aeiiha36jA= github.com/elastic/go-docappender v0.2.1-0.20230829163624-c69a1cf8ce35 h1:zBB2RqyEcPlJ16psSXIV6qhhbFB+Bf9RZrgcCk2vCiY= github.com/elastic/go-docappender v0.2.1-0.20230829163624-c69a1cf8ce35/go.mod h1:QddPogzCYGtzbR8ZFGRG2kvQ+vRG4A4JGMoH82G1dT8= -github.com/elastic/go-elasticsearch/v8 v8.9.0 h1:8xtmYjUkqtahl50E0Bg/wjKI7K63krJrrLipbNj/fCU= -github.com/elastic/go-elasticsearch/v8 v8.9.0/go.mod h1:NGmpvohKiRHXI0Sw4fuUGn6hYOmAXlyCphKpzVBiqDE= -github.com/elastic/go-licenser v0.3.1/go.mod h1:D8eNQk70FOCVBl3smCGQt/lv7meBeQno2eI1S5apiHQ= -github.com/elastic/go-licenser v0.4.1 h1:1xDURsc8pL5zYT9R29425J3vkHdt4RT5TNEMeRN48x4= -github.com/elastic/go-licenser v0.4.1/go.mod h1:V56wHMpmdURfibNBggaSBfqgPxyT1Tldns1i87iTEvU= +github.com/elastic/go-elasticsearch/v8 v8.10.0 h1:ALg3DMxSrx07YmeMNcfPf7cFh1Ep2+Qa19EOXTbwr2k= +github.com/elastic/go-elasticsearch/v8 v8.10.0/go.mod h1:NGmpvohKiRHXI0Sw4fuUGn6hYOmAXlyCphKpzVBiqDE= github.com/elastic/go-lumber v0.1.2-0.20220819171948-335fde24ea0f h1:TsPpU5EAwlt7YZoupKlxZ093qTZYdGou3EhfTF1U0B4= github.com/elastic/go-lumber v0.1.2-0.20220819171948-335fde24ea0f/go.mod h1:HHaWnZamYKWsR9/eZNHqRHob8iQDKnchHmmskT/SKko= github.com/elastic/go-structform v0.0.10 h1:oy08o/Ih2hHTkNcRY/1HhaYvIp5z6t8si8gnCJPDo1w= @@ -193,11 +170,9 @@ github.com/elastic/gosigar v0.14.2/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0 github.com/elastic/sarama v1.19.1-0.20210823122811-11c3ef800752 h1:5/RUNg7rkIvayjPhAIoI3v8p45NfWcfWs5DZSElycis= github.com/elastic/sarama v1.19.1-0.20210823122811-11c3ef800752/go.mod h1:mdtqvCSg8JOxk8PmpTNGyo6wzd4BMm4QXSfDnTXmgkE= github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ= +github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= @@ -213,15 +188,11 @@ github.com/frankban/quicktest v1.14.0/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -231,8 +202,11 @@ github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AE github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.20.0 h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA= +github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo= github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= +github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-sourcemap/sourcemap v2.1.3+incompatible h1:W1iEw64niKVGogNgBN3ePyLFfuisuzeidWPMPWmECqU= github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= @@ -250,30 +224,17 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= @@ -284,38 +245,24 @@ github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEW github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/gomodule/redigo v1.8.9 h1:Sl3u+2BI/kk+VEatbj0scLdrFhjPmbxOc1myhDP41ws= github.com/gomodule/redigo v1.8.9/go.mod h1:7ArFNvsTjH8GMMzB4uy1snslv2BwmginuMs06a1uzZE= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54= +github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/pprof v0.0.0-20230426061923-93006964c1fc h1:AGDHt781oIcL4EFk7cPnvBUYTwU8BEU6GDTO3ZMn1sE= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/google/pprof v0.0.0-20230426061923-93006964c1fc/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= @@ -323,7 +270,7 @@ github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+ github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg= github.com/h2non/filetype v1.1.3/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -335,15 +282,13 @@ github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/hydrogen18/memlistener v0.0.0-20141126152155-54553eb933fb/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM= +github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -370,14 +315,14 @@ github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZ github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8l6qbCUTSiRLG/iKnW3K3/QfPPuSsBt4= github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= github.com/juju/loggo v0.0.0-20180524022052-584905176618/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= @@ -416,6 +361,7 @@ github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg= github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= @@ -443,6 +389,7 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= @@ -458,6 +405,7 @@ github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.81.0 h1:UCF4zWe24m1+yQeYGEQjzq5c9yNAf4d1lknbR7PAoH4= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.81.0/go.mod h1:/HK52N8ufi1rKuShEanBZVLVpOygLoIT9zqs0azKQ/s= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b h1:YWuSjZCQAPM8UUBLkYUk1e+rZcvWHJmFb6i6rM44Xs8= github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= @@ -481,6 +429,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= +github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -488,12 +437,10 @@ github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUo github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= -github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= -github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= +github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= +github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= @@ -515,6 +462,7 @@ github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -579,12 +527,9 @@ github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/ github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.elastic.co/apm/module/apmelasticsearch/v2 v2.4.4 h1:TVcEjy/gs/DVk3aaBYNGm6B7uOkC6BTlDFRzyvBkMlw= @@ -599,34 +544,28 @@ go.elastic.co/apm/module/apmotel/v2 v2.4.4 h1:DTIGTLiAZTjshCco2ljLnf35Q9m1MiWXBc go.elastic.co/apm/module/apmotel/v2 v2.4.4/go.mod h1:F14e5+BF+fmKs7jUH5i6C0tjzRUVrK4AbaNGw0z3mWk= go.elastic.co/apm/module/apmzap/v2 v2.4.4 h1:t1Ml4R5KapIoCJzem3d/bEaG0X7Gij0QijFPuf8wba8= go.elastic.co/apm/module/apmzap/v2 v2.4.4/go.mod h1:iYOVJKZEIWYr+VdD3IO0zjhC8j6my+v5vZNePNSgmIY= -go.elastic.co/apm/v2 v2.4.4 h1:KGbmUEtLNQ6sCFGpqTMhfRjqDOKP8IliO+efErKY5lU= -go.elastic.co/apm/v2 v2.4.4/go.mod h1:+CiBUdrrAGnGCL9TNx7tQz3BrfYV23L8Ljvotoc87so= +go.elastic.co/apm/v2 v2.4.5 h1:+01xPucS6YazBMYxbTSwNEsV9sgznFC0WW7x5dzxyPg= +go.elastic.co/apm/v2 v2.4.5/go.mod h1:+CiBUdrrAGnGCL9TNx7tQz3BrfYV23L8Ljvotoc87so= go.elastic.co/ecszap v1.0.1 h1:mBxqEJAEXBlpi5+scXdzL7LTFGogbuxipJC0KTZicyA= go.elastic.co/ecszap v1.0.1/go.mod h1:SVjazT+QgNeHSGOCUHvRgN+ZRj5FkB7IXQQsncdF57A= go.elastic.co/fastjson v1.3.0 h1:hJO3OsYIhiqiT4Fgu0ZxAECnKASbwgiS+LMW5oCopKs= go.elastic.co/fastjson v1.3.0/go.mod h1:K9vDh7O0ODsVKV2B5e2XYLY277QZaCbB3tS1SnARvko= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opentelemetry.io/collector/consumer v0.81.0 h1:8R2iCrSzD7T0RtC2Wh4GXxDiqla2vNhDokGW6Bcrfas= -go.opentelemetry.io/collector/consumer v0.81.0/go.mod h1:jS7+gAKdOx3lD3SnaBztBjUVpUYL3ee7fpoqI4p/gT8= -go.opentelemetry.io/collector/pdata v1.0.0-rcv0013 h1:4sONXE9hAX+4Di8m0bQ/KaoH3Mi+OPt04cXkZ7A8W3k= -go.opentelemetry.io/collector/pdata v1.0.0-rcv0013/go.mod h1:x09G/4KjEcDKNuWCjC5ZtnuDE0XEqiRwI+yrHSVjIy8= -go.opentelemetry.io/collector/semconv v0.81.0 h1:lCYNNo3powDvFIaTPP2jDKIrBiV1T92NK4QgL/aHYXw= -go.opentelemetry.io/collector/semconv v0.81.0/go.mod h1:TlYPtzvsXyHOgr5eATi43qEMqwSmIziivJB2uctKswo= -go.opentelemetry.io/otel v1.17.0 h1:MW+phZ6WZ5/uk2nd93ANk/6yJ+dVrvNWUjGhnnFU5jM= -go.opentelemetry.io/otel v1.17.0/go.mod h1:I2vmBGtFaODIVMBSTPVDlJSzBDNf93k60E6Ft0nyjo0= -go.opentelemetry.io/otel/metric v1.17.0 h1:iG6LGVz5Gh+IuO0jmgvpTB6YVrCGngi8QGm+pMd8Pdc= -go.opentelemetry.io/otel/metric v1.17.0/go.mod h1:h4skoxdZI17AxwITdmdZjjYJQH5nzijUUjm+wtPph5o= -go.opentelemetry.io/otel/sdk v1.17.0 h1:FLN2X66Ke/k5Sg3V623Q7h7nt3cHXaW1FOvKKrW0IpE= -go.opentelemetry.io/otel/sdk v1.17.0/go.mod h1:U87sE0f5vQB7hwUoW98pW5Rz4ZDuCFBZFNUBlSgmDFQ= -go.opentelemetry.io/otel/sdk/metric v0.40.0 h1:qOM29YaGcxipWjL5FzpyZDpCYrDREvX0mVlmXdOjCHU= -go.opentelemetry.io/otel/sdk/metric v0.40.0/go.mod h1:dWxHtdzdJvg+ciJUKLTKwrMe5P6Dv3FyDbh8UkfgkVs= -go.opentelemetry.io/otel/trace v1.17.0 h1:/SWhSRHmDPOImIAetP1QAeMnZYiQXrTy4fMMYOdSKWQ= -go.opentelemetry.io/otel/trace v1.17.0/go.mod h1:I/4vKTgFclIsXRVucpH25X0mpFSczM7aHeaz0ZBLWjY= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opentelemetry.io/collector/consumer v0.87.0 h1:oR5XKZoVF/hwz0FnrYPaHcbbQazHifMsxpENMR7ivvo= +go.opentelemetry.io/collector/consumer v0.87.0/go.mod h1:lui5rg1byAT7QPbCY733StCDc/TPxS3hVNXKoVQ3LsI= +go.opentelemetry.io/collector/pdata v1.0.0-rcv0016 h1:qCPXSQCoD3qeWFb1RuIks8fw9Atxpk78bmtVdi15KhE= +go.opentelemetry.io/collector/pdata v1.0.0-rcv0016/go.mod h1:OdN0alYOlYhHXu6BDlGehrZWgtBuiDsz/rlNeJeXiNg= +go.opentelemetry.io/collector/semconv v0.87.0 h1:BsG1jdLLRCBRlvUujk4QA86af7r/ZXnizczQpEs/gg8= +go.opentelemetry.io/collector/semconv v0.87.0/go.mod h1:j/8THcqVxFna1FpvA2zYIsUperEtOaRaqoLYIN4doWw= +go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= +go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= +go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= +go.opentelemetry.io/otel/sdk/metric v1.19.0 h1:EJoTO5qysMsYCa+w4UghwFV/ptQgqSL/8Ni+hx+8i1k= +go.opentelemetry.io/otel/sdk/metric v1.19.0/go.mod h1:XjG0jQyFJrv2PbMvwND7LwCEhsJzCzV5210euduKcKY= +go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= +go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= @@ -634,16 +573,15 @@ go.uber.org/automaxprocs v1.5.2 h1:2LxUOGiR3O6tw8ui5sZa2LAaHnsviZdVOUZw4fvbnME= go.uber.org/automaxprocs v1.5.2/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0= go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= +go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= -go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c= -go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk= +go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= +go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -651,104 +589,55 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= -golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 h1:MGwJjxBy0HJshjDNfLsYO8xppfqWlA5ZT9OhtUUhTNw= golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= +golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220725212005-46097bf591d3/go.mod h1:AaygXjzTFtRAg2ttMY5RMuhpJ3cNnI0XpyFJD1iQRSM= -golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= -golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= +golang.org/x/oauth2 v0.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8= +golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= +golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180810173357-98c5dad5d1a0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -756,69 +645,40 @@ golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211102192858-4dd72447c267/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= -golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -827,141 +687,43 @@ golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200806022845-90696ccdc692/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= -golang.org/x/tools v0.12.0 h1:YW6HUoUmYBpwSgyaGaZq1fHjrBjX1rlpZ54T6mu2kss= -golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= +golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= +golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc h1:XSJ8Vk1SWuNr8S18z1NZSziL0CPIXLCCMDOEFtHBOFc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97 h1:6GQBEOdGkX6MMTLT9V+TjtIRZCw9VPD5Z+yHY9wMgS0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97/go.mod h1:v7nGkzlmW8P3n/bKmWBn2WpBjpOEx8Q6gMueudAmKfY= google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.56.1 h1:z0dNfjIl0VpaZ9iSVjA6daGatAYwPGstTjt5vkRMFkQ= -google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -google.golang.org/grpc/examples v0.0.0-20201010204749-3c400e7fcc87 h1:JA56ipSuANY2Fwx4OITOAj+QXlHyCJEma6VVWTRBG+k= -google.golang.org/grpc/examples v0.0.0-20201010204749-3c400e7fcc87/go.mod h1:Lh55/1hxmVHEkOvSIQ2uj0P12QyOCUNyRwnUlSS13hw= +google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= +google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc/examples v0.0.0-20231016154744-cb430bed4d27 h1:EB/3dtnYKOItaNPpOI/HmOCGbVZUiXcstRfiuxN+cFg= +google.golang.org/grpc/examples v0.0.0-20231016154744-cb430bed4d27/go.mod h1:Crtq1t+mykyL5d6PR3z8zCxKx/Qjq/mlPWDPoWJANYA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= @@ -978,6 +740,7 @@ gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8 gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= gopkg.in/hjson/hjson-go.v3 v3.0.1/go.mod h1:X6zrTSVeImfwfZLfgQdInl9mWjqPqgH90jom9nym/lw= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/jcmturner/aescts.v1 v1.0.1 h1:cVVZBK2b1zY26haWB4vbBiZrfFQnfbTVrE3xZq6hrEw= gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= gopkg.in/jcmturner/dnsutils.v1 v1.0.1 h1:cIuC1OLRGZrld+16ZJvvZxVJeKPsvd5eUIvxfoN5hSM= @@ -992,7 +755,6 @@ gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3M gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -1003,25 +765,26 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= +gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= howett.net/plist v1.0.0 h1:7CrbWYbPPO/PyNy38b2EB/+gYbjCe2DXBxgtOOZbSQM= howett.net/plist v1.0.0/go.mod h1:lqaXoTrLY4hg8tnEzNru53gicrbv7rrk+2xJA/7hw9g= k8s.io/api v0.26.2 h1:dM3cinp3PGB6asOySalOZxEG4CZ0IAdJsrYZXE/ovGQ= +k8s.io/api v0.26.2/go.mod h1:1kjMQsFE+QHPfskEcVNgL3+Hp88B80uj0QtSOlj8itU= k8s.io/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ= +k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= k8s.io/client-go v0.26.2 h1:s1WkVujHX3kTp4Zn4yGNFK+dlDXy1bAAkIl+cFAiuYI= k8s.io/client-go v0.26.2/go.mod h1:u5EjOuSyBa09yqqyY7m3abZeovO/7D/WehVVlZ2qcqU= k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= +k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 h1:+70TFaan3hfJzs+7VK2o+OGxg8HsuBr/5f6tVAjDu6E= +k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280/go.mod h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4= k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k= +sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= +sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= +sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= diff --git a/internal/beatcmd/beat.go b/internal/beatcmd/beat.go index 2ce87c017ec..a14dc566018 100644 --- a/internal/beatcmd/beat.go +++ b/internal/beatcmd/beat.go @@ -260,12 +260,6 @@ func (b *Beat) Run(ctx context.Context) error { defer logp.Info("%s stopped.", b.Info.Beat) logger := logp.NewLogger("") - if runtime.GOARCH == "386" { - logger.Warn("" + - "deprecation notice: support for 32-bit system target " + - "architecture will be removed in an upcoming version", - ) - } if runtime.GOOS == "darwin" { if host, err := sysinfo.Host(); err != nil { diff --git a/internal/beater/beater.go b/internal/beater/beater.go index 693445648bf..aee736e3fa1 100644 --- a/internal/beater/beater.go +++ b/internal/beater/beater.go @@ -230,23 +230,30 @@ func (s *Runner) Run(ctx context.Context) error { } if s.config.Aggregation.MaxServices <= 0 { - s.config.Aggregation.MaxServices = maxGroupsForAggregation(memLimitGB) + s.config.Aggregation.MaxServices = linearScaledValue(1_000, memLimitGB, 0) s.logger.Infof("Aggregation.MaxServices set to %d based on %0.1fgb of memory", s.config.Aggregation.MaxServices, memLimitGB, ) } + if s.config.Aggregation.ServiceTransactions.MaxGroups <= 0 { + s.config.Aggregation.ServiceTransactions.MaxGroups = linearScaledValue(1_000, memLimitGB, 0) + s.logger.Infof("Aggregation.ServiceTransactions.MaxGroups for service aggregation set to %d based on %0.1fgb of memory", + s.config.Aggregation.ServiceTransactions.MaxGroups, memLimitGB, + ) + } + if s.config.Aggregation.Transactions.MaxGroups <= 0 { - s.config.Aggregation.Transactions.MaxGroups = maxTxGroupsForAggregation(memLimitGB) + s.config.Aggregation.Transactions.MaxGroups = linearScaledValue(5_000, memLimitGB, 0) s.logger.Infof("Aggregation.Transactions.MaxGroups set to %d based on %0.1fgb of memory", s.config.Aggregation.Transactions.MaxGroups, memLimitGB, ) } - if s.config.Aggregation.ServiceTransactions.MaxGroups <= 0 { - s.config.Aggregation.ServiceTransactions.MaxGroups = maxGroupsForAggregation(memLimitGB) - s.logger.Infof("Aggregation.ServiceTransactions.MaxGroups for service aggregation set to %d based on %0.1fgb of memory", - s.config.Aggregation.ServiceTransactions.MaxGroups, memLimitGB, + if s.config.Aggregation.ServiceDestinations.MaxGroups <= 0 { + s.config.Aggregation.ServiceDestinations.MaxGroups = linearScaledValue(5_000, memLimitGB, 5_000) + s.logger.Infof("Aggregation.ServiceDestinations.MaxGroups set to %d based on %0.1fgb of memory", + s.config.Aggregation.ServiceDestinations.MaxGroups, memLimitGB, ) } @@ -315,12 +322,14 @@ func (s *Runner) Run(ctx context.Context) error { localExporter := telemetry.NewMetricExporter( telemetry.WithMetricFilter([]string{ "http.server." + string(request.IDRequestCount), + "http.server.request.duration", "http.server." + string(request.IDResponseValidCount), "http.server." + string(request.IDResponseErrorsCount), "http.server." + string(request.IDResponseErrorsTimeout), "http.server." + string(request.IDResponseErrorsRateLimit), "grpc.server." + string(request.IDRequestCount), + "grpc.server.request.duration", "grpc.server." + string(request.IDResponseValidCount), "grpc.server." + string(request.IDResponseErrorsCount), "grpc.server." + string(request.IDResponseErrorsTimeout), @@ -511,7 +520,7 @@ func (s *Runner) Run(ctx context.Context) error { // Add a model processor that removes `event.received`, which is added by // apm-data, but which we don't yet map. - modelpb.ProcessBatchFunc(removeEventReceivedBatchProcessor), + modelprocessor.RemoveEventReceived{}, // Pre-process events before they are sent to the final processors for // aggregation, sampling, and indexing. @@ -566,26 +575,14 @@ func maxConcurrentDecoders(memLimitGB float64) uint { return decoders } -// maxGroupsForAggregation calculates the maximum service groups that a -// particular memory limit can have. This will be scaled linearly for bigger -// instances. -func maxGroupsForAggregation(memLimitGB float64) int { +// linearScaledValue calculates linearly scaled value based on memory limit using +// the formula y = (perGBIncrement * memLimitGB) + constant +func linearScaledValue(perGBIncrement, memLimitGB, constant float64) int { const maxMemGB = 64 if memLimitGB > maxMemGB { memLimitGB = maxMemGB } - return int(memLimitGB * 1_000) -} - -// maxTxGroupsForAggregation calculates the maximum transaction groups that a -// particular memory limit can have. This will be scaled linearly for bigger -// instances. -func maxTxGroupsForAggregation(memLimitGB float64) int { - const maxMemGB = 64 - if memLimitGB > maxMemGB { - memLimitGB = maxMemGB - } - return int(memLimitGB * 5_000) + return int(memLimitGB*perGBIncrement + constant) } // waitReady waits until the server is ready to index events. @@ -703,10 +700,15 @@ func (s *Runner) newFinalBatchProcessor( } esConfig.FlushInterval = time.Second esConfig.Config = elasticsearch.DefaultConfig() + esConfig.MaxIdleConnsPerHost = 10 if err := s.elasticsearchOutputConfig.Unpack(&esConfig); err != nil { return nil, nil, err } + if esConfig.MaxRequests != 0 { + esConfig.MaxIdleConnsPerHost = esConfig.MaxRequests + } + var flushBytes int if esConfig.FlushBytes != "" { b, err := humanize.ParseBytes(esConfig.FlushBytes) diff --git a/internal/beater/beatertest/output.go b/internal/beater/beatertest/output.go index 64fe7a6a230..a72dcf249a9 100644 --- a/internal/beater/beatertest/output.go +++ b/internal/beater/beatertest/output.go @@ -90,7 +90,7 @@ func makeNullOutput( _ *agentconfig.C, ) (outputs.Group, error) { client := nullOutput{observer: observer} - return outputs.Success(1, 0, client) + return outputs.Success(agentconfig.Namespace{}, 1, 0, client) } func (nullOutput) String() string { diff --git a/internal/beater/config/aggregation.go b/internal/beater/config/aggregation.go index 3163d30ba1e..8f4f9c76b57 100644 --- a/internal/beater/config/aggregation.go +++ b/internal/beater/config/aggregation.go @@ -17,10 +17,6 @@ package config -const ( - defaultServiceDestinationAggregationMaxGroups = 10000 -) - // AggregationConfig holds configuration related to various metrics aggregations. type AggregationConfig struct { MaxServices int `config:"max_services"` // if <= 0 then will be set based on memory limits @@ -36,7 +32,7 @@ type TransactionAggregationConfig struct { // ServiceDestinationAggregationConfig holds configuration related to span metrics aggregation for service maps. type ServiceDestinationAggregationConfig struct { - MaxGroups int `config:"max_groups" validate:"min=1"` + MaxGroups int `config:"max_groups"` // if <= 0 then will be set based on memory limits } // ServiceTransactionAggregationConfig holds configuration related to service transaction metrics aggregation. @@ -45,9 +41,5 @@ type ServiceTransactionAggregationConfig struct { } func defaultAggregationConfig() AggregationConfig { - return AggregationConfig{ - ServiceDestinations: ServiceDestinationAggregationConfig{ - MaxGroups: defaultServiceDestinationAggregationMaxGroups, - }, - } + return AggregationConfig{} } diff --git a/internal/beater/config/config_test.go b/internal/beater/config/config_test.go index d564fed1816..71b4fd03a05 100644 --- a/internal/beater/config/config_test.go +++ b/internal/beater/config/config_test.go @@ -53,7 +53,10 @@ func TestUnpackConfig(t *testing.T) { kibanaHeadersConfig := DefaultConfig() kibanaHeadersConfig.Kibana.ClientConfig = defaultDecodedKibanaClientConfig kibanaHeadersConfig.Kibana.Enabled = true - kibanaHeadersConfig.Kibana.Headers = map[string]string{"foo": "bar"} + kibanaHeadersConfig.Kibana.Headers = map[string]string{ + "foo": "bar", + "Elastic-Api-Version": "2023-10-31", + } responseHeadersConfig := DefaultConfig() responseHeadersConfig.ResponseHeaders = map[string][]string{ @@ -475,7 +478,7 @@ func TestUnpackConfig(t *testing.T) { MaxGroups: 0, // Default value is set as per memory limit }, ServiceDestinations: ServiceDestinationAggregationConfig{ - MaxGroups: 10000, + MaxGroups: 0, // Default value is set as per memory limit }, ServiceTransactions: ServiceTransactionAggregationConfig{ MaxGroups: 0, // Default value is set as per memory limit diff --git a/internal/beater/interceptors/metrics.go b/internal/beater/interceptors/metrics.go index 9d4012b9b77..8addfdddc15 100644 --- a/internal/beater/interceptors/metrics.go +++ b/internal/beater/interceptors/metrics.go @@ -19,6 +19,7 @@ package interceptors import ( "context" + "time" "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/metric" @@ -31,6 +32,10 @@ import ( "github.com/elastic/elastic-agent-libs/monitoring" ) +const ( + requestDurationHistogram = "request.duration" +) + var methodUnaryRequestMetrics = make(map[string]map[request.ResultID]*monitoring.Int) // RegisterMethodUnaryRequestMetrics registers a UnaryRequestMetrics for the @@ -53,7 +58,8 @@ type metricsInterceptor struct { logger *logp.Logger meter metric.Meter - counters map[request.ResultID]metric.Int64Counter + counters map[string]metric.Int64Counter + histograms map[string]metric.Int64Histogram } func (m *metricsInterceptor) Interceptor() grpc.UnaryServerInterceptor { @@ -76,13 +82,16 @@ func (m *metricsInterceptor) Interceptor() grpc.UnaryServerInterceptor { return handler(ctx, req) } - m.getMetric(request.IDRequestCount).Add(ctx, 1) - defer m.getMetric(request.IDResponseCount).Add(ctx, 1) + m.getCounter(string(request.IDRequestCount)).Add(ctx, 1) + defer m.getCounter(string(request.IDResponseCount)).Add(ctx, 1) ints[request.IDRequestCount].Inc() defer ints[request.IDResponseCount].Inc() + start := time.Now() resp, err := handler(ctx, req) + duration := time.Since(start) + m.getHistogram(requestDurationHistogram, metric.WithUnit("ms")).Record(ctx, duration.Milliseconds()) responseID := request.IDResponseValidCount if err != nil { @@ -90,36 +99,47 @@ func (m *metricsInterceptor) Interceptor() grpc.UnaryServerInterceptor { if s, ok := status.FromError(err); ok { switch s.Code() { case codes.Unauthenticated: - m.getMetric(request.IDResponseErrorsUnauthorized).Add(ctx, 1) + m.getCounter(string(request.IDResponseErrorsUnauthorized)).Add(ctx, 1) ints[request.IDResponseErrorsUnauthorized].Inc() case codes.DeadlineExceeded, codes.Canceled: - m.getMetric(request.IDResponseErrorsTimeout).Add(ctx, 1) + m.getCounter(string(request.IDResponseErrorsTimeout)).Add(ctx, 1) ints[request.IDResponseErrorsTimeout].Inc() case codes.ResourceExhausted: - m.getMetric(request.IDResponseErrorsRateLimit).Add(ctx, 1) + m.getCounter(string(request.IDResponseErrorsRateLimit)).Add(ctx, 1) ints[request.IDResponseErrorsRateLimit].Inc() } } } - m.getMetric(responseID).Add(ctx, 1) + m.getCounter(string(responseID)).Add(ctx, 1) ints[responseID].Inc() return resp, err } } -func (m *metricsInterceptor) getMetric(n request.ResultID) metric.Int64Counter { +func (m *metricsInterceptor) getCounter(n string) metric.Int64Counter { name := "grpc.server." + n if met, ok := m.counters[name]; ok { return met } - nm, _ := m.meter.Int64Counter(string(name)) + nm, _ := m.meter.Int64Counter(name) m.counters[name] = nm return nm } +func (m *metricsInterceptor) getHistogram(n string, opts ...metric.Int64HistogramOption) metric.Int64Histogram { + name := "grpc.server." + n + if met, ok := m.histograms[name]; ok { + return met + } + + nm, _ := m.meter.Int64Histogram(name, opts...) + m.histograms[name] = nm + return nm +} + // Metrics returns a grpc.UnaryServerInterceptor that increments metrics // for gRPC method calls. // @@ -139,7 +159,8 @@ func Metrics(logger *logp.Logger, mp metric.MeterProvider) grpc.UnaryServerInter logger: logger, meter: mp.Meter("internal/beater/interceptors"), - counters: map[request.ResultID]metric.Int64Counter{}, + counters: map[string]metric.Int64Counter{}, + histograms: map[string]metric.Int64Histogram{}, } return i.Interceptor() diff --git a/internal/beater/interceptors/metrics_test.go b/internal/beater/interceptors/metrics_test.go index a225f1b7eb8..211d14fd7b0 100644 --- a/internal/beater/interceptors/metrics_test.go +++ b/internal/beater/interceptors/metrics_test.go @@ -71,7 +71,7 @@ func TestMetrics(t *testing.T) { name string f func(ctx context.Context, req interface{}) (interface{}, error) monitoringInt map[request.ResultID]int64 - expectedOtel map[string]int64 + expectedOtel map[string]interface{} }{ { name: "with an error", @@ -87,10 +87,12 @@ func TestMetrics(t *testing.T) { request.IDResponseErrorsTimeout: 0, request.IDResponseErrorsUnauthorized: 0, }, - expectedOtel: map[string]int64{ + expectedOtel: map[string]interface{}{ "grpc.server." + string(request.IDRequestCount): 1, "grpc.server." + string(request.IDResponseCount): 1, "grpc.server." + string(request.IDResponseErrorsCount): 1, + + "grpc.server.request.duration": 1, }, }, { @@ -108,11 +110,13 @@ func TestMetrics(t *testing.T) { request.IDResponseErrorsTimeout: 0, request.IDResponseErrorsUnauthorized: 1, }, - expectedOtel: map[string]int64{ + expectedOtel: map[string]interface{}{ "grpc.server." + string(request.IDRequestCount): 1, "grpc.server." + string(request.IDResponseCount): 1, "grpc.server." + string(request.IDResponseErrorsCount): 1, "grpc.server." + string(request.IDResponseErrorsUnauthorized): 1, + + "grpc.server.request.duration": 1, }, }, { @@ -130,11 +134,13 @@ func TestMetrics(t *testing.T) { request.IDResponseErrorsTimeout: 1, request.IDResponseErrorsUnauthorized: 0, }, - expectedOtel: map[string]int64{ + expectedOtel: map[string]interface{}{ "grpc.server." + string(request.IDRequestCount): 1, "grpc.server." + string(request.IDResponseCount): 1, "grpc.server." + string(request.IDResponseErrorsCount): 1, "grpc.server." + string(request.IDResponseErrorsTimeout): 1, + + "grpc.server.request.duration": 1, }, }, { @@ -152,11 +158,13 @@ func TestMetrics(t *testing.T) { request.IDResponseErrorsTimeout: 1, request.IDResponseErrorsUnauthorized: 0, }, - expectedOtel: map[string]int64{ + expectedOtel: map[string]interface{}{ "grpc.server." + string(request.IDRequestCount): 1, "grpc.server." + string(request.IDResponseCount): 1, "grpc.server." + string(request.IDResponseErrorsCount): 1, "grpc.server." + string(request.IDResponseErrorsTimeout): 1, + + "grpc.server.request.duration": 1, }, }, { @@ -174,11 +182,13 @@ func TestMetrics(t *testing.T) { request.IDResponseErrorsTimeout: 0, request.IDResponseErrorsUnauthorized: 0, }, - expectedOtel: map[string]int64{ + expectedOtel: map[string]interface{}{ "grpc.server." + string(request.IDRequestCount): 1, "grpc.server." + string(request.IDResponseCount): 1, "grpc.server." + string(request.IDResponseErrorsCount): 1, "grpc.server." + string(request.IDResponseErrorsRateLimit): 1, + + "grpc.server.request.duration": 1, }, }, { @@ -196,10 +206,12 @@ func TestMetrics(t *testing.T) { request.IDResponseErrorsTimeout: 0, request.IDResponseErrorsUnauthorized: 0, }, - expectedOtel: map[string]int64{ + expectedOtel: map[string]interface{}{ "grpc.server." + string(request.IDRequestCount): 1, "grpc.server." + string(request.IDResponseCount): 1, "grpc.server." + string(request.IDResponseValidCount): 1, + + "grpc.server.request.duration": 1, }, }, } { diff --git a/internal/beater/middleware/monitoring_middleware.go b/internal/beater/middleware/monitoring_middleware.go index 1135c955676..67c0125c285 100644 --- a/internal/beater/middleware/monitoring_middleware.go +++ b/internal/beater/middleware/monitoring_middleware.go @@ -20,6 +20,7 @@ package middleware import ( "context" "net/http" + "time" "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/metric" @@ -28,11 +29,16 @@ import ( "github.com/elastic/elastic-agent-libs/monitoring" ) +const ( + requestDurationHistogram = "request.duration" +) + type monitoringMiddleware struct { meter metric.Meter - ints map[request.ResultID]*monitoring.Int - counters map[request.ResultID]metric.Int64Counter + ints map[request.ResultID]*monitoring.Int + counters map[string]metric.Int64Counter + histograms map[string]metric.Int64Histogram } func (m *monitoringMiddleware) Middleware() Middleware { @@ -40,22 +46,25 @@ func (m *monitoringMiddleware) Middleware() Middleware { return func(c *request.Context) { ctx := context.Background() - m.getMetric(request.IDRequestCount).Add(ctx, 1) + m.getCounter(string(request.IDRequestCount)).Add(ctx, 1) m.inc(request.IDRequestCount) + start := time.Now() h(c) + duration := time.Since(start) + m.getHistogram(requestDurationHistogram, metric.WithUnit("ms")).Record(ctx, duration.Milliseconds()) - m.getMetric(request.IDResponseCount).Add(ctx, 1) + m.getCounter(string(request.IDResponseCount)).Add(ctx, 1) m.inc(request.IDResponseCount) if c.Result.StatusCode >= http.StatusBadRequest { - m.getMetric(request.IDResponseErrorsCount).Add(ctx, 1) + m.getCounter(string(request.IDResponseErrorsCount)).Add(ctx, 1) m.inc(request.IDResponseErrorsCount) } else { - m.getMetric(request.IDResponseValidCount).Add(ctx, 1) + m.getCounter(string(request.IDResponseValidCount)).Add(ctx, 1) m.inc(request.IDResponseValidCount) } - m.getMetric(c.Result.ID).Add(ctx, 1) + m.getCounter(string(c.Result.ID)).Add(ctx, 1) m.inc(c.Result.ID) }, nil @@ -68,17 +77,28 @@ func (m *monitoringMiddleware) inc(id request.ResultID) { } } -func (m *monitoringMiddleware) getMetric(n request.ResultID) metric.Int64Counter { +func (m *monitoringMiddleware) getCounter(n string) metric.Int64Counter { name := "http.server." + n if met, ok := m.counters[name]; ok { return met } - nm, _ := m.meter.Int64Counter(string(name)) + nm, _ := m.meter.Int64Counter(name) m.counters[name] = nm return nm } +func (m *monitoringMiddleware) getHistogram(n string, opts ...metric.Int64HistogramOption) metric.Int64Histogram { + name := "http.server." + n + if met, ok := m.histograms[name]; ok { + return met + } + + nm, _ := m.meter.Int64Histogram(name, opts...) + m.histograms[name] = nm + return nm +} + // MonitoringMiddleware returns a middleware that increases monitoring counters for collecting metrics // about request processing. As input parameter it takes a map capable of mapping a request.ResultID to a counter. func MonitoringMiddleware(m map[request.ResultID]*monitoring.Int, mp metric.MeterProvider) Middleware { @@ -87,9 +107,10 @@ func MonitoringMiddleware(m map[request.ResultID]*monitoring.Int, mp metric.Mete } mid := &monitoringMiddleware{ - meter: mp.Meter("internal/beater/middleware"), - ints: m, - counters: map[request.ResultID]metric.Int64Counter{}, + meter: mp.Meter("internal/beater/middleware"), + ints: m, + counters: map[string]metric.Int64Counter{}, + histograms: map[string]metric.Int64Histogram{}, } return mid.Middleware() diff --git a/internal/beater/middleware/monitoring_middleware_test.go b/internal/beater/middleware/monitoring_middleware_test.go index 04f2cd3f141..cf78495bfd1 100644 --- a/internal/beater/middleware/monitoring_middleware_test.go +++ b/internal/beater/middleware/monitoring_middleware_test.go @@ -40,7 +40,7 @@ func TestMonitoringHandler(t *testing.T) { checkMonitoring := func(t *testing.T, h func(*request.Context), expected map[request.ResultID]int, - expectedOtel map[string]int64, + expectedOtel map[string]interface{}, m map[request.ResultID]*monitoring.Int, ) { reader := sdkmetric.NewManualReader(sdkmetric.WithTemporalitySelector( @@ -68,11 +68,13 @@ func TestMonitoringHandler(t *testing.T) { request.IDResponseErrorsCount: 1, request.IDResponseErrorsForbidden: 1, }, - map[string]int64{ + map[string]interface{}{ "http.server." + string(request.IDRequestCount): 1, "http.server." + string(request.IDResponseCount): 1, "http.server." + string(request.IDResponseErrorsCount): 1, "http.server." + string(request.IDResponseErrorsForbidden): 1, + + "http.server.request.duration": 1, }, mockMonitoring, ) @@ -87,11 +89,13 @@ func TestMonitoringHandler(t *testing.T) { request.IDResponseValidCount: 1, request.IDResponseValidAccepted: 1, }, - map[string]int64{ + map[string]interface{}{ "http.server." + string(request.IDRequestCount): 1, "http.server." + string(request.IDResponseCount): 1, "http.server." + string(request.IDResponseValidCount): 1, "http.server." + string(request.IDResponseValidAccepted): 1, + + "http.server.request.duration": 1, }, mockMonitoring, ) @@ -106,11 +110,13 @@ func TestMonitoringHandler(t *testing.T) { request.IDResponseValidCount: 1, request.IDUnset: 1, }, - map[string]int64{ + map[string]interface{}{ "http.server." + string(request.IDRequestCount): 1, "http.server." + string(request.IDResponseCount): 1, "http.server." + string(request.IDResponseValidCount): 1, "http.server." + string(request.IDUnset): 1, + + "http.server.request.duration": 1, }, mockMonitoring, ) @@ -125,11 +131,13 @@ func TestMonitoringHandler(t *testing.T) { request.IDResponseErrorsCount: 1, request.IDResponseErrorsInternal: 1, }, - map[string]int64{ + map[string]interface{}{ "http.server." + string(request.IDRequestCount): 1, "http.server." + string(request.IDResponseCount): 1, "http.server." + string(request.IDResponseErrorsCount): 1, "http.server." + string(request.IDResponseErrorsInternal): 1, + + "http.server.request.duration": 1, }, mockMonitoring) }) @@ -138,11 +146,13 @@ func TestMonitoringHandler(t *testing.T) { checkMonitoring(t, HandlerIdle, map[request.ResultID]int{}, - map[string]int64{ + map[string]interface{}{ "http.server." + string(request.IDRequestCount): 1, "http.server." + string(request.IDResponseCount): 1, "http.server." + string(request.IDResponseValidCount): 1, "http.server." + string(request.IDUnset): 1, + + "http.server.request.duration": 1, }, mockMonitoringNil, ) diff --git a/internal/beater/middleware/recover_panic_middleware.go b/internal/beater/middleware/recover_panic_middleware.go index fdb6a30f3f5..51ec8b4373f 100644 --- a/internal/beater/middleware/recover_panic_middleware.go +++ b/internal/beater/middleware/recover_panic_middleware.go @@ -48,7 +48,7 @@ func RecoverPanicMiddleware() Middleware { // set the context's result and write response var ok bool var err error - if err, ok = r.(error); !ok { + if err, ok = r.(error); ok { err = errors.Wrap(err, status.Keyword) } c.Result.Set(id, status.Code, status.Keyword, keywordPanic, err) diff --git a/internal/beater/monitoringtest/opentelemetry.go b/internal/beater/monitoringtest/opentelemetry.go index e421d45d3f7..54d355a78a6 100644 --- a/internal/beater/monitoringtest/opentelemetry.go +++ b/internal/beater/monitoringtest/opentelemetry.go @@ -26,7 +26,7 @@ import ( "go.opentelemetry.io/otel/sdk/metric/metricdata" ) -func ExpectOtelMetrics(t *testing.T, reader sdkmetric.Reader, expectedMetrics map[string]int64) { +func ExpectOtelMetrics(t *testing.T, reader sdkmetric.Reader, expectedMetrics map[string]interface{}) { t.Helper() var rm metricdata.ResourceMetrics @@ -43,7 +43,24 @@ func ExpectOtelMetrics(t *testing.T, reader sdkmetric.Reader, expectedMetrics ma foundMetrics = append(foundMetrics, m.Name) if v, ok := expectedMetrics[m.Name]; ok { - assert.Equal(t, v, d.DataPoints[0].Value, m.Name) + if dp, ok := v.(int); ok { + assert.Equal(t, int64(dp), d.DataPoints[0].Value, m.Name) + } else { + assert.Fail(t, "expected an int value", m.Name) + } + } else { + assert.Fail(t, "unexpected metric", m.Name) + } + case metricdata.Histogram[int64]: + assert.Equal(t, 1, len(d.DataPoints)) + foundMetrics = append(foundMetrics, m.Name) + + if v, ok := expectedMetrics[m.Name]; ok { + if dp, ok := v.(int); ok { + assert.Equal(t, uint64(dp), d.DataPoints[0].Count, m.Name) + } else { + assert.Fail(t, "expected an int value", m.Name) + } } else { assert.Fail(t, "unexpected metric", m.Name) } diff --git a/internal/beater/otlp/clientmetadata.go b/internal/beater/otlp/clientmetadata.go index 9dbddb1b6ba..fe5a72aa3c7 100644 --- a/internal/beater/otlp/clientmetadata.go +++ b/internal/beater/otlp/clientmetadata.go @@ -45,7 +45,7 @@ func SetClientMetadata(ctx context.Context, batch *modelpb.Batch) error { if event.GetSource().GetIp() == nil { if tcpAddr, ok := clientMetadata.SourceAddr.(*net.TCPAddr); ok { if event.Source == nil { - event.Source = &modelpb.Source{} + event.Source = modelpb.SourceFromVTPool() } sourceAddrPort := tcpAddr.AddrPort() event.Source.Ip = modelpb.Addr2IP(sourceAddrPort.Addr().Unmap()) @@ -54,14 +54,13 @@ func SetClientMetadata(ctx context.Context, batch *modelpb.Batch) error { } if event.GetClient().GetIp() == nil && clientMetadata.ClientIP.IsValid() { if event.Client == nil { - event.Client = &modelpb.Client{} + event.Client = modelpb.ClientFromVTPool() } event.Client.Ip = modelpb.Addr2IP(clientMetadata.ClientIP) } if clientMetadata.SourceNATIP.IsValid() { - event.Source.Nat = &modelpb.NAT{ - Ip: modelpb.Addr2IP(clientMetadata.SourceNATIP), - } + event.Source.Nat = modelpb.NATFromVTPool() + event.Source.Nat.Ip = modelpb.Addr2IP(clientMetadata.SourceNATIP) } } } diff --git a/internal/beater/otlp/grpc.go b/internal/beater/otlp/grpc.go index 5c97ce7d55b..82722d1c92d 100644 --- a/internal/beater/otlp/grpc.go +++ b/internal/beater/otlp/grpc.go @@ -95,8 +95,13 @@ func (s *tracesService) Export(ctx context.Context, req ptraceotlp.ExportRequest if td.SpanCount() == 0 { return ptraceotlp.NewExportResponse(), nil } - err := s.consumer.ConsumeTraces(ctx, td) - return ptraceotlp.NewExportResponse(), err + resp := ptraceotlp.NewExportResponse() + result, err := s.consumer.ConsumeTracesWithResult(ctx, td) + if err == nil && result.RejectedSpans > 0 { + resp.PartialSuccess().SetRejectedSpans(result.RejectedSpans) + resp.PartialSuccess().SetErrorMessage(result.ErrorMessage) + } + return resp, err } type metricsService struct { @@ -109,8 +114,13 @@ func (s *metricsService) Export(ctx context.Context, req pmetricotlp.ExportReque if md.DataPointCount() == 0 { return pmetricotlp.NewExportResponse(), nil } - err := s.consumer.ConsumeMetrics(ctx, md) - return pmetricotlp.NewExportResponse(), err + resp := pmetricotlp.NewExportResponse() + result, err := s.consumer.ConsumeMetricsWithResult(ctx, md) + if err == nil && result.RejectedDataPoints > 0 { + resp.PartialSuccess().SetRejectedDataPoints(result.RejectedDataPoints) + resp.PartialSuccess().SetErrorMessage(result.ErrorMessage) + } + return resp, err } type logsService struct { @@ -123,6 +133,11 @@ func (s *logsService) Export(ctx context.Context, req plogotlp.ExportRequest) (p if ld.LogRecordCount() == 0 { return plogotlp.NewExportResponse(), nil } - err := s.consumer.ConsumeLogs(ctx, ld) - return plogotlp.NewExportResponse(), err + resp := plogotlp.NewExportResponse() + result, err := s.consumer.ConsumeLogsWithResult(ctx, ld) + if err == nil && result.RejectedLogRecords > 0 { + resp.PartialSuccess().SetRejectedLogRecords(result.RejectedLogRecords) + resp.PartialSuccess().SetErrorMessage(result.ErrorMessage) + } + return resp, err } diff --git a/internal/beater/otlp/http.go b/internal/beater/otlp/http.go index ecba68a5248..aaf9a075066 100644 --- a/internal/beater/otlp/http.go +++ b/internal/beater/otlp/http.go @@ -78,11 +78,18 @@ func (h HTTPHandlers) HandleTraces(w http.ResponseWriter, r *http.Request) { h.writeError(w, err, http.StatusBadRequest) return } - if err := h.consumer.ConsumeTraces(r.Context(), req.Traces()); err != nil { + var result otlp.ConsumeTracesResult + var err error + if result, err = h.consumer.ConsumeTracesWithResult(r.Context(), req.Traces()); err != nil { h.writeError(w, err, http.StatusInternalServerError) return } - if err := h.writeResponse(w, ptraceotlp.NewExportResponse()); err != nil { + resp := ptraceotlp.NewExportResponse() + if result.RejectedSpans > 0 { + resp.PartialSuccess().SetRejectedSpans(result.RejectedSpans) + resp.PartialSuccess().SetErrorMessage(result.ErrorMessage) + } + if err := h.writeResponse(w, resp); err != nil { h.writeError(w, err, http.StatusInternalServerError) return } @@ -96,11 +103,18 @@ func (h HTTPHandlers) HandleMetrics(w http.ResponseWriter, r *http.Request) { h.writeError(w, err, http.StatusBadRequest) return } - if err := h.consumer.ConsumeMetrics(r.Context(), req.Metrics()); err != nil { + var result otlp.ConsumeMetricsResult + var err error + if result, err = h.consumer.ConsumeMetricsWithResult(r.Context(), req.Metrics()); err != nil { h.writeError(w, err, http.StatusInternalServerError) return } - if err := h.writeResponse(w, pmetricotlp.NewExportResponse()); err != nil { + resp := pmetricotlp.NewExportResponse() + if result.RejectedDataPoints > 0 { + resp.PartialSuccess().SetRejectedDataPoints(result.RejectedDataPoints) + resp.PartialSuccess().SetErrorMessage(result.ErrorMessage) + } + if err := h.writeResponse(w, resp); err != nil { h.writeError(w, err, http.StatusInternalServerError) return } @@ -114,11 +128,18 @@ func (h HTTPHandlers) HandleLogs(w http.ResponseWriter, r *http.Request) { h.writeError(w, err, http.StatusBadRequest) return } - if err := h.consumer.ConsumeLogs(r.Context(), req.Logs()); err != nil { + var result otlp.ConsumeLogsResult + var err error + if result, err = h.consumer.ConsumeLogsWithResult(r.Context(), req.Logs()); err != nil { h.writeError(w, err, http.StatusInternalServerError) return } - if err := h.writeResponse(w, plogotlp.NewExportResponse()); err != nil { + resp := plogotlp.NewExportResponse() + if result.RejectedLogRecords > 0 { + resp.PartialSuccess().SetRejectedLogRecords(result.RejectedLogRecords) + resp.PartialSuccess().SetErrorMessage(result.ErrorMessage) + } + if err := h.writeResponse(w, resp); err != nil { h.writeError(w, err, http.StatusInternalServerError) return } diff --git a/internal/beater/processors.go b/internal/beater/processors.go index 74d57022085..02acc59b351 100644 --- a/internal/beater/processors.go +++ b/internal/beater/processors.go @@ -74,7 +74,7 @@ func newObserverBatchProcessor() modelpb.ProcessBatchFunc { return func(ctx context.Context, b *modelpb.Batch) error { for i := range *b { if (*b)[i].Observer == nil { - (*b)[i].Observer = &modelpb.Observer{} + (*b)[i].Observer = modelpb.ObserverFromVTPool() } observer := (*b)[i].Observer observer.Hostname = hostname @@ -85,17 +85,6 @@ func newObserverBatchProcessor() modelpb.ProcessBatchFunc { } } -// TODO remove this once we have added `event.received` to the -// data stream mappings, in 8.10. -func removeEventReceivedBatchProcessor(ctx context.Context, batch *modelpb.Batch) error { - for _, event := range *batch { - if event.Event != nil { - event.Event.Received = 0 - } - } - return nil -} - func newDocappenderBatchProcessor(a *docappender.Appender) modelpb.ProcessBatchFunc { var pool sync.Pool pool.New = func() any { diff --git a/internal/elasticsearch/config.go b/internal/elasticsearch/config.go index 3c493e75a20..8b9e6a423eb 100644 --- a/internal/elasticsearch/config.go +++ b/internal/elasticsearch/config.go @@ -44,18 +44,19 @@ var ( // Config holds all configurable fields that are used to create a Client type Config struct { - Hosts Hosts `config:"hosts" validate:"required"` - Protocol string `config:"protocol"` - Path string `config:"path"` - ProxyURL string `config:"proxy_url"` - ProxyDisable bool `config:"proxy_disable"` - Timeout time.Duration `config:"timeout"` - TLS *tlscommon.Config `config:"ssl"` - Username string `config:"username"` - Password string `config:"password"` - APIKey string `config:"api_key"` - Headers map[string]string `config:"headers"` - MaxRetries int `config:"max_retries"` + Hosts Hosts `config:"hosts" validate:"required"` + Protocol string `config:"protocol"` + Path string `config:"path"` + ProxyURL string `config:"proxy_url"` + ProxyDisable bool `config:"proxy_disable"` + Timeout time.Duration `config:"timeout"` + TLS *tlscommon.Config `config:"ssl"` + Username string `config:"username"` + Password string `config:"password"` + APIKey string `config:"api_key"` + Headers map[string]string `config:"headers"` + MaxRetries int `config:"max_retries"` + MaxIdleConnsPerHost int `config:",ignore"` // CompressionLevel holds the gzip compression level used when bulk indexing // with go-docappender; it is otherwise ignored. @@ -145,9 +146,10 @@ func NewHTTPTransport(cfg *Config) (*http.Transport, error) { dialer := transport.NetDialer(cfg.Timeout) tlsDialer := transport.TLSDialer(dialer, tlsConfig, cfg.Timeout) return &http.Transport{ - Proxy: proxy, - Dial: dialer.Dial, - DialTLS: tlsDialer.Dial, - TLSClientConfig: tlsConfig.ToConfig(), + Proxy: proxy, + Dial: dialer.Dial, + DialTLS: tlsDialer.Dial, + TLSClientConfig: tlsConfig.ToConfig(), + MaxIdleConnsPerHost: cfg.MaxIdleConnsPerHost, }, nil } diff --git a/internal/elasticsearch/config_test.go b/internal/elasticsearch/config_test.go index 21c17cdef73..3593bf02336 100644 --- a/internal/elasticsearch/config_test.go +++ b/internal/elasticsearch/config_test.go @@ -146,10 +146,11 @@ func TestBeatsConfigSynced(t *testing.T) { // TODO(simitt): take a closer look at ES ouput changes in libbeat // introduced with https://github.com/elastic/beats/pull/25219 localStructExceptions := map[string]interface{}{ - "ssl": nil, - "timeout": nil, - "proxy_disable": nil, - "proxy_url": nil, + "ssl": nil, + "timeout": nil, + "proxy_disable": nil, + "proxy_url": nil, + "maxidleconnsperhost": nil, } for name, localStructField := range localStructFields { if _, ok := localStructExceptions[name]; ok { @@ -170,6 +171,7 @@ func TestBeatsConfigSynced(t *testing.T) { knownUnhandled := []string{ "backoff", // we have our own version with its own type + "queue", "bulk_max_size", "escape_html", // TODO Kerberos auth (https://github.com/elastic/apm-server/issues/3794) diff --git a/internal/glog/go.mod b/internal/glog/go.mod index 727c2415a44..265d1569169 100644 --- a/internal/glog/go.mod +++ b/internal/glog/go.mod @@ -1,3 +1,5 @@ module github.com/golang/glog -go 1.20 +go 1.21 + +toolchain go1.21.3 diff --git a/internal/model/modelprocessor/libraryframe.go b/internal/model/modelprocessor/libraryframe.go index 9d33e8ff767..7e7a803053b 100644 --- a/internal/model/modelprocessor/libraryframe.go +++ b/internal/model/modelprocessor/libraryframe.go @@ -68,7 +68,7 @@ func (s SetLibraryFrame) processException(ctx context.Context, exception *modelp func (s SetLibraryFrame) processStacktraceFrames(ctx context.Context, frames ...*modelpb.StacktraceFrame) { for _, frame := range frames { if frame.Original == nil { - frame.Original = &modelpb.Original{} + frame.Original = modelpb.OriginalFromVTPool() } frame.Original.LibraryFrame = frame.LibraryFrame frame.LibraryFrame = frame.Filename != "" && s.Pattern.MatchString(frame.Filename) || diff --git a/internal/publish/pub.go b/internal/publish/pub.go index fdfac0be0a7..5f9632d9fb3 100644 --- a/internal/publish/pub.go +++ b/internal/publish/pub.go @@ -142,7 +142,10 @@ func (p *Publisher) Stop(ctx context.Context) error { // publishing pipeline. func (p *Publisher) ProcessBatch(ctx context.Context, batch *modelpb.Batch) error { b := make(modelpb.Batch, len(*batch)) - copy(b, *batch) + for i, e := range *batch { + cp := e.CloneVT() + b[i] = cp + } return p.Send(ctx, PendingReq{Transformable: batchTransformer(b)}) } diff --git a/internal/publish/pub_test.go b/internal/publish/pub_test.go index a22389f84a5..37c1be50675 100644 --- a/internal/publish/pub_test.go +++ b/internal/publish/pub_test.go @@ -19,6 +19,7 @@ package publish_test import ( "bufio" + "compress/gzip" "context" "fmt" "net/http" @@ -102,16 +103,21 @@ func BenchmarkPublisher(b *testing.B) { fmt.Fprintln(w, `{"version":{"number":"1.2.3"}}`) }) - var indexed int64 + var indexed atomic.Int64 mux.HandleFunc("/_bulk", func(w http.ResponseWriter, r *http.Request) { - scanner := bufio.NewScanner(r.Body) + gzr, err := gzip.NewReader(r.Body) + assert.NoError(b, err) + defer gzr.Close() + + scanner := bufio.NewScanner(gzr) var n int64 - for scanner.Scan() { - if scanner.Scan() { + for scanner.Scan() { // index + if scanner.Scan() { // actual event n++ } } - atomic.AddInt64(&indexed, n) + assert.NoError(b, scanner.Err()) + indexed.Add(n) }) srv := httptest.NewServer(mux) defer srv.Close() @@ -169,7 +175,7 @@ func BenchmarkPublisher(b *testing.B) { assert.NoError(b, publisher.Stop(context.Background())) assert.NoError(b, acker.Wait(context.Background())) assert.NoError(b, pipeline.Close()) - assert.Equal(b, int64(b.N), indexed) + assert.Equal(b, int64(b.N), indexed.Load()) } func newBlockingPipeline(t testing.TB) (*pipeline.Pipeline, *mockClient) { diff --git a/internal/r8/deobfuscator.go b/internal/r8/deobfuscator.go index e56eeaf0f65..8249e6674c4 100644 --- a/internal/r8/deobfuscator.go +++ b/internal/r8/deobfuscator.go @@ -107,7 +107,7 @@ func resolveMappings(types map[string]StacktraceType, mapReader io.Reader) error for _, frames := range stacktraceType.methods { for _, frame := range frames { if frame.Original == nil { - frame.Original = &modelpb.Original{} + frame.Original = modelpb.OriginalFromVTPool() } // Multiple frames might point to the same class, so we need to deobfuscate the class name for them all. frame.Original.Classname = obfuscatedName diff --git a/internal/sourcemap/processor.go b/internal/sourcemap/processor.go index 99889e2741a..6b2174da390 100644 --- a/internal/sourcemap/processor.go +++ b/internal/sourcemap/processor.go @@ -135,7 +135,7 @@ func (p BatchProcessor) processStacktraceFrame( } if frame.Original == nil { - frame.Original = &modelpb.Original{} + frame.Original = modelpb.OriginalFromVTPool() } // Store original source information. diff --git a/internal/version/version.go b/internal/version/version.go index 511dac3b8eb..1e734dbbe66 100644 --- a/internal/version/version.go +++ b/internal/version/version.go @@ -18,4 +18,4 @@ package version // Version holds the APM Server version. -const Version = "8.11.0" +const Version = "8.12.0" diff --git a/packaging.mk b/packaging.mk index 7d9c058088e..5a72f414f27 100644 --- a/packaging.mk +++ b/packaging.mk @@ -28,13 +28,13 @@ DOCKER_BUILD_ARGS := \ DOCKER_IMAGES := \ build/docker/apm-server-$(APM_SERVER_VERSION).txt \ build/docker/apm-server-$(APM_SERVER_VERSION)-SNAPSHOT.txt \ - build/docker/apm-server-ubi8-$(APM_SERVER_VERSION).txt \ - build/docker/apm-server-ubi8-$(APM_SERVER_VERSION)-SNAPSHOT.txt + build/docker/apm-server-ubi-$(APM_SERVER_VERSION).txt \ + build/docker/apm-server-ubi-$(APM_SERVER_VERSION)-SNAPSHOT.txt build/docker/%.txt: DOCKER_IMAGE_TAG := docker.elastic.co/apm/apm-server:% build/docker/%.txt: VERSION := $(APM_SERVER_VERSION) build/docker/%-SNAPSHOT.txt: VERSION := $(APM_SERVER_VERSION)-SNAPSHOT -build/docker/apm-server-ubi8-%.txt: DOCKER_BUILD_ARGS+=--build-arg BASE_IMAGE=docker.elastic.co/ubi8/ubi-minimal +build/docker/apm-server-ubi-%.txt: DOCKER_BUILD_ARGS+=--build-arg BASE_IMAGE=docker.elastic.co/ubi9/ubi-minimal .PHONY: $(DOCKER_IMAGES) $(DOCKER_IMAGES): @@ -43,7 +43,7 @@ $(DOCKER_IMAGES): # Docker image tarballs. We distribute UBI8 Docker images only for AMD64. DOCKER_IMAGE_SUFFIX := docker-image$(if $(findstring arm64,$(GOARCH)),-arm64).tar.gz -DOCKER_IMAGE_PREFIXES := apm-server $(if $(findstring amd64,$(GOARCH)), apm-server-ubi8) +DOCKER_IMAGE_PREFIXES := apm-server $(if $(findstring amd64,$(GOARCH)), apm-server-ubi) DOCKER_IMAGE_RELEASE_TARBALLS := $(patsubst %, $(DISTDIR)/%-$(APM_SERVER_VERSION)-$(DOCKER_IMAGE_SUFFIX), $(DOCKER_IMAGE_PREFIXES)) DOCKER_IMAGE_SNAPSHOT_TARBALLS := $(patsubst %, $(DISTDIR)/%-$(APM_SERVER_VERSION)-SNAPSHOT-$(DOCKER_IMAGE_SUFFIX), $(DOCKER_IMAGE_PREFIXES)) @@ -106,25 +106,21 @@ WINDOWS_PACKAGE_FILES := \ # so we need to create arch-specific nfpm configuration files. build/nfpm-amd64.yml: PACKAGE_GOARCH=amd64 build/nfpm-arm64.yml: PACKAGE_GOARCH=arm64 -build/nfpm-386.yml: PACKAGE_GOARCH=386 build/nfpm-%.yml: packaging/nfpm.yml sed 's/$${GOARCH}/$(PACKAGE_GOARCH)/' $< | sed 's/$${APM_SERVER_VERSION}/${APM_SERVER_VERSION}/' > $@ -DEB_ARCH := i386 amd64 arm64 +DEB_ARCH := amd64 arm64 DEBS := $(patsubst %, $(DISTDIR)/apm-server-$(APM_SERVER_VERSION)-%.deb, $(DEB_ARCH)) DEBS += $(patsubst %, $(DISTDIR)/apm-server-$(APM_SERVER_VERSION)-SNAPSHOT-%.deb, $(DEB_ARCH)) -DEBS_386 := $(filter %-i386.deb, $(DEBS)) DEBS_AMD64 := $(filter %-amd64.deb, $(DEBS)) DEBS_ARM64 := $(filter %-arm64.deb, $(DEBS)) -RPM_ARCH := i686 x86_64 aarch64 +RPM_ARCH := x86_64 aarch64 RPMS := $(patsubst %, $(DISTDIR)/apm-server-$(APM_SERVER_VERSION)-%.rpm, $(RPM_ARCH)) RPMS += $(patsubst %, $(DISTDIR)/apm-server-$(APM_SERVER_VERSION)-SNAPSHOT-%.rpm, $(RPM_ARCH)) -RPMS_386 := $(filter %-i686.rpm, $(RPMS)) RPMS_AMD64 := $(filter %-x86_64.rpm, $(RPMS)) RPMS_ARM64 := $(filter %-aarch64.rpm, $(RPMS)) -$(DEBS_386) $(RPMS_386): $(NFPM) $(COMMON_PACKAGE_FILES) build/apm-server-linux-386 build/nfpm-386.yml $(DEBS_ARM64) $(RPMS_ARM64): $(NFPM) $(COMMON_PACKAGE_FILES) build/apm-server-linux-arm64 build/nfpm-arm64.yml $(DEBS_AMD64) $(RPMS_AMD64): $(NFPM) $(COMMON_PACKAGE_FILES) build/apm-server-linux-amd64 build/nfpm-amd64.yml @@ -136,19 +132,16 @@ $(DEBS_AMD64) $(RPMS_AMD64): $(NFPM) $(COMMON_PACKAGE_FILES) build/apm-server-li # # ARCHIVES_DIR holds intermediate directories created for building tgz and zip. ARCHIVES_DIR := build/archives -ARCHIVE_PLATFORMS := darwin-x86_64 linux-x86_64 linux-x86 linux-arm64 windows-x86_64 +ARCHIVE_PLATFORMS := darwin-x86_64 linux-x86_64 linux-arm64 windows-x86_64 ARCHIVE_PREFIX := $(ARCHIVES_DIR)/apm-server-$(APM_SERVER_VERSION) ARCHIVES := $(addprefix $(ARCHIVE_PREFIX)-, $(ARCHIVE_PLATFORMS)) ARCHIVES += $(addprefix $(ARCHIVE_PREFIX)-SNAPSHOT-, $(ARCHIVE_PLATFORMS)) $(ARCHIVE_PREFIX)-darwin-x86_64 $(ARCHIVE_PREFIX)-SNAPSHOT-darwin-x86_64: build/apm-server-darwin-amd64 $(COMMON_PACKAGE_FILES) $(ARCHIVE_PREFIX)-linux-x86_64 $(ARCHIVE_PREFIX)-SNAPSHOT-linux-x86_64: build/apm-server-linux-amd64 $(COMMON_PACKAGE_FILES) -$(ARCHIVE_PREFIX)-linux-x86 $(ARCHIVE_PREFIX)-SNAPSHOT-linux-x86: build/apm-server-linux-386 $(COMMON_PACKAGE_FILES) $(ARCHIVE_PREFIX)-linux-arm64 $(ARCHIVE_PREFIX)-SNAPSHOT-linux-arm64: build/apm-server-linux-arm64 $(COMMON_PACKAGE_FILES) $(ARCHIVE_PREFIX)-windows-x86_64 $(ARCHIVE_PREFIX)-SNAPSHOT-windows-x86_64: \ build/apm-server-windows-amd64.exe $(COMMON_PACKAGE_FILES) $(WINDOWS_PACKAGE_FILES) -$(ARCHIVE_PREFIX)-windows-x86 $(ARCHIVE_PREFIX)-SNAPSHOT-windows-x86: \ - build/apm-server-windows-386.exe $(COMMON_PACKAGE_FILES) $(WINDOWS_PACKAGE_FILES) $(ARCHIVE_PREFIX)-%: @rm -fr $@ && mkdir -p $@ @@ -182,15 +175,11 @@ $(DISTDIR)/%-docker-build-context.tar.gz: $(ARCHIVES_DIR)/%-docker-build-context PACKAGE_SUFFIXES := \ darwin-x86_64.tar.gz \ linux-x86_64.tar.gz \ - linux-x86.tar.gz \ linux-arm64.tar.gz \ windows-x86_64.zip \ - windows-x86.zip \ amd64.deb \ - i386.deb \ arm64.deb \ x86_64.rpm \ - i686.rpm \ aarch64.rpm build/dependencies-$(APM_SERVER_VERSION)-SNAPSHOT.csv: build/dependencies-$(APM_SERVER_VERSION).csv diff --git a/packaging/docker/Dockerfile b/packaging/docker/Dockerfile index c518fb674dd..b9f9a09c165 100644 --- a/packaging/docker/Dockerfile +++ b/packaging/docker/Dockerfile @@ -1,8 +1,8 @@ -ARG BASE_IMAGE=ubuntu:20.04 +ARG BASE_IMAGE=ubuntu:22.04 # Build the apm-server binary. The golang image version is kept # up to date with go.mod by Makefile. -FROM golang:1.20.7 as builder +FROM golang:1.21.4 as builder WORKDIR /src COPY go.mod go.sum /src/ COPY internal/glog/go.mod /src/internal/glog/go.mod diff --git a/packaging/ironbank/Dockerfile b/packaging/ironbank/Dockerfile index 50fab55ead8..ad597e69fe0 100644 --- a/packaging/ironbank/Dockerfile +++ b/packaging/ironbank/Dockerfile @@ -3,8 +3,8 @@ # Extract APM Server and make various file manipulations. ################################################################################ ARG BASE_REGISTRY=registry1.dsop.io -ARG BASE_IMAGE=ironbank/redhat/ubi/ubi8 -ARG BASE_TAG=8.7 +ARG BASE_IMAGE=redhat/ubi/ubi9 +ARG BASE_TAG=9.3 FROM ${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG} AS prep_files diff --git a/packaging/ironbank/hardening_manifest.yaml b/packaging/ironbank/hardening_manifest.yaml index f19bbe804ed..d456b73c335 100644 --- a/packaging/ironbank/hardening_manifest.yaml +++ b/packaging/ironbank/hardening_manifest.yaml @@ -13,8 +13,8 @@ tags: # Build args passed to Dockerfile ARGs args: - BASE_IMAGE: "redhat/ubi/ubi8" - BASE_TAG: "8.7" + BASE_IMAGE: "redhat/ubi/ubi9" + BASE_TAG: "9.3" ELASTIC_STACK: "${APM_SERVER_VERSION}" ELASTIC_PRODUCT: "apm-server" diff --git a/packaging/nfpm.yml b/packaging/nfpm.yml index 112808b9bf4..f0ce05e0e49 100644 --- a/packaging/nfpm.yml +++ b/packaging/nfpm.yml @@ -23,6 +23,7 @@ contents: - src: apm-server.yml dst: /etc/apm-server/apm-server.yml + type: config|noreplace file_info: mode: 0600 owner: apm-server diff --git a/script/update_go_version.sh b/script/update_go_version.sh index af8f6f76c55..db110940a0e 100755 --- a/script/update_go_version.sh +++ b/script/update_go_version.sh @@ -9,11 +9,19 @@ cd $SDIR/.. # Use gimme to find the latest patch release for the major.minor # Go version defined in go.mod. -GOMOD_VERSION=$(grep '^go' go.mod | cut -d' ' -f2) +GOMOD_VERSION=$(grep '^go' go.mod | cut -d' ' -f2 | cut -d. -f1-2) + +# TODO(axw) arrange for Go 1.21+ to always be available, and stop using gimme. eval $(script/gimme/gimme $GOMOD_VERSION.x) GOVERSION=$(go env GOVERSION | sed 's/^go//') +find -name go.mod -execdir go get toolchain@$GOVERSION \; echo $GOVERSION > .go-version sed -i "s/golang:[[:digit:]]\+\(\.[[:digit:]]\+\)\{1,2\}/golang:$GOVERSION/" packaging/docker/Dockerfile sed -i "s/^:go-version:.*/:go-version: $GOVERSION/" docs/version.asciidoc sed -i "s/\(\[Go\]\[golang-download\]\) [[:digit:]].*/\1 $GOMOD_VERSION.x/" README.md +sed -i "s/toolchain go[[:digit:]]\+\(\.[[:digit:]]\+\)\{1,2\}/toolchain go$GOVERSION/" tools/go.mod +sed -i "s/toolchain go[[:digit:]]\+\(\.[[:digit:]]\+\)\{1,2\}/toolchain go$GOVERSION/" internal/glog/go.mod +sed -i "s/toolchain go[[:digit:]]\+\(\.[[:digit:]]\+\)\{1,2\}/toolchain go$GOVERSION/" go.mod +sed -i "s/toolchain go[[:digit:]]\+\(\.[[:digit:]]\+\)\{1,2\}/toolchain go$GOVERSION/" systemtest/go.mod +sed -i "s/toolchain go[[:digit:]]\+\(\.[[:digit:]]\+\)\{1,2\}/toolchain go$GOVERSION/" cmd/intake-receiver/go.mod diff --git a/systemtest/approvals/TestAgentConfig.approved.json b/systemtest/approvals/TestAgentConfig.approved.json index 82665acea3e..8fd3a40e23b 100644 --- a/systemtest/approvals/TestAgentConfig.approved.json +++ b/systemtest/approvals/TestAgentConfig.approved.json @@ -8,13 +8,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "labels": { "etag": "dynamic" }, @@ -38,13 +31,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "labels": { "etag": "dynamic" }, diff --git a/systemtest/approvals/TestApprovedMetrics.approved.json b/systemtest/approvals/TestApprovedMetrics.approved.json index c8f4b5834ce..2ff6e6c5087 100644 --- a/systemtest/approvals/TestApprovedMetrics.approved.json +++ b/systemtest/approvals/TestApprovedMetrics.approved.json @@ -12,13 +12,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "go": { "memstats": { "heap": { @@ -78,13 +71,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "ip": "127.0.0.1" }, @@ -151,13 +137,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "ip": "127.0.0.1" }, @@ -238,13 +217,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "ip": "127.0.0.1" }, @@ -307,13 +279,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "faas": { "billed_duration": 183, "coldstart": true, @@ -381,13 +346,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "ip": "127.0.0.1" }, diff --git a/systemtest/approvals/TestCompressedSpans.approved.json b/systemtest/approvals/TestCompressedSpans.approved.json index 835105e7b17..c2da0651e1f 100644 --- a/systemtest/approvals/TestCompressedSpans.approved.json +++ b/systemtest/approvals/TestCompressedSpans.approved.json @@ -12,8 +12,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": 1 }, @@ -102,8 +100,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": 1 }, diff --git a/systemtest/approvals/TestDropUnsampled.approved.json b/systemtest/approvals/TestDropUnsampled.approved.json index a1ec31f8994..c0f29ac1f20 100644 --- a/systemtest/approvals/TestDropUnsampled.approved.json +++ b/systemtest/approvals/TestDropUnsampled.approved.json @@ -12,8 +12,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": 1 }, @@ -90,8 +88,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "observer": { diff --git a/systemtest/approvals/TestErrorIngest.approved.json b/systemtest/approvals/TestErrorIngest.approved.json index 9b14c0b3d7a..10936af8b51 100644 --- a/systemtest/approvals/TestErrorIngest.approved.json +++ b/systemtest/approvals/TestErrorIngest.approved.json @@ -48,10 +48,6 @@ "message": "Cannot read property 'baz' of undefined" } }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "architecture": "x64", "hostname": "node-name", diff --git a/systemtest/approvals/TestIngestPipelineDataStreamMigration.approved.json b/systemtest/approvals/TestIngestPipelineDataStreamMigration.approved.json index a1e39eff636..7b80f483495 100644 --- a/systemtest/approvals/TestIngestPipelineDataStreamMigration.approved.json +++ b/systemtest/approvals/TestIngestPipelineDataStreamMigration.approved.json @@ -73,7 +73,6 @@ "id": "b2da5288b2c3d7e79c42a636ca2fd99f" }, "event": { - "agent_id_status": "missing", "ingested": "dynamic" }, "host": { @@ -149,11 +148,7 @@ "namespace": "migrated", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", "ingested": "dynamic" }, "golang": { @@ -269,11 +264,7 @@ "namespace": "migrated", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", "ingested": "dynamic", "outcome": "failure" }, @@ -321,11 +312,7 @@ "namespace": "migrated", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", "ingested": "dynamic", "outcome": "failure" }, @@ -382,11 +369,7 @@ "namespace": "migrated", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", "ingested": "dynamic" }, "host": { @@ -461,11 +444,7 @@ "namespace": "migrated", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", "ingested": "dynamic" }, "host": { @@ -538,8 +517,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "failure" }, "observer": { @@ -652,7 +629,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", "ingested": "dynamic", "outcome": "failure" }, diff --git a/systemtest/approvals/TestIntake/Errors.approved.json b/systemtest/approvals/TestIntake/Errors.approved.json index 105ac8ee7c0..3ffe4fc0074 100644 --- a/systemtest/approvals/TestIntake/Errors.approved.json +++ b/systemtest/approvals/TestIntake/Errors.approved.json @@ -14,8 +14,8 @@ "country_iso_code": "US", "country_name": "United States", "location": { - "lat": 37.751, - "lon": -97.822 + "lat": "dynamic", + "lon": "dynamic" } }, "ip": "12.53.12.1" @@ -229,10 +229,6 @@ ] } }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "architecture": "x64", "hostname": "node-name", @@ -418,10 +414,6 @@ "grouping_name": "Cannot read property 'baz' no defined", "id": "cdefab0123456789" }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "architecture": "x64", "hostname": "node-name", @@ -543,10 +535,6 @@ ] } }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "architecture": "x64", "hostname": "node-name", @@ -664,10 +652,6 @@ "grouping_name": null, "id": "cdefab0123456780" }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "architecture": "x64", "hostname": "node-name", @@ -789,10 +773,6 @@ "message": "Cannot read property 'baz' of undefined" } }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "architecture": "x64", "hostname": "node-name", diff --git a/systemtest/approvals/TestIntake/ErrorsTxID.approved.json b/systemtest/approvals/TestIntake/ErrorsTxID.approved.json index df69edbb843..9a19f72807d 100644 --- a/systemtest/approvals/TestIntake/ErrorsTxID.approved.json +++ b/systemtest/approvals/TestIntake/ErrorsTxID.approved.json @@ -145,10 +145,6 @@ ] } }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "architecture": "amd64", "hostname": "node-name", diff --git a/systemtest/approvals/TestIntake/Events.approved.json b/systemtest/approvals/TestIntake/Events.approved.json index 8b44c05e52d..740283244e6 100644 --- a/systemtest/approvals/TestIntake/Events.approved.json +++ b/systemtest/approvals/TestIntake/Events.approved.json @@ -146,10 +146,6 @@ ] } }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "architecture": "amd64", "hostname": "node-name", @@ -314,13 +310,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "architecture": "amd64", "hostname": "node-name", @@ -420,8 +409,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": 1 }, @@ -582,8 +569,8 @@ "country_iso_code": "US", "country_name": "United States", "location": { - "lat": 37.751, - "lon": -97.822 + "lat": "dynamic", + "lon": "dynamic" } }, "ip": "12.53.12.1" @@ -597,8 +584,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": 1 }, diff --git a/systemtest/approvals/TestIntake/Metricsets.approved.json b/systemtest/approvals/TestIntake/Metricsets.approved.json index c8f4b5834ce..2ff6e6c5087 100644 --- a/systemtest/approvals/TestIntake/Metricsets.approved.json +++ b/systemtest/approvals/TestIntake/Metricsets.approved.json @@ -12,13 +12,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "go": { "memstats": { "heap": { @@ -78,13 +71,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "ip": "127.0.0.1" }, @@ -151,13 +137,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "ip": "127.0.0.1" }, @@ -238,13 +217,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "ip": "127.0.0.1" }, @@ -307,13 +279,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "faas": { "billed_duration": 183, "coldstart": true, @@ -381,13 +346,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "ip": "127.0.0.1" }, diff --git a/systemtest/approvals/TestIntake/MinimalEvents.approved.json b/systemtest/approvals/TestIntake/MinimalEvents.approved.json index b322539eea8..477637d8caa 100644 --- a/systemtest/approvals/TestIntake/MinimalEvents.approved.json +++ b/systemtest/approvals/TestIntake/MinimalEvents.approved.json @@ -19,10 +19,6 @@ "message": "error log message" } }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "ip": [ "127.0.0.1" @@ -62,10 +58,6 @@ "grouping_name": "error exception message", "id": "abcdef0123456790" }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "ip": [ "127.0.0.1" @@ -105,10 +97,6 @@ "grouping_name": null, "id": "abcdef0123456791" }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "ip": [ "127.0.0.1" @@ -138,13 +126,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "host": { "ip": "127.0.0.1" }, @@ -175,8 +156,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -226,8 +205,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -277,8 +254,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { diff --git a/systemtest/approvals/TestIntake/Spans.approved.json b/systemtest/approvals/TestIntake/Spans.approved.json index d5b4e708fa6..2e326ebba4f 100644 --- a/systemtest/approvals/TestIntake/Spans.approved.json +++ b/systemtest/approvals/TestIntake/Spans.approved.json @@ -45,8 +45,6 @@ "port": 5432 }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": 1 }, @@ -263,8 +261,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -397,8 +393,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -537,8 +531,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -671,8 +663,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": 1 }, @@ -821,8 +811,6 @@ "port": 5432 }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": 1 }, @@ -1043,8 +1031,6 @@ "ip": "0:0::0:1" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -1193,8 +1179,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": 1 }, @@ -1335,8 +1319,6 @@ "port": 8080 }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": 1 }, @@ -1489,8 +1471,6 @@ "port": 5432 }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": 1 }, diff --git a/systemtest/approvals/TestIntake/Transactions.approved.json b/systemtest/approvals/TestIntake/Transactions.approved.json index 94803e73240..77e6ad2ccf6 100644 --- a/systemtest/approvals/TestIntake/Transactions.approved.json +++ b/systemtest/approvals/TestIntake/Transactions.approved.json @@ -39,8 +39,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -202,8 +200,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -315,8 +311,8 @@ "country_iso_code": "US", "country_name": "United States", "location": { - "lat": 37.751, - "lon": -97.822 + "lat": "dynamic", + "lon": "dynamic" } }, "ip": "12.53.12.1" @@ -353,8 +349,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": 1 }, @@ -590,8 +584,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -763,8 +755,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "faas": { diff --git a/systemtest/approvals/TestIntake/TransactionsHugeTraces.approved.json b/systemtest/approvals/TestIntake/TransactionsHugeTraces.approved.json index 2744ecfa04f..53aeea4b608 100644 --- a/systemtest/approvals/TestIntake/TransactionsHugeTraces.approved.json +++ b/systemtest/approvals/TestIntake/TransactionsHugeTraces.approved.json @@ -13,8 +13,8 @@ "country_iso_code": "US", "country_name": "United States", "location": { - "lat": 37.751, - "lon": -97.822 + "lat": "dynamic", + "lon": "dynamic" } }, "ip": "12.53.12.1" @@ -51,8 +51,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": 1 }, diff --git a/systemtest/approvals/TestIntake/UnknownSpanType.approved.json b/systemtest/approvals/TestIntake/UnknownSpanType.approved.json index 15e8afae371..ff809e1d9ee 100644 --- a/systemtest/approvals/TestIntake/UnknownSpanType.approved.json +++ b/systemtest/approvals/TestIntake/UnknownSpanType.approved.json @@ -15,8 +15,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": 1 }, @@ -176,8 +174,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success" }, "host": { diff --git a/systemtest/approvals/TestIntakeLog/with_faas.approved.json b/systemtest/approvals/TestIntakeLog/with_faas.approved.json index ed47f3d7abe..9887a676b38 100644 --- a/systemtest/approvals/TestIntakeLog/with_faas.approved.json +++ b/systemtest/approvals/TestIntakeLog/with_faas.approved.json @@ -17,8 +17,6 @@ "type": "logs" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "kind": "event" }, "faas": { diff --git a/systemtest/approvals/TestIntakeLog/with_flat_ecs_fields.approved.json b/systemtest/approvals/TestIntakeLog/with_flat_ecs_fields.approved.json index 27c8b5e47ae..640b1bf778f 100644 --- a/systemtest/approvals/TestIntakeLog/with_flat_ecs_fields.approved.json +++ b/systemtest/approvals/TestIntakeLog/with_flat_ecs_fields.approved.json @@ -17,9 +17,7 @@ "type": "logs" }, "event": { - "agent_id_status": "missing", "dataset": "accesslog", - "ingested": "dynamic", "kind": "event" }, "faas": { diff --git a/systemtest/approvals/TestIntakeLog/with_nested_ecs_fields.approved.json b/systemtest/approvals/TestIntakeLog/with_nested_ecs_fields.approved.json index 99841d0e0be..ee229a305be 100644 --- a/systemtest/approvals/TestIntakeLog/with_nested_ecs_fields.approved.json +++ b/systemtest/approvals/TestIntakeLog/with_nested_ecs_fields.approved.json @@ -17,9 +17,7 @@ "type": "logs" }, "event": { - "agent_id_status": "missing", "dataset": "accesslog", - "ingested": "dynamic", "kind": "event" }, "faas": { diff --git a/systemtest/approvals/TestIntakeLog/with_nested_ecs_fields_overrides_flat_fields.approved.json b/systemtest/approvals/TestIntakeLog/with_nested_ecs_fields_overrides_flat_fields.approved.json index c8fec2ec92e..53cea0bad7e 100644 --- a/systemtest/approvals/TestIntakeLog/with_nested_ecs_fields_overrides_flat_fields.approved.json +++ b/systemtest/approvals/TestIntakeLog/with_nested_ecs_fields_overrides_flat_fields.approved.json @@ -17,9 +17,7 @@ "type": "logs" }, "event": { - "agent_id_status": "missing", "dataset": "accesslog", - "ingested": "dynamic", "kind": "event" }, "faas": { diff --git a/systemtest/approvals/TestIntakeLog/with_timestamp.approved.json b/systemtest/approvals/TestIntakeLog/with_timestamp.approved.json index 4cd42b513cd..cab2f99b616 100644 --- a/systemtest/approvals/TestIntakeLog/with_timestamp.approved.json +++ b/systemtest/approvals/TestIntakeLog/with_timestamp.approved.json @@ -17,8 +17,6 @@ "type": "logs" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "kind": "event" }, "host": { diff --git a/systemtest/approvals/TestIntakeLog/with_timestamp_as_str.approved.json b/systemtest/approvals/TestIntakeLog/with_timestamp_as_str.approved.json index 15ef9019605..78906cc28be 100644 --- a/systemtest/approvals/TestIntakeLog/with_timestamp_as_str.approved.json +++ b/systemtest/approvals/TestIntakeLog/with_timestamp_as_str.approved.json @@ -17,8 +17,6 @@ "type": "logs" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "kind": "event" }, "host": { diff --git a/systemtest/approvals/TestIntakeLog/without_timestamp.approved.json b/systemtest/approvals/TestIntakeLog/without_timestamp.approved.json index bc9772d99e4..46e41c21104 100644 --- a/systemtest/approvals/TestIntakeLog/without_timestamp.approved.json +++ b/systemtest/approvals/TestIntakeLog/without_timestamp.approved.json @@ -17,8 +17,6 @@ "type": "logs" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "kind": "event" }, "host": { diff --git a/systemtest/approvals/TestJaeger/batch_0.approved.json b/systemtest/approvals/TestJaeger/batch_0.approved.json index 289d434d87c..4051d7bd2f1 100644 --- a/systemtest/approvals/TestJaeger/batch_0.approved.json +++ b/systemtest/approvals/TestJaeger/batch_0.approved.json @@ -24,10 +24,7 @@ "message": "Retrying GetDriver after error" } }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, + "event": {}, "host": { "hostname": "host01", "ip": [ @@ -92,10 +89,7 @@ "message": "Retrying GetDriver after error" } }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, + "event": {}, "host": { "hostname": "host01", "ip": [ @@ -160,10 +154,7 @@ "message": "Retrying GetDriver after error" } }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, + "event": {}, "host": { "hostname": "host01", "ip": [ @@ -217,8 +208,6 @@ "type": "logs" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "kind": "event" }, "host": { @@ -272,8 +261,6 @@ "type": "logs" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "kind": "event" }, "host": { @@ -325,8 +312,6 @@ "type": "logs" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "kind": "event" }, "host": { @@ -378,8 +363,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { diff --git a/systemtest/approvals/TestJaeger/batch_1.approved.json b/systemtest/approvals/TestJaeger/batch_1.approved.json index f25f9842f8a..ced4f97992c 100644 --- a/systemtest/approvals/TestJaeger/batch_1.approved.json +++ b/systemtest/approvals/TestJaeger/batch_1.approved.json @@ -24,10 +24,7 @@ "message": "redis timeout" } }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, + "event": {}, "host": { "hostname": "host01", "ip": [ @@ -87,10 +84,7 @@ "message": "redis timeout" } }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, + "event": {}, "host": { "hostname": "host01", "ip": [ @@ -150,10 +144,7 @@ "message": "redis timeout" } }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, + "event": {}, "host": { "hostname": "host01", "ip": [ @@ -202,8 +193,6 @@ "type": "logs" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "kind": "event" }, "host": { @@ -254,8 +243,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "failure", "success_count": 0 }, @@ -318,8 +305,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -381,8 +366,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -444,8 +427,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -507,8 +488,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "failure", "success_count": 0 }, @@ -571,8 +550,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -634,8 +611,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "failure", "success_count": 0 }, @@ -698,8 +673,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -761,8 +734,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -824,8 +795,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -887,8 +856,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -950,8 +917,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -1013,8 +978,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { @@ -1076,8 +1039,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "host": { diff --git a/systemtest/approvals/TestNoMatchingSourcemap.approved.json b/systemtest/approvals/TestNoMatchingSourcemap.approved.json index 41a9c946f57..a636db9b175 100644 --- a/systemtest/approvals/TestNoMatchingSourcemap.approved.json +++ b/systemtest/approvals/TestNoMatchingSourcemap.approved.json @@ -15,8 +15,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "observer": { diff --git a/systemtest/approvals/TestOTLPGRPCLogs.approved.json b/systemtest/approvals/TestOTLPGRPCLogs.approved.json index 3c8e7de4497..0eea8aa83e0 100644 --- a/systemtest/approvals/TestOTLPGRPCLogs.approved.json +++ b/systemtest/approvals/TestOTLPGRPCLogs.approved.json @@ -12,8 +12,6 @@ "type": "logs" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "severity": 9 }, "labels": { diff --git a/systemtest/approvals/TestOTLPGRPCLogsClientIP.approved.json b/systemtest/approvals/TestOTLPGRPCLogsClientIP.approved.json new file mode 100644 index 00000000000..b358fe48642 --- /dev/null +++ b/systemtest/approvals/TestOTLPGRPCLogsClientIP.approved.json @@ -0,0 +1,67 @@ +{ + "events": [ + { + "@timestamp": "1970-01-01T00:00:01.000Z", + "agent": { + "name": "android/java", + "version": "unknown" + }, + "client": { + "geo": { + "city_name": "Berlin", + "continent_name": "Europe", + "country_iso_code": "DE", + "country_name": "Germany", + "location": { + "lat": "dynamic", + "lon": "dynamic" + }, + "region_iso_code": "DE-BE", + "region_name": "Land Berlin" + }, + "ip": "178.162.206.244" + }, + "data_stream": { + "dataset": "apm.app.unknown", + "namespace": "default", + "type": "logs" + }, + "event": { + "severity": 9 + }, + "labels": { + "key": "value" + }, + "log": { + "level": "Info" + }, + "message": "a log message", + "numeric_labels": { + "numeric_key": 1234 + }, + "observer": { + "hostname": "dynamic", + "type": "apm-server", + "version": "dynamic" + }, + "service": { + "language": { + "name": "java" + }, + "name": "unknown" + }, + "source": { + "ip": "178.162.206.244", + "nat": { + "ip": "127.0.0.1" + } + }, + "span": { + "id": "0200000000000000" + }, + "trace": { + "id": "01000000000000000000000000000000" + } + } + ] +} diff --git a/systemtest/approvals/TestOTLPGRPCMetrics_counter.approved.json b/systemtest/approvals/TestOTLPGRPCMetrics_counter.approved.json index 51321c51a0c..d4b52539d92 100644 --- a/systemtest/approvals/TestOTLPGRPCMetrics_counter.approved.json +++ b/systemtest/approvals/TestOTLPGRPCMetrics_counter.approved.json @@ -12,13 +12,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "metricset": { "name": "app" }, diff --git a/systemtest/approvals/TestOTLPGRPCMetrics_histogram.approved.json b/systemtest/approvals/TestOTLPGRPCMetrics_histogram.approved.json index 97196e016e2..8b26929890c 100644 --- a/systemtest/approvals/TestOTLPGRPCMetrics_histogram.approved.json +++ b/systemtest/approvals/TestOTLPGRPCMetrics_histogram.approved.json @@ -11,13 +11,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "histogram": { "counts": [ 1, diff --git a/systemtest/approvals/TestOTLPGRPCMetrics_summary.approved.json b/systemtest/approvals/TestOTLPGRPCMetrics_summary.approved.json index 6a6c117d705..49104d36c74 100644 --- a/systemtest/approvals/TestOTLPGRPCMetrics_summary.approved.json +++ b/systemtest/approvals/TestOTLPGRPCMetrics_summary.approved.json @@ -11,13 +11,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "metricset": { "name": "app" }, diff --git a/systemtest/approvals/TestOTLPGRPCTraces.approved.json b/systemtest/approvals/TestOTLPGRPCTraces.approved.json index 06714cd2c79..c5c4efd3b47 100644 --- a/systemtest/approvals/TestOTLPGRPCTraces.approved.json +++ b/systemtest/approvals/TestOTLPGRPCTraces.approved.json @@ -24,10 +24,7 @@ "id": "dynamic", "stack_trace": "not an actual real stack trace" }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, + "event": {}, "labels": { "resource_attribute_array": [ "a", @@ -92,8 +89,6 @@ "type": "logs" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "kind": "event" }, "labels": { @@ -152,8 +147,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "labels": { diff --git a/systemtest/approvals/TestProfiling/events.approved.json b/systemtest/approvals/TestProfiling/events.approved.json deleted file mode 100644 index 918535229b9..00000000000 --- a/systemtest/approvals/TestProfiling/events.approved.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "events": [ - { - "@timestamp": 123, - "Stacktrace.count": 3, - "Stacktrace.id": "AAAAAAAAAAEAAAAAAAAAAg", - "container.name": "container", - "ecs.version": "1.12.0", - "host.id": 11256099, - "orchestrator.resource.name": "pod", - "process.thread.name": "comm", - "service.name": 123 - } - ] -} diff --git a/systemtest/approvals/TestProfiling/executables.approved.json b/systemtest/approvals/TestProfiling/executables.approved.json deleted file mode 100644 index cef096eb40d..00000000000 --- a/systemtest/approvals/TestProfiling/executables.approved.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "events": [ - { - "@timestamp": "dynamic", - "Executable.build.id": "build1", - "Executable.file.name": "a.apl", - "ecs.version": "1.12.0" - }, - { - "@timestamp": "dynamic", - "Executable.build.id": "build2", - "Executable.file.name": "b.bas", - "ecs.version": "1.12.0" - } - ] -} diff --git a/systemtest/approvals/TestProfiling/metrics.approved.json b/systemtest/approvals/TestProfiling/metrics.approved.json deleted file mode 100644 index c080548b652..00000000000 --- a/systemtest/approvals/TestProfiling/metrics.approved.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "events": [ - { - "@timestamp": 111, - "ecs.version": "1.12.0", - "host.cpu.usage": 4, - "host.id": 11256099, - "host.io.throughput": 5, - "project.id": 123 - }, - { - "@timestamp": 222, - "agent.time.cpu.sys": 9, - "bpf.interpreter.calls": 10, - "ecs.version": "1.12.0", - "host.id": 11256099, - "project.id": 123 - } - ] -} diff --git a/systemtest/approvals/TestProfiling/stackframes.approved.json b/systemtest/approvals/TestProfiling/stackframes.approved.json deleted file mode 100644 index 1837584f1e0..00000000000 --- a/systemtest/approvals/TestProfiling/stackframes.approved.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "events": [ - { - "Stackframe.file.name": "ninete.en", - "Stackframe.function.name": "thirteen()", - "Stackframe.function.offset": 15, - "Stackframe.line.number": 11, - "ecs.version": "1.12.0" - }, - { - "Stackframe.file.name": "twen.ty", - "Stackframe.function.name": "fourteen()", - "Stackframe.function.offset": 16, - "Stackframe.line.number": 12, - "ecs.version": "1.12.0" - } - ] -} diff --git a/systemtest/approvals/TestProfiling/stacktraces.approved.json b/systemtest/approvals/TestProfiling/stacktraces.approved.json deleted file mode 100644 index 5d0ae8cba63..00000000000 --- a/systemtest/approvals/TestProfiling/stacktraces.approved.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "events": [ - { - "Stacktrace.frame.ids": "AAAAAAAAAAkAAAAAAAAACwAAAAAAAAAP", - "Stacktrace.frame.types": "AQc", - "ecs.version": "1.12.0" - }, - { - "Stacktrace.frame.ids": "AAAAAAAAAAsAAAAAAAAADQAAAAAAAAARAAAAAAAAAAoAAAAAAAAADAAAAAAAAAAQ", - "Stacktrace.frame.types": "AQkBCA", - "ecs.version": "1.12.0" - } - ] -} diff --git a/systemtest/approvals/TestRUMErrorSourcemapping/absolute_bundle_filepath/standalone.approved.json b/systemtest/approvals/TestRUMErrorSourcemapping/absolute_bundle_filepath/standalone.approved.json index a677990e718..3a1b196bd09 100644 --- a/systemtest/approvals/TestRUMErrorSourcemapping/absolute_bundle_filepath/standalone.approved.json +++ b/systemtest/approvals/TestRUMErrorSourcemapping/absolute_bundle_filepath/standalone.approved.json @@ -253,10 +253,6 @@ ] } }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "http": { "request": { "referrer": "http://localhost:8000/test/e2e/" diff --git a/systemtest/approvals/TestRUMErrorSourcemapping/relative_bundle_filepath/standalone.approved.json b/systemtest/approvals/TestRUMErrorSourcemapping/relative_bundle_filepath/standalone.approved.json index a677990e718..3a1b196bd09 100644 --- a/systemtest/approvals/TestRUMErrorSourcemapping/relative_bundle_filepath/standalone.approved.json +++ b/systemtest/approvals/TestRUMErrorSourcemapping/relative_bundle_filepath/standalone.approved.json @@ -253,10 +253,6 @@ ] } }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "http": { "request": { "referrer": "http://localhost:8000/test/e2e/" diff --git a/systemtest/approvals/TestRUMRoutingIntegration.approved.json b/systemtest/approvals/TestRUMRoutingIntegration.approved.json index 7a84bbcfcc9..5296974eda3 100644 --- a/systemtest/approvals/TestRUMRoutingIntegration.approved.json +++ b/systemtest/approvals/TestRUMRoutingIntegration.approved.json @@ -17,8 +17,6 @@ "port": 8003 }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success" }, "http": { @@ -103,8 +101,6 @@ "port": 8000 }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success" }, "http": { @@ -185,8 +181,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "labels": { @@ -251,8 +245,6 @@ "port": 8003 }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success" }, "http": { @@ -334,8 +326,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "labels": { @@ -397,8 +387,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success" }, "labels": { @@ -492,8 +480,6 @@ "port": 8000 }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "http": { @@ -572,8 +558,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "labels": { @@ -635,8 +619,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success" }, "http": { diff --git a/systemtest/approvals/TestRUMSpanSourcemapping.approved.json b/systemtest/approvals/TestRUMSpanSourcemapping.approved.json index fb48b344364..6a5638173e6 100644 --- a/systemtest/approvals/TestRUMSpanSourcemapping.approved.json +++ b/systemtest/approvals/TestRUMSpanSourcemapping.approved.json @@ -15,8 +15,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "observer": { diff --git a/systemtest/approvals/TestRUMXForwardedFor.approved.json b/systemtest/approvals/TestRUMXForwardedFor.approved.json index 28a529c7160..8f8d26e4f97 100644 --- a/systemtest/approvals/TestRUMXForwardedFor.approved.json +++ b/systemtest/approvals/TestRUMXForwardedFor.approved.json @@ -23,13 +23,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "metricset": { "name": "span_breakdown" }, @@ -97,8 +90,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "observer": { diff --git a/systemtest/approvals/TestServiceDestinationAggregation.approved.json b/systemtest/approvals/TestServiceDestinationAggregation.approved.json index 86025198057..758d7179adc 100644 --- a/systemtest/approvals/TestServiceDestinationAggregation.approved.json +++ b/systemtest/approvals/TestServiceDestinationAggregation.approved.json @@ -11,12 +11,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success" }, "labels": { @@ -71,12 +66,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success" }, "labels": { @@ -131,12 +121,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success" }, "labels": { diff --git a/systemtest/approvals/TestServiceSummaryMetricsAggregation.approved.json b/systemtest/approvals/TestServiceSummaryMetricsAggregation.approved.json index 15ed250e453..b8f7e2c94c9 100644 --- a/systemtest/approvals/TestServiceSummaryMetricsAggregation.approved.json +++ b/systemtest/approvals/TestServiceSummaryMetricsAggregation.approved.json @@ -10,13 +10,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "metricset": { "interval": "10m", "name": "service_summary" @@ -46,13 +39,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "metricset": { "interval": "1m", "name": "service_summary" @@ -82,13 +68,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "metricset": { "interval": "60m", "name": "service_summary" diff --git a/systemtest/approvals/TestServiceSummaryMetricsAggregationOverflow.approved.json b/systemtest/approvals/TestServiceSummaryMetricsAggregationOverflow.approved.json index 248647c70e0..d08dc9d47b8 100644 --- a/systemtest/approvals/TestServiceSummaryMetricsAggregationOverflow.approved.json +++ b/systemtest/approvals/TestServiceSummaryMetricsAggregationOverflow.approved.json @@ -7,13 +7,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "metricset": { "interval": "10m", "name": "service_summary" @@ -42,13 +35,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "metricset": { "interval": "1m", "name": "service_summary" @@ -77,13 +63,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "metricset": { "interval": "60m", "name": "service_summary" @@ -115,13 +94,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "metricset": { "interval": "10m", "name": "service_summary" @@ -152,13 +124,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "metricset": { "interval": "1m", "name": "service_summary" @@ -189,13 +154,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "metricset": { "interval": "60m", "name": "service_summary" @@ -226,13 +184,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "metricset": { "interval": "10m", "name": "service_summary" @@ -263,13 +214,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "metricset": { "interval": "1m", "name": "service_summary" @@ -300,13 +244,6 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, - "event": { - "agent_id_status": "missing", - "ingested": "dynamic" - }, "metricset": { "interval": "60m", "name": "service_summary" diff --git a/systemtest/approvals/TestServiceTransactionMetricsAggregation.approved.json b/systemtest/approvals/TestServiceTransactionMetricsAggregation.approved.json index 558e518ab48..850ac19386b 100644 --- a/systemtest/approvals/TestServiceTransactionMetricsAggregation.approved.json +++ b/systemtest/approvals/TestServiceTransactionMetricsAggregation.approved.json @@ -11,12 +11,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "success_count": { "sum": 2, "value_count": 2 @@ -69,12 +64,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "success_count": { "sum": 2, "value_count": 2 @@ -127,12 +117,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "success_count": { "sum": 2, "value_count": 2 @@ -185,12 +170,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "success_count": { "sum": 2, "value_count": 2 @@ -243,12 +223,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "success_count": { "sum": 2, "value_count": 2 @@ -301,12 +276,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "success_count": { "sum": 2, "value_count": 2 diff --git a/systemtest/approvals/TestTransactionAggregation.approved.json b/systemtest/approvals/TestTransactionAggregation.approved.json index 6a5826d558d..34cf299ab4b 100644 --- a/systemtest/approvals/TestTransactionAggregation.approved.json +++ b/systemtest/approvals/TestTransactionAggregation.approved.json @@ -11,12 +11,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": { "sum": 5, @@ -87,12 +82,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": { "sum": 5, @@ -163,12 +153,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": { "sum": 5, @@ -239,12 +224,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": { "sum": 10, @@ -315,12 +295,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": { "sum": 10, @@ -391,12 +366,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": { "sum": 10, @@ -489,12 +459,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "faas": { @@ -603,12 +568,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "faas": { @@ -717,12 +677,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "unknown" }, "faas": { diff --git a/systemtest/approvals/TestTransactionAggregationShutdown.approved.json b/systemtest/approvals/TestTransactionAggregationShutdown.approved.json index eb1d3d5f8bd..afc6ac793bd 100644 --- a/systemtest/approvals/TestTransactionAggregationShutdown.approved.json +++ b/systemtest/approvals/TestTransactionAggregationShutdown.approved.json @@ -11,12 +11,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": { "sum": 1, @@ -87,12 +82,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": { "sum": 1, @@ -163,12 +153,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": { "sum": 1, diff --git a/systemtest/approvals/TestTransactionDroppedSpansStatsMetrics.approved.json b/systemtest/approvals/TestTransactionDroppedSpansStatsMetrics.approved.json index 9b1327da665..387a875923a 100644 --- a/systemtest/approvals/TestTransactionDroppedSpansStatsMetrics.approved.json +++ b/systemtest/approvals/TestTransactionDroppedSpansStatsMetrics.approved.json @@ -11,12 +11,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success" }, "metricset": { @@ -65,12 +60,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success" }, "metricset": { @@ -119,12 +109,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success" }, "metricset": { @@ -173,12 +158,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success" }, "metricset": { @@ -227,12 +207,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success" }, "metricset": { @@ -281,12 +256,7 @@ "namespace": "default", "type": "metrics" }, - "ecs": { - "version": "dynamic" - }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success" }, "metricset": { diff --git a/systemtest/approvals/TestTransactionDroppedSpansStatsTransaction.approved.json b/systemtest/approvals/TestTransactionDroppedSpansStatsTransaction.approved.json index d05aa17e1ad..bc9aee4e497 100644 --- a/systemtest/approvals/TestTransactionDroppedSpansStatsTransaction.approved.json +++ b/systemtest/approvals/TestTransactionDroppedSpansStatsTransaction.approved.json @@ -12,8 +12,6 @@ "type": "traces" }, "event": { - "agent_id_status": "missing", - "ingested": "dynamic", "outcome": "success", "success_count": 1 }, diff --git a/systemtest/containers.go b/systemtest/containers.go index 0522c8d697e..265f542b04d 100644 --- a/systemtest/containers.go +++ b/systemtest/containers.go @@ -41,7 +41,6 @@ import ( "github.com/docker/go-connections/nat" "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/wait" - "golang.org/x/sync/errgroup" ) const ( @@ -69,7 +68,7 @@ func init() { func StartStackContainers() error { cmd := exec.Command( "docker-compose", "-f", "../docker-compose.yml", - "up", "-d", "elasticsearch", "kibana", "fleet-server", + "up", "-d", "elasticsearch", "kibana", ) cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr @@ -77,14 +76,11 @@ func StartStackContainers() error { return err } - // Wait for up to 5 minutes for Kibana and Fleet Server to become healthy, + // Wait for up to 5 minutes for Kibana to become healthy, // which implies Elasticsearch is healthy too. ctx, cancel := context.WithTimeout(context.Background(), startContainersTimeout) defer cancel() - g, ctx := errgroup.WithContext(ctx) - g.Go(func() error { return waitContainerHealthy(ctx, "kibana") }) - g.Go(func() error { return waitContainerHealthy(ctx, "fleet-server") }) - return g.Wait() + return waitContainerHealthy(ctx, "kibana") } func waitContainerHealthy(ctx context.Context, serviceName string) error { @@ -212,18 +208,11 @@ func NewUnstartedElasticAgentContainer(opts ContainerConfig) (*ElasticAgentConta } vcsRef := agentImageDetails.Config.Labels["org.label-schema.vcs-ref"] - containerCACertPath := "/etc/pki/tls/certs/fleet-ca.pem" - hostCACertPath := filepath.Join(systemtestDir, "../testing/docker/fleet-server/ca.pem") req := testcontainers.ContainerRequest{ Name: opts.Name, Image: agentImage, AutoRemove: true, Networks: networks, - Mounts: testcontainers.Mounts(testcontainers.BindMount(hostCACertPath, testcontainers.ContainerMountTarget(containerCACertPath))), - Env: map[string]string{ - "FLEET_URL": "https://fleet-server:8220", - "FLEET_CA": containerCACertPath, - }, SkipReaper: true, // we use our own reaping logic } return &ElasticAgentContainer{ diff --git a/systemtest/errorgrouping_test.go b/systemtest/errorgrouping_test.go index c3ba9d51e2a..689725bcb21 100644 --- a/systemtest/errorgrouping_test.go +++ b/systemtest/errorgrouping_test.go @@ -22,7 +22,7 @@ import ( "testing" "github.com/stretchr/testify/assert" - "github.com/tidwall/gjson" + "github.com/stretchr/testify/require" "go.elastic.co/apm/v2" "github.com/elastic/apm-server/systemtest" @@ -48,7 +48,9 @@ func TestErrorGroupingName(t *testing.T) { var names []string for _, hit := range result.Hits.Hits { - names = append(names, gjson.GetBytes(hit.RawSource, "error.grouping_name").String()) + values := hit.Fields["error.grouping_name"] + require.Len(t, values, 1) + names = append(names, values[0].(string)) } assert.ElementsMatch(t, []string{ diff --git a/systemtest/go.mod b/systemtest/go.mod index ad457071b62..b6f3b601b56 100644 --- a/systemtest/go.mod +++ b/systemtest/go.mod @@ -1,9 +1,11 @@ module github.com/elastic/apm-server/systemtest -go 1.20 +go 1.21 + +toolchain go1.21.3 require ( - github.com/docker/docker v23.0.3+incompatible + github.com/docker/docker v24.0.7+incompatible github.com/docker/go-connections v0.4.0 github.com/elastic/apm-perf v0.0.0-20230608162138-29920c01cfd6 github.com/elastic/apm-tools v0.0.0-20230828065051-3f799314cc8b @@ -32,9 +34,9 @@ require ( go.opentelemetry.io/otel/trace v1.17.0 go.uber.org/zap v1.24.0 golang.org/x/sync v0.3.0 - golang.org/x/sys v0.11.0 + golang.org/x/sys v0.13.0 golang.org/x/time v0.3.0 - google.golang.org/grpc v1.57.0 + google.golang.org/grpc v1.57.1 gopkg.in/yaml.v3 v3.0.1 ) @@ -93,8 +95,8 @@ require ( go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.14.0 // indirect - golang.org/x/text v0.12.0 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/text v0.13.0 // indirect golang.org/x/tools v0.12.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc // indirect diff --git a/systemtest/go.sum b/systemtest/go.sum index 7873405f6ba..458810ac7ca 100644 --- a/systemtest/go.sum +++ b/systemtest/go.sum @@ -1,13 +1,18 @@ +github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8 h1:V8krnnfGj4pV65YLUm3C0/8bl7V5Nry2Pwvy3ru/wLc= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= +github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.9.3 h1:k371PzBuRrz2b+ebGuI2nVgVhgsVX60jMfSw80NECxo= +github.com/Microsoft/hcsshim v0.9.3/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= +github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= @@ -18,19 +23,19 @@ github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2u github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= github.com/containerd/containerd v1.6.6 h1:xJNPhbrmz8xAMDNoVjHy9YHtWwEQNS+CDkcIRh7t8Y0= github.com/containerd/containerd v1.6.6/go.mod h1:ZoP1geJldzCVY3Tonoz7b1IXk8rIX0Nltt5QE4OMNk0= -github.com/containerd/continuity v0.2.2 h1:QSqfxcn8c+12slxwu00AtzXrsami0MJb/MQs9lOLHLA= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v23.0.3+incompatible h1:9GhVsShNWz1hO//9BNg/dpMnZW25KydO4wtVxWAIbho= -github.com/docker/docker v23.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v24.0.7+incompatible h1:Wo6l37AuwP3JaMnZa226lzVXGA3F9Ig1seQen0cKYlM= +github.com/docker/docker v24.0.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -64,6 +69,7 @@ github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6x github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= +github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= @@ -101,9 +107,11 @@ github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQs github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/moby/patternmatcher v0.5.0 h1:YCZgJOeULcxLw1Q+sVR636pmS7sPEn1Qo2iAN6M7DBo= @@ -155,6 +163,7 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -216,6 +225,7 @@ go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v8 go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= +go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= @@ -232,8 +242,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= -golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -256,13 +266,13 @@ golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -277,12 +287,13 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230526203410-71b5a4ffd15e h1:Ao9GzfUMPH3zjVfzXG5rlWlk+Q8MXWKwWpwVQE1MXfw= +google.golang.org/genproto v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc h1:kVKPf/IiYSBWEWtkIn6wZXwWGCnLKcC8oWfZvXjsGnM= google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc h1:XSJ8Vk1SWuNr8S18z1NZSziL0CPIXLCCMDOEFtHBOFc= google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= -google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw= -google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= +google.golang.org/grpc v1.57.1 h1:upNTNqv0ES+2ZOOqACwVtS3Il8M12/+Hz41RCPzAjQg= +google.golang.org/grpc v1.57.1/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= @@ -291,6 +302,7 @@ google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -298,6 +310,7 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= +gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= howett.net/plist v1.0.0 h1:7CrbWYbPPO/PyNy38b2EB/+gYbjCe2DXBxgtOOZbSQM= howett.net/plist v1.0.0/go.mod h1:lqaXoTrLY4hg8tnEzNru53gicrbv7rrk+2xJA/7hw9g= diff --git a/systemtest/ingest_test.go b/systemtest/ingest_test.go index 1c832404e42..d1b3337fc4a 100644 --- a/systemtest/ingest_test.go +++ b/systemtest/ingest_test.go @@ -123,10 +123,11 @@ func TestIngestPipelineEventDuration(t *testing.T) { } tests := []test{{ - // No transaction.* field, no update. - source: `{"@timestamp": "2022-02-15", "observer": {"version": "8.2.0"}, "processor": {"event": "transaction"}}`, + // No transaction.* field, no event.duration: set transaction.duration.us to zero. + source: `{"@timestamp": "2022-02-15", "observer": {"version": "8.2.0"}, "processor": {"event": "transaction"}}`, + expectedTransactionDurationUS: 0.0, }, { - // Set transaction.duration.us to zero if event.duration not found. + // transaction exists without duration.us, no event.duration: set transaction.duration.us to zero. source: `{"@timestamp": "2022-02-15", "observer": {"version": "8.2.0"}, "processor": {"event": "transaction"}, "transaction": {}}`, expectedTransactionDurationUS: 0.0, }, { @@ -151,30 +152,31 @@ func TestIngestPipelineEventDuration(t *testing.T) { }, &indexResponse) require.NoError(t, err) - var doc struct { - Source json.RawMessage `json:"_source"` - } - _, err = systemtest.Elasticsearch.Do(context.Background(), esapi.GetRequest{ - Index: indexResponse.Index, - DocumentID: indexResponse.ID, - }, &doc) - require.NoError(t, err) + result := estest.ExpectDocs(t, systemtest.Elasticsearch, indexResponse.Index, espoll.TermQuery{ + Field: "_id", + Value: indexResponse.ID, + }) + + require.Len(t, result.Hits.Hits, 1) + doc := result.Hits.Hits[0] // event.duration should always be removed. - assert.False(t, gjson.GetBytes(doc.Source, "event.duration").Exists()) + assert.NotContains(t, doc.Fields, "event.duration") - transactionDurationUS := gjson.GetBytes(doc.Source, "transaction.duration.us") + transactionDurationUS := doc.Fields["transaction.duration.us"] if test.expectedTransactionDurationUS != nil { - assert.Equal(t, test.expectedTransactionDurationUS, transactionDurationUS.Value()) + require.Len(t, transactionDurationUS, 1) + assert.Equal(t, test.expectedTransactionDurationUS, transactionDurationUS[0]) } else { - assert.False(t, transactionDurationUS.Exists()) + assert.Nil(t, transactionDurationUS) } - spanDurationUS := gjson.GetBytes(doc.Source, "span.duration.us") + spanDurationUS := doc.Fields["span.duration.us"] if test.expectedSpanDurationUS != nil { - assert.Equal(t, test.expectedSpanDurationUS, spanDurationUS.Value()) + require.Len(t, spanDurationUS, 1) + assert.Equal(t, test.expectedSpanDurationUS, spanDurationUS[0]) } else { - assert.False(t, spanDurationUS.Exists()) + assert.Nil(t, spanDurationUS) } } } @@ -212,23 +214,6 @@ func TestIngestPipelineDataStreamMigration(t *testing.T) { approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits) } -func TestECSVersion(t *testing.T) { - systemtest.CleanupElasticsearch(t) - srv := apmservertest.NewServerTB(t) - - tracer := srv.Tracer() - tx := tracer.StartTransaction("name", "type") - tx.End() - tracer.Flush(nil) - - // ecs.version is defined as a constant_keyword field, - // and is not present in _source. The value is defined - // by the version of ECS we use to build the integration - // package. - result := estest.ExpectDocs(t, systemtest.Elasticsearch, "traces-apm*", nil) - assert.Equal(t, []interface{}{"8.6.0-dev"}, result.Hits.Hits[0].Fields["ecs.version"]) -} - func TestIngestPipelineEventSuccessCount(t *testing.T) { type test struct { source string diff --git a/systemtest/intake_test.go b/systemtest/intake_test.go index 1b7e64e9487..2d068227ff2 100644 --- a/systemtest/intake_test.go +++ b/systemtest/intake_test.go @@ -56,6 +56,7 @@ func TestIntake(t *testing.T) { result := estest.ExpectMinDocs(t, systemtest.Elasticsearch, response.Accepted, "traces-apm*,metrics-apm*,logs-apm*", nil, ) + tc.dynamicFields = append(tc.dynamicFields, "client.geo.city_name", "client.geo.location.lat", "client.geo.location.lon", "client.geo.region_iso_code", "client.geo.region_name") approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits, tc.dynamicFields...) }) } diff --git a/systemtest/otlp_test.go b/systemtest/otlp_test.go index 3f7956f82a4..6a692eba1ed 100644 --- a/systemtest/otlp_test.go +++ b/systemtest/otlp_test.go @@ -26,6 +26,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/tidwall/gjson" + "google.golang.org/grpc/metadata" "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/plog" @@ -453,6 +454,63 @@ func TestOTLPRateLimit(t *testing.T) { assert.Equal(t, "traces export: rpc error: code = ResourceExhausted desc = rate limit exceeded", errStatus.Message()) } +func TestOTLPGRPCLogsClientIP(t *testing.T) { + systemtest.CleanupElasticsearch(t) + srv := apmservertest.NewUnstartedServerTB(t) + err := srv.Start() + require.NoError(t, err) + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + // Override local IP address to be found in "GeoLite2-City.mmdb". + md := metadata.New(map[string]string{"X-Forwarded-For": "178.162.206.244"}) + ctx = metadata.NewOutgoingContext(ctx, md) + + conn, err := grpc.Dial(serverAddr(srv), grpc.WithInsecure(), grpc.WithBlock(), grpc.WithDefaultCallOptions(grpc.UseCompressor("gzip"))) + require.NoError(t, err) + defer conn.Close() + + logsClient := plogotlp.NewGRPCClient(conn) + + logs := newMobileLogs("a log message") + _, err = logsClient.Export(ctx, plogotlp.NewExportRequestFromLogs(logs)) + require.NoError(t, err) + + result := estest.ExpectDocs(t, systemtest.Elasticsearch, "logs-apm*", nil) + approvaltest.ApproveEvents(t, t.Name(), result.Hits.Hits, "client.geo.location.lat", "client.geo.location.lon") +} + +func newMobileLogs(body interface{}) plog.Logs { + logs := plog.NewLogs() + resourceLogs := logs.ResourceLogs().AppendEmpty() + resourceAttrs := logs.ResourceLogs().At(0).Resource().Attributes() + resourceAttrs.PutStr(semconv.AttributeTelemetrySDKLanguage, "java") + resourceAttrs.PutStr(semconv.AttributeTelemetrySDKName, "android") + + scopeLogs := resourceLogs.ScopeLogs().AppendEmpty() + otelLog := scopeLogs.LogRecords().AppendEmpty() + otelLog.SetTraceID(pcommon.TraceID{1}) + otelLog.SetSpanID(pcommon.SpanID{2}) + otelLog.SetSeverityNumber(plog.SeverityNumberInfo) + otelLog.SetSeverityText("Info") + otelLog.SetTimestamp(pcommon.NewTimestampFromTime(time.Unix(1, 0))) + otelLog.Attributes().PutStr("key", "value") + otelLog.Attributes().PutDouble("numeric_key", 1234) + + switch b := body.(type) { + case string: + otelLog.Body().SetStr(b) + case int: + otelLog.Body().SetInt(int64(b)) + case float64: + otelLog.Body().SetDouble(float64(b)) + case bool: + otelLog.Body().SetBool(b) + } + return logs +} + func newOTLPTraceExporter(t testing.TB, srv *apmservertest.Server, options ...otlptracegrpc.Option) *otlptrace.Exporter { options = append(options, otlptracegrpc.WithEndpoint(serverAddr(srv)), otlptracegrpc.WithInsecure()) exporter, err := otlptracegrpc.New(context.Background(), options...) diff --git a/systemtest/tls_test.go b/systemtest/tls_test.go index 17a89bf2072..8289f91e376 100644 --- a/systemtest/tls_test.go +++ b/systemtest/tls_test.go @@ -94,13 +94,9 @@ func TestTLSClientAuth(t *testing.T) { return nil } - err := attemptRequest(t, &tls.Config{ - InsecureSkipVerify: true, - // TODO remove this and update the error message once we bump to go 1.21 - MaxVersion: tls.VersionTLS12, - }) + err := attemptRequest(t, &tls.Config{InsecureSkipVerify: true}) require.Error(t, err) - assert.Regexp(t, "tls: bad certificate", err.Error()) + assert.Regexp(t, "tls: certificate required", err.Error()) logs := srv.Logs.Iterator() defer logs.Close() for entry := range logs.C() { diff --git a/testdata/intake-v3/rum_events.ndjson b/testdata/intake-v3/rum_events.ndjson index 9bca2a7d11c..746f50fa911 100644 --- a/testdata/intake-v3/rum_events.ndjson +++ b/testdata/intake-v3/rum_events.ndjson @@ -1,2 +1,2 @@ {"m": {"se": {"n": "apm-a-rum-test-e2e-general-usecase","ve": "0.0.1","en": "prod","a": {"n": "js-base","ve": "4.8.1"},"ru": {"n": "v8","ve": "8.0"},"la": {"n": "javascript","ve": "6"},"fw": {"n": "angular","ve": "2"}},"u": {"id": 123,"em": "user@email.com","un": "John Doe"},"l": {"testTagKey": "testTagValue"},"n":{"c":{"t":"5G"}}}} -{"x": {"id": "ec2e280be8345240","tid": "286ac3ad697892c406528f13c82e0ce1","pid": "1ef08ac234fca23b455d9e27c660f1ab","n": "general-usecase-initial-p-load","t": "p-load","d": 295,"me": [{"sa": {"xdc": {"v": 1},"xds": {"v": 295},"xbc": {"v": 1}}},{"y": {"t": "Request"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}},{"y": {"t": "Response"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}}],"y": [{"id": "bbd8bcc3be14d814","n": "Requesting and receiving the document","t": "hard-navigation","su": "browser-timing","s": 4,"d": 2},{"id": "fc546e87a90a774f","n": "Parsing the document, executing sy. scripts","t": "hard-navigation","su": "browser-timing","s": 14,"d": 106},{"id": "fb8f717930697299","n": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js","t": "rc","su": "script","s": 22.53499999642372,"d": 35.060000023804605,"c": {"h": {"url": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=REDACTED","r": {"ts": 677175,"ebs": 676864,"dbs": 676864}},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "rc"},"ad": "localhost","po": 8000}}},{"id": "9b80535c4403c9fb","n": "OpenTracing y","t": "cu","s": 96.92999999970198,"d": 198.07000000029802},{"id": "5ecb8ee030749715","n": "GET /test/e2e/common/data.json","t": "external","su": "h","sy": true,"s": 98.94000005442649,"d": 6.72499998472631,"c": {"h": {"mt": "GET","url": "http://localhost:8000/test/e2e/common/data.json?test=hamid","sc": 200},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "external"},"ad": "localhost","po": 8000}}},{"id": "27f45fd274f976d4","n": "POST http://localhost:8003/data","t": "external","su": "h","sy": true,"s": 106.52000003028661,"d": 11.584999971091747,"c": {"h": {"mt": "POST","url": "http://localhost:8003/data","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "a3c043330bc2015e","pi": 0,"n": "POST http://localhost:8003/fetch","t": "external","su": "h","ac": "action","sy": false,"s": 119.93500008247793,"d": 15.949999913573265,"c": {"h": {"mt": "POST","url": "http://localhost:8003/fetch","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "bc7665dc25629379","st": [{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "generateError","li": 7662,"co": 9},{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "","li": 7666,"co": 3}],"n": "Fire \"DOMContentLoaded\" event","t": "hard-navigation","su": "browser-timing","s": 120,"d": 2,"o":"success"}],"c": {"p": {"rf": "http://localhost:8000/test/e2e/","url": "http://localhost:8000/test/e2e/general-usecase/"},"r": {"sc": 200,"ts": 983,"ebs": 690,"dbs": 690,"he": {"Content-Type": "application/json"}},"q": {"he": {"Accept": "application/json"},"hve": "1.1","mt": "GET"},"u": {"id": "uId","un": "un","em": "em"},"cu": {"testContext": "testContext"},"g": {"testTagKey": "testTagValue"}},"k": {"a": {"lp": 131.03000004775822,"fb": 5,"di": 120,"dc": 138,"ds": 100,"de": 110,"fp": 70.82500003930181},"nt": {"fs": 0,"ls": 0,"le": 0,"cs": 0,"ce": 0,"qs": 4,"rs": 5,"re": 6,"dl": 14,"di": 120,"ds": 120,"de": 122,"dc": 138,"es": 138,"ee": 138}},"yc": {"sd": 8,"dd": 1},"sm": true,"exp":{"cls":1,"fid":2.0,"tbt":3.4,"ignored":5,"also":"ignored","lt":{"count":3,"sum":2.5,"max":1}}}} +{"x": {"id": "ec2e280be8345240","tid": "286ac3ad697892c406528f13c82e0ce1","pid": "1ef08ac234fca23b455d9e27c660f1ab","n": "general-usecase-initial-p-load","t": "p-load","d": 295,"me": [{"y": {"t": "Request"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}},{"y": {"t": "Response"},"sa": {"ysc": {"v": 1},"yss": {"v": 1}}}],"y": [{"id": "bbd8bcc3be14d814","n": "Requesting and receiving the document","t": "hard-navigation","su": "browser-timing","s": 4,"d": 2},{"id": "fc546e87a90a774f","n": "Parsing the document, executing sy. scripts","t": "hard-navigation","su": "browser-timing","s": 14,"d": 106},{"id": "fb8f717930697299","n": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js","t": "rc","su": "script","s": 22.53499999642372,"d": 35.060000023804605,"c": {"h": {"url": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=REDACTED","r": {"ts": 677175,"ebs": 676864,"dbs": 676864}},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "rc"},"ad": "localhost","po": 8000}}},{"id": "9b80535c4403c9fb","n": "OpenTracing y","t": "cu","s": 96.92999999970198,"d": 198.07000000029802},{"id": "5ecb8ee030749715","n": "GET /test/e2e/common/data.json","t": "external","su": "h","sy": true,"s": 98.94000005442649,"d": 6.72499998472631,"c": {"h": {"mt": "GET","url": "http://localhost:8000/test/e2e/common/data.json?test=hamid","sc": 200},"dt": {"se": {"n": "http://localhost:8000","rc": "localhost:8000","t": "external"},"ad": "localhost","po": 8000}}},{"id": "27f45fd274f976d4","n": "POST http://localhost:8003/data","t": "external","su": "h","sy": true,"s": 106.52000003028661,"d": 11.584999971091747,"c": {"h": {"mt": "POST","url": "http://localhost:8003/data","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "a3c043330bc2015e","pi": 0,"n": "POST http://localhost:8003/fetch","t": "external","su": "h","ac": "action","sy": false,"s": 119.93500008247793,"d": 15.949999913573265,"c": {"h": {"mt": "POST","url": "http://localhost:8003/fetch","sc": 200},"dt": {"se": {"n": "http://localhost:8003","rc": "localhost:8003","t": "external"},"ad": "localhost","po": 8003}}},{"id": "bc7665dc25629379","st": [{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "generateError","li": 7662,"co": 9},{"ap": "http://localhost:8000/test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","f": "test/e2e/general-usecase/app.e2e-bundle.min.js?token=secret","fn": "","li": 7666,"co": 3}],"n": "Fire \"DOMContentLoaded\" event","t": "hard-navigation","su": "browser-timing","s": 120,"d": 2,"o":"success"}],"c": {"p": {"rf": "http://localhost:8000/test/e2e/","url": "http://localhost:8000/test/e2e/general-usecase/"},"r": {"sc": 200,"ts": 983,"ebs": 690,"dbs": 690,"he": {"Content-Type": "application/json"}},"q": {"he": {"Accept": "application/json"},"hve": "1.1","mt": "GET"},"u": {"id": "uId","un": "un","em": "em"},"cu": {"testContext": "testContext"},"g": {"testTagKey": "testTagValue"}},"k": {"a": {"lp": 131.03000004775822,"fb": 5,"di": 120,"dc": 138,"ds": 100,"de": 110,"fp": 70.82500003930181},"nt": {"fs": 0,"ls": 0,"le": 0,"cs": 0,"ce": 0,"qs": 4,"rs": 5,"re": 6,"dl": 14,"di": 120,"ds": 120,"de": 122,"dc": 138,"es": 138,"ee": 138}},"yc": {"sd": 8,"dd": 1},"sm": true,"exp":{"cls":1,"fid":2.0,"tbt":3.4,"ignored":5,"also":"ignored","lt":{"count":3,"sum":2.5,"max":1}}}} diff --git a/testing/benchmark/system-profiles/16GBx2zone.tfvars b/testing/benchmark/system-profiles/16GBx2zone.tfvars index fe1aff40611..d081604f332 100644 --- a/testing/benchmark/system-profiles/16GBx2zone.tfvars +++ b/testing/benchmark/system-profiles/16GBx2zone.tfvars @@ -3,10 +3,12 @@ user_name = "USER" # The number of AZs the APM Server should span. apm_server_zone_count = 1 # The Elasticsearch cluster node size. -elasticsearch_size = "64g" +elasticsearch_size = "128g" # The number of AZs the Elasticsearch cluster should have. elasticsearch_zone_count = 2 # APM server instance size apm_server_size = "16g" +# Number of shards for the ES indices +apm_shards = 4 # Benchmarks executor size executor -worker_instance_type = "c6i.2xlarge" \ No newline at end of file +worker_instance_type = "c6i.2xlarge" diff --git a/testing/benchmark/system-profiles/32BGx2zone.tfvars b/testing/benchmark/system-profiles/32GBx2zone.tfvars similarity index 68% rename from testing/benchmark/system-profiles/32BGx2zone.tfvars rename to testing/benchmark/system-profiles/32GBx2zone.tfvars index 7be6a4826ad..10a9180257b 100644 --- a/testing/benchmark/system-profiles/32BGx2zone.tfvars +++ b/testing/benchmark/system-profiles/32GBx2zone.tfvars @@ -3,10 +3,14 @@ user_name = "USER" # The number of AZs the APM Server should span. apm_server_zone_count = 1 # The Elasticsearch cluster node size. -elasticsearch_size = "128g" +elasticsearch_size = "256g" # The number of AZs the Elasticsearch cluster should have. elasticsearch_zone_count = 2 +# Run the cluster with a dedicated master +elasticsearch_dedicated_masters = true # APM server instance size apm_server_size = "32g" +# Number of shards for the ES indices +apm_shards = 4 # Benchmarks executor size executor worker_instance_type = "c6i.2xlarge" diff --git a/testing/docker/fleet-server/ca.pem b/testing/docker/fleet-server/ca.pem deleted file mode 100644 index f7c1df6737f..00000000000 --- a/testing/docker/fleet-server/ca.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEuTCCAyGgAwIBAgIQP5xwBoeDe2Fa7GyUeDrLfzANBgkqhkiG9w0BAQsFADB1 -MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExJTAjBgNVBAsMHGFuZHJl -d0Bnb2F0IChBbmRyZXcgV2lsa2lucykxLDAqBgNVBAMMI21rY2VydCBhbmRyZXdA -Z29hdCAoQW5kcmV3IFdpbGtpbnMpMB4XDTIxMDYxMDAyMDEzM1oXDTMxMDYxMDAy -MDEzM1owdTEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMSUwIwYDVQQL -DBxhbmRyZXdAZ29hdCAoQW5kcmV3IFdpbGtpbnMpMSwwKgYDVQQDDCNta2NlcnQg -YW5kcmV3QGdvYXQgKEFuZHJldyBXaWxraW5zKTCCAaIwDQYJKoZIhvcNAQEBBQAD -ggGPADCCAYoCggGBAOaFTfeUzZ7Vgudh6KrfWryPSGXrAhngDOBjRp4tlOhypsW+ -ybUXB49YHmFvnZH6gwUl6WG1ixKVUAMc/jQEePCBsEkeUuqV1U0P734YpAqjuRJf -t9Xf/Efo4OYwBDsOD071V9YADig9lD1qIEFyuXJ99rzPWBFw8tNuA3/Xnxzh9zUa -heL3aQ03V2b8Wkhf7Q3g5btwQt0fhEFo2tTuY4H5iSn/84QvgHAj7pyWvDFMPOo4 -LTnRC0hEtxCbmcviEpN/rbswOuLdTpie+Q4jIPm/WBkOr8ckTRAC7njtXCijxFEY -WywBCZPT40FleeI3h74Md5wnffchZvr6yNN00K6trguTFPBKC4c4XG7NBlHxSIEo -oF2b7y+X4iV9JNoMaYLvi12GYhHddnv8Cr1OdVSVlXqM1DInXk+g4fDeKmZy+Ffv -QwnEtX5CKCCbJC/sJphrRsrgM6tq5uxFA5rxwBk1hmizqkL8jCWKY6LKDvfUXPMF -JHTH+o3a6ewuwPV78QIDAQABo0UwQzAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/ -BAgwBgEB/wIBADAdBgNVHQ4EFgQUxzrrY8H5mamcn5Yx7eKno5atZ8YwDQYJKoZI -hvcNAQELBQADggGBAI1JNxY8KBHNi3yg8sW6jlsMo/lqS0ghSJiPWbLAIE9CpNRJ -lyhKc0J4TQKHKav/PY5AmoEC8pOluncz7jeaCsk5l9vv1iYJp1KU7EQwEsafRMS9 -TupwnJ4GvW2je085RGByNPnEBUfa99g5fF9l0SBLcqYZo2EJeXTzOoUmoOSI45wU -0A2r3X4ucDs5eTw/6mA3GHsm92JDODxZWVRlZ5OQZVhHo6fm2J0Gy+tOslypZiI3 -mV0XhF9MVASLwC7GBsQ2yOt3AXRi7gBzxezhzsrxh2iCxOo3A5FlDp88gXzsgI4m -k5YFhnDAm6aYYIJnjotTVNG6BN9e/YH91vKuNax7h9oaSIjxolMe9TR+tnG7DZ6K -5A18hXi9lnnHXvRJrHuVFBMxaU16lLNM+bh1l00HEs0owG8x713zGY90hq9EW8Js -X/5fO5U4u6C6QBOtV1+U11MyTyM62j+6yWnUaPELWD0R0LmzvnwQCrHWSQ2o+2IY -mhU21Ex5j9nxU4tFuQ== ------END CERTIFICATE----- diff --git a/testing/docker/fleet-server/certificate.pem b/testing/docker/fleet-server/certificate.pem deleted file mode 100644 index 8945714cf0a..00000000000 --- a/testing/docker/fleet-server/certificate.pem +++ /dev/null @@ -1,25 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEOzCCAqOgAwIBAgIQMbTNJXcilk0w4lgVeOqmyjANBgkqhkiG9w0BAQsFADB1 -MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExJTAjBgNVBAsMHGFuZHJl -d0Bnb2F0IChBbmRyZXcgV2lsa2lucykxLDAqBgNVBAMMI21rY2VydCBhbmRyZXdA -Z29hdCAoQW5kcmV3IFdpbGtpbnMpMB4XDTIxMDYxMDAyMDE0NloXDTIzMDkxMDAy -MDE0NlowUDEnMCUGA1UEChMebWtjZXJ0IGRldmVsb3BtZW50IGNlcnRpZmljYXRl -MSUwIwYDVQQLDBxhbmRyZXdAZ29hdCAoQW5kcmV3IFdpbGtpbnMpMIIBIjANBgkq -hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8+ZMTi2V878ZKLVTNbllVGOO8RLzLDMF -oBxK6oOAu4H8B4gIefsmacuruEd58iBbl0mAWPS+ii8YqsfkVAtVvkVXvnNZGObh -XTRfI1ytQ9w2ADobQY08z0uw7wUsv4bk1evoBpWedMomwmCJQ693scNLAfHoOds2 -0yrg0UOiuwZGS6clID1Fn+Aiwit8hwqvEAC3nT5jq9vIxgCQQoyKzmA/prGyUqkp -MvMP4E77Jtm1L0wPffsC0/69J2ZNBfwT2cR0R+5C3sglarIK3QAZFPK90HGFVWOz -GweU1kscL744myuj55wugchSkm3JzDgv1hitngy5fd294q9CGPIQiwIDAQABo2ww -ajAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgw -FoAUxzrrY8H5mamcn5Yx7eKno5atZ8YwIgYDVR0RBBswGYIMZmxlZXQtc2VydmVy -gglsb2NhbGhvc3QwDQYJKoZIhvcNAQELBQADggGBAKKq2OTw4+qpn86dU2njn44/ -DCmQet1UTtgNuLEiM18noaEOChEt/yjBmtgiLWtDBUb5JSz92Qgrk4inKXSg0MuV -RyvVej10A/rkKrS3zLozukEZQAAjNlS5nkRExT/ZAjFUcBQiDYTieSVgN2kKmMQJ -kQteqP+UdcS4KFkJYUz3Iijdmxq3m9NWnGJShUacp5jKv/Bhcw4MMbL5EWr6Wt6t -1qGXY7O96IFSTQtnWcHy2IVUSwom+Fkk3Oy24qWoxVvC0l7jsBLwvhtbMaHO5Adw -ORVRzk0Imk2faC7r8/Lv/el7g558TLPvo99K7YhWkDUYhVGNv3Wf3eT4JszRI4J0 -jHJ31EN+OIWg37gKYKBPqFMtykYjtJChvnPxzncGA1RauT03dIZAc3Y2b65o5MjG -C8FPbsCWWHbHWJA3hGzv5C3klBJpX/OLM56gT5RPBMOLAcIKq802WIahfaQqkSKl -8uOasEBXQYWzQtAj/h8kAicI7z1gcl4PUM6uZimE6A== ------END CERTIFICATE----- diff --git a/testing/docker/fleet-server/key.pem b/testing/docker/fleet-server/key.pem deleted file mode 100644 index 982fad70aa5..00000000000 --- a/testing/docker/fleet-server/key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDz5kxOLZXzvxko -tVM1uWVUY47xEvMsMwWgHErqg4C7gfwHiAh5+yZpy6u4R3nyIFuXSYBY9L6KLxiq -x+RUC1W+RVe+c1kY5uFdNF8jXK1D3DYAOhtBjTzPS7DvBSy/huTV6+gGlZ50yibC -YIlDr3exw0sB8eg52zbTKuDRQ6K7BkZLpyUgPUWf4CLCK3yHCq8QALedPmOr28jG -AJBCjIrOYD+msbJSqSky8w/gTvsm2bUvTA99+wLT/r0nZk0F/BPZxHRH7kLeyCVq -sgrdABkU8r3QcYVVY7MbB5TWSxwvvjibK6PnnC6ByFKSbcnMOC/WGK2eDLl93b3i -r0IY8hCLAgMBAAECggEBANbdMKXCpRKpbDmfnCF9JVZ1qqyYHB/5BuCpbBozJUqK -1YOxBH6pkYqsQahDV5vFg8rAltBHNEC6AsoY9P5RSgUoQ4dlSL2WUD1y8MlPUNiy -e+QxTGewTDz2mnXHIkfMR3Zpr+t1DbYnjIO61dIKF7FDsaWR/hpSE3duk8XnBsoo -oaWoYZY/cUhNT8fhbPbVSf+2ExrIsA228qkUfgasVcf8CNHVtvyxvX73ipuM8CyH -97p9gDL2YpRgVvs2BfQ0fzf54KRXuwcUGlKP+wzsgSoPoBHDJW1hRfTzlnXqKBe1 -V21kIFgW3wshBanX35pOOZxYvEC3u3Z1nf8RFAKov3kCgYEA93hrl5HR5HzEF9UV -gHlNhwVoO4t83tvecUWgbhXtHdvJADPQCriPI4hTbcYCFDtPmULAMS7QdxmcTyMR -kVnx6M8r+tgfEXZyO3T091A6OAPsf+TNfXTHczWMPVrY3btVKFOhzUiLRwBABX0g -tbjfjzoUg+4wEAsBIYOLAc8XIRcCgYEA/E5e3VppjgCEUWMEd2GZV+Olh8sqr7XL -ER19tUlbtg4K9/arAXuZ3ATMeORqViRKULIxdsEcINim1RD3z/c2b5Jur2Oq0Z6c -vLvr7+jO4UExQq5RHPfELBxVQqBrSXKFAsUjrdF4rIGpJSIL7mzckmQuX1LcukVH -g4iSs/ldbK0CgYAS6v++nIUhJHCRKdb09VD5623mb2liWAiPPDVhdQelarHY9B0J -VMaMftVx5Nsv1MDnBHVQzTVehXSvkAy9wdR+aagBCxiE6zscVHqNlXJ96b7goAsd -dhnxMry/y/wcJ0ABTzNlUBBlox1Bzij7+2ALwPLkiwbdkxnJCBdOUhiAjQKBgB1q -ocLbHL1yr/qxOb8VgQRvRUhs1qA/6Noo/xQY5nl2b67zcoKsv4aYhKJ/tyot9wAr -lnrLDxWBTQpAfTQhFZaykvcd/reL76hNnLePBDfdGvo0Sr6+4H9oGkS3YWrh0EI/ -a+aDKreqMmdi7dMxnBHxXjq89YE+PJVIYhpbs5nNAoGAE+XPHxu2d+Mke8MewkwS -fIb0NyPvuDQzBIFGmD9Ycqtyfu1KUESQF2xVZm0UEhRltVjbnGopnng2cYDjyO3V -2q4L0z1vw02wYZ7Unzb7zX4hfa914g8XwkL1xwCowmiTw5p7UJkWRL7Nv/JXyW5t -/o22TWgyQO0gAm1KTFkTqkM= ------END PRIVATE KEY----- diff --git a/testing/docker/kibana/kibana.yml b/testing/docker/kibana/kibana.yml index ac5ec8f7cc7..028463de011 100644 --- a/testing/docker/kibana/kibana.yml +++ b/testing/docker/kibana/kibana.yml @@ -5,18 +5,6 @@ telemetry.enabled: false xpack.security.encryptionKey: fhjskloppd678ehkdfdlliverpoolfcr xpack.encryptedSavedObjects.encryptionKey: fhjskloppd678ehkdfdlliverpoolfcr -xpack.fleet.packages: - - name: fleet_server - version: latest -xpack.fleet.agentPolicies: - - name: Fleet Server (APM) - id: fleet-server-apm - is_default_fleet_server: true - is_managed: false - namespace: default - package_policies: - - name: fleet_server-apm - id: default-fleet-server - package: - name: fleet_server - +# Disable the Fleet agent ID verification pipeline, +# which sets Fleet-specific fields that we don't want. +xpack.fleet.agentIdVerificationEnabled: false diff --git a/testing/infra/k8s/base/kustomization.yaml b/testing/infra/k8s/base/kustomization.yaml index 1af63f9ef56..86967ce0fab 100644 --- a/testing/infra/k8s/base/kustomization.yaml +++ b/testing/infra/k8s/base/kustomization.yaml @@ -1,6 +1,6 @@ resources: - - https://download.elastic.co/downloads/eck/2.4.0/crds.yaml - - https://download.elastic.co/downloads/eck/2.4.0/operator.yaml + - https://download.elastic.co/downloads/eck/2.9.0/crds.yaml + - https://download.elastic.co/downloads/eck/2.9.0/operator.yaml - stack/elasticsearch.yaml - stack/kibana.yaml - stack/apm-server.yaml diff --git a/testing/infra/k8s/base/stack/apm-server.yaml b/testing/infra/k8s/base/stack/apm-server.yaml index 028c522fe26..25d61694ea0 100644 --- a/testing/infra/k8s/base/stack/apm-server.yaml +++ b/testing/infra/k8s/base/stack/apm-server.yaml @@ -3,7 +3,7 @@ kind: ApmServer metadata: name: apm-server spec: - version: 8.11.0-d1486076-SNAPSHOT + version: 8.12.0-7521d760-SNAPSHOT count: 1 http: tls: diff --git a/testing/infra/k8s/base/stack/elasticsearch.yaml b/testing/infra/k8s/base/stack/elasticsearch.yaml index f3641ea143a..a9bbf2cee2c 100644 --- a/testing/infra/k8s/base/stack/elasticsearch.yaml +++ b/testing/infra/k8s/base/stack/elasticsearch.yaml @@ -3,7 +3,7 @@ kind: Elasticsearch metadata: name: elasticsearch spec: - version: 8.11.0-d1486076-SNAPSHOT + version: 8.12.0-7521d760-SNAPSHOT auth: fileRealm: - secretName: elasticsearch-admin diff --git a/testing/infra/k8s/base/stack/kibana.yaml b/testing/infra/k8s/base/stack/kibana.yaml index a512b3e80a7..054b634c1a4 100644 --- a/testing/infra/k8s/base/stack/kibana.yaml +++ b/testing/infra/k8s/base/stack/kibana.yaml @@ -3,7 +3,7 @@ kind: Kibana metadata: name: kibana spec: - version: 8.11.0-d1486076-SNAPSHOT + version: 8.12.0-7521d760-SNAPSHOT count: 1 elasticsearchRef: name: elasticsearch @@ -44,40 +44,5 @@ spec: version: latest - name: elastic_agent version: latest - - name: fleet_server - version: latest - name: kubernetes version: latest - xpack.fleet.agentPolicies: - - name: Fleet Server on ECK policy - id: eck-fleet-server - is_default_fleet_server: true - namespace: default - monitoring_enabled: - - logs - - metrics - unenroll_timeout: 900 - package_policies: - - name: fleet_server-1 - id: fleet_server-1 - package: - name: fleet_server - - name: APM Server on ECK policy - id: eck-apm-server - namespace: default - monitoring_enabled: - - logs - - metrics - unenroll_timeout: 900 - is_default: true - package_policies: - - name: apm - id: apm-1 - package: - name: apm - inputs: - - type: apm - enabled: true - vars: - - name: host - value: :8200 diff --git a/testing/smoke/lib.sh b/testing/smoke/lib.sh index 4da7470267f..0fe19a2d731 100644 --- a/testing/smoke/lib.sh +++ b/testing/smoke/lib.sh @@ -265,12 +265,12 @@ legacy_assert_ilm() { local ILM_HOT_PHASE_MAX_SIZE=$(echo ${ILM_HOT_PHASE} | jq -r '.actions.rollover.max_size') local ILM_HOT_PHASE_MAX_AGE=$(echo ${ILM_HOT_PHASE} | jq -r '.actions.rollover.max_age') if [[ "${ILM_HOT_PHASE_MAX_SIZE}" != "${EXPECTED_MAX_SIZE}" ]]; then - echo "-> Invalid ILM policy ${LEGACY_ILM_POLICY}; expected hot phase max_size ${EXPECTED_MAX_SIZE} got ${ILM_HOT_PHASE_MAX_SIZE}" + echo "-> Invalid ILM policy \"${LEGACY_ILM_POLICY}\"; expected hot phase \"max_age\" ${EXPECTED_MAX_SIZE} got ${ILM_HOT_PHASE_MAX_SIZE}" echo "${ILM_HOT_PHASE}" SUCCESS=false fi if [[ "${ILM_HOT_PHASE_MAX_AGE}" != "${EXPECTED_MAX_AGE}" ]]; then - echo "-> Invalid ILM policy ${LEGACY_ILM_POLICY}; expected hot phase max_size ${EXPECTED_MAX_AGE} got ${ILM_HOT_PHASE_MAX_AGE}" + echo "-> Invalid ILM policy \"${LEGACY_ILM_POLICY}\"; expected hot phase \"max_age\" ${EXPECTED_MAX_AGE} got ${ILM_HOT_PHASE_MAX_AGE}" echo "${ILM_HOT_PHASE}" SUCCESS=false fi diff --git a/tools/go.mod b/tools/go.mod index 9d6e30bef9a..4420589b94f 100644 --- a/tools/go.mod +++ b/tools/go.mod @@ -1,10 +1,12 @@ module github.com/elastic/apm-server/tools -go 1.20 +go 1.21.0 + +toolchain go1.21.3 require ( github.com/elastic/apm-tools v0.0.0-20230828065051-3f799314cc8b - github.com/elastic/elastic-package v0.85.0 + github.com/elastic/elastic-package v0.88.0 github.com/elastic/go-licenser v0.4.1 github.com/elastic/gobench v0.0.0-20220608141032-f30bc57e329c github.com/goreleaser/nfpm/v2 v2.29.0 @@ -13,8 +15,8 @@ require ( github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c github.com/terraform-docs/terraform-docs v0.16.0 go.elastic.co/go-licence-detector v0.5.0 - gotest.tools/gotestsum v1.10.1 - honnef.co/go/tools v0.4.3 + gotest.tools/gotestsum v1.11.0 + honnef.co/go/tools v0.4.6 ) require ( @@ -33,7 +35,7 @@ require ( github.com/AlecAivazis/survey/v2 v2.3.7 // indirect github.com/AlekSi/pointer v1.2.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect - github.com/BurntSushi/toml v1.2.1 // indirect + github.com/BurntSushi/toml v1.3.2 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver v1.5.0 // indirect @@ -44,9 +46,9 @@ require ( github.com/PaesslerAG/gval v1.2.1 // indirect github.com/PaesslerAG/jsonpath v0.1.1 // indirect github.com/Pallinder/go-randomdata v1.2.0 // indirect - github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 // indirect + github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f // indirect - github.com/ProtonMail/gopenpgp/v2 v2.7.2 // indirect + github.com/ProtonMail/gopenpgp/v2 v2.7.3 // indirect github.com/acomagu/bufpipe v1.0.4 // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/akavel/rsrc v0.10.2 // indirect @@ -54,14 +56,16 @@ require ( github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect github.com/aymerick/raymond v2.0.2+incompatible // indirect + github.com/bitfield/gotestdox v0.2.1 // indirect github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb // indirect github.com/bradleyfalzon/ghinstallation/v2 v2.1.0 // indirect github.com/cavaliergopher/cpio v1.0.1 // indirect + github.com/cbroglie/mustache v1.4.0 // indirect github.com/chai2010/gettext-go v1.0.2 // indirect github.com/cloudflare/circl v1.3.3 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/creasty/defaults v1.7.0 // indirect - github.com/cyphar/filepath-securejoin v0.2.3 // indirect + github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/dnephin/pflag v1.0.7 // indirect github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 // indirect @@ -73,34 +77,35 @@ require ( github.com/elastic/go-resource v0.1.1 // indirect github.com/elastic/go-ucfg v0.8.6 // indirect github.com/elastic/gojsonschema v1.2.1 // indirect - github.com/elastic/package-spec/v2 v2.10.0 // indirect + github.com/elastic/kbncontent v0.1.1 // indirect + github.com/elastic/package-spec/v2 v2.13.0 // indirect github.com/emicklei/go-restful/v3 v3.10.1 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/evanphx/json-patch v5.6.0+incompatible // indirect - github.com/evanphx/json-patch/v5 v5.6.0 // indirect + github.com/evanphx/json-patch/v5 v5.7.0 // indirect github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect github.com/fatih/color v1.15.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-errors/errors v1.4.2 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect - github.com/go-git/go-billy/v5 v5.4.1 // indirect - github.com/go-git/go-git/v5 v5.8.1 // indirect - github.com/go-logr/logr v1.2.3 // indirect + github.com/go-git/go-billy/v5 v5.5.0 // indirect + github.com/go-git/go-git/v5 v5.9.0 // indirect + github.com/go-logr/logr v1.2.4 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-openapi/errors v0.20.3 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect - github.com/go-openapi/jsonreference v0.20.1 // indirect + github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/strfmt v0.21.3 // indirect github.com/go-openapi/swag v0.22.3 // indirect github.com/gobuffalo/here v0.6.7 // indirect github.com/gobwas/glob v0.2.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v4 v4.4.2 // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.1.2 // indirect - github.com/google/gnostic v0.6.9 // indirect + github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-cmp v0.5.9 // indirect github.com/google/go-github/v32 v32.1.0 // indirect github.com/google/go-github/v39 v39.2.0 // indirect @@ -109,7 +114,7 @@ require ( github.com/google/gofuzz v1.2.0 // indirect github.com/google/licenseclassifier v0.0.0-20220907210658-23923d047d0e // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect - github.com/google/uuid v1.3.0 // indirect + github.com/google/uuid v1.3.1 // indirect github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect github.com/googleapis/gax-go/v2 v2.7.1 // indirect github.com/goreleaser/chglog v0.4.2 // indirect @@ -150,7 +155,7 @@ require ( github.com/mailru/easyjson v0.7.7 // indirect github.com/markbates/pkger v0.17.1 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.17 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mattn/go-shellwords v1.0.12 // indirect github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect @@ -162,7 +167,7 @@ require ( github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/spdystream v0.2.0 // indirect - github.com/moby/term v0.0.0-20221205130635-1aeaba878587 // indirect + github.com/moby/term v0.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect @@ -188,7 +193,7 @@ require ( github.com/rivo/uniseg v0.4.3 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sergi/go-diff v1.2.0 // indirect - github.com/shirou/gopsutil/v3 v3.23.7 // indirect + github.com/shirou/gopsutil/v3 v3.23.8 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/shopspring/decimal v1.3.1 // indirect github.com/skeema/knownhosts v1.2.0 // indirect @@ -198,15 +203,15 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.15.0 // indirect - github.com/stretchr/testify v1.8.4 // indirect + github.com/stretchr/objx v0.5.1 // indirect github.com/subosito/gotenv v1.4.2 // indirect github.com/terraform-docs/terraform-config-inspect v0.0.0-20210728164355-9c1f178932fa // indirect github.com/tidwall/gjson v1.14.4 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect github.com/tidwall/sjson v1.2.5 // indirect - github.com/tklauser/go-sysconf v0.3.11 // indirect - github.com/tklauser/numcpus v0.6.0 // indirect + github.com/tklauser/go-sysconf v0.3.12 // indirect + github.com/tklauser/numcpus v0.6.1 // indirect github.com/ulikunitz/xz v0.5.11 // indirect github.com/vvakame/sdlog v0.0.0-20200409072131-7c0d359efddc // indirect github.com/xanzy/go-gitlab v0.73.1 // indirect @@ -214,52 +219,54 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect - github.com/xlab/treeprint v1.1.0 // indirect + github.com/xlab/treeprint v1.2.0 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect github.com/zclconf/go-cty v1.11.0 // indirect gitlab.com/digitalxero/go-conventional-commit v1.0.7 // indirect go.mongodb.org/mongo-driver v1.11.1 // indirect go.opencensus.io v0.24.0 // indirect - go.starlark.net v0.0.0-20221205180719-3fd0dac74452 // indirect + go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect golang.org/x/build v0.0.0-20220908145327-656fd833c864 // indirect - golang.org/x/crypto v0.12.0 // indirect + golang.org/x/crypto v0.14.0 // indirect golang.org/x/exp/typeparams v0.0.0-20221208152030-732eee02a75a // indirect golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.14.0 // indirect - golang.org/x/oauth2 v0.7.0 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/oauth2 v0.8.0 // indirect golang.org/x/sync v0.3.0 // indirect - golang.org/x/sys v0.11.0 // indirect - golang.org/x/term v0.11.0 // indirect - golang.org/x/text v0.12.0 // indirect + golang.org/x/sys v0.13.0 // indirect + golang.org/x/term v0.13.0 // indirect + golang.org/x/text v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.12.0 // indirect + golang.org/x/tools v0.13.0 // indirect golang.org/x/tools/go/vcs v0.1.0-deprecated // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/api v0.114.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect - google.golang.org/grpc v1.56.2 // indirect + google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect + google.golang.org/grpc v1.56.3 // indirect google.golang.org/protobuf v1.30.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - helm.sh/helm/v3 v3.12.2 // indirect - k8s.io/api v0.27.4 // indirect - k8s.io/apiextensions-apiserver v0.27.2 // indirect - k8s.io/apimachinery v0.27.4 // indirect - k8s.io/cli-runtime v0.27.4 // indirect - k8s.io/client-go v0.27.4 // indirect - k8s.io/component-base v0.27.2 // indirect - k8s.io/klog/v2 v2.90.1 // indirect - k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect - k8s.io/kubectl v0.27.2 // indirect - k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect + helm.sh/helm/v3 v3.13.0 // indirect + k8s.io/api v0.28.2 // indirect + k8s.io/apiextensions-apiserver v0.28.2 // indirect + k8s.io/apimachinery v0.28.2 // indirect + k8s.io/cli-runtime v0.28.2 // indirect + k8s.io/client-go v0.28.2 // indirect + k8s.io/component-base v0.28.2 // indirect + k8s.io/klog/v2 v2.100.1 // indirect + k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect + k8s.io/kubectl v0.28.2 // indirect + k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 // indirect mvdan.cc/xurls/v2 v2.4.0 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/kustomize/api v0.13.2 // indirect - sigs.k8s.io/kustomize/kyaml v0.14.1 // indirect + sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 // indirect + sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect ) diff --git a/tools/go.sum b/tools/go.sum index b4d5db322c6..263ea84e67b 100644 --- a/tools/go.sum +++ b/tools/go.sum @@ -38,6 +38,7 @@ cloud.google.com/go/datastore v1.11.0 h1:iF6I/HaLs3Ado8uRKMvZRvF/ZLkWaWE9i8AiHzb cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= +cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -58,10 +59,11 @@ github.com/AlekSi/pointer v1.2.0/go.mod h1:gZGfd3dpW4vEc/UlyfKKi1roIqcCgwOIvb0tS github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= -github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= +github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= +github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= @@ -82,7 +84,6 @@ github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migc github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s= github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PaesslerAG/gval v1.0.0/go.mod h1:y/nm5yEyTeX6av0OfKJNp9rBNj2XrGhAf5+v24IBN1I= github.com/PaesslerAG/gval v1.2.1 h1:Ggwtej1xCyt1994VuDCSjycybIDo3duDCDghK/xc/A0= github.com/PaesslerAG/gval v1.2.1/go.mod h1:XRFLwvmkTEdYziLdaCeCa5ImcGVrfQbeNUbVR+C6xac= @@ -91,12 +92,13 @@ github.com/PaesslerAG/jsonpath v0.1.1 h1:c1/AToHQMVsduPAa4Vh6xp2U0evy4t8SWp8imEs github.com/PaesslerAG/jsonpath v0.1.1/go.mod h1:lVboNxFGal/VwW6d9JzIy56bUsYAP6tH/x80vjnCseY= github.com/Pallinder/go-randomdata v1.2.0 h1:DZ41wBchNRb/0GfsePLiSwb0PHZmT67XY00lCDlaYPg= github.com/Pallinder/go-randomdata v1.2.0/go.mod h1:yHmJgulpD2Nfrm0cR9tI/+oAgRqCQQixsA8HyRZfV9Y= -github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 h1:KLq8BE0KwCL+mmXnjLWEAOYO+2l2AE4YMmqG1ZpZHBs= github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg= +github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f h1:tCbYj7/299ekTTXpdwKYF8eBlsYsDVoggDAuAjoK66k= github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f/go.mod h1:gcr0kNtGBqin9zDW9GOHcVntrwnjrK+qdJ06mWYBybw= -github.com/ProtonMail/gopenpgp/v2 v2.7.2 h1:mIwxSUPezxNYq0RA5106VPWyKC+Ly3FvBUnBJh/7GWw= -github.com/ProtonMail/gopenpgp/v2 v2.7.2/go.mod h1:IhkNEDaxec6NyzSI0PlxapinnwPVIESk8/76da3Ct3g= +github.com/ProtonMail/gopenpgp/v2 v2.7.3 h1:AJu1OI/1UWVYZl6QcCLKGu9OTngS2r52618uGlje84I= +github.com/ProtonMail/gopenpgp/v2 v2.7.3/go.mod h1:IhkNEDaxec6NyzSI0PlxapinnwPVIESk8/76da3Ct3g= github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= @@ -109,6 +111,7 @@ github.com/andybalholm/brotli v1.0.1/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= +github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk= @@ -118,12 +121,15 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ= github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/aymerick/raymond v2.0.2+incompatible h1:VEp3GpgdAnv9B2GFyTvqgcKvY+mfKMjPOA3SbKLtnU0= github.com/aymerick/raymond v2.0.2+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bitfield/gotestdox v0.2.1 h1:Zj8IMLAO5/oiAKoMmtN96eyFiPZraJRTH2p0zDgtxc0= +github.com/bitfield/gotestdox v0.2.1/go.mod h1:D+gwtS0urjBrzguAkTM2wodsTQYFHdpx8eqRJ3N+9pY= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb h1:m935MPodAbYS46DG4pJSv7WO+VECIWUQ7OJYSoTrMh4= github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb/go.mod h1:PkYb9DJNAwrSvRx5DYA+gUcOIgTGVMNkfSCbZM8cWpI= @@ -131,15 +137,16 @@ github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdn github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bradleyfalzon/ghinstallation/v2 v2.1.0 h1:5+NghM1Zred9Z078QEZtm28G/kfDfZN/92gkDlLwGVA= github.com/bradleyfalzon/ghinstallation/v2 v2.1.0/go.mod h1:Xg3xPRN5Mcq6GDqeUVhFbjEWMb4JHCyWEeeBGEYQoTU= -github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/caarlos0/go-rpmutils v0.2.1-0.20211112020245-2cd62ff89b11 h1:IRrDwVlWQr6kS1U8/EtyA1+EHcc4yl8pndcqXWrEamg= +github.com/caarlos0/go-rpmutils v0.2.1-0.20211112020245-2cd62ff89b11/go.mod h1:je2KZ+LxaCNvCoKg32jtOIULcFogJKcL1ZWUaIBjKj0= github.com/caarlos0/testfs v0.4.4 h1:3PHvzHi5Lt+g332CiShwS8ogTgS3HjrmzZxCm6JCDr8= github.com/caarlos0/testfs v0.4.4/go.mod h1:bRN55zgG4XCUVVHZCeU+/Tz1Q6AxEJOEJTliBy+1DMk= github.com/cavaliergopher/cpio v1.0.1 h1:KQFSeKmZhv0cr+kawA3a0xTQCU4QxXF1vhU7P7av2KM= github.com/cavaliergopher/cpio v1.0.1/go.mod h1:pBdaqQjnvXxdS/6CvNDwIANIFSP0xRKI16PX4xejRQc= +github.com/cbroglie/mustache v1.4.0 h1:Azg0dVhxTml5me+7PsZ7WPrQq1Gkf3WApcHMjMprYoU= +github.com/cbroglie/mustache v1.4.0/go.mod h1:SS1FTIghy0sjse4DUVGV1k/40B1qE1XkD9DtDsHo9iM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= @@ -151,7 +158,6 @@ github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUK github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= @@ -160,17 +166,17 @@ github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46t github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.17/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/creasty/defaults v1.7.0 h1:eNdqZvc5B509z18lD8yc212CAqJNvfT1Jq6L8WowdBA= github.com/creasty/defaults v1.7.0/go.mod h1:iGzKe6pbEHnpMPtfDXZEr0NVxWnPTjb1bbDy08fPzYM= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= -github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI= -github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= +github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= +github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dnephin/pflag v1.0.7 h1:oxONGlWxhmUct0YzKTgrpQv9AUA1wtPBn7zuSjJqptk= github.com/dnephin/pflag v1.0.7/go.mod h1:uxE91IoWURlOiTUIA8Mq5ZZkAv3dPUfZNaT80Zm7OQE= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 h1:iFaUwBSo5Svw6L7HYpRu/0lE3e0BaElwnNO1qkNQxBY= github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5/go.mod h1:qssHWj60/X5sZFNxpG4HBPDHVqxNm4DfnCKgrbZOT+s= github.com/dsnet/golib v0.0.0-20171103203638-1ea166775780/go.mod h1:Lj+Z9rebOhdfkVLjJ8T6VcRQv3SXugXy999NBtR9aFY= @@ -180,8 +186,8 @@ github.com/elastic/apm-tools v0.0.0-20230828065051-3f799314cc8b h1:47VFNMVQQt7WT github.com/elastic/apm-tools v0.0.0-20230828065051-3f799314cc8b/go.mod h1:IUMdGldUOSqfeXSj+zIjYaBX6WFM7M95WU2VdmZ5ZyE= github.com/elastic/elastic-integration-corpus-generator-tool v0.5.0 h1:Me2T3/O4nASmdjmfaKYaiJaGq8zVhasjfZi3il5p/gs= github.com/elastic/elastic-integration-corpus-generator-tool v0.5.0/go.mod h1:uf9N86y+UACGybdEhZLpwZ93XHWVhsYZAA4c2T2v6YM= -github.com/elastic/elastic-package v0.85.0 h1:CEkscnwrfbKOh9iTFkd6H0db4OU4+Ex+e7aKXStlDT0= -github.com/elastic/elastic-package v0.85.0/go.mod h1:6qeSI5sdJVNAftPZRYlrbFTVbfcTCTeStlqAL3BrMDA= +github.com/elastic/elastic-package v0.88.0 h1:mZVrf8Rzjslj05EAWk+k9TgmTuZCM0tBLIjsqRi8xVk= +github.com/elastic/elastic-package v0.88.0/go.mod h1:h/mpD65Vt8suyoVAHhXvTqrsbo9J24q2StMXh7QtULc= github.com/elastic/elastic-transport-go/v8 v8.3.0 h1:DJGxovyQLXGr62e9nDMPSxRyWION0Bh6d9eCFBriiHo= github.com/elastic/elastic-transport-go/v8 v8.3.0/go.mod h1:87Tcz8IVNe6rVSLdBux1o/PEItLtyabHU3naC7IoqKI= github.com/elastic/go-elasticsearch/v7 v7.17.10 h1:TCQ8i4PmIJuBunvBS6bwT2ybzVFxxUhhltAs3Gyu1yo= @@ -198,9 +204,12 @@ github.com/elastic/gobench v0.0.0-20220608141032-f30bc57e329c h1:XpeNAhmK96gUBNz github.com/elastic/gobench v0.0.0-20220608141032-f30bc57e329c/go.mod h1:dOGaaPOq2escJjXVSeyTxpJnOhLtpvaTc9C3LEHVMks= github.com/elastic/gojsonschema v1.2.1 h1:cUMbgsz0wyEB4x7xf3zUEvUVDl6WCz2RKcQPul8OsQc= github.com/elastic/gojsonschema v1.2.1/go.mod h1:biw5eBS2Z4T02wjATMRSfecfjCmwaDPvuaqf844gLrg= -github.com/elastic/package-spec/v2 v2.10.0 h1:p/T/xgue/7eJW3drXqaZ/Zsjbrc2hT2w652OJ7jEmmY= -github.com/elastic/package-spec/v2 v2.10.0/go.mod h1:iQ/8tKtmsIUI9zXM2x2punKb77fSX1FPcChDr8zXPR8= -github.com/elazarl/goproxy v0.0.0-20221015165544-a0805db90819 h1:RIB4cRk+lBqKK3Oy0r2gRX4ui7tuhiZq2SuTtTCi0/0= +github.com/elastic/kbncontent v0.1.1 h1:X6ZXKPTW3MwFZPLMZcPAbpUIsKQhFImhBGKOd83+UFo= +github.com/elastic/kbncontent v0.1.1/go.mod h1:kOPREITK9gSJsiw/WKe7QWSO+PRiZMyEFQCw+CMLAHI= +github.com/elastic/package-spec/v2 v2.13.0 h1:loZ0xZOzsobV4LIQZphavRY/CPMKJK463psSUGjZBxg= +github.com/elastic/package-spec/v2 v2.13.0/go.mod h1:OcEnGWmL05XtMAb8qJweiVaePwMb2GQhFFpiYFTgzcc= +github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= +github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ= github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= @@ -211,41 +220,42 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= -github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= +github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0nW9SYGc= +github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f h1:Wl78ApPPB2Wvf/TIe2xdyJxTlb6obmF18d8QdkxNDu4= github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f/go.mod h1:OSYXu++VVOHnXeitef/D8n/6y4QV8uLHSFXX4NeXMGc= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= -github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= +github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= -github.com/go-git/go-billy/v5 v5.4.1 h1:Uwp5tDRkPr+l/TnbHOQzp+tmJfLceOlbVucgpTz8ix4= -github.com/go-git/go-billy/v5 v5.4.1/go.mod h1:vjbugF6Fz7JIflbVpl1hJsGjSHNltrSw45YK/ukIvQg= +github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= +github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20230305113008-0c11038e723f h1:Pz0DHeFij3XFhoBRGUDPzSJ+w2UcK5/0JvF8DRI58r8= -github.com/go-git/go-git/v5 v5.8.1 h1:Zo79E4p7TRk0xoRgMq0RShiTHGKcKI4+DI6BfJc/Q+A= -github.com/go-git/go-git/v5 v5.8.1/go.mod h1:FHFuoD6yGz5OSKEBK+aWN9Oah0q54Jxl0abmj6GnqAo= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20230305113008-0c11038e723f/go.mod h1:8LHG1a3SRW71ettAD/jW13h8c6AqjVSeL11RAdgaqpo= +github.com/go-git/go-git/v5 v5.9.0 h1:cD9SFA7sHVRdJ7AYck1ZaAa/yeuBvGPxwXDL8cxrObY= +github.com/go-git/go-git/v5 v5.9.0/go.mod h1:RKIqga24sWdMGZF+1Ekv9kylsDz6LzdTSI2s/OsZWE0= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-openapi/errors v0.20.2/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= @@ -253,13 +263,14 @@ github.com/go-openapi/errors v0.20.3 h1:rz6kiC84sqNQoqrtulzaL/VERgkoCyB6WdEkc2uj github.com/go-openapi/errors v0.20.3/go.mod h1:Z3FlZ4I8jEGxjUK+bugx3on2mIAk4txuAOhlsB1FSgk= github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= -github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8= -github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= github.com/go-openapi/strfmt v0.21.3 h1:xwhj5X6CjXEZZHMWy1zKJxvW9AfHC9pkyUjLvHtKG7o= github.com/go-openapi/strfmt v0.21.3/go.mod h1:k+RzNO0Da+k3FrrynSNN8F7n/peCmQQqbbXjtDfvmGg= github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/go-test/deep v1.0.4 h1:u2CU3YKy9I2pmu9pX0eq50wCgjfGIt539SqR7FbHiho= github.com/go-test/deep v1.0.4/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= @@ -272,8 +283,8 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.4.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs= -github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -316,8 +327,8 @@ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Z github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= -github.com/google/gnostic v0.6.9 h1:ZK/5VhkoX835RikCHpSUJV9a+S3e1zLh59YnyWeBW+0= -github.com/google/gnostic v0.6.9/go.mod h1:Nm8234We1lq6iB9OmlgNv3nH91XLLVZHCDayfA3xq+E= +github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -365,6 +376,7 @@ github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= @@ -372,8 +384,8 @@ github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3 github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= +github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= @@ -469,7 +481,6 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOl github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jedib0t/go-pretty v4.3.0+incompatible h1:CGs8AVhEKg/n9YbUenWmNStRW2PHJzaeDodcfvRAbIo= github.com/jedib0t/go-pretty v4.3.0+incompatible/go.mod h1:XemHduiw8R651AF9Pt4FwCTKeG3oo7hrHJAoznj9nag= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.6.0 h1:h5jfMVslIg6l29nsMs0D8Wj17RDVdNYti0vDN/PZZoE= github.com/jhump/protoreflect v1.6.0/go.mod h1:eaTn3RZAmMBcV0fifFvlm6VHNz3wSkYyXYWUh7ymB74= github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8l6qbCUTSiRLG/iKnW3K3/QfPPuSsBt4= @@ -505,7 +516,6 @@ github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -548,8 +558,9 @@ github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcME github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= @@ -589,8 +600,8 @@ github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zx github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= -github.com/moby/term v0.0.0-20221205130635-1aeaba878587 h1:HfkjXDfhgVaN5rmueG8cL8KKeFNecRCXFhaJ2qZ5SKA= -github.com/moby/term v0.0.0-20221205130635-1aeaba878587/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -622,9 +633,12 @@ github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= -github.com/onsi/ginkgo/v2 v2.9.1 h1:zie5Ly042PD3bsCvsSOPvRnFwyo3rKe64TJlD6nu0mk= -github.com/onsi/gomega v1.27.4 h1:Z2AnStgsdSayCMDiCU42qIz+HLqEPcgiOCXjAU/w+8E= +github.com/onsi/ginkgo/v2 v2.9.4 h1:xR7vG4IXt5RWx6FfIjyAtsoMAtnc3C/rFXBBd2AjZwE= +github.com/onsi/ginkgo/v2 v2.9.4/go.mod h1:gCQYp2Q+kSoIj7ykSVb9nskRSsR6PUj4AiLywzIhbKM= +github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= +github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= github.com/otiai10/copy v1.12.0 h1:cLMgSQnXBs1eehF0Wy/FAGsgDTDmAqFR7rQylBb1nDY= +github.com/otiai10/copy v1.12.0/go.mod h1:rSaLseMUsZFFbsFGc7wCJnnkTAvdc5L6VWxPE4308Ww= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= @@ -675,8 +689,8 @@ github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAm github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/shirou/gopsutil/v3 v3.23.7 h1:C+fHO8hfIppoJ1WdsVm1RoI0RwXoNdfTK7yWXV0wVj4= -github.com/shirou/gopsutil/v3 v3.23.7/go.mod h1:c4gnmoRC0hQuaLqvxnx1//VXQ0Ms/X9UnJF8pddY5z4= +github.com/shirou/gopsutil/v3 v3.23.8 h1:xnATPiybo6GgdRoC4YoGnxXZFRc3dqQTGi73oLvvBrE= +github.com/shirou/gopsutil/v3 v3.23.8/go.mod h1:7hmCaBn+2ZwaZOr6jmPBZDfawwMGuo1id3C6aM8EDqQ= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= @@ -690,9 +704,10 @@ github.com/skeema/knownhosts v1.2.0 h1:h9r9cf0+u7wSE+M183ZtMGgOJKiL96brpaz5ekfJC github.com/skeema/knownhosts v1.2.0/go.mod h1:g4fPeYpque7P0xefxtGzV81ihjC8sX2IqpAoNkjxbMo= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N3yZFZkDFs= +github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM= github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= @@ -711,11 +726,11 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/spf13/viper v1.15.0 h1:js3yy885G8xwJa6iOISGFwd+qlUo5AvyXb7CiihdtiU= github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jHOQLA= -github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.1 h1:4VhoImhV/Bm0ToFkXFi8hXNXwpDRZ/ynw3amt82mzq0= +github.com/stretchr/objx v0.5.1/go.mod h1:/iHQpkQwBD6DLUmQ4pE+s1TXdob1mORJ4/UFdrifcy0= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.3.1-0.20190311161405-34c6fa2dc709/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -727,6 +742,7 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= @@ -748,10 +764,10 @@ github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= -github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM= -github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= -github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms= -github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.9/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= @@ -773,11 +789,10 @@ github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMc github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= -github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo= github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos= -github.com/xlab/treeprint v1.1.0 h1:G/1DjNkPpfZCFt9CSh6b5/nY4VimlbHF3Rh4obvtzDk= -github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= +github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= +github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -785,7 +800,6 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= @@ -814,9 +828,8 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.starlark.net v0.0.0-20221205180719-3fd0dac74452 h1:JZtNuL6LPB+scU5yaQ6hqRlJFRiddZm2FwRt2AQqtHA= -go.starlark.net v0.0.0-20221205180719-3fd0dac74452/go.mod h1:kIVgS18CjmEC3PqMd5kaJSGEifyV/CeB9x506ZJ1Vbk= +go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY= +go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= @@ -839,8 +852,9 @@ golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= -golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -881,6 +895,7 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -923,14 +938,15 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= -golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -943,8 +959,8 @@ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g= -golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= +golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= +golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -956,7 +972,6 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= @@ -1018,7 +1033,6 @@ golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211102192858-4dd72447c267/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1031,17 +1045,21 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= -golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= +golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1054,8 +1072,10 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1115,11 +1135,11 @@ golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= -golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.12.0 h1:YW6HUoUmYBpwSgyaGaZq1fHjrBjX1rlpZ54T6mu2kss= -golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= +golang.org/x/tools v0.11.0/go.mod h1:anzJrxPjNtfgiYQYirP2CPGzGLxrH2u2QBhn6Bf3qY8= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools/go/vcs v0.1.0-deprecated h1:cOIJqWBl99H1dH5LWizPa+0ImeeJq3t3cJjaeOWUAL4= golang.org/x/tools/go/vcs v0.1.0-deprecated/go.mod h1:zUrvATBAvEI9535oC0yWYsLsHIV4Z7g63sNPVMtuBy8= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1204,9 +1224,12 @@ google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= -google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= +google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 h1:9NWlQfY2ePejTmfwUH1OWwmznFa+0kKcHGPDvcPza9M= +google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= +google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 h1:m8v1xLLLzMe1m5P+gCTF8nJB9epwZQUBERm20Oy1poQ= +google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -1228,9 +1251,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.56.2 h1:fVRFRnXvU+x6C4IlHZewvJOVHoOv1TUuQyoRsYnB4bI= -google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= +google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1243,7 +1265,6 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1271,16 +1292,15 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools/gotestsum v1.10.1 h1:TOV5xZVd5HDscBLSrPXpc4/MQm6QQr/YSI9iDC62d7E= -gotest.tools/gotestsum v1.10.1/go.mod h1:6JHCiN6TEjA7Kaz23q1bH0e2Dc3YJjDUZ0DmctFZf+w= +gotest.tools/gotestsum v1.11.0 h1:A88/QWw7acMjZH1dMe6KZFhw32odUOIjCiAU/Q4n3mI= +gotest.tools/gotestsum v1.11.0/go.mod h1:cUOKgFEvWAP0twchmiOvdzX0SBZX0UI58bGRpRIu4xs= gotest.tools/v3 v3.3.0 h1:MfDY1b1/0xN1CyMlQDac0ziEy9zJQd9CXBRRDHw2jJo= gotest.tools/v3 v3.3.0/go.mod h1:Mcr9QNxkg0uMvy/YElmo4SpXgJKWgQvYrT7Kw5RzJ1A= -helm.sh/helm/v3 v3.12.2 h1:kFyDBr/mgJUlyGzVTCieG4wW0zmo7fcNRWK0+FKkxqU= -helm.sh/helm/v3 v3.12.2/go.mod h1:v1PMayudIfZAvec3Wp4wAErensvK/rv5fu/xCiE6t3I= +helm.sh/helm/v3 v3.13.0 h1:XPJKIU30K4JTQ6VX/6e0hFAmEIonYa8E7wx5aqv4xOc= +helm.sh/helm/v3 v3.13.0/go.mod h1:2PBEKsMWKLVZTojUOqMS3Eadv5mP43FBWrRgLNkNm9Y= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1289,28 +1309,28 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.2.0/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY= -honnef.co/go/tools v0.4.3 h1:o/n5/K5gXqk8Gozvs2cnL0F2S1/g1vcGCAx2vETjITw= -honnef.co/go/tools v0.4.3/go.mod h1:36ZgoUOrqOk1GxwHhyryEkq8FQWkUO2xGuSMhUCcdvA= -k8s.io/api v0.27.4 h1:0pCo/AN9hONazBKlNUdhQymmnfLRbSZjd5H5H3f0bSs= -k8s.io/api v0.27.4/go.mod h1:O3smaaX15NfxjzILfiln1D8Z3+gEYpjEpiNA/1EVK1Y= -k8s.io/apiextensions-apiserver v0.27.2 h1:iwhyoeS4xj9Y7v8YExhUwbVuBhMr3Q4bd/laClBV6Bo= -k8s.io/apiextensions-apiserver v0.27.2/go.mod h1:Oz9UdvGguL3ULgRdY9QMUzL2RZImotgxvGjdWRq6ZXQ= -k8s.io/apimachinery v0.27.4 h1:CdxflD4AF61yewuid0fLl6bM4a3q04jWel0IlP+aYjs= -k8s.io/apimachinery v0.27.4/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= -k8s.io/cli-runtime v0.27.4 h1:Zb0eci+58eHZNnoHhjRFc7W88s8dlG12VtIl3Nv2Hto= -k8s.io/cli-runtime v0.27.4/go.mod h1:k9Z1xiZq2xNplQmehpDquLgc+rE+pubpO1cK4al4Mlw= -k8s.io/client-go v0.27.4 h1:vj2YTtSJ6J4KxaC88P4pMPEQECWMY8gqPqsTgUKzvjk= -k8s.io/client-go v0.27.4/go.mod h1:ragcly7lUlN0SRPk5/ZkGnDjPknzb37TICq07WhI6Xc= -k8s.io/component-base v0.27.2 h1:neju+7s/r5O4x4/txeUONNTS9r1HsPbyoPBAtHsDCpo= -k8s.io/component-base v0.27.2/go.mod h1:5UPk7EjfgrfgRIuDBFtsEFAe4DAvP3U+M8RTzoSJkpo= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= -k8s.io/kubectl v0.27.2 h1:sSBM2j94MHBFRWfHIWtEXWCicViQzZsb177rNsKBhZg= -k8s.io/kubectl v0.27.2/go.mod h1:GCOODtxPcrjh+EC611MqREkU8RjYBh10ldQCQ6zpFKw= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 h1:kmDqav+P+/5e1i9tFfHq1qcF3sOrDp+YEkVDAHu7Jwk= -k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +honnef.co/go/tools v0.4.6 h1:oFEHCKeID7to/3autwsWfnuv69j3NsfcXbvJKuIcep8= +honnef.co/go/tools v0.4.6/go.mod h1:+rnGS1THNh8zMwnd2oVOTL9QF6vmfyG6ZXBULae2uc0= +k8s.io/api v0.28.2 h1:9mpl5mOb6vXZvqbQmankOfPIGiudghwCoLl1EYfUZbw= +k8s.io/api v0.28.2/go.mod h1:RVnJBsjU8tcMq7C3iaRSGMeaKt2TWEUXcpIt/90fjEg= +k8s.io/apiextensions-apiserver v0.28.2 h1:J6/QRWIKV2/HwBhHRVITMLYoypCoPY1ftigDM0Kn+QU= +k8s.io/apiextensions-apiserver v0.28.2/go.mod h1:5tnkxLGa9nefefYzWuAlWZ7RZYuN/765Au8cWLA6SRg= +k8s.io/apimachinery v0.28.2 h1:KCOJLrc6gu+wV1BYgwik4AF4vXOlVJPdiqn0yAWWwXQ= +k8s.io/apimachinery v0.28.2/go.mod h1:RdzF87y/ngqk9H4z3EL2Rppv5jj95vGS/HaFXrLDApU= +k8s.io/cli-runtime v0.28.2 h1:64meB2fDj10/ThIMEJLO29a1oujSm0GQmKzh1RtA/uk= +k8s.io/cli-runtime v0.28.2/go.mod h1:bTpGOvpdsPtDKoyfG4EG041WIyFZLV9qq4rPlkyYfDA= +k8s.io/client-go v0.28.2 h1:DNoYI1vGq0slMBN/SWKMZMw0Rq+0EQW6/AK4v9+3VeY= +k8s.io/client-go v0.28.2/go.mod h1:sMkApowspLuc7omj1FOSUxSoqjr+d5Q0Yc0LOFnYFJY= +k8s.io/component-base v0.28.2 h1:Yc1yU+6AQSlpJZyvehm/NkJBII72rzlEsd6MkBQ+G0E= +k8s.io/component-base v0.28.2/go.mod h1:4IuQPQviQCg3du4si8GpMrhAIegxpsgPngPRR/zWpzc= +k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= +k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 h1:LyMgNKD2P8Wn1iAwQU5OhxCKlKJy0sHc+PcDwFB24dQ= +k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9/go.mod h1:wZK2AVp1uHCp4VamDVgBP2COHZjqD1T68Rf0CM3YjSM= +k8s.io/kubectl v0.28.2 h1:fOWOtU6S0smdNjG1PB9WFbqEIMlkzU5ahyHkc7ESHgM= +k8s.io/kubectl v0.28.2/go.mod h1:6EQWTPySF1fn7yKoQZHYf9TPwIl2AygHEcJoxFekr64= +k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk= +k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= mvdan.cc/xurls/v2 v2.3.0/go.mod h1:AjuTy7gEiUArFMjgBBDU4SMxlfUYsRokpJQgNWOt3e4= mvdan.cc/xurls/v2 v2.4.0 h1:tzxjVAj+wSBmDcF6zBB7/myTy3gX9xvi8Tyr28AuQgc= mvdan.cc/xurls/v2 v2.4.0/go.mod h1:+GEjq9uNjqs8LQfM9nVnM8rff0OQ5Iash5rzX+N1CSg= @@ -1319,10 +1339,10 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/kustomize/api v0.13.2 h1:kejWfLeJhUsTGioDoFNJET5LQe/ajzXhJGYoU+pJsiA= -sigs.k8s.io/kustomize/api v0.13.2/go.mod h1:DUp325VVMFVcQSq+ZxyDisA8wtldwHxLZbr1g94UHsw= -sigs.k8s.io/kustomize/kyaml v0.14.1 h1:c8iibius7l24G2wVAGZn/Va2wNys03GXLjYVIcFVxKA= -sigs.k8s.io/kustomize/kyaml v0.14.1/go.mod h1:AN1/IpawKilWD7V+YvQwRGUvuUOOWpjsHu6uHwonSF4= +sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 h1:XX3Ajgzov2RKUdc5jW3t5jwY7Bo7dcRm+tFxT+NfgY0= +sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3/go.mod h1:9n16EZKMhXBNSiUC5kSdFQJkdH3zbxS/JoO619G1VAY= +sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 h1:W6cLQc5pnqM7vh3b7HvGNfXrJ/xL6BDMS0v1V/HHg5U= +sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3/go.mod h1:JWP1Fj0VWGHyw3YUPjXSQnRnrwezrZSrApfX5S0nIag= sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= diff --git a/tools/notice/dependencies.csv.tmpl b/tools/notice/dependencies.csv.tmpl index b7e346054a4..9595bc11d19 100644 --- a/tools/notice/dependencies.csv.tmpl +++ b/tools/notice/dependencies.csv.tmpl @@ -5,4 +5,4 @@ {{- end -}} name,url,version,revision,license,sourceURL{{ template "depInfo" .Direct }}{{ template "depInfo" .Indirect }} -Red Hat Universal Base Image minimal,https://catalog.redhat.com/software/containers/ubi8/ubi-minimal/5c359a62bed8bd75a2c3fba8,8,,Custom;https://www.redhat.com/licenses/EULA_Red_Hat_Universal_Base_Image_English_20190422.pdf,https://oss-dependencies.elastic.co/red-hat-universal-base-image-minimal/8/ubi-minimal-8-source.tar.gz +Red Hat Universal Base Image minimal,https://catalog.redhat.com/software/containers/ubi9/ubi-minimal/615bd9b4075b022acc111bf5,9,,Custom;https://www.redhat.com/licenses/EULA_Red_Hat_Universal_Base_Image_English_20190422.pdf,https://oss-dependencies.elastic.co/red-hat-universal-base-image-minimal/9/ubi-minimal-9-source.tar.gz diff --git a/x-pack/apm-server/aggregation.go b/x-pack/apm-server/aggregation.go index 71c70e96359..856d4d7449b 100644 --- a/x-pack/apm-server/aggregation.go +++ b/x-pack/apm-server/aggregation.go @@ -2,8 +2,6 @@ // or more contributor license agreements. Licensed under the Elastic License 2.0; // you may not use this file except in compliance with the Elastic License 2.0. -//go:build !386 - package main import ( diff --git a/x-pack/apm-server/aggregation_386.go b/x-pack/apm-server/aggregation_386.go deleted file mode 100644 index 64b954846c2..00000000000 --- a/x-pack/apm-server/aggregation_386.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one -// or more contributor license agreements. Licensed under the Elastic License 2.0; -// you may not use this file except in compliance with the Elastic License 2.0. - -package main - -import "github.com/elastic/apm-server/internal/beater" - -func newAggregationProcessors(args beater.ServerParams) ([]namedProcessor, error) { - return nil, nil -} diff --git a/x-pack/apm-server/sampling/groups.go b/x-pack/apm-server/sampling/groups.go index f399b331f9a..c852ffa36d3 100644 --- a/x-pack/apm-server/sampling/groups.go +++ b/x-pack/apm-server/sampling/groups.go @@ -211,7 +211,7 @@ func (g *traceGroup) finalizeSampledTraces(traceIDs []string, ingestRateDecayFac g.ingestRate *= 1 - ingestRateDecayFactor g.ingestRate += ingestRateDecayFactor * float64(g.total) } - desiredTotal := int(math.Round(g.samplingFraction * float64(g.total))) + desiredTotal := int(math.Ceil(g.samplingFraction * float64(g.total))) g.total = 0 for n := g.reservoir.Len(); n > desiredTotal; n-- { @@ -224,7 +224,7 @@ func (g *traceGroup) finalizeSampledTraces(traceIDs []string, ingestRateDecayFac // Resize the reservoir, so that it can hold the desired fraction of // the observed ingest rate. - newReservoirSize := int(math.Round(g.samplingFraction * g.ingestRate)) + newReservoirSize := int(math.Ceil(g.samplingFraction * g.ingestRate)) if newReservoirSize < minReservoirSize { newReservoirSize = minReservoirSize } diff --git a/x-pack/apm-server/sampling/groups_test.go b/x-pack/apm-server/sampling/groups_test.go index 446bdf54c03..10fa7e87322 100644 --- a/x-pack/apm-server/sampling/groups_test.go +++ b/x-pack/apm-server/sampling/groups_test.go @@ -155,13 +155,14 @@ func TestTraceGroupReservoirResize(t *testing.T) { 3500, // 0.2 * (0.25*10000 + 0.75*20000) 3875, // 0.2 * (0.25*17500 + 0.75*20000) 3969, // etc. - 3992, - 3998, + 3993, + 3999, 4000, 4000, } { sendTransactions(20000) - assert.Len(t, groups.finalizeSampledTraces(nil), expected, fmt.Sprintf("iteration %d", i)) + traces := groups.finalizeSampledTraces(nil) + assert.Len(t, traces, expected, "iteration %d expected len %d actual len %d", i, expected, len(traces)) } } diff --git a/x-pack/apm-server/sampling/processor_test.go b/x-pack/apm-server/sampling/processor_test.go index 5df33f19f77..097ab10f849 100644 --- a/x-pack/apm-server/sampling/processor_test.go +++ b/x-pack/apm-server/sampling/processor_test.go @@ -156,123 +156,138 @@ func TestProcessAlreadyTailSampled(t *testing.T) { } func TestProcessLocalTailSampling(t *testing.T) { - config := newTempdirConfig(t) - config.Policies = []sampling.Policy{{SampleRate: 0.5}} - config.FlushInterval = 10 * time.Millisecond - published := make(chan string) - config.Elasticsearch = pubsubtest.Client(pubsubtest.PublisherChan(published), nil) - - processor, err := sampling.NewProcessor(config) - require.NoError(t, err) - - trace1 := modelpb.Trace{Id: "0102030405060708090a0b0c0d0e0f10"} - trace2 := modelpb.Trace{Id: "0102030405060708090a0b0c0d0e0f11"} - trace1Events := modelpb.Batch{{ - Trace: &trace1, - Event: &modelpb.Event{Duration: uint64(123 * time.Millisecond)}, - Transaction: &modelpb.Transaction{ - Type: "type", - Id: "0102030405060708", - Sampled: true, - }, - }, { - Trace: &trace1, - Event: &modelpb.Event{Duration: uint64(123 * time.Millisecond)}, - Span: &modelpb.Span{ - Type: "type", - Id: "0102030405060709", + for _, tc := range []struct { + sampleRate float64 + }{ + { + sampleRate: 0.5, }, - }} - trace2Events := modelpb.Batch{{ - Trace: &trace2, - Event: &modelpb.Event{Duration: uint64(456 * time.Millisecond)}, - Transaction: &modelpb.Transaction{ - Type: "type", - Id: "0102030405060710", - Sampled: true, + { + // With 2 traces and 0.1 sample rate, ensure that we report 1 trace instead of 0 trace. + sampleRate: 0.1, }, - }, { - Trace: &trace2, - Event: &modelpb.Event{Duration: uint64(456 * time.Millisecond)}, - Span: &modelpb.Span{ - Type: "type", - Id: "0102030405060711", - }, - }} - - in := append(trace1Events[:], trace2Events...) - err = processor.ProcessBatch(context.Background(), &in) - require.NoError(t, err) - assert.Empty(t, in) - - // Start periodic tail-sampling. We start the processor after processing - // events to ensure all events are processed before any local sampling - // decisions are made, such that we have a single tail-sampling decision - // to check. - go processor.Run() - defer processor.Stop(context.Background()) - - // We have configured 50% tail-sampling, so we expect a single trace ID - // to be published. Sampling is non-deterministic (weighted random), so - // we can't anticipate a specific trace ID. + } { + t.Run(fmt.Sprintf("%f", tc.sampleRate), func(t *testing.T) { + config := newTempdirConfig(t) + config.Policies = []sampling.Policy{{SampleRate: tc.sampleRate}} + config.FlushInterval = 10 * time.Millisecond + published := make(chan string) + config.Elasticsearch = pubsubtest.Client(pubsubtest.PublisherChan(published), nil) + + processor, err := sampling.NewProcessor(config) + require.NoError(t, err) - var sampledTraceID string - select { - case sampledTraceID = <-published: - case <-time.After(10 * time.Second): - t.Fatal("timed out waiting for publication") - } - select { - case <-published: - t.Fatal("unexpected publication") - case <-time.After(50 * time.Millisecond): - } + trace1 := modelpb.Trace{Id: "0102030405060708090a0b0c0d0e0f10"} + trace2 := modelpb.Trace{Id: "0102030405060708090a0b0c0d0e0f11"} + trace1Events := modelpb.Batch{{ + Trace: &trace1, + Event: &modelpb.Event{Duration: uint64(123 * time.Millisecond)}, + Transaction: &modelpb.Transaction{ + Type: "type", + Id: "0102030405060708", + Sampled: true, + }, + }, { + Trace: &trace1, + Event: &modelpb.Event{Duration: uint64(123 * time.Millisecond)}, + Span: &modelpb.Span{ + Type: "type", + Id: "0102030405060709", + }, + }} + trace2Events := modelpb.Batch{{ + Trace: &trace2, + Event: &modelpb.Event{Duration: uint64(456 * time.Millisecond)}, + Transaction: &modelpb.Transaction{ + Type: "type", + Id: "0102030405060710", + Sampled: true, + }, + }, { + Trace: &trace2, + Event: &modelpb.Event{Duration: uint64(456 * time.Millisecond)}, + Span: &modelpb.Span{ + Type: "type", + Id: "0102030405060711", + }, + }} - unsampledTraceID := trace2.Id - sampledTraceEvents := trace1Events - unsampledTraceEvents := trace2Events - if sampledTraceID == trace2.Id { - unsampledTraceID = trace1.Id - unsampledTraceEvents = trace1Events - sampledTraceEvents = trace2Events - } + in := append(trace1Events[:], trace2Events...) + err = processor.ProcessBatch(context.Background(), &in) + require.NoError(t, err) + assert.Empty(t, in) + + // Start periodic tail-sampling. We start the processor after processing + // events to ensure all events are processed before any local sampling + // decisions are made, such that we have a single tail-sampling decision + // to check. + go processor.Run() + defer processor.Stop(context.Background()) + + // We have configured 50% tail-sampling, so we expect a single trace ID + // to be published. Sampling is non-deterministic (weighted random), so + // we can't anticipate a specific trace ID. + + var sampledTraceID string + select { + case sampledTraceID = <-published: + case <-time.After(10 * time.Second): + t.Fatal("timed out waiting for publication") + } + select { + case <-published: + t.Fatal("unexpected publication") + case <-time.After(50 * time.Millisecond): + } - expectedMonitoring := monitoring.MakeFlatSnapshot() - expectedMonitoring.Ints["sampling.events.processed"] = 4 - expectedMonitoring.Ints["sampling.events.stored"] = 4 - expectedMonitoring.Ints["sampling.events.sampled"] = 2 - expectedMonitoring.Ints["sampling.events.head_unsampled"] = 0 - expectedMonitoring.Ints["sampling.events.dropped"] = 0 - expectedMonitoring.Ints["sampling.events.failed_writes"] = 0 - assertMonitoring(t, processor, expectedMonitoring, `sampling.events.*`) + unsampledTraceID := trace2.Id + sampledTraceEvents := trace1Events + unsampledTraceEvents := trace2Events + if sampledTraceID == trace2.Id { + unsampledTraceID = trace1.Id + unsampledTraceEvents = trace1Events + sampledTraceEvents = trace2Events + } - // Stop the processor and flush global storage so we can access the database. - assert.NoError(t, processor.Stop(context.Background())) - assert.NoError(t, config.Storage.Flush(0)) - storage := eventstorage.New(config.DB, eventstorage.ProtobufCodec{}) - reader := storage.NewReadWriter() - defer reader.Close() + expectedMonitoring := monitoring.MakeFlatSnapshot() + expectedMonitoring.Ints["sampling.events.processed"] = 4 + expectedMonitoring.Ints["sampling.events.stored"] = 4 + expectedMonitoring.Ints["sampling.events.sampled"] = 2 + expectedMonitoring.Ints["sampling.events.head_unsampled"] = 0 + expectedMonitoring.Ints["sampling.events.dropped"] = 0 + expectedMonitoring.Ints["sampling.events.failed_writes"] = 0 + assertMonitoring(t, processor, expectedMonitoring, `sampling.events.*`) + + // Stop the processor and flush global storage so we can access the database. + assert.NoError(t, processor.Stop(context.Background())) + assert.NoError(t, config.Storage.Flush(0)) + storage := eventstorage.New(config.DB, eventstorage.ProtobufCodec{}) + reader := storage.NewReadWriter() + defer reader.Close() + + sampled, err := reader.IsTraceSampled(sampledTraceID) + assert.NoError(t, err) + assert.True(t, sampled) - sampled, err := reader.IsTraceSampled(sampledTraceID) - assert.NoError(t, err) - assert.True(t, sampled) + sampled, err = reader.IsTraceSampled(unsampledTraceID) + assert.Equal(t, eventstorage.ErrNotFound, err) + assert.False(t, sampled) - sampled, err = reader.IsTraceSampled(unsampledTraceID) - assert.Equal(t, eventstorage.ErrNotFound, err) - assert.False(t, sampled) + var batch modelpb.Batch + err = reader.ReadTraceEvents(sampledTraceID, &batch) + assert.NoError(t, err) + assert.Empty(t, cmp.Diff(sampledTraceEvents, batch, protocmp.Transform())) - var batch modelpb.Batch - err = reader.ReadTraceEvents(sampledTraceID, &batch) - assert.NoError(t, err) - assert.Empty(t, cmp.Diff(sampledTraceEvents, batch, protocmp.Transform())) + // Even though the trace is unsampled, the events will be + // available in storage until the TTL expires, as they're + // written there first. + batch = batch[:0] + err = reader.ReadTraceEvents(unsampledTraceID, &batch) + assert.NoError(t, err) + assert.Empty(t, cmp.Diff(unsampledTraceEvents, batch, protocmp.Transform())) + }) + } - // Even though the trace is unsampled, the events will be - // available in storage until the TTL expires, as they're - // written there first. - batch = batch[:0] - err = reader.ReadTraceEvents(unsampledTraceID, &batch) - assert.NoError(t, err) - assert.Empty(t, cmp.Diff(unsampledTraceEvents, batch, protocmp.Transform())) } func TestProcessLocalTailSamplingUnsampled(t *testing.T) {