From 50b4ade7d0f2ec626c2af98a39fc784c506a9ef9 Mon Sep 17 00:00:00 2001 From: Jeffrey Chien Date: Thu, 21 Sep 2023 13:37:39 -0400 Subject: [PATCH 1/4] Prevent aggregate dimension duplicates. (#856) --- plugins/outputs/cloudwatch/cloudwatch.go | 46 ++-- plugins/outputs/cloudwatch/cloudwatch_test.go | 224 ++++++++---------- 2 files changed, 125 insertions(+), 145 deletions(-) diff --git a/plugins/outputs/cloudwatch/cloudwatch.go b/plugins/outputs/cloudwatch/cloudwatch.go index c180abe81f..f4d14cdb74 100644 --- a/plugins/outputs/cloudwatch/cloudwatch.go +++ b/plugins/outputs/cloudwatch/cloudwatch.go @@ -22,6 +22,7 @@ import ( "go.opentelemetry.io/collector/consumer" "go.opentelemetry.io/collector/exporter" "go.opentelemetry.io/collector/pdata/pmetric" + "golang.org/x/exp/maps" configaws "github.com/aws/amazon-cloudwatch-agent/cfg/aws" "github.com/aws/amazon-cloudwatch-agent/handlers" @@ -502,51 +503,62 @@ func BuildDimensions(tagMap map[string]string) []*cloudwatch.Dimension { return dimensions } -func (c *CloudWatch) ProcessRollup(rawDimension []*cloudwatch.Dimension) [][]*cloudwatch.Dimension { +// ProcessRollup creates the dimension sets based on the dimensions available in the original metric. +func (c *CloudWatch) ProcessRollup(rawDimensions []*cloudwatch.Dimension) [][]*cloudwatch.Dimension { rawDimensionMap := map[string]string{} - for _, v := range rawDimension { + for _, v := range rawDimensions { rawDimensionMap[*v.Name] = *v.Value } targetDimensionsList := c.config.RollupDimensions - fullDimensionsList := [][]*cloudwatch.Dimension{rawDimension} + fullDimensionsList := [][]*cloudwatch.Dimension{rawDimensions} for _, targetDimensions := range targetDimensionsList { - i := 0 + // skip if target dimensions count is same or more than the original metric. + // cannot have dimensions that do not exist in the original metric. + if len(targetDimensions) >= len(rawDimensions) { + continue + } + count := 0 extraDimensions := make([]*cloudwatch.Dimension, len(targetDimensions)) for _, targetDimensionKey := range targetDimensions { if val, ok := rawDimensionMap[targetDimensionKey]; !ok { break } else { - extraDimensions[i] = &cloudwatch.Dimension{ + extraDimensions[count] = &cloudwatch.Dimension{ Name: aws.String(targetDimensionKey), Value: aws.String(val), } } - i += 1 + count++ } - if i == len(targetDimensions) && !reflect.DeepEqual(rawDimension, extraDimensions) { + if count == len(targetDimensions) { fullDimensionsList = append(fullDimensionsList, extraDimensions) } } return fullDimensionsList } +// GetUniqueRollupList filters out duplicate dimensions within the sets and filters +// duplicate sets. func GetUniqueRollupList(inputLists [][]string) [][]string { - uniqueLists := [][]string{} - if len(inputLists) > 0 { - uniqueLists = append(uniqueLists, inputLists[0]) - } + var uniqueSets []collections.Set[string] for _, inputList := range inputLists { + inputSet := collections.NewSet(inputList...) count := 0 - for _, u := range uniqueLists { - if reflect.DeepEqual(inputList, u) { + for _, uniqueSet := range uniqueSets { + if reflect.DeepEqual(inputSet, uniqueSet) { break } - count += 1 - if count == len(uniqueLists) { - uniqueLists = append(uniqueLists, inputList) - } + count++ + } + if count == len(uniqueSets) { + uniqueSets = append(uniqueSets, inputSet) } } + uniqueLists := make([][]string, len(uniqueSets)) + for i, uniqueSet := range uniqueSets { + uniqueLists[i] = maps.Keys(uniqueSet) + sort.Strings(uniqueLists[i]) + } log.Printf("I! cloudwatch: get unique roll up list %v", uniqueLists) return uniqueLists } diff --git a/plugins/outputs/cloudwatch/cloudwatch_test.go b/plugins/outputs/cloudwatch/cloudwatch_test.go index 3bf121e496..7e74dc7fae 100644 --- a/plugins/outputs/cloudwatch/cloudwatch_test.go +++ b/plugins/outputs/cloudwatch/cloudwatch_test.go @@ -100,10 +100,10 @@ func TestProcessRollup(t *testing.T) { publisher.NewNonBlockingFifoQueue(10), 10, 2*time.Second, - cw.WriteToCloudWatch) - cw.config.RollupDimensions = [][]string{{"d1", "d2"}, {"d1"}, {}, {"d4"}} + cw.WriteToCloudWatch, + ) - rawDimension := []*cloudwatch.Dimension{ + testRawDimensions := []*cloudwatch.Dimension{ { Name: aws.String("d1"), Value: aws.String("v1"), @@ -118,122 +118,74 @@ func TestProcessRollup(t *testing.T) { }, } - actualDimensionList := cw.ProcessRollup(rawDimension) - expectedDimensionList := [][]*cloudwatch.Dimension{ - { - { - Name: aws.String("d1"), - Value: aws.String("v1"), - }, - { - Name: aws.String("d2"), - Value: aws.String("v2"), - }, - { - Name: aws.String("d3"), - Value: aws.String("v3"), + testCases := map[string]struct { + rollupDimensions [][]string + rawDimensions []*cloudwatch.Dimension + want [][]*cloudwatch.Dimension + }{ + "WithSimpleRollup": { + rollupDimensions: [][]string{{"d1", "d2"}, {"d1"}, {}, {"d4"}}, + rawDimensions: testRawDimensions, + want: [][]*cloudwatch.Dimension{ + testRawDimensions, + { + { + Name: aws.String("d1"), + Value: aws.String("v1"), + }, + { + Name: aws.String("d2"), + Value: aws.String("v2"), + }, + }, + { + { + Name: aws.String("d1"), + Value: aws.String("v1"), + }, + }, + {}, }, }, - { - { - Name: aws.String("d1"), - Value: aws.String("v1"), - }, - { - Name: aws.String("d2"), - Value: aws.String("v2"), - }, + "WithNoRollupConfig": { + rollupDimensions: [][]string{}, + rawDimensions: testRawDimensions, + want: [][]*cloudwatch.Dimension{testRawDimensions}, }, - { - { - Name: aws.String("d1"), - Value: aws.String("v1"), - }, + "WithNoRawDimensions": { + rollupDimensions: [][]string{{"d1", "d2"}, {"d1"}, {}}, + rawDimensions: []*cloudwatch.Dimension{}, + want: [][]*cloudwatch.Dimension{{}}, }, - {}, - } - assert.EqualValues(t, expectedDimensionList, actualDimensionList, "Unexpected dimension roll up list") - - cw.config.RollupDimensions = [][]string{} - rawDimension = []*cloudwatch.Dimension{ - { - Name: aws.String("d1"), - Value: aws.String("v1"), + "WithDuplicate/SameOrder": { + rollupDimensions: [][]string{{"d1", "d2", "d3"}}, + rawDimensions: testRawDimensions, + want: [][]*cloudwatch.Dimension{testRawDimensions}, }, - { - Name: aws.String("d2"), - Value: aws.String("v2"), + "WithDuplicate/DifferentOrder": { + rollupDimensions: [][]string{{"d2", "d1", "d3"}}, + rawDimensions: testRawDimensions, + want: [][]*cloudwatch.Dimension{testRawDimensions}, }, - { - Name: aws.String("d3"), - Value: aws.String("v3"), + "WithSameLength/DifferentNames": { + rollupDimensions: [][]string{{"d1", "d3", "d4"}}, + rawDimensions: testRawDimensions, + want: [][]*cloudwatch.Dimension{testRawDimensions}, }, - } - - actualDimensionList = cw.ProcessRollup(rawDimension) - expectedDimensionList = [][]*cloudwatch.Dimension{ - { - { - Name: aws.String("d1"), - Value: aws.String("v1"), - }, - { - Name: aws.String("d2"), - Value: aws.String("v2"), - }, - { - Name: aws.String("d3"), - Value: aws.String("v3"), - }, + "WithExtraDimensions": { + rollupDimensions: [][]string{{"d1", "d2", "d3", "d4"}}, + rawDimensions: testRawDimensions, + want: [][]*cloudwatch.Dimension{testRawDimensions}, }, } - assert.EqualValues(t, expectedDimensionList, actualDimensionList, "Unexpected dimension roll up list without rollup setting") - - cw.config.RollupDimensions = [][]string{{"d1", "d2"}, {"d1"}, {}} - rawDimension = []*cloudwatch.Dimension{} - - actualDimensionList = cw.ProcessRollup(rawDimension) - expectedDimensionList = [][]*cloudwatch.Dimension{ - {}, - } - assert.EqualValues(t, expectedDimensionList, actualDimensionList, "Unexpected dimension roll up list with no raw dimensions") - - cw.config.RollupDimensions = [][]string{{"d1", "d2", "d3"}} - rawDimension = []*cloudwatch.Dimension{ - { - Name: aws.String("d1"), - Value: aws.String("v1"), - }, - { - Name: aws.String("d2"), - Value: aws.String("v2"), - }, - { - Name: aws.String("d3"), - Value: aws.String("v3"), - }, - } - - actualDimensionList = cw.ProcessRollup(rawDimension) - expectedDimensionList = [][]*cloudwatch.Dimension{ - { - { - Name: aws.String("d1"), - Value: aws.String("v1"), - }, - { - Name: aws.String("d2"), - Value: aws.String("v2"), - }, - { - Name: aws.String("d3"), - Value: aws.String("v3"), - }, - }, + for name, testCase := range testCases { + t.Run(name, func(t *testing.T) { + cw.config.RollupDimensions = testCase.rollupDimensions + got := cw.ProcessRollup(testCase.rawDimensions) + assert.EqualValues(t, testCase.want, got, "Unexpected dimension roll up list") + }) } - assert.EqualValues(t, expectedDimensionList, actualDimensionList, - "Unexpected dimension roll up list with duplicate roll up") - cw.Shutdown(context.Background()) + assert.NoError(t, cw.Shutdown(context.Background())) } func TestBuildMetricDatumDropUnsupported(t *testing.T) { @@ -258,25 +210,41 @@ func TestBuildMetricDatumDropUnsupported(t *testing.T) { } func TestGetUniqueRollupList(t *testing.T) { - inputLists := [][]string{{"d1"}, {"d1"}, {"d2"}, {"d1"}} - actualLists := GetUniqueRollupList(inputLists) - expectedLists := [][]string{{"d1"}, {"d2"}} - assert.EqualValues(t, expectedLists, actualLists, "Duplicate list showed up") - - inputLists = [][]string{{"d1", "d2", ""}} - actualLists = GetUniqueRollupList(inputLists) - expectedLists = [][]string{{"d1", "d2", ""}} - assert.EqualValues(t, expectedLists, actualLists, "Unique list should be same with input list") - - inputLists = [][]string{{}, {}} - actualLists = GetUniqueRollupList(inputLists) - expectedLists = [][]string{{}} - assert.EqualValues(t, expectedLists, actualLists, "Unique list failed on empty list") - - inputLists = [][]string{} - actualLists = GetUniqueRollupList(inputLists) - expectedLists = [][]string{} - assert.EqualValues(t, expectedLists, actualLists, "Unique list result should be empty") + testCases := map[string]struct { + input [][]string + want [][]string + }{ + "WithEmpty": { + input: [][]string{}, + want: [][]string{}, + }, + "WithSimple": { + input: [][]string{{"d1", "d2", ""}}, + want: [][]string{{"", "d1", "d2"}}, + }, + "WithDuplicates/NoDimension": { + input: [][]string{{}, {}}, + want: [][]string{{}}, + }, + "WithDuplicates/SingleDimension": { + input: [][]string{{"d1"}, {"d1"}, {"d2"}, {"d1"}}, + want: [][]string{{"d1"}, {"d2"}}, + }, + "WithDuplicates/DifferentOrder": { + input: [][]string{{"d2", "d1", "d3"}, {"d3", "d1", "d2"}, {"d3", "d2", "d1"}}, + want: [][]string{{"d1", "d2", "d3"}}, + }, + "WithDuplicates/WithinSets": { + input: [][]string{{"d1", "d1", "d2"}, {"d1", "d1"}, {"d2", "d1"}, {"d1"}}, + want: [][]string{{"d1", "d2"}, {"d1"}}, + }, + } + for name, testCase := range testCases { + t.Run(name, func(t *testing.T) { + got := GetUniqueRollupList(testCase.input) + assert.EqualValues(t, testCase.want, got) + }) + } } func TestIsDropping(t *testing.T) { From 0efed4920a71a4589dbe4f92cc0a9c8fc84ea85e Mon Sep 17 00:00:00 2001 From: Jeffrey Chien Date: Thu, 21 Sep 2023 13:38:13 -0400 Subject: [PATCH 2/4] Replace stanza package to include concurrent decode bug fix. (#857) --- .github/workflows/otel-fork-replace.yml | 2 ++ go.mod | 2 ++ go.sum | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/otel-fork-replace.yml b/.github/workflows/otel-fork-replace.yml index 34a5360094..1ace1c6315 100644 --- a/.github/workflows/otel-fork-replace.yml +++ b/.github/workflows/otel-fork-replace.yml @@ -64,6 +64,8 @@ jobs: go mod tidy go mod edit -replace github.com/amazon-contributing/opentelemetry-collector-contrib/override/aws=github.com/amazon-contributing/opentelemetry-collector-contrib/override/aws@${{ steps.get-latest-commit.outputs.sha }} go mod tidy + go mod edit -replace github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza=github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza@${{ steps.get-latest-commit.outputs.sha }} + go mod tidy git commit -am "Update OTel fork components to https://github.com/amazon-contributing/opentelemetry-collector-contrib/commit/${{ steps.get-latest-commit.outputs.sha }}" git push -u origin HEAD git config --global --unset user.name diff --git a/go.mod b/go.mod index 93a280b568..5a8d262b09 100644 --- a/go.mod +++ b/go.mod @@ -21,6 +21,8 @@ replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/c // Replace with contrib to revert upstream change https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/20519 replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus => github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/translator/prometheus v0.0.0-20230906164155-ced73ba61d63 +replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza => github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza v0.0.0-20230906164155-ced73ba61d63 + replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver => github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.0.0-20230906164155-ced73ba61d63 replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil => github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/awsutil v0.0.0-20230906164155-ced73ba61d63 diff --git a/go.sum b/go.sum index 5e259db74f..4c9fe83c63 100644 --- a/go.sum +++ b/go.sum @@ -161,6 +161,8 @@ github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/xray github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/xray v0.0.0-20230906164155-ced73ba61d63/go.mod h1:6Vwl/+yXrD21CtE1emsNFeaAW0cq5GbY+HlXaILADh4= github.com/amazon-contributing/opentelemetry-collector-contrib/override/aws v0.0.0-20230906164155-ced73ba61d63 h1:fcaOqpQRygoR24gQMXtowm3OHKCuiySr590OHii30oA= github.com/amazon-contributing/opentelemetry-collector-contrib/override/aws v0.0.0-20230906164155-ced73ba61d63/go.mod h1:F5l/VuHtB8418NLJEsHeYz/pni6sWtOMR/SM6mgarhQ= +github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza v0.0.0-20230906164155-ced73ba61d63 h1:/1L3AJjyZpGnKE0imFd2smlvm4rumtGBYhGccgK4KrA= +github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza v0.0.0-20230906164155-ced73ba61d63/go.mod h1:nENVAU79yHGHoCe+pUHvYUy5LR+CHeFvhBkfRcNjRZ8= github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/translator/prometheus v0.0.0-20230906164155-ced73ba61d63 h1:LwzRYmnc6iErbspiZfUExezibLNDIe4Rff4CdhmyH0k= github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/translator/prometheus v0.0.0-20230906164155-ced73ba61d63/go.mod h1:UHT79wwd4bjA5Z7hQ9Cx6vbr5Pr7HK+PNLeOMt15+m8= github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver v0.0.0-20230906164155-ced73ba61d63 h1:ADezb0grCo4h3Qe7RBivN3pDLq9oZDZ1lhnzRgwrIzs= @@ -974,8 +976,6 @@ github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.79.0 github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.79.0/go.mod h1:/wfeJfzu3oAkC2boitFR3dZcnwNtwzryI/SW1LIhDLo= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.79.0 h1:R9lB4lMuDaCJP9l6SiOA9u0GPJm5nV5Fefb9cPo9gZQ= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.79.0/go.mod h1:KBcxvUZWwgSPwdH3oOub7NGNnwu673UdMDXtgn9xjvU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.77.0 h1:UGgb2bYSrRTbCcLNEOc4ZCbKx2H1uwkKR+FpffQ7d0o= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.77.0/go.mod h1:nENVAU79yHGHoCe+pUHvYUy5LR+CHeFvhBkfRcNjRZ8= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/opencensus v0.77.0 h1:0YjNtrlIwAi4YQ5uznZbgZytsO7eTPB1NZGh/Xuv6dU= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.77.0 h1:CFTeCIKxPyypJcH5ZhthAfV93pbi5huF44NEftABnjk= github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.77.0 h1:/6aMxOY14YS3xbm+HuxXI8NFxTnmRHwLf5CARLEzzDw= From 2a3fdf9d57bf8039990156031e205a4d7e495b13 Mon Sep 17 00:00:00 2001 From: Chad Patel Date: Fri, 22 Sep 2023 15:57:35 -0500 Subject: [PATCH 3/4] run go mod tidy to fix issue with gopsutil (#861) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5a8d262b09..925922a541 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,7 @@ replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsxr replace github.com/amazon-contributing/opentelemetry-collector-contrib/override/aws => github.com/amazon-contributing/opentelemetry-collector-contrib/override/aws v0.0.0-20230906164155-ced73ba61d63 // Temporary fix, pending PR https://github.com/shirou/gopsutil/pull/957 -replace github.com/shirou/gopsutil/v3 => github.com/aws/telegraf/patches/gopsutil/v3 v3.0.0-20220502160831-c20ebe67c5ef // indirect +replace github.com/shirou/gopsutil/v3 => github.com/aws/telegraf/patches/gopsutil/v3 v3.0.0-20230915153624-7629361f8380 // indirect //pin consul to a newer version to fix the ambiguous import issue //see https://github.com/hashicorp/consul/issues/6019 and https://github.com/hashicorp/consul/issues/6414 diff --git a/go.sum b/go.sum index 4c9fe83c63..6ca2e94129 100644 --- a/go.sum +++ b/go.sum @@ -272,8 +272,8 @@ 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/aws/telegraf v0.10.2-0.20220502160831-c20ebe67c5ef h1:O53nKbZm2XpdudUywNdqbohwUxje9k4vE0xRXWeIVbE= github.com/aws/telegraf v0.10.2-0.20220502160831-c20ebe67c5ef/go.mod h1:6maU8S0L0iMSa0ZvH5b2W7dBX1xjK0D5ONAqe7WTqXc= -github.com/aws/telegraf/patches/gopsutil/v3 v3.0.0-20220502160831-c20ebe67c5ef h1:iiO0qNErnQgaU6mJY+PRlwnoHp+s9VTk2Ax1A8KRoG4= -github.com/aws/telegraf/patches/gopsutil/v3 v3.0.0-20220502160831-c20ebe67c5ef/go.mod h1:1W1wnODUDv+FBSAtAa878Kxto5kj8eV+kI0AF4LIjq4= +github.com/aws/telegraf/patches/gopsutil/v3 v3.0.0-20230915153624-7629361f8380 h1:LyWVxYjlmdI9ruL66nvr85SRmUA7sScaTNEAHgbsEHc= +github.com/aws/telegraf/patches/gopsutil/v3 v3.0.0-20230915153624-7629361f8380/go.mod h1:1W1wnODUDv+FBSAtAa878Kxto5kj8eV+kI0AF4LIjq4= github.com/awslabs/kinesis-aggregation/go v0.0.0-20210630091500-54e17340d32f h1:Pf0BjJDga7C98f0vhw+Ip5EaiE07S3lTKpIYPNS0nMo= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= From 2be778862f5ed68a820931a68518f9a050cdb128 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 09:30:59 -0500 Subject: [PATCH 4/4] Update OTel fork components to dd840b7a79ba22aca7bda3af5cb925ea208c1dc6 (#862) Co-authored-by: Github Action Co-authored-by: Chad Patel --- .github/workflows/PR-build.yml | 4 +- .github/workflows/integration-test.yml | 4 +- .github/workflows/otel-fork-replace.yml | 2 +- .github/workflows/test-build.yml | 6 +- go.mod | 281 ++++---- go.sum | 611 +++++++++--------- plugins/inputs/cadvisor/cadvisor.go | 146 ----- plugins/inputs/cadvisor/cadvisor_windows.go | 9 - .../cadvisor/container_info_processor.go | 216 ------- .../cadvisor/container_info_processor_test.go | 42 -- .../cadvisor/extractors/cpu_extractor.go | 67 -- .../cadvisor/extractors/cpu_extractor_test.go | 62 -- .../cadvisor/extractors/diskio_extractor.go | 112 ---- .../extractors/diskio_extractor_test.go | 79 --- .../inputs/cadvisor/extractors/extractor.go | 87 --- .../cadvisor/extractors/extractor_test.go | 20 - .../extractors/extractor_test_utils.go | 458 ------------- .../cadvisor/extractors/fs_extractor.go | 96 --- .../cadvisor/extractors/fs_extractor_test.go | 267 -------- .../cadvisor/extractors/mem_extractor.go | 71 -- .../cadvisor/extractors/mem_extractor_test.go | 77 --- .../cadvisor/extractors/net_extractor.go | 139 ---- .../cadvisor/extractors/net_extractor_test.go | 60 -- plugins/inputs/cadvisor/extractors/utils.go | 40 -- plugins/inputs/cadvisor/merger.go | 61 -- plugins/inputs/cadvisor/mesos/client.go | 216 ------- plugins/inputs/cadvisor/mesos/client_test.go | 60 -- plugins/inputs/cadvisor/mesos/factory.go | 152 ----- plugins/inputs/cadvisor/mesos/factory_test.go | 88 --- plugins/inputs/cadvisor/mesos/handler.go | 205 ------ plugins/inputs/cadvisor/mesos/handler_test.go | 117 ---- plugins/inputs/cadvisor/mesos/mesos_agent.go | 153 ----- .../inputs/cadvisor/mesos/mesos_agent_test.go | 152 ----- plugins/inputs/cadvisor/mesos/plugin.go | 41 -- plugins/inputs/k8sapiserver/k8sapiserver.go | 198 ------ .../inputs/k8sapiserver/k8sapiserver_test.go | 114 ---- plugins/plugins.go | 2 - .../sampleConfig/advanced_config_darwin.yaml | 9 +- .../sampleConfig/advanced_config_linux.yaml | 29 +- .../sampleConfig/advanced_config_windows.yaml | 24 +- .../base_container_insights_config.yaml | 9 +- .../sampleConfig/basic_config_linux.yaml | 5 +- .../sampleConfig/basic_config_windows.yaml | 5 +- .../sampleConfig/collectd_config_linux.yaml | 4 +- .../sampleConfig/complete_darwin_config.yaml | 56 +- .../sampleConfig/complete_linux_config.yaml | 56 +- .../sampleConfig/complete_windows_config.yaml | 38 +- .../sampleConfig/config_with_env.yaml | 5 +- .../sampleConfig/delta_config_linux.yaml | 6 +- .../sampleConfig/delta_net_config_linux.yaml | 6 +- .../sampleConfig/drop_origin_linux.yaml | 12 +- .../emf_and_kubernetes_config.yaml | 7 +- .../ignore_append_dimensions.yaml | 5 +- .../sampleConfig/invalid_input_linux.yaml | 5 +- .../kubernetes_on_prem_config.yaml | 5 +- .../sampleConfig/log_ecs_metric_only.yaml | 7 +- .../logs_and_kubernetes_config.yaml | 7 +- .../sampleConfig/prometheus_config_linux.yaml | 6 +- .../prometheus_config_windows.yaml | 6 +- .../sampleConfig/standard_config_linux.yaml | 18 +- ...ndard_config_linux_with_common_config.yaml | 18 +- .../sampleConfig/standard_config_windows.yaml | 18 +- ...ard_config_windows_with_common_config.yaml | 18 +- .../sampleConfig/statsd_config_linux.yaml | 4 +- .../sampleConfig/statsd_config_windows.yaml | 4 +- .../sampleConfig/trace_config_linux.yaml | 6 +- .../sampleConfig/trace_config_windows.yaml | 6 +- 67 files changed, 776 insertions(+), 4143 deletions(-) delete mode 100644 plugins/inputs/cadvisor/cadvisor.go delete mode 100644 plugins/inputs/cadvisor/cadvisor_windows.go delete mode 100644 plugins/inputs/cadvisor/container_info_processor.go delete mode 100644 plugins/inputs/cadvisor/container_info_processor_test.go delete mode 100644 plugins/inputs/cadvisor/extractors/cpu_extractor.go delete mode 100644 plugins/inputs/cadvisor/extractors/cpu_extractor_test.go delete mode 100644 plugins/inputs/cadvisor/extractors/diskio_extractor.go delete mode 100644 plugins/inputs/cadvisor/extractors/diskio_extractor_test.go delete mode 100644 plugins/inputs/cadvisor/extractors/extractor.go delete mode 100644 plugins/inputs/cadvisor/extractors/extractor_test.go delete mode 100644 plugins/inputs/cadvisor/extractors/extractor_test_utils.go delete mode 100644 plugins/inputs/cadvisor/extractors/fs_extractor.go delete mode 100644 plugins/inputs/cadvisor/extractors/fs_extractor_test.go delete mode 100644 plugins/inputs/cadvisor/extractors/mem_extractor.go delete mode 100644 plugins/inputs/cadvisor/extractors/mem_extractor_test.go delete mode 100644 plugins/inputs/cadvisor/extractors/net_extractor.go delete mode 100644 plugins/inputs/cadvisor/extractors/net_extractor_test.go delete mode 100644 plugins/inputs/cadvisor/extractors/utils.go delete mode 100644 plugins/inputs/cadvisor/merger.go delete mode 100644 plugins/inputs/cadvisor/mesos/client.go delete mode 100644 plugins/inputs/cadvisor/mesos/client_test.go delete mode 100644 plugins/inputs/cadvisor/mesos/factory.go delete mode 100644 plugins/inputs/cadvisor/mesos/factory_test.go delete mode 100644 plugins/inputs/cadvisor/mesos/handler.go delete mode 100644 plugins/inputs/cadvisor/mesos/handler_test.go delete mode 100644 plugins/inputs/cadvisor/mesos/mesos_agent.go delete mode 100644 plugins/inputs/cadvisor/mesos/mesos_agent_test.go delete mode 100644 plugins/inputs/cadvisor/mesos/plugin.go delete mode 100644 plugins/inputs/k8sapiserver/k8sapiserver.go delete mode 100644 plugins/inputs/k8sapiserver/k8sapiserver_test.go diff --git a/.github/workflows/PR-build.yml b/.github/workflows/PR-build.yml index d0126bfe91..9aca3ef1a1 100644 --- a/.github/workflows/PR-build.yml +++ b/.github/workflows/PR-build.yml @@ -47,7 +47,7 @@ jobs: if: needs.changes.outputs.lint == 'true' uses: actions/setup-go@v4 with: - go-version: ~1.19.6 + go-version: ~1.20.7 cache: false - name: Check out code @@ -102,7 +102,7 @@ jobs: if: needs.changes.outputs.build == 'true' uses: actions/setup-go@v4 with: - go-version: ~1.19.6 + go-version: ~1.20.7 cache: false - name: Check out code diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 782c315151..fb2d8e2a19 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -76,7 +76,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v4 with: - go-version: ~1.19.6 + go-version: ~1.20.7 - name: Generate matrix id: set-matrix @@ -327,7 +327,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v4 with: - go-version: ~1.19.6 + go-version: ~1.20.7 - name: SetOutputs id: set-outputs diff --git a/.github/workflows/otel-fork-replace.yml b/.github/workflows/otel-fork-replace.yml index 1ace1c6315..15ecbcef7f 100644 --- a/.github/workflows/otel-fork-replace.yml +++ b/.github/workflows/otel-fork-replace.yml @@ -30,7 +30,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v4 with: - go-version: ~1.19.6 + go-version: ~1.20.7 cache: false - name: Update OTel fork components version id: set-matrix diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index c5785b5147..cc9e89ded3 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -63,7 +63,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v4 with: - go-version: ~1.19.6 + go-version: ~1.20.7 cache: false - name: Install rpm @@ -161,7 +161,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v4 with: - go-version: ~1.19.6 + go-version: ~1.20.7 - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v2 @@ -226,7 +226,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v4 with: - go-version: ~1.19.6 + go-version: ~1.20.7 - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v2 diff --git a/go.mod b/go.mod index 925922a541..b4d850e603 100644 --- a/go.mod +++ b/go.mod @@ -1,39 +1,41 @@ module github.com/aws/amazon-cloudwatch-agent -go 1.19 +go 1.20 replace github.com/influxdata/telegraf => github.com/aws/telegraf v0.10.2-0.20220502160831-c20ebe67c5ef // Replace with https://github.com/amazon-contributing/opentelemetry-collector-contrib, there are no requirements for all receivers/processors/exporters // to be all replaced since there are some changes that will always be from upstream -replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsemfexporter => github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsemfexporter v0.0.0-20230906164155-ced73ba61d63 +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsemfexporter => github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsemfexporter v0.0.0-20230922200107-dd840b7a79ba -replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsxrayexporter => github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsxrayexporter v0.0.0-20230906164155-ced73ba61d63 +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsxrayexporter => github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsxrayexporter v0.0.0-20230922200107-dd840b7a79ba -replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/xray => github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/xray v0.0.0-20230906164155-ced73ba61d63 +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/xray => github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/xray v0.0.0-20230922200107-dd840b7a79ba -replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver => github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver v0.0.0-20230906164155-ced73ba61d63 +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver => github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver v0.0.0-20230922200107-dd840b7a79ba -replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/k8s => github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/k8s v0.0.0-20230906164155-ced73ba61d63 +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/k8s => github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/k8s v0.0.0-20230922200107-dd840b7a79ba -replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/containerinsight => github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/containerinsight v0.0.0-20230906164155-ced73ba61d63 +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/containerinsight => github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/containerinsight v0.0.0-20230922200107-dd840b7a79ba // Replace with contrib to revert upstream change https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/20519 -replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus => github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/translator/prometheus v0.0.0-20230906164155-ced73ba61d63 +replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus => github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/translator/prometheus v0.0.0-20230922200107-dd840b7a79ba replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza => github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza v0.0.0-20230906164155-ced73ba61d63 -replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver => github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.0.0-20230906164155-ced73ba61d63 +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver => github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.0.0-20230922200107-dd840b7a79ba -replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil => github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/awsutil v0.0.0-20230906164155-ced73ba61d63 +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil => github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/awsutil v0.0.0-20230922200107-dd840b7a79ba -replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/cwlogs => github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/cwlogs v0.0.0-20230906164155-ced73ba61d63 +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/cwlogs => github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/cwlogs v0.0.0-20230922200107-dd840b7a79ba -replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter => github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter v0.0.0-20230906164155-ced73ba61d63 +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter => github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter v0.0.0-20230922200107-dd840b7a79ba -replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsxrayreceiver => github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/awsxrayreceiver v0.0.0-20230906164155-ced73ba61d63 +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsxrayreceiver => github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/awsxrayreceiver v0.0.0-20230922200107-dd840b7a79ba -replace github.com/amazon-contributing/opentelemetry-collector-contrib/override/aws => github.com/amazon-contributing/opentelemetry-collector-contrib/override/aws v0.0.0-20230906164155-ced73ba61d63 +replace github.com/amazon-contributing/opentelemetry-collector-contrib/override/aws => github.com/amazon-contributing/opentelemetry-collector-contrib/override/aws v0.0.0-20230922200107-dd840b7a79ba + +replace github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza => github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza v0.0.0-20230922200107-dd840b7a79ba // Temporary fix, pending PR https://github.com/shirou/gopsutil/pull/957 replace github.com/shirou/gopsutil/v3 => github.com/aws/telegraf/patches/gopsutil/v3 v3.0.0-20230915153624-7629361f8380 // indirect @@ -82,8 +84,7 @@ replace github.com/openshift/api v3.9.0+incompatible => github.com/openshift/api require ( github.com/BurntSushi/toml v0.4.1 github.com/Jeffail/gabs v1.4.0 - github.com/Rican7/retry v0.1.1-0.20160712041035-272ad122d6e5 - github.com/aws/aws-sdk-go v1.44.309 + github.com/aws/aws-sdk-go v1.45.2 github.com/aws/aws-sdk-go-v2 v1.19.0 github.com/aws/aws-sdk-go-v2/config v1.18.25 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3 // indirect @@ -97,21 +98,20 @@ require ( github.com/bigkevmcd/go-configparser v0.0.0-20200217161103-d137835d2579 github.com/go-kit/log v0.2.1 github.com/gobwas/glob v0.2.3 - github.com/google/cadvisor v0.47.1 + github.com/google/cadvisor v0.47.3 github.com/google/go-cmp v0.5.9 - github.com/google/uuid v1.3.0 - github.com/hashicorp/golang-lru v0.6.0 + github.com/google/uuid v1.3.1 + github.com/hashicorp/golang-lru v1.0.2 github.com/influxdata/telegraf v0.0.0-00010101000000-000000000000 github.com/influxdata/wlog v0.0.0-20160411224016-7c63b0a71ef8 github.com/kardianos/service v1.2.1 // Keep this pinned to v1.2.1. v1.2.2 causes the agent to not register as a service on Windows github.com/kr/pretty v0.3.1 - github.com/mesos/mesos-go v0.0.7-0.20180413204204-29de6ff97b48 - github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20220423185008-bf980b35cac4 // indirect github.com/oklog/run v1.1.0 github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter v0.77.0 github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsemfexporter v0.77.0 github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsxrayexporter v0.77.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.79.0 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.84.0 github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.77.0 github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.77.0 github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.77.0 @@ -121,56 +121,64 @@ require ( github.com/open-telemetry/opentelemetry-collector-contrib/receiver/tcplogreceiver v0.77.0 github.com/open-telemetry/opentelemetry-collector-contrib/receiver/udplogreceiver v0.77.0 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.15.1 + github.com/prometheus/client_golang v1.16.0 github.com/prometheus/common v0.44.0 github.com/prometheus/prometheus v1.8.2-0.20210430082741-2a4b8e12bbf23 github.com/shirou/gopsutil v3.21.5+incompatible - github.com/shirou/gopsutil/v3 v3.23.4 + github.com/shirou/gopsutil/v3 v3.23.8 github.com/stretchr/testify v1.8.4 github.com/xeipuuv/gojsonschema v1.2.0 - go.opentelemetry.io/collector v0.79.0 - go.opentelemetry.io/collector/component v0.79.0 - go.opentelemetry.io/collector/confmap v0.79.0 - go.opentelemetry.io/collector/consumer v0.79.0 - go.opentelemetry.io/collector/exporter v0.79.0 + go.opentelemetry.io/collector v0.85.0 + go.opentelemetry.io/collector/component v0.85.0 + go.opentelemetry.io/collector/confmap v0.85.0 + go.opentelemetry.io/collector/consumer v0.85.0 + go.opentelemetry.io/collector/exporter v0.85.0 go.opentelemetry.io/collector/exporter/loggingexporter v0.77.0 - go.opentelemetry.io/collector/pdata v1.0.0-rcv0012 - go.opentelemetry.io/collector/processor/batchprocessor v0.77.0 - go.opentelemetry.io/collector/receiver v0.79.0 + go.opentelemetry.io/collector/pdata v1.0.0-rcv0014.0.20230908201109-ab3d6c5b6470 + go.opentelemetry.io/collector/processor/batchprocessor v0.84.1-0.20230908201109-ab3d6c5b6470 + go.opentelemetry.io/collector/receiver v0.85.0 go.opentelemetry.io/collector/receiver/otlpreceiver v0.77.0 go.uber.org/multierr v1.11.0 - go.uber.org/zap v1.24.0 - golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 - golang.org/x/net v0.10.0 - golang.org/x/sync v0.1.0 - golang.org/x/sys v0.8.0 - golang.org/x/text v0.9.0 + go.uber.org/zap v1.25.0 + golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 + golang.org/x/net v0.15.0 + golang.org/x/sync v0.3.0 + golang.org/x/sys v0.12.0 + golang.org/x/text v0.13.0 gopkg.in/fsnotify.v1 v1.4.7 gopkg.in/natefinch/lumberjack.v2 v2.0.0 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 gopkg.in/yaml.v3 v3.0.1 gotest.tools/v3 v3.1.0 - k8s.io/api v0.26.3 - k8s.io/apimachinery v0.26.3 - k8s.io/client-go v0.26.3 - k8s.io/klog/v2 v2.90.1 + k8s.io/api v0.28.1 + k8s.io/apimachinery v0.28.1 + k8s.io/client-go v0.28.1 + k8s.io/klog/v2 v2.100.1 +) + +require ( + github.com/Rican7/retry v0.3.1 + github.com/mesos/mesos-go v0.0.11 + go.opentelemetry.io/collector/config/configtelemetry v0.85.0 + go.opentelemetry.io/collector/extension v0.85.0 + go.opentelemetry.io/collector/processor v0.85.0 ) require ( - cloud.google.com/go/compute v1.19.0 // indirect - cloud.google.com/go/compute/metadata v0.2.3 // indirect + cloud.google.com/go/compute v1.23.0 // indirect + cloud.google.com/go/compute/metadata v0.2.4-0.20230617002413-005d2dfb6b68 // indirect collectd.org v0.4.0 // indirect contrib.go.opencensus.io/exporter/prometheus v0.4.2 // indirect github.com/Azure/azure-sdk-for-go v67.1.0+incompatible // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect - github.com/Azure/go-autorest/autorest v0.11.28 // indirect - github.com/Azure/go-autorest/autorest/adal v0.9.22 // indirect + github.com/Azure/go-autorest/autorest v0.11.29 // indirect + github.com/Azure/go-autorest/autorest/adal v0.9.23 // indirect github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect github.com/Azure/go-autorest/logger v0.2.1 // indirect github.com/Azure/go-autorest/tracing v0.6.0 // indirect - github.com/Microsoft/go-winio v0.6.0 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect github.com/StackExchange/wmi v1.2.1 // indirect github.com/alecthomas/participle v0.4.1 // indirect github.com/alecthomas/participle/v2 v2.0.0 // indirect @@ -180,7 +188,7 @@ require ( github.com/antchfx/xmlquery v1.3.9 // indirect github.com/antchfx/xpath v1.2.0 // indirect github.com/antonmedv/expr v1.12.5 // indirect - github.com/apache/arrow/go/v11 v11.0.0 // indirect + github.com/apache/arrow/go/v12 v12.0.1 // indirect github.com/apache/thrift v0.16.0 // indirect github.com/armon/go-metrics v0.4.1 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.13.24 // indirect @@ -199,34 +207,34 @@ require ( github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/checkpoint-restore/go-criu/v5 v5.3.0 // indirect github.com/cilium/ebpf v0.7.0 // indirect - github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195 // indirect + github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 // indirect github.com/containerd/console v1.0.3 // indirect github.com/containerd/ttrpc v1.1.0 // indirect github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect - github.com/cyphar/filepath-securejoin v0.2.3 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/cyphar/filepath-securejoin v0.2.4 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dennwc/varint v1.0.0 // indirect - github.com/digitalocean/godo v1.97.0 // indirect + github.com/digitalocean/godo v1.99.0 // indirect github.com/docker/distribution v2.8.2+incompatible // indirect - github.com/docker/docker v24.0.2+incompatible // indirect + github.com/docker/docker v24.0.5+incompatible // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/doclambda/protobufquery v0.0.0-20210317203640-88ffabe06a60 // indirect - github.com/emicklei/go-restful/v3 v3.10.1 // indirect - github.com/envoyproxy/go-control-plane v0.11.0 // indirect - github.com/envoyproxy/protoc-gen-validate v0.10.0 // indirect + github.com/emicklei/go-restful/v3 v3.10.2 // indirect + github.com/envoyproxy/go-control-plane v0.11.1 // indirect + github.com/envoyproxy/protoc-gen-validate v1.0.2 // indirect github.com/euank/go-kmsg-parser v2.0.0+incompatible // indirect - github.com/fatih/color v1.14.1 // indirect + github.com/fatih/color v1.15.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect - github.com/go-openapi/jsonpointer v0.19.6 // indirect + github.com/go-openapi/jsonpointer v0.20.0 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect - github.com/go-openapi/swag v0.22.3 // indirect + github.com/go-openapi/swag v0.22.4 // indirect github.com/go-resty/resty/v2 v2.7.0 // indirect github.com/go-zookeeper/zk v1.0.3 // indirect github.com/godbus/dbus/v5 v5.0.6 // indirect @@ -235,51 +243,53 @@ require ( 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/gnostic v0.6.9 // indirect + github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/s2a-go v0.1.2 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.8.0 // indirect - github.com/gophercloud/gophercloud v1.2.0 // indirect + github.com/google/s2a-go v0.1.5 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.2.5 // indirect + github.com/googleapis/gax-go/v2 v2.12.0 // indirect + github.com/gophercloud/gophercloud v1.5.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/gosnmp/gosnmp v1.34.0 // indirect github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd // indirect - github.com/hashicorp/consul/api v1.20.0 // indirect - github.com/hashicorp/cronexpr v1.1.1 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.17.1 // indirect + github.com/hashicorp/consul/api v1.24.0 // indirect + github.com/hashicorp/cronexpr v1.1.2 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-hclog v1.5.0 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-retryablehttp v0.7.2 // indirect + github.com/hashicorp/go-retryablehttp v0.7.4 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect - github.com/hashicorp/nomad/api v0.0.0-20230427164118-891999789689 // indirect + github.com/hashicorp/nomad/api v0.0.0-20230718173136-3a687930bd3e // indirect github.com/hashicorp/serf v0.10.1 // indirect github.com/hetznercloud/hcloud-go v1.41.0 // indirect github.com/iancoleman/strcase v0.2.0 // indirect - github.com/imdario/mergo v0.3.13 // indirect + github.com/imdario/mergo v0.3.16 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/influxdata/line-protocol/v2 v2.2.1 // indirect github.com/influxdata/toml v0.0.0-20190415235208-270119a8ce65 // indirect - github.com/ionos-cloud/sdk-go/v6 v6.1.4 // indirect + github.com/ionos-cloud/sdk-go/v6 v6.1.8 // indirect github.com/jhump/protoreflect v1.8.3-0.20210616212123-6cc1efa697ca // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/jpillora/backoff v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/karrick/godirwalk v1.17.0 // indirect - github.com/klauspost/compress v1.16.5 // indirect + github.com/klauspost/compress v1.16.7 // indirect github.com/knadh/koanf v1.5.0 // indirect + github.com/knadh/koanf/v2 v2.0.1 // indirect github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b // indirect github.com/kr/text v0.2.0 // indirect - github.com/linode/linodego v1.14.1 // indirect + github.com/linode/linodego v1.19.0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/mailru/easyjson v0.7.7 // 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/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/miekg/dns v1.1.51 // indirect + github.com/miekg/dns v1.1.55 // indirect github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -289,48 +299,48 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/montanaflynn/stats v0.7.0 // indirect - github.com/mostynb/go-grpc-compression v1.1.18 // indirect + github.com/mostynb/go-grpc-compression v1.2.0 // indirect github.com/mrunalp/fileutils v0.5.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/naoina/go-stringutil v0.1.0 // indirect github.com/observiq/ctimefmt v1.0.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil v0.79.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/containerinsight v0.77.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/cwlogs v0.79.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/k8s v0.77.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/metrics v0.79.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/proxy v0.77.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/xray v0.77.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.77.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.79.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil v0.84.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/containerinsight v0.84.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/cwlogs v0.84.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/k8s v0.84.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/metrics v0.84.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/proxy v0.84.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/xray v0.84.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.84.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.84.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.77.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.77.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/kubelet v0.77.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.84.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/kubelet v0.84.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.77.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.79.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.77.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.84.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.84.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.77.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc2 // indirect + github.com/opencontainers/image-spec v1.1.0-rc4 // indirect github.com/opencontainers/runc v1.1.5 // indirect github.com/opencontainers/runtime-spec v1.0.3-0.20220909204839-494a5a6aca78 // indirect github.com/opencontainers/selinux v1.10.1 // indirect github.com/openshift/api v3.9.0+incompatible // indirect github.com/openshift/client-go v0.0.0-20210521082421-73d9475a9142 // indirect - github.com/ovh/go-ovh v1.3.0 // indirect + github.com/ovh/go-ovh v1.4.1 // indirect github.com/philhofer/fwd v1.1.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/pquerna/ffjson v0.0.0-20190930134022-aa0246cd15f7 // indirect github.com/prometheus/client_model v0.4.0 // indirect github.com/prometheus/common/sigv4 v0.1.0 // indirect - github.com/prometheus/procfs v0.9.0 // indirect + github.com/prometheus/procfs v0.11.0 // indirect github.com/prometheus/statsd_exporter v0.22.7 // indirect github.com/rogpeppe/go-internal v1.10.0 // indirect - github.com/rs/cors v1.9.0 // indirect + github.com/rs/cors v1.10.0 // indirect github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1 // indirect - github.com/scaleway/scaleway-sdk-go v1.0.0-beta.14 // indirect + github.com/scaleway/scaleway-sdk-go v1.0.0-beta.20 // indirect github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646 // indirect github.com/sirupsen/logrus v1.9.0 // indirect github.com/sleepinggenius2/gosmi v0.4.4 // indirect @@ -342,8 +352,8 @@ require ( github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect github.com/tinylib/msgp v1.1.6 // 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/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5 // indirect github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f // indirect github.com/vjeantet/grok v1.0.1 // indirect @@ -351,44 +361,65 @@ require ( github.com/wavefronthq/wavefront-sdk-go v0.9.10 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect - github.com/yusufpapurcu/wmi v1.2.2 // indirect + github.com/yusufpapurcu/wmi v1.2.3 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/collector/featuregate v1.0.0-rcv0012 // indirect - go.opentelemetry.io/collector/semconv v0.79.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.42.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.42.0 // indirect + go.opentelemetry.io/collector/config/configauth v0.85.0 // indirect + go.opentelemetry.io/collector/config/configcompression v0.85.0 // indirect + go.opentelemetry.io/collector/config/configgrpc v0.85.0 // indirect + go.opentelemetry.io/collector/config/confighttp v0.85.0 // indirect + go.opentelemetry.io/collector/config/confignet v0.85.0 // indirect + go.opentelemetry.io/collector/config/configopaque v0.85.0 // indirect + go.opentelemetry.io/collector/config/configtls v0.85.0 // indirect + go.opentelemetry.io/collector/config/internal v0.85.0 // indirect + go.opentelemetry.io/collector/connector v0.85.0 // indirect + go.opentelemetry.io/collector/extension/auth v0.85.0 // indirect + go.opentelemetry.io/collector/featuregate v1.0.0-rcv0014.0.20230908201109-ab3d6c5b6470 // indirect + go.opentelemetry.io/collector/semconv v0.85.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.43.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.43.0 // indirect go.opentelemetry.io/contrib/propagators/b3 v1.17.0 // indirect - go.opentelemetry.io/otel v1.16.0 // indirect - go.opentelemetry.io/otel/bridge/opencensus v0.39.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.39.0 // indirect - go.opentelemetry.io/otel/metric v1.16.0 // indirect - go.opentelemetry.io/otel/sdk v1.16.0 // indirect - go.opentelemetry.io/otel/sdk/metric v0.39.0 // indirect - go.opentelemetry.io/otel/trace v1.16.0 // indirect - go.uber.org/atomic v1.10.0 // indirect + go.opentelemetry.io/otel v1.17.0 // indirect + go.opentelemetry.io/otel/bridge/opencensus v0.40.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.40.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.40.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.40.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.17.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.17.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.17.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.40.1-0.20230831181707-02616a25c68e // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.40.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.17.0 // indirect + go.opentelemetry.io/otel/metric v1.17.0 // indirect + go.opentelemetry.io/otel/sdk v1.17.0 // indirect + go.opentelemetry.io/otel/sdk/metric v0.40.0 // indirect + go.opentelemetry.io/otel/trace v1.17.0 // indirect + go.opentelemetry.io/proto/otlp v1.0.0 // indirect + go.uber.org/atomic v1.11.0 // indirect go.uber.org/goleak v1.2.1 // indirect - golang.org/x/crypto v0.8.0 // indirect - golang.org/x/mod v0.10.0 // indirect - golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/term v0.8.0 // indirect + golang.org/x/crypto v0.13.0 // indirect + golang.org/x/mod v0.12.0 // indirect + golang.org/x/oauth2 v0.11.0 // indirect + golang.org/x/term v0.12.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.8.0 // indirect - gonum.org/v1/gonum v0.13.0 // indirect - google.golang.org/api v0.120.0 // indirect + golang.org/x/tools v0.12.0 // indirect + gonum.org/v1/gonum v0.14.0 // indirect + google.golang.org/api v0.138.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.55.0 // indirect - google.golang.org/protobuf v1.30.0 // indirect + google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect + google.golang.org/grpc v1.57.0 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect k8s.io/klog v1.0.0 // indirect - k8s.io/kube-openapi v0.0.0-20230303024457-afdc3dddf62d // indirect - k8s.io/utils v0.0.0-20230308161112-d77c459e9343 // indirect - modernc.org/ccgo/v3 v3.16.9 // indirect - modernc.org/libc v1.17.1 // indirect - modernc.org/sqlite v1.18.1 // indirect + k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect + k8s.io/utils v0.0.0-20230711102312-30195339c3c7 // indirect + modernc.org/ccgo/v3 v3.16.13 // indirect + modernc.org/libc v1.22.2 // indirect + modernc.org/sqlite v1.18.2 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.3.0 // indirect sigs.k8s.io/yaml v1.3.0 // indirect ) diff --git a/go.sum b/go.sum index 6ca2e94129..905e524b90 100644 --- a/go.sum +++ b/go.sum @@ -25,28 +25,27 @@ cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aD cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= -cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= +cloud.google.com/go v0.110.6 h1:8uYAkj3YHTP/1iwReuHPxLSbdcyc+dSBbzFMrVwDR6Q= 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/bigquery v1.50.0 h1:RscMV6LbnAmhAzD893Lv9nXXy2WCaJmbxYPWDLbGqNQ= -cloud.google.com/go/compute v1.19.0 h1:+9zda3WGgW1ZSTlVppLCYFIr48Pa35q1uG2N1itbCEQ= -cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= -cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= -cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/bigquery v1.53.0 h1:K3wLbjbnSlxhuG5q4pntHv5AEbQM1QqHKGYgwFIqOTg= +cloud.google.com/go/compute v1.23.0 h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY= +cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute/metadata v0.2.4-0.20230617002413-005d2dfb6b68 h1:aRVqY1p2IJaBGStWMsQMpkAa83cPkCDLl80eOj0Rbz4= +cloud.google.com/go/compute/metadata v0.2.4-0.20230617002413-005d2dfb6b68/go.mod h1:1a3eRNYX12fs5UABBIXS8HXVvQbX9hRB/RkEBPORpe8= 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/iam v0.13.0 h1:+CmB+K0J/33d0zSQ9SlFWUeCCEn5XJA0ZMZ3pHE9u8k= -cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= -cloud.google.com/go/monitoring v1.13.0 h1:2qsrgXGVoRXpP7otZ14eE1I568zAa92sJSDPyOJvwjM= +cloud.google.com/go/iam v1.1.1 h1:lW7fzj15aVIXYHREOqjRBV9PsH0Z6u8Y46a1YGvQP4Y= +cloud.google.com/go/monitoring v1.15.1 h1:65JhLMd+JiYnXr6j5Z63dUYCuOg770p8a/VC+gil/58= 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/pubsub v1.30.0 h1:vCge8m7aUKBJYOgrZp7EsNDf6QMd2CAlXZqWTn3yq6s= +cloud.google.com/go/pubsub v1.33.0 h1:6SPCPvWav64tj0sVX/+npCBKhUi/UjJehy9op/V3p2g= 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= @@ -72,12 +71,12 @@ github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg6 github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.11.12/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw= -github.com/Azure/go-autorest/autorest v0.11.28 h1:ndAExarwr5Y+GaHE6VCaY1kyS/HwwGGyuimVhWsHOEM= -github.com/Azure/go-autorest/autorest v0.11.28/go.mod h1:MrkzG3Y3AH668QyF9KRk5neJnGgmhQ6krbhR8Q5eMvA= +github.com/Azure/go-autorest/autorest v0.11.29 h1:I4+HL/JDvErx2LjyzaVxllw2lRDB5/BT2Bm4g20iqYw= +github.com/Azure/go-autorest/autorest v0.11.29/go.mod h1:ZtEzC4Jy2JDrZLxvWs8LrBWEBycl1hbT1eknI8MtfAs= github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= -github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= -github.com/Azure/go-autorest/autorest/adal v0.9.22 h1:/GblQdIudfEM3AWWZ0mrYJQSd7JS4S/Mbzh6F0ov0Xc= github.com/Azure/go-autorest/autorest/adal v0.9.22/go.mod h1:XuAbAEUv2Tta//+voMI038TrJBqjKam0me7qR+L8Cmk= +github.com/Azure/go-autorest/autorest/adal v0.9.23 h1:Yepx8CvFxwNKpH6ja7RZ+sKX+DWYNldbLiALMC3BTz8= +github.com/Azure/go-autorest/autorest/adal v0.9.23/go.mod h1:5pcMqFkdPhviJdlEy3kC/v1ZLnQl0MH6XA5YCcMhy4c= github.com/Azure/go-autorest/autorest/azure/auth v0.5.11 h1:P6bYXFoao05z5uhOQzbC3Qd8JqF3jUoocoTeIxkp2cA= github.com/Azure/go-autorest/autorest/azure/cli v0.4.5 h1:0W/yGmFdTIT77fvdlGZ0LMISoLHFJ7Tx4U0yeB+uFs4= github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= @@ -107,15 +106,15 @@ github.com/Jeffail/gabs v1.4.0/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/ github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Mellanox/rdmamap v0.0.0-20191106181932-7c3c4763a6ee h1:atI/FFjXh6hIVlPE1Jup9m8N4B9q/OSbMUe2EBahs+w= github.com/Microsoft/go-winio v0.4.15/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= -github.com/Microsoft/go-winio v0.6.0/go.mod h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2BO69KH/soAE= +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/Mottl/ctimefmt v0.0.0-20190803144728-fd2ac23a585a/go.mod h1:eyj2WSIdoPMPs2eNTLpSmM6Nzqo4V80/d6jHpnJ1SAI= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/Rican7/retry v0.1.1-0.20160712041035-272ad122d6e5 h1:6olZmdYuK84eO0PeCQX1iy2EFWlOl8G+JNBi4vFmcU8= -github.com/Rican7/retry v0.1.1-0.20160712041035-272ad122d6e5/go.mod h1:FgOROf8P5bebcC1DS0PdOQiqGUridaZvikzUmkFW6gg= +github.com/Rican7/retry v0.3.1 h1:scY4IbO8swckzoA/11HgBwaZRJEyY9vaNJshcdhp1Mc= +github.com/Rican7/retry v0.3.1/go.mod h1:CxSDrhAyXmTMeEuRAnArMu1FHu48vtfjLREWqVl7Vw0= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/sarama v1.32.0 h1:P+RUjEaRU0GMMbYexGMDyrMkLhbbBVUVISDywi+IlFU= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= @@ -143,34 +142,34 @@ github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk5 github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 h1:s6gZFSlWYmbqAuRjVTiNNhvNRfY2Wxp9nhfyel4rklc= github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= github.com/aliyun/alibaba-cloud-sdk-go v1.61.1483 h1:J8HaD+Zpfi1gcel3HCKpoHHEsrcuRrZlSnx7R9SCf5I= -github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter v0.0.0-20230906164155-ced73ba61d63 h1:0C6GGQJQx6JmRAascnd+amG9sMhx2GvEjkGGdLDshyU= -github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter v0.0.0-20230906164155-ced73ba61d63/go.mod h1:bgkxykIgZsmF2+TZLuON8KiMEXNSUIASpWC91OhooUc= -github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsemfexporter v0.0.0-20230906164155-ced73ba61d63 h1:ZFvCwyAzgYWlrm0nt8RispgTzk49HZWXNbi2DtppE7g= -github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsemfexporter v0.0.0-20230906164155-ced73ba61d63/go.mod h1:vTq1y0k4nw64gsMckp1j1Mb1yRYtbEXcI11JXALnZe0= -github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsxrayexporter v0.0.0-20230906164155-ced73ba61d63 h1:nFbuiD2WR6mL/6gyORZWXaEuYZEP1aM4UXaRoaPDNGA= -github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsxrayexporter v0.0.0-20230906164155-ced73ba61d63/go.mod h1:WlYOrOBltYFxwGaWbQeLOylFlfBHVvmZDqxc2QCkTXI= -github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/awsutil v0.0.0-20230906164155-ced73ba61d63 h1:g3rkOwACBYhTokcKb5o3NlO3rktaV56cwgcr1mNL7Yc= -github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/awsutil v0.0.0-20230906164155-ced73ba61d63/go.mod h1:rR33E1WOYPfFhIjNONBJpbqTzDTi45N1oAHiqd0Q19E= -github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/containerinsight v0.0.0-20230906164155-ced73ba61d63 h1:TxwTbhdD1wh1RcQKJkjAApneSr/JB+mAWtP3cVos5Rc= -github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/containerinsight v0.0.0-20230906164155-ced73ba61d63/go.mod h1:b9KA+hw/wH0cO3D2bnUp0oTUzDuoDandrl7p2hzgBtQ= -github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/cwlogs v0.0.0-20230906164155-ced73ba61d63 h1:y9xNgWEyOdl0jkJfM/QAj1+oLqaZFAzYhJuUbsh/F9E= -github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/cwlogs v0.0.0-20230906164155-ced73ba61d63/go.mod h1:leu6SU6eqJeveXxY+wFdxnLvQua0hORuqTGrRjUHoVI= -github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/k8s v0.0.0-20230906164155-ced73ba61d63 h1:NcrJ1xV9Zi0I6qpdEj6nNiMNoFxsxqx1SkuPDsCWC/Q= -github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/k8s v0.0.0-20230906164155-ced73ba61d63/go.mod h1:Oy2KtD3Rbby6z1OVPY8qyQIDqnQASytn3QpdhvgAPJ8= -github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/xray v0.0.0-20230906164155-ced73ba61d63 h1:5FfYxob/XVnS17giNnSiYtyFFyXHdVdJjImiOdzKj+o= -github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/xray v0.0.0-20230906164155-ced73ba61d63/go.mod h1:6Vwl/+yXrD21CtE1emsNFeaAW0cq5GbY+HlXaILADh4= -github.com/amazon-contributing/opentelemetry-collector-contrib/override/aws v0.0.0-20230906164155-ced73ba61d63 h1:fcaOqpQRygoR24gQMXtowm3OHKCuiySr590OHii30oA= -github.com/amazon-contributing/opentelemetry-collector-contrib/override/aws v0.0.0-20230906164155-ced73ba61d63/go.mod h1:F5l/VuHtB8418NLJEsHeYz/pni6sWtOMR/SM6mgarhQ= +github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter v0.0.0-20230922200107-dd840b7a79ba h1:sCn2KlMaRoQAcVlcb8QeGnVYp9Qn/0d0Q7Wg0dGb46E= +github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter v0.0.0-20230922200107-dd840b7a79ba/go.mod h1:WgmC0gq7urueR/VbZ0EHZhe3MXV6oWbaMmEWhHvagfg= +github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsemfexporter v0.0.0-20230922200107-dd840b7a79ba h1:zzytiykO8RYXk1sUitw023vvkTHZ/7Os4kNz3eOz7F0= +github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsemfexporter v0.0.0-20230922200107-dd840b7a79ba/go.mod h1:b8pL6t9Xqk/zv0nLZsMiniuugDWiWQZRu9kh9t5SBLk= +github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsxrayexporter v0.0.0-20230922200107-dd840b7a79ba h1:oc562NJzKM1YVXKfX6D5JeiTeAJWxbQnIpDBvmQHOPc= +github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsxrayexporter v0.0.0-20230922200107-dd840b7a79ba/go.mod h1:K9h+mkX+BsA1UTuuheGJjo44KAahxaNu9jJ8/xVF6jo= +github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/awsutil v0.0.0-20230922200107-dd840b7a79ba h1:g4CNAdD3glw8GHhzh2JQprr5cwVmO8uossjjICGnZgY= +github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/awsutil v0.0.0-20230922200107-dd840b7a79ba/go.mod h1:9iAsO2SC8NIsa8/xCmC2Pj4MZPmYdvm+1/n89M74JS4= +github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/containerinsight v0.0.0-20230922200107-dd840b7a79ba h1:FR7gtSLWnLZvm1nSpoXNG79tIguCoiWCfdlVTCjfc40= +github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/containerinsight v0.0.0-20230922200107-dd840b7a79ba/go.mod h1:ZwAqtlNaHJX0IUU5O40j96TDbsPA0K7o+m49AZgei7g= +github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/cwlogs v0.0.0-20230922200107-dd840b7a79ba h1:Pecdzjj5YBcA3xD7pyksteSXYCd2GbmoE1+Wx85gZHI= +github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/cwlogs v0.0.0-20230922200107-dd840b7a79ba/go.mod h1:U0J/v82xC95JvG5QhXlrHH9OpgV8scQSGS6N7XW2y/4= +github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/k8s v0.0.0-20230922200107-dd840b7a79ba h1:lQD3DhekQovqPgsSmYWH+4K4PCR/t7+QME5NBWYRY5g= +github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/k8s v0.0.0-20230922200107-dd840b7a79ba/go.mod h1:58ZN2DUrqxJLqoXu+GZfL0RwMYiRZAAI+COKp0OmA0k= +github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/xray v0.0.0-20230922200107-dd840b7a79ba h1:uTLmgqUwy+JAjSH667JF6X+uACF50tYs+XcScfdWr/s= +github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/xray v0.0.0-20230922200107-dd840b7a79ba/go.mod h1:8edNN/XfefbHuGLiDhFdBN1QfJfgH7wmq5ms2Gme1EA= +github.com/amazon-contributing/opentelemetry-collector-contrib/override/aws v0.0.0-20230922200107-dd840b7a79ba h1:40qc1Opib1XJLBpgSiPanDA/AeD40VcxVvuEUFoPHmc= +github.com/amazon-contributing/opentelemetry-collector-contrib/override/aws v0.0.0-20230922200107-dd840b7a79ba/go.mod h1:F5l/VuHtB8418NLJEsHeYz/pni6sWtOMR/SM6mgarhQ= github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza v0.0.0-20230906164155-ced73ba61d63 h1:/1L3AJjyZpGnKE0imFd2smlvm4rumtGBYhGccgK4KrA= github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza v0.0.0-20230906164155-ced73ba61d63/go.mod h1:nENVAU79yHGHoCe+pUHvYUy5LR+CHeFvhBkfRcNjRZ8= -github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/translator/prometheus v0.0.0-20230906164155-ced73ba61d63 h1:LwzRYmnc6iErbspiZfUExezibLNDIe4Rff4CdhmyH0k= -github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/translator/prometheus v0.0.0-20230906164155-ced73ba61d63/go.mod h1:UHT79wwd4bjA5Z7hQ9Cx6vbr5Pr7HK+PNLeOMt15+m8= -github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver v0.0.0-20230906164155-ced73ba61d63 h1:ADezb0grCo4h3Qe7RBivN3pDLq9oZDZ1lhnzRgwrIzs= -github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver v0.0.0-20230906164155-ced73ba61d63/go.mod h1:ti3fngqVFdzkSBnjHrcyPJfy+mqNaqTWfMxscmF6Nz4= -github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/awsxrayreceiver v0.0.0-20230906164155-ced73ba61d63 h1:vj4QqqPO3eQesN1xFSiLDigQJEUhyOTvphQ6viRLOnE= -github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/awsxrayreceiver v0.0.0-20230906164155-ced73ba61d63/go.mod h1:6Sorrx5WVtD3I89CXf85XPMFN9fSCaWUB0RwydRPa2Y= -github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.0.0-20230906164155-ced73ba61d63 h1:pifgiYGBFxpYcIOic+WU9x7D9juksgXLxklRahwvSrU= -github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.0.0-20230906164155-ced73ba61d63/go.mod h1:Hle+DN7pi6FnsogIVsp+9n0k0EHrhYLszIDSWvRn1EY= +github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/translator/prometheus v0.0.0-20230922200107-dd840b7a79ba h1:xFiz0PzqbbIhKainf9Ijkh9GFPyjye6AWbn9mdgWNLY= +github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/translator/prometheus v0.0.0-20230922200107-dd840b7a79ba/go.mod h1:9qsT0AsMflbQKz0ojK3aRU/PbyGQCDPKut3XMfAkW8k= +github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver v0.0.0-20230922200107-dd840b7a79ba h1:tNLs840+PFLTsuEVKPa2ZFxQHf9IItoMnHD17z9k+0E= +github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver v0.0.0-20230922200107-dd840b7a79ba/go.mod h1:t/v7BcGrHUQ0/Lb/4egp0Xe8PrTceEkZVArTuRjQGBo= +github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/awsxrayreceiver v0.0.0-20230922200107-dd840b7a79ba h1:3ZMZ4LOrhFHFWmQKmDV2XWBhNTQ3wU/ed2GyRYF1F7o= +github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/awsxrayreceiver v0.0.0-20230922200107-dd840b7a79ba/go.mod h1:akbVXOWuMWKSgqA1QKoXkm3hFt0qIvDeUr7m3ODAiS8= +github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.0.0-20230922200107-dd840b7a79ba h1:WTJ46aWS76HcOQkZkp7rChgsRGXUuHwOaiNMlIdmguw= +github.com/amazon-contributing/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.0.0-20230922200107-dd840b7a79ba/go.mod h1:fw4J+Pn19ZgfR5ZVxWVtlvKq7+zEfXXlZV/7G9IWkko= github.com/amir/raidman v0.0.0-20170415203553-1ccc43bfb9c9 h1:FXrPTd8Rdlc94dKccl7KPmdmIbVh/OjelJ8/vgMRzcQ= github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= github.com/antchfx/jsonquery v1.1.5 h1:1YWrNFYCcIuJPIjFeOP5b6TXbLSUYY8qqxWbuZOB1qE= @@ -184,8 +183,8 @@ github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kd github.com/antonmedv/expr v1.12.5 h1:Fq4okale9swwL3OeLLs9WD9H6GbgBLJyN/NUHRv+n0E= github.com/antonmedv/expr v1.12.5/go.mod h1:FPC8iWArxls7axbVLsW+kpg1mz29A1b2M6jt+hZfDkU= github.com/apache/arrow/go/arrow v0.0.0-20211006091945-a69884db78f4 h1:nPUln5QTzhftSpmld3xcXw/GOJ3z1E8fR8tUrrc0YWk= -github.com/apache/arrow/go/v11 v11.0.0 h1:hqauxvFQxww+0mEU/2XHG6LT7eZternCZq+A5Yly2uM= -github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= +github.com/apache/arrow/go/v12 v12.0.1 h1:JsR2+hzYYjgSUkBSaahpqCetqZMr76djX80fF/DiJbg= +github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWMLpY67QwZ/WWw= github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/aristanetworks/glog v0.0.0-20191112221043-67e8567f59f3 h1:Bmjk+DjIi3tTAU0wxGaFbfjGUqlxxSXARq9A96Kgoos= @@ -201,8 +200,8 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:l github.com/aws/aws-sdk-go v1.35.24/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k= github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go v1.40.45/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q= -github.com/aws/aws-sdk-go v1.44.309 h1:IPJOFBzXekakxmEpDwd4RTKmmBR6LIAiXgNsM51bWbU= -github.com/aws/aws-sdk-go v1.44.309/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.45.2 h1:hTong9YUklQKqzrGk3WnKABReb5R8GjbG4Y6dEQfjnk= +github.com/aws/aws-sdk-go v1.45.2/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v1.9.1/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= github.com/aws/aws-sdk-go-v2 v1.9.2/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= github.com/aws/aws-sdk-go-v2 v1.17.5/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= @@ -288,7 +287,6 @@ github.com/bigkevmcd/go-configparser v0.0.0-20200217161103-d137835d2579/go.mod h github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bmatcuk/doublestar/v3 v3.0.0 h1:TQtVPlDnAYwcrVNB2JiGuMc++H5qzWZd9PhkNo5WyHI= -github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/caio/go-tdigest v3.1.0+incompatible h1:uoVMJ3Q5lXmVLCCqaMGHLBWnbGoN6Lpu7OAUPR60cds= github.com/caio/go-tdigest v3.1.0+incompatible/go.mod h1:sHQM/ubZStBUmF1WbB8FAm8q9GjDajLC5T7ydxE3JHI= github.com/casbin/casbin/v2 v2.37.0/go.mod h1:vByNa/Fchek0KZUgG5wEsl7iFsiviAYKRtgrQfcJqHg= @@ -297,7 +295,6 @@ github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInq 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/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -325,8 +322,8 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195 h1:58f1tJ1ra+zFINPlwLWvQsR9CzAKt2e+EWV2yX9oXQ4= -github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 h1:/inchEIKaYC1Akx+H+gqO04wryn5h75LSazbRlnya1k= +github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= github.com/containerd/ttrpc v1.1.0 h1:GbtyLRxb0gOLR0TYQWt3O6B0NvT8tMdorEHqIQo/lWI= @@ -345,25 +342,27 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:ma github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= -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/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/denisenkom/go-mssqldb v0.12.0 h1:VtrkII767ttSPNRfFekePK3sctr+joXgO58stqQbtUA= github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= github.com/devigned/tab v0.1.1 h1:3mD6Kb1mUOYeLpJvTVSDwSg5ZsfSxfvxGRTxRsJsITA= -github.com/digitalocean/godo v1.97.0 h1:p9w1yCcWMZcxFSLPToNGXA96WfUVLXqoHti6GzVomL4= -github.com/digitalocean/godo v1.97.0/go.mod h1:NRpFznZFvhHjBoqZAaOD3khVzsJ3EibzKqFL4R60dmA= +github.com/digitalocean/godo v1.99.0 h1:gUHO7n9bDaZFWvbzOum4bXE0/09ZuYA9yA8idQHX57E= +github.com/digitalocean/godo v1.99.0/go.mod h1:SsS2oXo2rznfM/nORlZ/6JaUJZFhmKTib1YhopUc8NA= github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U= github.com/djherbis/times v1.5.0 h1:79myA211VwPhFTqUk8xehWrsEO+zcIZj0zT8mXPVARU= github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= 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 v20.10.21+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v24.0.2+incompatible h1:eATx+oLz9WdNVkQrr0qjQ8HvRJ4bOOxfzEo8R+dA3cg= -github.com/docker/docker v24.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v24.0.5+incompatible h1:WmgcE4fxyI6EEXxBRxsHnZXrO1pQ3smi0k/jho4HLeY= +github.com/docker/docker v24.0.5+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= @@ -373,6 +372,7 @@ github.com/doclambda/protobufquery v0.0.0-20210317203640-88ffabe06a60 h1:27379cx github.com/doclambda/protobufquery v0.0.0-20210317203640-88ffabe06a60/go.mod h1:8Ia4zp86glrUhC29AAdK9hwTYh8RB6v0WRCtpplYqEg= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dynatrace-oss/dynatrace-metric-utils-go v0.3.0 h1:q2Ayh9s6Cr75bS5URiOUAoyFXemgKQaBJphbhAaJHCY= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-resiliency v1.2.0 h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q= @@ -385,8 +385,8 @@ github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaB github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -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/emicklei/go-restful/v3 v3.10.2 h1:hIovbnmBTLjHXkqEBUz3HGpXZdM7ZrE9fJIZIqlJLqE= +github.com/emicklei/go-restful/v3 v3.10.2/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= @@ -396,25 +396,24 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= -github.com/envoyproxy/go-control-plane v0.11.0 h1:jtLewhRR2vMRNnq2ZZUoCjUlgut+Y0+sDDWPOfwOi1o= -github.com/envoyproxy/go-control-plane v0.11.0/go.mod h1:VnHyVMpzcLvCFt9yUz1UnCwHLhwx1WguiVDV7pTG/tI= +github.com/envoyproxy/go-control-plane v0.11.1 h1:wSUXTlLfiAQRWs2F+p+EKOY9rUyis1MyGqJ2DIk5HpM= +github.com/envoyproxy/go-control-plane v0.11.1/go.mod h1:uhMcXKCQMEJHiAb0w+YGefQLaTEw+YhGluxZkrTmD0g= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v0.10.0 h1:oIfnZFdC0YhpNNEX+SuIqko4cqqVZeN9IGTrhZje83Y= -github.com/envoyproxy/protoc-gen-validate v0.10.0/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= +github.com/envoyproxy/protoc-gen-validate v1.0.2 h1:QkIBuU5k+x7/QXPvPPnWXWlCdaBFApVqftFV6k087DA= +github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE= github.com/euank/go-kmsg-parser v2.0.0+incompatible h1:cHD53+PLQuuQyLZeriD1V/esuG4MuU0Pjs5y6iknohY= github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= +github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/color v1.14.1 h1:qfhVLaG5s+nCROl1zJsZRxFeYrHLqWroPOQ8BWiNb4w= -github.com/fatih/color v1.14.1/go.mod h1:2oHN61fhTpgcxD3TSWCgKDiH1+x4OiDVVGH8WlgGZGg= +github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= +github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/form3tech-oss/jwt-go v3.2.5+incompatible h1:/l4kBbb4/vGSsdtB5nUe8L7B9mImVMaBPw9L/0TBHU8= @@ -463,8 +462,9 @@ 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.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -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/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ= +github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= @@ -473,8 +473,9 @@ github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8 github.com/go-openapi/spec v0.19.5/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -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-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= +github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-ping/ping v0.0.0-20210201095549-52eed920f98c h1:fWdhUpCuoeNIPiQ+pkAmmERYEjhVx5/cbVGK7T99OkI= github.com/go-redis/redis v6.15.9+incompatible h1:K0pv1D7EQUjfyoMql+r/jZqCLizCGKFlFgcHWWmHQjg= github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY= @@ -483,6 +484,7 @@ github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfC github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/go-zookeeper/zk v1.0.2/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw= github.com/go-zookeeper/zk v1.0.3 h1:7M2kwOsc//9VeeFiPtf+uSJlVpU66x9Ba5+8XK7/TDg= @@ -499,13 +501,13 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a 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.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= 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-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY= github.com/golang-sql/sqlexp v0.0.0-20170517235910-f1bb20e5a188 h1:+eHOFJl1BaXrQxKX+T06f78590z4qA2ZzBTqahsKSE4= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= 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= @@ -547,11 +549,11 @@ github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEW 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/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= -github.com/google/cadvisor v0.47.1 h1:YyKnRy/3myRNGOvF1bNF9FFnpjY7Gky5yKi/ZlN+BSo= -github.com/google/cadvisor v0.47.1/go.mod h1:iJdTjcjyKHjLCf7OSTzwP5GxdfrkPusw2x5bwGvuLUw= +github.com/google/cadvisor v0.47.3 h1:5XKTHBduWlBjmgw07uwEiC+Xa/FRd0MZI37oqlTagO0= +github.com/google/cadvisor v0.47.3/go.mod h1:iJdTjcjyKHjLCf7OSTzwP5GxdfrkPusw2x5bwGvuLUw= github.com/google/flatbuffers v2.0.8+incompatible h1:ivUb1cGomAB101ZM1T0nOiWz9pSrTMoa9+EiY7igmkM= -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= @@ -593,24 +595,25 @@ github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20230111200839-76d1ae5aea2b h1:8htHrh2bw9c7Idkb7YNac+ZpTqLMjRpI+FWu51ltaQc= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.2 h1:WVtYAYuYxKeYajAmThMRYWP6K3wXkcqbGHeUgeubUHY= -github.com/google/s2a-go v0.1.2/go.mod h1:OJpEgntRZo8ugHpF9hkoLJbS5dSI20XZeXJ9JVywLlM= +github.com/google/s2a-go v0.1.5 h1:8IYp3w9nysqv3JH+NJgXJzGbDHzLOTj43BmSkp+O7qg= +github.com/google/s2a-go v0.1.5/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= 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.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/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/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.5 h1:UR4rDjcgpgEnqpIEvkiqTYKBCKLNmlge2eVjoZfySzM= +github.com/googleapis/enterprise-certificate-proxy v0.2.5/go.mod h1:RxW0N9901Cko1VOCW3SXCpWP+mlIEkk2tP7jnHy9a3w= 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/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= -github.com/googleapis/gax-go/v2 v2.8.0 h1:UBtEZqx1bjXtOQ5BVTkuYghXrr3N4V123VKJK67vJZc= -github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= github.com/gopcua/opcua v0.3.1 h1:BS1TRJUdsPSwU0mlfc8Dffchh0jTw9lWchmF4HFRo2w= -github.com/gophercloud/gophercloud v1.2.0 h1:1oXyj4g54KBg/kFtCdMM6jtxSzeIyg8wv4z1HoGPp1E= -github.com/gophercloud/gophercloud v1.2.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM= +github.com/gophercloud/gophercloud v1.5.0 h1:cDN6XFCLKiiqvYpjQLq9AiM7RDRbIC9450WpPH+yvXo= +github.com/gophercloud/gophercloud v1.5.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gordonklaus/ineffassign v0.0.0-20200309095847-7953dde2c7bf/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= @@ -627,20 +630,20 @@ github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:Fecb github.com/grid-x/modbus v0.0.0-20211113184042-7f2251c342c9 h1:Q7e9kXS3sRbTjsNDKazbcbDSGAKjFdk096M3qYbwNpE= github.com/grid-x/serial v0.0.0-20211107191517-583c7356b3aa h1:Rsn6ARgNkXrsXJIzhkE4vQr5Gbx2LvtEMv4BJOK4LyU= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 h1:gDLXvp5S9izjldquuoAhDzccbskOL6tDC5jMSyx3zxE= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.17.1 h1:LSsiG61v9IzzxMkqEr6nrix4miJI62xlRjwT7BYD2SM= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.17.1/go.mod h1:Hbb13e3/WtqQ8U5hLGkek9gJvBLasHuPFI0UEGfnQ10= github.com/gwos/tcg/sdk v0.0.0-20211223101342-35fbd1ae683c h1:befb5xGUwNCoBuN/akLFCKekUzr0ixyws3aAX/7TaOk= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8= github.com/harlow/kinesis-consumer v0.3.5 h1:xeiDp2frP8DdKDeOzVuS+vaBX03JjifQO/Apzu4IOMA= github.com/hashicorp/consul/api v1.10.1/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= github.com/hashicorp/consul/api v1.13.0/go.mod h1:ZlVrynguJKcYr54zGaDbaL3fOvKC9m72FhPvA8T35KQ= -github.com/hashicorp/consul/api v1.20.0 h1:9IHTjNVSZ7MIwjlW3N3a7iGiykCMDpxZu8jsxFJh0yc= -github.com/hashicorp/consul/api v1.20.0/go.mod h1:nR64eD44KQ59Of/ECwt2vUmIK2DKsDzAwTmwmLl8Wpo= +github.com/hashicorp/consul/api v1.24.0 h1:u2XyStA2j0jnCiVUU7Qyrt8idjRn4ORhK6DlvZ3bWhA= +github.com/hashicorp/consul/api v1.24.0/go.mod h1:NZJGRFYruc/80wYowkPFCp1LbGmJC9L8izrwfyVx/Wg= github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= -github.com/hashicorp/consul/sdk v0.13.1 h1:EygWVWWMczTzXGpO93awkHFzfUka6hLYJ0qhETd+6lY= -github.com/hashicorp/cronexpr v1.1.1 h1:NJZDd87hGXjoZBdvyCF9mX4DCq5Wy7+A/w+A7q0wn6c= -github.com/hashicorp/cronexpr v1.1.1/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= +github.com/hashicorp/consul/sdk v0.14.1 h1:ZiwE2bKb+zro68sWzZ1SgHF3kRMBZ94TwOCFRF4ylPs= +github.com/hashicorp/cronexpr v1.1.2 h1:wG/ZYIKT+RT3QkOdgYc+xsKWVRgnxJ1OJtjjy84fJ9A= +github.com/hashicorp/cronexpr v1.1.2/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -667,8 +670,8 @@ github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9 github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= -github.com/hashicorp/go-retryablehttp v0.7.2 h1:AcYqCvkpalPnPF2pn0KamgwamS42TqUDDYFRKq/RAd0= -github.com/hashicorp/go-retryablehttp v0.7.2/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= +github.com/hashicorp/go-retryablehttp v0.7.4 h1:ZQgVdpTdAL7WpMIwLzCfbalOcSUdkDZnpUv3/+BxzFA= +github.com/hashicorp/go-retryablehttp v0.7.4/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= @@ -678,15 +681,14 @@ github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjG github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= +github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= 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/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4= -github.com/hashicorp/golang-lru v0.6.0/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= +github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= @@ -695,8 +697,8 @@ github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOn github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/memberlist v0.5.0 h1:EtYPN8DpAURiapus508I4n9CzHs2W+8NZGbmmR/prTM= github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0= -github.com/hashicorp/nomad/api v0.0.0-20230427164118-891999789689 h1:242b5sx6OT++2a6pWYfNwyPobjvs3mloZY4VEg7fNgA= -github.com/hashicorp/nomad/api v0.0.0-20230427164118-891999789689/go.mod h1:7oviKweAj30zXQ5QL9QypEnpjkiMPaurHaeppxCuv7M= +github.com/hashicorp/nomad/api v0.0.0-20230718173136-3a687930bd3e h1:sr4lujmn9heD030xx/Pd4B/JSmvRhFzuotNXaaV0WLs= +github.com/hashicorp/nomad/api v0.0.0-20230718173136-3a687930bd3e/go.mod h1:O23qLAZuCx4htdY9zBaO4cJPXgleSFEdq6D/sezGgYE= github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= github.com/hashicorp/serf v0.9.6/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4= github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= @@ -708,7 +710,6 @@ github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKe github.com/hetznercloud/hcloud-go v1.41.0 h1:KJGFRRc68QiVu4PrEP5BmCQVveCP2CM26UGQUKGpIUs= github.com/hetznercloud/hcloud-go v1.41.0/go.mod h1:NaHg47L6C77mngZhwBG652dTAztYrsZ2/iITJKhQkHA= github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= -github.com/hjson/hjson-go/v4 v4.0.0 h1:wlm6IYYqHjOdXH1gHev4VoXCaW20HdQAGCxdOEEg2cs= github.com/hjson/hjson-go/v4 v4.0.0/go.mod h1:KaYt3bTw3zhBjYqnXkYywcYctk0A2nxeEFTse3rH13E= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/hudl/fargo v1.4.0/go.mod h1:9Ai6uvFy5fQNq6VPKtg+Ceq1+eTY4nKUlR2JElEOcDo= @@ -717,8 +718,8 @@ github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47 github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= -github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= +github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= +github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/go-syslog/v3 v3.0.1-0.20210608084020-ac565dc76ba6 h1:s9ZL6ZhFF8y6ebnm1FLvobkzoIu5xwDQUcRPk/IEhpM= @@ -739,8 +740,8 @@ github.com/influxdata/toml v0.0.0-20190415235208-270119a8ce65/go.mod h1:zApaNFpP github.com/influxdata/wlog v0.0.0-20160411224016-7c63b0a71ef8 h1:W2IgzRCb0L9VzMujq/QuTaZUKcH8096jWwP519mHN6Q= github.com/influxdata/wlog v0.0.0-20160411224016-7c63b0a71ef8/go.mod h1:/2NMgWB1DHM1ti/gqhOlg+LJeBVk6FqR5aVGYY0hlwI= github.com/intel/iaevents v1.0.0 h1:J8lETV13FMImV0VbOrKhkA790z7+cAHQ/28gbiefu7E= -github.com/ionos-cloud/sdk-go/v6 v6.1.4 h1:BJHhFA8Q1SZC7VOXqKKr2BV2ysQ2/4hlk1e4hZte7GY= -github.com/ionos-cloud/sdk-go/v6 v6.1.4/go.mod h1:Ox3W0iiEz0GHnfY9e5LmAxwklsxguuNFEUSu0gVRTME= +github.com/ionos-cloud/sdk-go/v6 v6.1.8 h1:493wE/BkZxJf7x79UCE0cYGPZoqQcPiEBALvt7uVGY0= +github.com/ionos-cloud/sdk-go/v6 v6.1.8/go.mod h1:EzEgRIDxBELvfoa/uBN0kOQaqovLjUWEB7iW4/Q+t4k= github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= github.com/jackc/pgconn v1.11.0 h1:HiHArx4yFbwl91X3qqIHtUFoiIfLNJXCQRsnzkiwwaQ= github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= @@ -751,6 +752,7 @@ github.com/jackc/pgtype v1.10.0 h1:ILnBWrRMSXGczYvmkYD6PsYyVFUNLTnIUJHHDLmqk38= github.com/jackc/pgx/v4 v4.15.0 h1:B7dTkXsdILD3MF987WGGCcg+tvLW6bZJdEcqVFeU//w= github.com/jaegertracing/jaeger v1.26.0 h1:4LbUdb9l/Mx83zYvjLbkrayheX+Aga26NEI+feo3xzA= github.com/james4k/rcon v0.0.0-20120923215419-8fbb8268b60a h1:JxcWget6X/VfBMKxPIc28Jel37LGREut2fpV+ObkwJ0= +github.com/jarcoal/httpmock v1.3.0 h1:2RJ8GP0IIaWwcC9Fp2BmVi8Kog3v2Hn7VXM3fTd+nuc= github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo= github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8= @@ -762,7 +764,6 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= 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= @@ -785,16 +786,17 @@ github.com/kardianos/service v1.2.1/go.mod h1:CIMRFEJVL+0DS1a3Nx06NaMn4Dz63Ng6O7 github.com/karrick/godirwalk v1.17.0 h1:b4kY7nqDdioR/6qnbHQyDvmA17u5G1cZ6J+CZXwSWoI= github.com/karrick/godirwalk v1.17.0/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= -github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= github.com/klauspost/compress v1.14.4/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= -github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= +github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= github.com/knadh/koanf v1.5.0 h1:q2TSd/3Pyc/5yP9ldIrSdIz26MCcyNQzW0pEAugLPNs= github.com/knadh/koanf v1.5.0/go.mod h1:Hgyjp4y8v44hpZtPzs7JZfRAW5AhN7KfZcwv1RYggDs= +github.com/knadh/koanf/v2 v2.0.1 h1:1dYGITt1I23x8cfx8ZnldtezdyaZtfAuRtIFOiRzK7g= +github.com/knadh/koanf/v2 v2.0.1/go.mod h1:ZeiIlIDXTE7w1lMT6UVcNiRAS2/rCeLn/GdLNvY1Dus= github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b h1:udzkj9S/zlT5X367kqJis0QP7YMxobob6zhzq6Yre00= github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b/go.mod h1:pcaDhQK0/NJZEvtCO0qQPPropqV0sJOJ6YW7X+9kRwM= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -813,8 +815,8 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/leesper/go_rng v0.0.0-20190531154944-a612b043e353 h1:X/79QL0b4YJVO5+OsPH9rF2u428CIrGL/jLmPsoOQQ4= github.com/leodido/ragel-machinery v0.0.0-20181214104525-299bdde78165 h1:bCiVCRCs1Heq84lurVinUPy19keqGEe4jh5vtK37jcg= -github.com/linode/linodego v1.14.1 h1:uGxQyy0BidoEpLGdvfi4cPgEW+0YUFsEGrLEhcTfjNc= -github.com/linode/linodego v1.14.1/go.mod h1:NJlzvlNtdMRRkXb0oN6UWzUkj6t+IBsyveHgZ5Ppjyk= +github.com/linode/linodego v1.19.0 h1:n4WJrcr9+30e9JGZ6DI0nZbm5SdAj1kSwvvt/998YUw= +github.com/linode/linodego v1.19.0/go.mod h1:XZFR+yJ9mm2kwf6itZ6SCpu+6w3KnIevV0Uu5HNWJgQ= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -838,22 +840,23 @@ github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOA 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/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= github.com/mdlayher/apcupsd v0.0.0-20200608131503-2bf01da7bf1b h1:Kcr+kPbkWZHFHXwl87quXUAmavS4/IMgu2zck3aiE7k= -github.com/mesos/mesos-go v0.0.7-0.20180413204204-29de6ff97b48 h1:YIHidb4LpHLt+cW1ezhU9T8ed6/K8sWbban61KMgeWI= -github.com/mesos/mesos-go v0.0.7-0.20180413204204-29de6ff97b48/go.mod h1:kPYCMQ9gsOXVAle1OsoY4I1+9kPu8GHkf88aV59fDr4= +github.com/mesos/mesos-go v0.0.11 h1:jMp9+W3zLu46g8EuP2su2Sjj7ipBh4N/g65c0kzGl/8= +github.com/mesos/mesos-go v0.0.11/go.mod h1:kPYCMQ9gsOXVAle1OsoY4I1+9kPu8GHkf88aV59fDr4= github.com/microsoft/ApplicationInsights-Go v0.4.4 h1:G4+H9WNs6ygSCe6sUyxRc2U81TI5Es90b2t/MwX5KqY= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4= -github.com/miekg/dns v1.1.51 h1:0+Xg7vObnhrz/4ZCZcZh7zPXlmU0aveS2HDBd0m0qSo= -github.com/miekg/dns v1.1.51/go.mod h1:2Z9d3CP1LQWihRZUf29mQ19yDThaI4DAYzte2CaQW5c= +github.com/miekg/dns v1.1.55 h1:GoQ4hpsj0nFLYe+bWiCToyrBEJXkQfOOIvFGFy0lEgo= +github.com/miekg/dns v1.1.55/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 h1:+n/aFZefKZp7spd8DFdX7uMikMLXX4oubIzJF4kv/wI= github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= @@ -876,8 +879,9 @@ github.com/mitchellh/hashstructure/v2 v2.0.2/go.mod h1:MG3aRVU/N29oo/V/IhBX8GR/z github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.5.1-0.20220423185008-bf980b35cac4 h1:BpfhmLKZf+SjVanKKhCgf3bg+511DmU9eDQTen7LLbY= +github.com/mitchellh/mapstructure v1.5.1-0.20220423185008-bf980b35cac4/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= @@ -886,8 +890,8 @@ github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0Gq github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= -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/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= @@ -899,8 +903,8 @@ github.com/montanaflynn/stats v0.7.0 h1:r3y12KyNxj/Sb/iOE46ws+3mS1+MZca1wlHQFPsY github.com/montanaflynn/stats v0.7.0/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mostynb/go-grpc-compression v1.1.18 h1:4a9UFaq3GvZO64ZRWPhxbJhAMsbDNIGznsSA3v1oO8U= -github.com/mostynb/go-grpc-compression v1.1.18/go.mod h1:U/0nmev+iFgBJ/jsVEeJi4UzoGrixmDcsfmMB6JsROg= +github.com/mostynb/go-grpc-compression v1.2.0 h1:KJzRFSYPXlcoYjG5/xLZB8tpuOyWF2UnlW4tAuaWnfI= +github.com/mostynb/go-grpc-compression v1.2.0/go.mod h1:oidYvYyefMmhcuvU8fLJ8FfZyTyVzJ6SkmD5fIKgRe8= github.com/mrunalp/fileutils v0.5.0 h1:NKzVxiH7eSk+OQ4M+ZYW1K6h27RUV3MI6NUTsHhU6Z4= github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/multiplay/go-ts3 v1.0.1 h1:Ja8ho7UzUDNvNCwcDzPEPimLRub7MUqbD+sgMWkcR0A= @@ -944,40 +948,39 @@ github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+ github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.2 h1:HFB2fbVIlhIfCfOW81bZFbiC/RvnpXSdhbF2/DJr134= github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E= -github.com/onsi/ginkgo/v2 v2.4.0 h1:+Ig9nvqgS5OBSACXNk15PLdp0U9XPYROt9CFzVdFGIs= +github.com/onsi/ginkgo/v2 v2.9.4 h1:xR7vG4IXt5RWx6FfIjyAtsoMAtnc3C/rFXBBd2AjZwE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY= -github.com/onsi/gomega v1.23.0 h1:/oxKu9c2HVap+F3PfKort2Hw5DEU+HGlW8n+tguWsys= +github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.77.0 h1:l4T8p1MOei5MJOheFAJVuSnJcAR1D929I7ycoqMIKPg= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.84.0 h1:WFCStS52a3bMG9nEG6Eo8+EfgtXfGclTN/H4as7jdkE= github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.77.0 h1:UU5IzATj3qbO6E3eY27pe5JrP/GiKOal58vWRNzqt94= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/metrics v0.79.0 h1:EXFITXhCONGJ2htxXqujga3ZJaUQj7hqeLlnpYaVU1s= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/metrics v0.79.0/go.mod h1:r03E03RLmrUgq1b/AD1owCVLqsg47sEWHent1PHKmR0= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/proxy v0.77.0 h1:c5u+RvQdxzUpZT21c+nekncCVrHxRjKPAyH6fPGoaQA= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/proxy v0.77.0/go.mod h1:vbcR9csQOgXrC0BoeMkI2+bD1XVUAlKE2JyXTI2ohe0= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.77.0 h1:HPVUROsYrT7mhQmN7Uq5nBSHal2EBt1jMgSl4SaZwmk= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.77.0/go.mod h1:1SVC7lnA0oBe04J8227vIyrWPoqAE34uf1v2hV6ZA4s= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.79.0 h1:OZPeakqoSZ1yRlmGBlWi9kISx/9PJzlNLGLutFPOQY0= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.79.0/go.mod h1:VOHKYi1wm+/c2wZA3mY1Grd4eYP8uS//EV0yHBbGfGw= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/metrics v0.84.0 h1:KwJDgnqegui18ebzCfxHURRstPjY2CfM/yGRugcdOT8= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/metrics v0.84.0/go.mod h1:WAScm+oitM87OWSy+pPAC6eCzg3xhYz3VBSef2+zV60= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/proxy v0.84.0 h1:vfZIgsfOkrY+bqh3HGYWDtvxN5SR4B+IYJqY1733j+8= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/proxy v0.84.0/go.mod h1:usmD73QN6Rpydh47E9lg60NqAHGy+GfeMdSwIzjiiaM= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.84.0 h1:Z6mmJnj4t47FLifxesZsuGN9mZRCT6pUY5Y5g8SWJkw= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.84.0/go.mod h1:6XJ+dV/QjwFJf55/2nnVfVqA+qwa8Y/iYR6taPJN7n0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.84.0 h1:EMdLjuWUpbkbYQ/lEg+qZk3lGEG2iPiU+t6g7g/J/5s= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.84.0/go.mod h1:sEq5Vn7ZiuT79tcx/CxDFyhrx1f2jV7kMQhOpdVTAa0= github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.77.0 h1:8eOHDnhQNPGbsBwZUqmh18bi0qZLoQM1/sd0GioR/3Q= github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.77.0/go.mod h1:OQDKEEfLz0fqSuxga9FlG+UvaIvBCLFW7WI4UAePYvw= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.77.0 h1:belMM8E/AWOFg8KiA1X5RijLQ8a+Bmm5+wxPTkCpZs8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.77.0/go.mod h1:Jw5brYtBV95ktVbvwh9SOxR5FQ7kXeqJcvLfJ0RBr5A= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/kubelet v0.77.0 h1:szzV9H6yBsfbWkR7C4p/rIvndJdFthimxo04VDtZzSQ= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/kubelet v0.77.0/go.mod h1:HfyjPxK4sCw7FJ5cgwnDmfFsjJ81KF2ImByXXp2kxcc= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.84.0 h1:OOtqiVIRcv3eWpCoziXjq/Xr4O2KoqZZ3g5pRjug/Nk= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.84.0/go.mod h1:iL+tGP94Xdes4iUmss/Me8OOqvJhWeBWPcW8OgHQZyo= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/kubelet v0.84.0 h1:ezuTl9JDE/v83DnyJk5jLEumkgu0nxdoWXNTKmJ/+KA= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/kubelet v0.84.0/go.mod h1:u8PmrJN1vhdnUtyMkxoze478uOzX/bVTeJebvM5xyHU= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.77.0 h1:h6vlcqQRJeZwcGt95LVYWn7J8HnCDVXSBlKthPPnQAM= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.77.0/go.mod h1:psQngNEAWgamCpnTWEg0E0dMQZppcMa4TzBdiNbZuOg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.79.0 h1:YtkbJjknfMJ4UKXdaUBTw37QLxYXuVMmozqPFTM0XPI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.79.0 h1:Cao5mD7NFJsMLM40lisqJ4Iy3+v+JOq+8cR79/Uki94= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.79.0/go.mod h1:/wfeJfzu3oAkC2boitFR3dZcnwNtwzryI/SW1LIhDLo= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.79.0 h1:R9lB4lMuDaCJP9l6SiOA9u0GPJm5nV5Fefb9cPo9gZQ= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.79.0/go.mod h1:KBcxvUZWwgSPwdH3oOub7NGNnwu673UdMDXtgn9xjvU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/opencensus v0.77.0 h1:0YjNtrlIwAi4YQ5uznZbgZytsO7eTPB1NZGh/Xuv6dU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.77.0 h1:CFTeCIKxPyypJcH5ZhthAfV93pbi5huF44NEftABnjk= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.84.0 h1:NXzx/YViPbapdfI0RZ2RJk4XgKU099Ci9rGBsZ/div8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.84.0 h1:Zuk1i/92HvV5cI6dtsG/VWSKwaLGh17q9a26qP9DBbo= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.84.0/go.mod h1:WoSzL9NAVwvEy1lMwM2utn68g0Khoxm591WliToPnDQ= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.84.0 h1:jrkXndFdbFMSLWKTva9NEIfxqslPpRCMwgmlctPBxqY= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.84.0/go.mod h1:I6U5NVX6YWcqQY2Rg8SFrmQfaPVM3ZpypUSSg14f0JQ= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.84.0 h1:EuRz/++XprYiwsmIYcbn/DLrrCySdmObPPUURLcQzcE= github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.77.0 h1:/6aMxOY14YS3xbm+HuxXI8NFxTnmRHwLf5CARLEzzDw= github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.77.0/go.mod h1:PU+KpXerGtB06q/nSvyVYoO3/EKBs243OIM+BFPVtkg= github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.77.0 h1:ewo6UOO4aIGV0TbwSm/MlSBc7rKGPJhwqN96ogTJpn4= @@ -992,8 +995,8 @@ github.com/openconfig/gnmi v0.0.0-20180912164834-33a1865c3029 h1:lXQqyLroROhwR2Y 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.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= -github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= +github.com/opencontainers/image-spec v1.1.0-rc4 h1:oOxKUJWnFC4YGHCCMNql1x4YaDfYBTS5Y4x/Cgeo1E0= +github.com/opencontainers/image-spec v1.1.0-rc4/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= github.com/opencontainers/runc v1.1.4/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= github.com/opencontainers/runc v1.1.5/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= @@ -1012,13 +1015,12 @@ github.com/openshift/client-go v0.0.0-20210521082421-73d9475a9142/go.mod h1:fjS8 github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/openzipkin/zipkin-go v0.2.5/go.mod h1:KpXfKdgRDnnhsxw4pNIH9Md5lyFqKUa4YDFlwRYAMyE= -github.com/ovh/go-ovh v1.3.0 h1:mvZaddk4E4kLcXhzb+cxBsMPYp2pHqiQpWYkInsuZPQ= -github.com/ovh/go-ovh v1.3.0/go.mod h1:AxitLZ5HBRPyUd+Zl60Ajaag+rNTdVXWIkzfrVuTXWA= +github.com/ovh/go-ovh v1.4.1 h1:VBGa5wMyQtTP7Zb+w97zRCh9sLtM/2YKRyy+MEJmWaM= +github.com/ovh/go-ovh v1.4.1/go.mod h1:6bL6pPyUT7tBfI0pqOegJgRjgjuO+mOo+MyXd1EEC0M= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= -github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/performancecopilot/speed/v4 v4.0.0/go.mod h1:qxrSyuDGrTOWfV+uKRFhfxw6h/4HXRGUiZiufxo49BM= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/philhofer/fwd v1.1.1 h1:GdGcTjf5RNAxwS4QLsiMzJYj5KEvPJD3Abr261yRQXQ= @@ -1038,8 +1040,9 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= @@ -1056,8 +1059,8 @@ github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrb github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_golang v1.13.0/go.mod h1:vTeo+zgvILHsnnj/39Ou/1fPN5nJFOEMgftOUOmlvYQ= github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= -github.com/prometheus/client_golang v1.15.1 h1:8tXpTmJbyH5lydzFPoxSIJ0J46jdh3tylbvM1xCv0LI= -github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= +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-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -1085,8 +1088,8 @@ github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= -github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= -github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/prometheus/procfs v0.11.0 h1:5EAgkfkMl659uZPbe9AS2N68a7Cc1TJbPEuGzFuRbyk= +github.com/prometheus/procfs v0.11.0/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= github.com/prometheus/prometheus v0.42.0 h1:G769v8covTkOiNckXFIwLx01XE04OE6Fr0JPA0oR2nI= github.com/prometheus/prometheus v0.42.0/go.mod h1:Pfqb/MLnnR2KK+0vchiaH39jXxvLMBk+3lnIGP4N7Vk= github.com/prometheus/statsd_exporter v0.22.7 h1:7Pji/i2GuhK6Lu7DHrtTkFmNBCudCPT1pX2CziuyQR0= @@ -1094,8 +1097,7 @@ github.com/prometheus/statsd_exporter v0.22.7/go.mod h1:N/TevpjkIh9ccs6nuzY3jQn9 github.com/rabbitmq/amqp091-go v1.2.0/go.mod h1:ogQDLSOACsLPsIq0NpbtiifNZi2YOz0VTJ0kHRghqbM= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/rhnvrm/simples3 v0.6.1/go.mod h1:Y+3vYm2V7Y4VijFoJHHTrja6OgPrJ2cBti8dPGkC3sA= github.com/riemann/riemann-go-client v0.5.0 h1:yPP7tz1vSYJkSZvZFCsMiDsHHXX57x8/fEX3qyEXuAA= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= @@ -1103,8 +1105,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR 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= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= -github.com/rs/cors v1.9.0 h1:l9HGsTsHJcvW14Nk7J9KFz8bzeAWXn3CG6bgt7LsrAE= -github.com/rs/cors v1.9.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/cors v1.10.0 h1:62NOS1h+r8p1mW6FM0FSB0exioXLhd/sh15KpjWBZ+8= +github.com/rs/cors v1.10.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= @@ -1113,15 +1115,15 @@ github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIH github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1 h1:ZFfeKAhIQiiOrQaI3/znw0gOmYpO28Tcu1YaqMa/jtQ= github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= github.com/samuel/go-zookeeper v0.0.0-20200724154423-2164a8ac840e h1:CGjiMQ0wMH4wtNWrlj6kiTbkPt2F3rbYnhGX6TWLfco= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.14 h1:yFl3jyaSVLNYXlnNYM5z2pagEk1dYQhfr1p20T1NyKY= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.14/go.mod h1:fCa7OJZ/9DRTnOKmxvT6pn+LPWUptQAmHF/SBJUGEcg= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.20 h1:a9hSJdJcd16e0HoMsnFvaHvxB3pxSD+SC7+CISp7xY0= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.20/go.mod h1:fCa7OJZ/9DRTnOKmxvT6pn+LPWUptQAmHF/SBJUGEcg= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646 h1:RpforrEYXWkmGwJHIGnLZ3tTWStkjVVstwzNGqxX2Ds= github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= github.com/shirou/gopsutil v3.21.5+incompatible h1:OloQyEerMi7JUrXiNzy8wQ5XN+baemxSl12QgIzt0jc= github.com/shirou/gopsutil v3.21.5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= +github.com/shoenig/test v0.6.6 h1:Oe8TPH9wAbv++YPNDKJWUnI8Q4PPWCx3UbOfH+FxiMU= github.com/showwin/speedtest-go v1.1.4 h1:pcY1W5LYZu44lH6Fuu80nu/Pj67n//VArlZudbAgR6E= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/signalfx/com_signalfx_metrics_protobuf v0.0.2 h1:X886QgwZH5qr9HIQkk3mWcNEhUxx6D8rUZumzLV4Wiw= @@ -1149,7 +1151,6 @@ github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzu github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= 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/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271 h1:WhxRHzgeVGETMlmVfqhRn8RIeeNoPr2Czh33I4Zdccw= github.com/streadway/handy v0.0.0-20200128134331-0f66f006fb2e/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= @@ -1169,6 +1170,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/stvp/go-udp-testing v0.0.0-20201019212854-469649b16807/go.mod h1:7jxmlfBCDBXRzr0eAQJ48XC1hBu1np4CS5+cHEYfwpc= @@ -1185,11 +1187,11 @@ github.com/tidwall/wal v1.1.7 h1:emc1TRjIVsdKKSnpwGBAcsAGg0767SvUk8+ygx7Bb+4= github.com/tinylib/msgp v1.1.6 h1:i+SbKraHhnrf9M5MYmvQhFnbLhAXSDWF8WWsuyRdocw= github.com/tinylib/msgp v1.1.6/go.mod h1:75BAfg2hauQhs3qedfdDZmWAPcFMAvJE5b9rGOMufyw= github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= -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/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ= -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/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/vapourismo/knx-go v0.0.0-20211128234507-8198fa17db36 h1:JBj2CqnFwBhI3XsdMNn9MjKvehog+p5QZihotqq0Zuo= @@ -1228,8 +1230,9 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yuin/gopher-lua v0.0.0-20200816102855-ee81675732da h1:NimzV1aGyq29m5ukMK0AMWEhFaL/lrEOaephfuoiARg= -github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/api/v3 v3.5.4/go.mod h1:5GB2vv4A4AOn3yk7MftYGHkUfGtDHnEraIjym4dYz5A= @@ -1248,58 +1251,102 @@ 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/collector v0.79.0 h1:Lra7U0ilMor1g5WVkO3YZ0kZYsvzAtGN+Uq+CmC96JY= -go.opentelemetry.io/collector v0.79.0/go.mod h1:O2Vfwykphq9VqdATZiAypjnJMS3WFBXwFSe/0ujo38Q= -go.opentelemetry.io/collector/component v0.79.0 h1:ZKLJ4qa0AngmyGp1RQBJgl6OIP6mxdfrVpbz09h/W34= -go.opentelemetry.io/collector/component v0.79.0/go.mod h1:rX0gixMemcXZTZaML5zUiT+5txZUYkWnACscJkFVj18= -go.opentelemetry.io/collector/confmap v0.79.0 h1:a4XVde3lLP81BiSbt8AzVD6pvQBX8YkrB9ZtMSHKv1A= -go.opentelemetry.io/collector/confmap v0.79.0/go.mod h1:cKr2c7lVtEJCuMOncUPlcROJBbTFaHiPjYp1Y8RbL+Q= -go.opentelemetry.io/collector/consumer v0.79.0 h1:V/4PCvbTw2Bt+lYb/ogac0g/nCCb3oKnmz+jM3t5Dyk= -go.opentelemetry.io/collector/consumer v0.79.0/go.mod h1:VfqIyUI5K20zXx3mfVN+skmA+V3sV5fNorJ5TaIOj/U= -go.opentelemetry.io/collector/exporter v0.79.0 h1:PxhKgWf1AkZvN1PjiJT5xiO+pKZA9Y4fyuMs5aNFuEA= -go.opentelemetry.io/collector/exporter v0.79.0/go.mod h1:qlXiqnOUeHelpAwk03f8nB5+91UIqlA7udSBsj9bJ3M= +go.opentelemetry.io/collector v0.85.0 h1:I037iYQ2FlAOKmaesT5Hgy7VazJO5oO4rcHSgc1+K8A= +go.opentelemetry.io/collector v0.85.0/go.mod h1:jcETa0UJmwkDSyhkOTwQi8rgie1M3TjsIO98KeGM2vk= +go.opentelemetry.io/collector/component v0.85.0 h1:RdeUDdX3prvkf0PFFbhMjWLsYUJdxy/d0oovOuObRDs= +go.opentelemetry.io/collector/component v0.85.0/go.mod h1:C3CWpjYa+k7Vjkqes/8abJ/fkCn6FlR1sNkW4QPd+kI= +go.opentelemetry.io/collector/config/configauth v0.85.0 h1:KJquqyQ/Am3wgyOEhLHAYmLix1Mow7zUORNKitUv6GQ= +go.opentelemetry.io/collector/config/configauth v0.85.0/go.mod h1:+NTOnvvrYtuLUu5e0dM9luKjeyzHf+DPK9MEP/S24Vk= +go.opentelemetry.io/collector/config/configcompression v0.85.0 h1:QWqDla4mE+pDV+97vnA8OpBxX4VJxllsi1DSMN2M0mo= +go.opentelemetry.io/collector/config/configcompression v0.85.0/go.mod h1:LaavoxZsro5lL7qh1g9DMifG0qixWPEecW18Qr8bpag= +go.opentelemetry.io/collector/config/configgrpc v0.85.0 h1:stXgQ5wzP7n30C9OGG7iqq30OOvo4+d+hIlVPSPLm1Q= +go.opentelemetry.io/collector/config/configgrpc v0.85.0/go.mod h1:eeLoy8XDh6Pb3y/6OkuxxTxk+ppf2MoJ2y+YM35avvo= +go.opentelemetry.io/collector/config/confighttp v0.85.0 h1:CwY8qLcMdRshKCPzdZX6UnH5QU4YwuXtLNt/E6if+LY= +go.opentelemetry.io/collector/config/confighttp v0.85.0/go.mod h1:T+UpZ+VwkayTaFOAANa4nkUx1P3YlYdR6gx6mSoEwsU= +go.opentelemetry.io/collector/config/confignet v0.85.0 h1:oo+P10MC5wWvSfN5NyZFqVXQCvVNfAwf0SIRDcFRuJ0= +go.opentelemetry.io/collector/config/confignet v0.85.0/go.mod h1:cpO8JYWGONaViOygKVw+Hd2UoBcn2cUiyi0WWeFTwJY= +go.opentelemetry.io/collector/config/configopaque v0.85.0 h1:FdQCf88Vq2yX7kiRswN00t/oGY+BbRCaAd0paG0if1A= +go.opentelemetry.io/collector/config/configopaque v0.85.0/go.mod h1:TPCHaU+QXiEV+JXbgyr6mSErTI9chwQyasDVMdJr3eY= +go.opentelemetry.io/collector/config/configtelemetry v0.85.0 h1:hxKBwHEK4enl4YKtdZCq2rxxIKHrccoChoZlVgG8vbI= +go.opentelemetry.io/collector/config/configtelemetry v0.85.0/go.mod h1:+LAXM5WFMW/UbTlAuSs6L/W72WC+q8TBJt/6z39FPOU= +go.opentelemetry.io/collector/config/configtls v0.85.0 h1:oYXJ5Je0218tXyJef1ri98HDEORPdToO4rM1C7D+1YI= +go.opentelemetry.io/collector/config/configtls v0.85.0/go.mod h1:IZJrxrpGoNb5W8U1ihe2lLOp0KdtBYPC6z2aoaBrRPo= +go.opentelemetry.io/collector/config/internal v0.85.0 h1:Pjr2XMqSLCHXsmzZrW7zVZf1VBcal84tYNDoEsu8loA= +go.opentelemetry.io/collector/config/internal v0.85.0/go.mod h1:XN8Y+Vhq/RqxGry7CGKwhMXJptUrmWTHdC6ZeI+Uy9E= +go.opentelemetry.io/collector/confmap v0.85.0 h1:xyshTMElkpCJRCbg9OyGL41f7ToCr+PRBJKuAbGR17I= +go.opentelemetry.io/collector/confmap v0.85.0/go.mod h1:/SNHqYkLagF0TjBjQyCy2Gt3ZF6hTK8VKbaan/ZHuJs= +go.opentelemetry.io/collector/connector v0.85.0 h1:eiDGlbhjRCrhZlgcIbm5fizKBnZ4t7P6bjgehldKx88= +go.opentelemetry.io/collector/connector v0.85.0/go.mod h1:2CK6s5lepQ59In8bBw6UmAknBCVxXQY9Xg6hCxJQjlQ= +go.opentelemetry.io/collector/consumer v0.85.0 h1:YG1yQHhuLWLNANyRIqM6QasVFKanDI/p51mcjXV8+k8= +go.opentelemetry.io/collector/consumer v0.85.0/go.mod h1:Ysc7XgJDZuNkyyvQVKz+/e6R3Z7haiOcFNsjkgmBSHY= +go.opentelemetry.io/collector/exporter v0.85.0 h1:06RnmrcEiBG3xhhGcGNT+hEk/j/4XtHavlMIxZcJHQE= +go.opentelemetry.io/collector/exporter v0.85.0/go.mod h1:4RNnq8xd6OBmc10XUF/K+NLUMfRiXrus+XRpAZeoLuA= go.opentelemetry.io/collector/exporter/loggingexporter v0.77.0 h1:IkuBTjX8QBG+tVcOSp3gicP3cFOI8N5KPAidDAo9spA= go.opentelemetry.io/collector/exporter/loggingexporter v0.77.0/go.mod h1:KvOq4wgypNrAAx81AEo+1G7h83sJn68IdfGVVlDoNaU= -go.opentelemetry.io/collector/extension/zpagesextension v0.79.0 h1:I1DIomwNnNecBBSKLR3O0OlEqbPNCtMw48tAfj39VKM= -go.opentelemetry.io/collector/featuregate v1.0.0-rcv0012 h1:pSO81lfikGEgRXHepmOGy2o6WWCly427UJCgMJC5c8g= -go.opentelemetry.io/collector/featuregate v1.0.0-rcv0012/go.mod h1:/kVAsGUCyJXIDSgHftCN63QiwAEVHRLX2Kh/S+dqgHY= +go.opentelemetry.io/collector/extension v0.85.0 h1:izKozTZ4vOnYdMGhu0ROV69hXCptH6DI8JVkN/ZOEJQ= +go.opentelemetry.io/collector/extension v0.85.0/go.mod h1:l5zRPdhtmBjRmPeOhxJsZ/GRIimq4/HIAq/Rgf70W+o= +go.opentelemetry.io/collector/extension/auth v0.85.0 h1:mMZfNUCeWaXnQY85gepFA9uhzsEf0AAnAE4/Oblx/Wc= +go.opentelemetry.io/collector/extension/auth v0.85.0/go.mod h1:TBe1YtL27cc7liJFpamMhkmMVOEzR5/ccavvQFlLkAQ= +go.opentelemetry.io/collector/extension/zpagesextension v0.85.0 h1:nhcOh4HAKOmOHEnZjCcicv3GXy9L7IKKXMkKMt54qm4= +go.opentelemetry.io/collector/featuregate v1.0.0-rcv0014.0.20230908201109-ab3d6c5b6470 h1:W4D/cCSsvMaNZOk17ak19okMXb2iq07zaeABRlyALzQ= +go.opentelemetry.io/collector/featuregate v1.0.0-rcv0014.0.20230908201109-ab3d6c5b6470/go.mod h1:fLmJMf1AoHttkF8p5oJAc4o5ZpHu8yO5XYJ7gbLCLzo= go.opentelemetry.io/collector/model v0.44.0 h1:I+M6X2NANYChOGYrpbxCoEYJah3eHdMvumKjothIAtA= -go.opentelemetry.io/collector/pdata v1.0.0-rcv0012 h1:R+cfEUMyLn9Q1QknyQ4QU77pbfc1aJKYEXFHtnwSbCg= -go.opentelemetry.io/collector/pdata v1.0.0-rcv0012/go.mod h1:rEAKFqc1L03lidKtra/2/dJtI0Hp+JsQxuPEIkj/2Vg= -go.opentelemetry.io/collector/processor/batchprocessor v0.77.0 h1:ZSZaOYG17wwXr/oJ0pBLlZImsMW/om+33KPZ6BtE9W0= -go.opentelemetry.io/collector/processor/batchprocessor v0.77.0/go.mod h1:+p8+zjhFSplrlHM+TQfTUTVKhA5osud0p8BFqKxaMoI= -go.opentelemetry.io/collector/receiver v0.79.0 h1:Ag4hciAYklQWDpKbnmqhfh9zJlUskWvThpCpphp12b4= -go.opentelemetry.io/collector/receiver v0.79.0/go.mod h1:+/xe0VoYl6Mli+KQTZWBR2apqFsbioAAqu7abzKDskI= +go.opentelemetry.io/collector/pdata v1.0.0-rcv0014.0.20230908201109-ab3d6c5b6470 h1:wGdaYUS9S4Ot+WxmsxpagV5+GypvGgX51lR2jT9Kw10= +go.opentelemetry.io/collector/pdata v1.0.0-rcv0014.0.20230908201109-ab3d6c5b6470/go.mod h1:En5jH+YI2KAJhyfpXvjw00OnhWEgGw4Ka0wsBZBWIEo= +go.opentelemetry.io/collector/processor v0.85.0 h1:vN3A+E/rm6nCkx9iM+kjlMzXAtE0a2vP1JhF9oqLjZQ= +go.opentelemetry.io/collector/processor v0.85.0/go.mod h1:jp9vOjg9dS13zUy1ma6C4u4hGTdbp2GKb9xp5bX2krc= +go.opentelemetry.io/collector/processor/batchprocessor v0.84.1-0.20230908201109-ab3d6c5b6470 h1:Nme8B2/YMXk5Tkq5o1veeMPFYXQuuzyQFTUXLE+a4j8= +go.opentelemetry.io/collector/processor/batchprocessor v0.84.1-0.20230908201109-ab3d6c5b6470/go.mod h1:y6FSwgQTz0vDmBLG/n4htL0IToQ9MZKwwS07ljZnYyI= +go.opentelemetry.io/collector/receiver v0.85.0 h1:ecDJicAq1mbQcsEkzo1q+6Y2DP8plK51y4p4w7ZhNmA= +go.opentelemetry.io/collector/receiver v0.85.0/go.mod h1:6pmub7FpyQIAcCLmijUtelzWD9Jj8Csno7W+3FBQFJo= go.opentelemetry.io/collector/receiver/otlpreceiver v0.77.0 h1:cZdFQnopI5ixKUx8XomvjixUUWpWWaIWhLf478PLX64= go.opentelemetry.io/collector/receiver/otlpreceiver v0.77.0/go.mod h1:9cHztiGyKEemiUHM0pzkp2H4k+5xFk0jliHGj0GcjKE= -go.opentelemetry.io/collector/semconv v0.79.0 h1:74pzP4c7xWk9Eihs14kEQvE4m4hHgXrQ/YbWkdn1bVY= -go.opentelemetry.io/collector/semconv v0.79.0/go.mod h1:TlYPtzvsXyHOgr5eATi43qEMqwSmIziivJB2uctKswo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.42.0 h1:ZOLJc06r4CB42laIXg/7udr0pbZyuAihN10A/XuiQRY= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.42.0/go.mod h1:5z+/ZWJQKXa9YT34fQNx5K8Hd1EoIhvtUygUQPqEOgQ= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.42.0 h1:pginetY7+onl4qN1vl0xW/V/v6OBZ0vVdH+esuJgvmM= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.42.0/go.mod h1:XiYsayHc36K3EByOO6nbAXnAWbrUxdjUROCEeeROOH8= +go.opentelemetry.io/collector/semconv v0.85.0 h1:TVXgaWeYADXnytlhNq44zyv2W9m3VodBR1ffiMFDusI= +go.opentelemetry.io/collector/semconv v0.85.0/go.mod h1:j/8THcqVxFna1FpvA2zYIsUperEtOaRaqoLYIN4doWw= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.43.0 h1:7XZai4VhA473clBrOqqHdjHBImGfyEtv0qW4nnn/kAo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.43.0/go.mod h1:1WpsUwjQrUJSNugfMlPn0rPRJ9Do7wwBgTBPK7MLiS4= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.43.0 h1:HKORGpiOY0R0nAPtKx/ub8/7XoHhRooP8yNRkuPfelI= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.43.0/go.mod h1:e+y1M74SYXo/FcIx3UATwth2+5dDkM8dBi7eXg1tbw8= go.opentelemetry.io/contrib/propagators/b3 v1.17.0 h1:ImOVvHnku8jijXqkwCSyYKRDt2YrnGXD4BbhcpfbfJo= go.opentelemetry.io/contrib/propagators/b3 v1.17.0/go.mod h1:IkfUfMpKWmynvvE0264trz0sf32NRTZL4nuAN9AbWRc= -go.opentelemetry.io/contrib/zpages v0.42.0 h1:hFscXKQ9PTjyIVmAr6zIV8cMoiEeR9lPIwPVqHi8+5Q= -go.opentelemetry.io/otel v1.16.0 h1:Z7GVAX/UkAXPKsy94IU+i6thsQS4nb7LviLpnaNeW8s= -go.opentelemetry.io/otel v1.16.0/go.mod h1:vl0h9NUa1D5s1nv3A5vZOYWn8av4K8Ml6JDeHrT/bx4= -go.opentelemetry.io/otel/bridge/opencensus v0.39.0 h1:YHivttTaDhbZIHuPlg1sWsy2P5gj57vzqPfkHItgbwQ= -go.opentelemetry.io/otel/bridge/opencensus v0.39.0/go.mod h1:vZ4537pNjFDXEx//WldAR6Ro2LC8wwmFC76njAXwNPE= -go.opentelemetry.io/otel/exporters/prometheus v0.39.0 h1:whAaiHxOatgtKd+w0dOi//1KUxj3KoPINZdtDaDj3IA= -go.opentelemetry.io/otel/exporters/prometheus v0.39.0/go.mod h1:4jo5Q4CROlCpSPsXLhymi+LYrDXd2ObU5wbKayfZs7Y= -go.opentelemetry.io/otel/metric v1.16.0 h1:RbrpwVG1Hfv85LgnZ7+txXioPDoh6EdbZHo26Q3hqOo= -go.opentelemetry.io/otel/metric v1.16.0/go.mod h1:QE47cpOmkwipPiefDwo2wDzwJrlfxxNYodqc4xnGCo4= -go.opentelemetry.io/otel/sdk v1.16.0 h1:Z1Ok1YsijYL0CSJpHt4cS3wDDh7p572grzNrBMiMWgE= -go.opentelemetry.io/otel/sdk v1.16.0/go.mod h1:tMsIuKXuuIWPBAOrH+eHtvhTL+SntFtXF9QD68aP6p4= -go.opentelemetry.io/otel/sdk/metric v0.39.0 h1:Kun8i1eYf48kHH83RucG93ffz0zGV1sh46FAScOTuDI= -go.opentelemetry.io/otel/sdk/metric v0.39.0/go.mod h1:piDIRgjcK7u0HCL5pCA4e74qpK/jk3NiUoAHATVAmiI= -go.opentelemetry.io/otel/trace v1.16.0 h1:8JRpaObFoW0pxuVPapkgH8UhHQj+bJW8jJsCZEu5MQs= -go.opentelemetry.io/otel/trace v1.16.0/go.mod h1:Yt9vYq1SdNz3xdjZZK7wcXv1qv2pwLkqr2QVwea0ef0= +go.opentelemetry.io/contrib/zpages v0.43.0 h1:3Vp9HDMY/lGe7UY8fDRGmwddCoAb7cACiAL2joIdJh8= +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/bridge/opencensus v0.40.0 h1:pqDiayRhBgoqy1vwnscik+TizcImJ58l053NScJyZso= +go.opentelemetry.io/otel/bridge/opencensus v0.40.0/go.mod h1:1NvVHb6tLTe5A9qCYz+eErW0t8iPn4ZfR6tDKcqlGTM= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.40.0 h1:MZbjiZeMmn5wFMORhozpouGKDxj9POHTuU5UA8msBQk= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.40.0/go.mod h1:C7tOYVCJmrDTCwxNny0MuUtnDIR3032vFHYke0F2ZrU= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.40.0 h1:q3FNPi8FLQVjLlmV+WWHQfH9ZCCtQIS0O/+dn1+4cJ4= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.40.0/go.mod h1:rmx4n0uSIAkKBeQYkygcv9dENAlL2/tv3OSq68h1JAo= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.40.0 h1:SZaSbubADNhH2Gxm+1GaZ/cFsGiYefZoodMMX79AOd4= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.40.0/go.mod h1:N65FzQDfQH7NY7umgb0U+7ypGKVYKwwE24L6KXT4OA8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.17.0 h1:U5GYackKpVKlPrd/5gKMlrTlP2dCESAAFU682VCpieY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.17.0/go.mod h1:aFsJfCEnLzEu9vRRAcUiB/cpRTbVsNdF3OHSPpdjxZQ= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.17.0 h1:iGeIsSYwpYSvh5UGzWrJfTDJvPjrXtxl3GUppj6IXQU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.17.0/go.mod h1:1j3H3G1SBYpZFti6OI4P0uRQCW20MXkG5v4UWXppLLE= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.17.0 h1:kvWMtSUNVylLVrOE4WLUmBtgziYoCIYUNSpTYtMzVJI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.17.0/go.mod h1:SExUrRYIXhDgEKG4tkiQovd2HTaELiHUsuK08s5Nqx4= +go.opentelemetry.io/otel/exporters/prometheus v0.40.1-0.20230831181707-02616a25c68e h1:eh19+pVw4g/V7QM/8iNDk3M5cNy3mOVzggEgdlt9jkY= +go.opentelemetry.io/otel/exporters/prometheus v0.40.1-0.20230831181707-02616a25c68e/go.mod h1:5USWZ0ovyQB5CIM3IO3bGRSoDPMXiT3t+15gu8Zo9HQ= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.40.0 h1:hf7JSONqAuXT1PDYYlVhKNMPLe4060d+4RFREcv7X2c= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.40.0/go.mod h1:IxD5qbw/XcnFB7i5k4d7J1aW5iBU2h4DgSxtk4YqR4c= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.17.0 h1:Ut6hgtYcASHwCzRHkXEtSsM251cXJPW+Z9DyLwEn6iI= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.17.0/go.mod h1:TYeE+8d5CjrgBa0ZuRaDeMpIC1xZ7atg4g+nInjuSjc= +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/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= -go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +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.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= @@ -1309,8 +1356,8 @@ 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.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c= +go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -1324,11 +1371,13 @@ golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= -golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1342,8 +1391,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 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-20230425010034-47ecfdc1ba53 h1:5llv2sWeaMSnA3w2kS57ouQQ4pudlXrR0dCgw51QK9o= -golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +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-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= 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= @@ -1372,9 +1421,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= -golang.org/x/mod v0.10.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-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= @@ -1424,18 +1472,16 @@ golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 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-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= 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= @@ -1452,8 +1498,8 @@ golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -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/oauth2 v0.11.0 h1:vPL4xzxBM4niKCW6g9whtaWVXTJf1U5e4aZxxFx/gbU= +golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= 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= @@ -1467,8 +1513,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ 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 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sync v0.1.0/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/sys v0.0.0-20180823144017-11551d06cbcc/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-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1553,8 +1599,6 @@ golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/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-20211007075335-d3039528d8ac/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-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-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1570,19 +1614,22 @@ golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -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.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +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.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= -golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= 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= @@ -1593,10 +1640,12 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/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.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +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= @@ -1657,7 +1706,6 @@ golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= @@ -1670,9 +1718,8 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= -golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y= -golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= +golang.org/x/tools v0.12.0 h1:YW6HUoUmYBpwSgyaGaZq1fHjrBjX1rlpZ54T6mu2kss= +golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= 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= @@ -1680,8 +1727,8 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= -gonum.org/v1/gonum v0.13.0 h1:a0T3bh+7fhRyqeNbiC3qVHYmkiQgit3wnNan/2c0HMM= -gonum.org/v1/gonum v0.13.0/go.mod h1:/WPYRckkfWrhWefxyYTfrTtQR0KH4iyHNuzxqXAKyAU= +gonum.org/v1/gonum v0.14.0 h1:2NiG67LD1tEH0D7kM+ps2V+fXmsAnpUeec7n8tcr4S0= +gonum.org/v1/gonum v0.14.0/go.mod h1:AoWeoz0becf9QMWtE8iWXNXc27fK4fNeHNf/oMejGfU= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= @@ -1712,8 +1759,8 @@ google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00 google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= -google.golang.org/api v0.120.0 h1:TTmhTei0mkR+kiBSW2UzZmAbkTaBfUUzfchyXnzG9Hs= -google.golang.org/api v0.120.0/go.mod h1:CrSvlNEFCFLae9ZUtL1z+61+rEBD7J/aCYwVYKZoWFU= +google.golang.org/api v0.138.0 h1:K/tVp05MxNVbHShRw9m7e9VJGdagNeTdMzqPH7AUqr0= +google.golang.org/api v0.138.0/go.mod h1:4xyob8CxC+0GChNBvEUAk8VBKNvYOTWM9T3v3UfRxuY= 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= @@ -1779,10 +1826,13 @@ google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEc google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -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-20230803162519-f966b187b2e5 h1:L6iMMGrtzgHsWofoFcihmDEMYeDR9KN/ThbPWGrh++g= +google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5/go.mod h1:oH/ZOT02u4kWEp7oYBGYFFkCdKS/uYR9Z7+0/xuuFp8= +google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q= +google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= google.golang.org/grpc v1.14.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= @@ -1813,8 +1863,8 @@ google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9K google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= -google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag= -google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= +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/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= 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= @@ -1832,8 +1882,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -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= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1850,7 +1900,6 @@ gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/gorethink/gorethink.v3 v3.0.5 h1:e2Uc/Xe+hpcVQFsj6MuHlYog3r0JYpnTzwDj/y2O4MU= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= @@ -1873,7 +1922,6 @@ 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-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.0/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/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= @@ -1887,14 +1935,14 @@ 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= k8s.io/api v0.21.1/go.mod h1:FstGROTmsSHBarKc8bylzXih8BLNYTiS3TZcsoEDg2s= -k8s.io/api v0.26.3 h1:emf74GIQMTik01Aum9dPP0gAypL8JTLl/lHa4V9RFSU= -k8s.io/api v0.26.3/go.mod h1:PXsqwPMXBSBcL1lJ9CYDKy7kIReUydukS5JiRlxC3qE= +k8s.io/api v0.28.1 h1:i+0O8k2NPBCPYaMB+uCkseEbawEt/eFaiRqUx8aB108= +k8s.io/api v0.28.1/go.mod h1:uBYwID+66wiL28Kn2tBjBYQdEU0Xk0z5qF8bIBqk/Dg= k8s.io/apimachinery v0.21.1/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY= -k8s.io/apimachinery v0.26.3 h1:dQx6PNETJ7nODU3XPtrwkfuubs6w7sX0M8n61zHIV/k= -k8s.io/apimachinery v0.26.3/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= +k8s.io/apimachinery v0.28.1 h1:EJD40og3GizBSV3mkIoXQBsws32okPOy+MkRyzh6nPY= +k8s.io/apimachinery v0.28.1/go.mod h1:X0xh/chESs2hP9koe+SdIAcXWcQ+RM5hy0ZynB+yEvw= k8s.io/client-go v0.21.1/go.mod h1:/kEw4RgW+3xnBGzvp9IWxKSNA+lXn3A7AuH3gdOAzLs= -k8s.io/client-go v0.26.3 h1:k1UY+KXfkxV2ScEL3gilKcF7761xkYsSD6BC9szIu8s= -k8s.io/client-go v0.26.3/go.mod h1:ZPNu9lm8/dbRIPAgteN30RSXea6vrCpFvq+MateTUuQ= +k8s.io/client-go v0.28.1 h1:pRhMzB8HyLfVwpngWKE8hDcXRqifh1ga2Z/PU9SXVK8= +k8s.io/client-go v0.28.1/go.mod h1:pEZA3FqOsVkCc07pFVzK076R+P/eXqsgx5zuuRWukNE= k8s.io/code-generator v0.21.1/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= @@ -1904,41 +1952,28 @@ k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= -k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +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-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= -k8s.io/kube-openapi v0.0.0-20230303024457-afdc3dddf62d h1:VcFq5n7wCJB2FQMCIHfC+f+jNcGgNMar1uKd6rVlifU= -k8s.io/kube-openapi v0.0.0-20230303024457-afdc3dddf62d/go.mod h1:y5VtZWM9sHHc2ZodIH/6SHzXj+TPU5USoA8lcIeKEKY= +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/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20230308161112-d77c459e9343 h1:m7tbIjXGcGIAtpmQr7/NAi7RsWoW3E7Zcm4jI1HicTc= -k8s.io/utils v0.0.0-20230308161112-d77c459e9343/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +k8s.io/utils v0.0.0-20230711102312-30195339c3c7 h1:ZgnF1KZsYxWIifwSNZFZgNtWE89WI5yiP5WwlfDoIyc= +k8s.io/utils v0.0.0-20230711102312-30195339c3c7/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/uint128 v1.2.0 h1:mBi/5l91vocEN8otkC5bDLhi2KdCticRiwbdB0O+rjI= -modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= -modernc.org/cc/v3 v3.36.3 h1:uISP3F66UlixxWEcKuIWERa4TwrZENHSL8tWxZz8bHg= -modernc.org/ccgo/v3 v3.16.9 h1:AXquSwg7GuMk11pIdw7fmO1Y/ybgazVkMhsZWCV0mHM= -modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= -modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= -modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= -modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= -modernc.org/libc v1.17.1 h1:Q8/Cpi36V/QBfuQaFVeisEBs3WqoGAJprZzmf7TfEYI= -modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= -modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/cc/v3 v3.40.0 h1:P3g79IUS/93SYhtoeaHW+kRCIrYaxJ27MFPv+7kaTOw= +modernc.org/ccgo/v3 v3.16.13 h1:Mkgdzl46i5F/CNR/Kj80Ri59hC8TKAhZrYSaqvkwzUw= +modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY= +modernc.org/libc v1.22.2 h1:4U7v51GyhlWqQmwCHj28Rdq2Yzwk55ovjFrdPjs8Hb0= +modernc.org/libc v1.22.2/go.mod h1:uvQavJ1pZ0hIoC/jfqNoMLURIMhKzINIWypNM17puug= modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ= -modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= -modernc.org/memory v1.2.1 h1:dkRh86wgmq/bJu2cAS2oqBCz/KsMZU7TUM4CibQ7eBs= -modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= -modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds= modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4= -modernc.org/sqlite v1.18.1 h1:ko32eKt3jf7eqIkCgPAeHMBXw3riNSLhl2f3loEF7o8= -modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= -modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= +modernc.org/sqlite v1.18.2 h1:S2uFiaNPd/vTAP/4EmyY8Qe2Quzu26A2L1e25xRNTio= +modernc.org/sqlite v1.18.2/go.mod h1:kvrTLEWgxUcHa2GfHBQtanR1H9ht3hTJNtKpzH9k1u0= modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY= -modernc.org/token v1.0.0 h1:a0jaWiNMDhDUtqOj09wvjWWAqd3q7WpBulmL9H2egsk= -modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= @@ -1947,8 +1982,8 @@ sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMm sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.1.0/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -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/structured-merge-diff/v4 v4.3.0 h1:UZbZAZfX0wV2zr7YZorDz6GXROfDFj6LvqCRm4VUVKk= +sigs.k8s.io/structured-merge-diff/v4 v4.3.0/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= diff --git a/plugins/inputs/cadvisor/cadvisor.go b/plugins/inputs/cadvisor/cadvisor.go deleted file mode 100644 index 952b36b225..0000000000 --- a/plugins/inputs/cadvisor/cadvisor.go +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -//go:build linux -// +build linux - -package cadvisor - -import ( - "flag" - "log" - "net/http" - "time" - - "github.com/google/cadvisor/cache/memory" - cadvisormetrics "github.com/google/cadvisor/container" - "github.com/google/cadvisor/container/containerd" - "github.com/google/cadvisor/container/crio" - "github.com/google/cadvisor/container/docker" - "github.com/google/cadvisor/container/systemd" - cinfo "github.com/google/cadvisor/info/v1" - "github.com/google/cadvisor/manager" - "github.com/google/cadvisor/utils/sysfs" - "github.com/influxdata/telegraf" - "github.com/influxdata/telegraf/plugins/inputs" - - . "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" - "github.com/aws/amazon-cloudwatch-agent/plugins/inputs/cadvisor/mesos" -) - -// The amount of time for which to keep stats in memory. -const statsCacheDuration = 2 * time.Minute - -// Max collection interval, it is not meaningful if allowDynamicHousekeeping = false -var maxHousekeepingInterval = 15 * time.Second - -// When allowDynamicHousekeeping is true, the collection interval is floating between 1s(default) to maxHousekeepingInterval -var allowDynamicHousekeeping = true - -const defaultHousekeepingInterval = 10 * time.Second - -type Cadvisor struct { - manager manager.Manager - Mode string `toml:"mode"` - ContainerOrchestrator string `toml:"container_orchestrator"` -} - -func overrideCadvisorFlagDefault() { - flagOverrides := map[string]string{ - // Override the default cAdvisor housekeeping interval. - "housekeeping_interval": defaultHousekeepingInterval.String(), - // override other defaults (in future) - } - for name, defaultValue := range flagOverrides { - if f := flag.Lookup(name); f != nil { - f.DefValue = defaultValue - f.Value.Set(defaultValue) - } else { - log.Printf("E! Expected cAdvisor flag %q not found", name) - } - } -} - -func init() { - c := &Cadvisor{} - overrideCadvisorFlagDefault() - inputs.Add("cadvisor", func() telegraf.Input { - return c - }) -} - -func (c *Cadvisor) SampleConfig() string { - return "" -} - -func (c *Cadvisor) Description() string { - return "Collect metrics through Cadvisor" -} - -func (c *Cadvisor) isDetailMode() bool { - return c.Mode == "detail" -} - -func (c *Cadvisor) Gather(acc telegraf.Accumulator) error { - log.Printf("D! collect data from cadvisor...") - var infos []*cinfo.ContainerInfo - var err error - - if c.manager == nil && c.initManager() != nil { - log.Panic("E! Cannot initiate manager") - } - - req := &cinfo.ContainerInfoRequest{ - NumStats: 1, - } - infos, err = c.manager.SubcontainersInfo("/", req) - if err != nil { - log.Printf("E! GetContainerInfo failed %v", err) - return err - } else { - log.Printf("D! size of containers stats %d", len(infos)) - results := processContainers(infos, c.isDetailMode(), c.ContainerOrchestrator) - for _, cadvisorMetric := range results { - acc.AddFields("cadvisor", cadvisorMetric.GetFields(), cadvisorMetric.GetAllTags()) - } - } - return nil -} - -func (c *Cadvisor) initManager() error { - sysFs := sysfs.NewRealSysFs() - houskeepingConfig := manager.HouskeepingConfig{ - Interval: &maxHousekeepingInterval, - AllowDynamic: &allowDynamicHousekeeping, - } - includedMetrics := cadvisormetrics.MetricSet{ - cadvisormetrics.CpuUsageMetrics: struct{}{}, - cadvisormetrics.MemoryUsageMetrics: struct{}{}, - cadvisormetrics.DiskIOMetrics: struct{}{}, - cadvisormetrics.NetworkUsageMetrics: struct{}{}, - cadvisormetrics.DiskUsageMetrics: struct{}{}, - } - var cgroupRoots []string - if c.ContainerOrchestrator == EKS { - cgroupRoots = []string{"/kubepods"} - } - - // Create and start the cAdvisor container manager. - m, err := manager.New(memory.New(statsCacheDuration, nil), sysFs, houskeepingConfig, includedMetrics, http.DefaultClient, cgroupRoots, []string{}, "", 0) - if err != nil { - log.Println("E! manager allocate failed, ", err) - return err - } - cadvisormetrics.RegisterPlugin("containerd", containerd.NewPlugin()) - cadvisormetrics.RegisterPlugin("crio", crio.NewPlugin()) - cadvisormetrics.RegisterPlugin("docker", docker.NewPlugin()) - cadvisormetrics.RegisterPlugin("mesos", mesos.NewPlugin()) - cadvisormetrics.RegisterPlugin("systemd", systemd.NewPlugin()) - c.manager = m - err = c.manager.Start() - if err != nil { - log.Println("E! manager start failed, ", err) - return err - } - return nil -} diff --git a/plugins/inputs/cadvisor/cadvisor_windows.go b/plugins/inputs/cadvisor/cadvisor_windows.go deleted file mode 100644 index 83c808215e..0000000000 --- a/plugins/inputs/cadvisor/cadvisor_windows.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -//go:build windows -// +build windows - -package cadvisor - -// cadvisor doesn't support windows, leave it empty diff --git a/plugins/inputs/cadvisor/container_info_processor.go b/plugins/inputs/cadvisor/container_info_processor.go deleted file mode 100644 index 257d813078..0000000000 --- a/plugins/inputs/cadvisor/container_info_processor.go +++ /dev/null @@ -1,216 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package cadvisor - -import ( - "log" - "path" - "strconv" - "strings" - "time" - - cinfo "github.com/google/cadvisor/info/v1" - - . "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" - "github.com/aws/amazon-cloudwatch-agent/plugins/inputs/cadvisor/extractors" -) - -const ( - // TODO: https://github.com/containerd/cri/issues/922#issuecomment-423729537 the container name can be empty on containerd - infraContainerName = "POD" - podNameLable = "io.kubernetes.pod.name" - namespaceLable = "io.kubernetes.pod.namespace" - podIdLable = "io.kubernetes.pod.uid" - containerNameLable = "io.kubernetes.container.name" -) - -// podKey contains information of a pod extracted from containers owned by it. -// containers has label information for a pod and their cgroup path is one level deeper. -type podKey struct { - cgroupPath string - podId string - podName string - namespace string -} - -var MetricsExtractors = []extractors.MetricExtractor{ - extractors.NewCpuMetricExtractor(), - extractors.NewMemMetricExtractor(), - extractors.NewDiskIOMetricExtractor(), - extractors.NewNetMetricExtractor(), - extractors.NewFileSystemMetricExtractor(), -} - -func processContainers(cInfos []*cinfo.ContainerInfo, detailMode bool, containerOrchestrator string) []*extractors.CAdvisorMetric { - var metrics []*extractors.CAdvisorMetric - podKeys := make(map[string]podKey) - - for _, cInfo := range cInfos { - if len(cInfo.Stats) == 0 { - continue - } - outMetrics, outPodKey := processContainer(cInfo, detailMode, containerOrchestrator) - metrics = append(metrics, outMetrics...) - // Save pod cgroup path we collected from containers under it. - if outPodKey != nil { - podKeys[outPodKey.cgroupPath] = *outPodKey - } - } - - beforePod := len(metrics) - if detailMode { - for _, cInfo := range cInfos { - if len(cInfo.Stats) == 0 { - continue - } - metrics = append(metrics, processPod(cInfo, podKeys)...) - } - } - // This happens when our cgroup path and label based pod detection logic is not working. - // contained https://github.com/aws/amazon-cloudwatch-agent/issues/188 - // docker systemd https://github.com/aws/amazon-cloudwatch-agent/pull/171 - if len(metrics) == beforePod { - log.Printf("W! No pod metric collected, metrics count is still %d is containerd socket mounted? https://github.com/aws/amazon-cloudwatch-agent/issues/188", beforePod) - } - - metrics = mergeMetrics(metrics) - - now := time.Now() - for _, extractor := range MetricsExtractors { - extractor.CleanUp(now) - } - return metrics -} - -// processContainers get metrics for individual container and gather information for pod so we can look it up later. -func processContainer(info *cinfo.ContainerInfo, detailMode bool, containerOrchestrator string) ([]*extractors.CAdvisorMetric, *podKey) { - var result []*extractors.CAdvisorMetric - var pKey *podKey - - if isContainerInContainer(info.Name) { - log.Printf("D! drop metric because it's nested container, name %s", info.Name) - return result, pKey - } - - tags := map[string]string{} - - var containerType string - if info.Name != "/" { - if !detailMode { - return result, pKey - } - - // Only a container has all these three labels set. - containerName := info.Spec.Labels[containerNameLable] - namespace := info.Spec.Labels[namespaceLable] - podName := info.Spec.Labels[podNameLable] - podId := info.Spec.Labels[podIdLable] - // NOTE: containerName can be empty for pause container on containerd - // https://github.com/containerd/cri/issues/922#issuecomment-423729537 - if namespace == "" || podName == "" { - return result, pKey - } - - // Pod's cgroup path is parent for a container. - // container name: /kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod04d39715_075e_4c7c_b128_67f7897c05b7.slice/docker-57b3dabd69b94beb462244a0c15c244b509adad0940cdcc67ca079b8208ec1f2.scope - // pod name: /kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod04d39715_075e_4c7c_b128_67f7897c05b7.slice/ - podPath := path.Dir(info.Name) - pKey = &podKey{cgroupPath: podPath, podName: podName, podId: podId, namespace: namespace} - - tags[PodIdKey] = podId - tags[K8sPodNameKey] = podName - tags[K8sNamespace] = namespace - - switch containerName { - // For docker, pause container name is set to POD while containerd does not set it. - // See https://github.com/aws/amazon-cloudwatch-agent/issues/188 - case "", infraContainerName: - // NOTE: the pod here is only used by NetMetricExtractor, - // other pod info like CPU, Mem are dealt within in processPod. - containerType = TypeInfraContainer - default: - tags[ContainerNamekey] = containerName - tags[ContainerIdkey] = path.Base(info.Name) - containerType = TypeContainer - - // TODO(pingleig): wait for upstream fix https://github.com/aws/amazon-cloudwatch-agent/issues/192 - if !info.Spec.HasFilesystem { - log.Printf("D! containerd does not have container filesystem metrics from cadvisor, See https://github.com/aws/amazon-cloudwatch-agent/issues/192") - } - } - } else { - containerType = TypeNode - if containerOrchestrator == ECS { - containerType = TypeInstance - } - } - - tags[Timestamp] = strconv.FormatInt(extractors.GetStats(info).Timestamp.UnixNano()/1000000, 10) - - for _, extractor := range MetricsExtractors { - if extractor.HasValue(info) { - result = append(result, extractor.GetValue(info, containerType)...) - } - } - - for _, ele := range result { - ele.AddTags(tags) - } - return result, pKey -} - -// processPod is almost identical as processContainer. We got this second loop because pod detection relies -// on inspecting labels from containers in processContainer. cgroup path for detected pods are saved in podKeys. -// We may not get container before pod when looping all returned cgroup paths so we use a two pass solution -// in processContainers. -func processPod(info *cinfo.ContainerInfo, podKeys map[string]podKey) []*extractors.CAdvisorMetric { - var result []*extractors.CAdvisorMetric - if isContainerInContainer(info.Name) { - log.Printf("D! drop metric because it's nested container, name %s", info.Name) - return result - } - - podKey, ok := podKeys[info.Name] - if !ok { - return result - } - - tags := map[string]string{} - tags[PodIdKey] = podKey.podId - tags[K8sPodNameKey] = podKey.podName - tags[K8sNamespace] = podKey.namespace - - tags[Timestamp] = strconv.FormatInt(extractors.GetStats(info).Timestamp.UnixNano()/1000000, 10) - - for _, extractor := range MetricsExtractors { - if extractor.HasValue(info) { - result = append(result, extractor.GetValue(info, TypePod)...) - } - } - - for _, ele := range result { - ele.AddTags(tags) - } - return result -} - -// Check if it's a container running inside container, caller will drop the metric when return value is true. -// The validation is based on ContainerReference.Name, which is essentially cgroup path. -// The first version is from https://github.com/aws/amazon-cloudwatch-agent/commit/e8daa5f5926c5a5f38e0ceb746c141be463e11e4#diff-599185154c116b295172b56311729990d20672f6659500870997c018ce072100 -// But the logic no longer works when docker is using systemd as cgroup driver, because a prefix like `kubepods` is attached to each segment. -// The new name pattern with systemd is -// - Guaranteed /kubepods.slice/kubepods-podc8f7bb69_65f2_4b61_ae5a_9b19ac47a239.slice/docker-523b624a86a2a74c2bedf586d8448c86887ef7858a8dec037d6559e5ad3fccb5.scope -// - Burstable /kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-podab0e310c_0bdb_48e8_ac87_81a701514645.slice/docker-caa8a5e51cd6610f8f0110b491e8187d23488b9635acccf0355a7975fd3ff158.scope -// - Docker in Docker /kubepods.slice/kubepods-burstable.slice/kubepods-burstable-podc9adcee4_c874_4dad_8bc8_accdbd67ac3a.slice/docker-e58cfbc8b67f6e1af458efdd31cb2a8abdbf9f95db64f4c852b701285a09d40e.scope/docker/fb651068cfbd4bf3d45fb092ec9451f8d1a36b3753687bbaa0a9920617eae5b9 -// So we check the number of segements within the cgroup path to determine if it's a container running in container. -func isContainerInContainer(p string) bool { - segs := strings.Split(strings.TrimLeft(p, "/"), "/") - // Without nested container, the number of segments (regardless of cgroupfs/systemd) are either 3 or 4 (depends on QoS) - // /kubepods/pod_id/docker_id - // /kubepods/qos/pod_id/docker_id - // With nested container, the number of segments are either 5 or 6 - // /kubepods/pod_id/docker_id/docker/docker_id - // /kubepods/qos/pod_id/docker_id/docker/docker_id - return len(segs) > 4 -} diff --git a/plugins/inputs/cadvisor/container_info_processor_test.go b/plugins/inputs/cadvisor/container_info_processor_test.go deleted file mode 100644 index 437712c634..0000000000 --- a/plugins/inputs/cadvisor/container_info_processor_test.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package cadvisor - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestIsContainerInContainer(t *testing.T) { - cases := []struct { - name string - path string - dind bool - }{ - { - "guaranteed", - "/kubepods.slice/kubepods-podc8f7bb69_65f2_4b61_ae5a_9b19ac47a239.slice/docker-523b624a86a2a74c2bedf586d8448c86887ef7858a8dec037d6559e5ad3fccb5.scope", - false, - }, - { - "guaranteed-dind", - "/kubepods.slice/kubepods-burstable-podc9adcee4_c874_4dad_8bc8_accdbd67ac3a.slice/docker-e58cfbc8b67f6e1af458efdd31cb2a8abdbf9f95db64f4c852b701285a09d40e.scope/docker/fb651068cfbd4bf3d45fb092ec9451f8d1a36b3753687bbaa0a9920617eae5b9", - true, - }, - { - "burstable", - "/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-podab0e310c_0bdb_48e8_ac87_81a701514645.slice/docker-caa8a5e51cd6610f8f0110b491e8187d23488b9635acccf0355a7975fd3ff158.scope", - false, - }, - { - "burstable-dind", - "/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-podc9adcee4_c874_4dad_8bc8_accdbd67ac3a.slice/docker-e58cfbc8b67f6e1af458efdd31cb2a8abdbf9f95db64f4c852b701285a09d40e.scope/docker/fb651068cfbd4bf3d45fb092ec9451f8d1a36b3753687bbaa0a9920617eae5b9", - true, - }, - } - for _, c := range cases { - assert.Equal(t, c.dind, isContainerInContainer(c.path), c.name) - } -} diff --git a/plugins/inputs/cadvisor/extractors/cpu_extractor.go b/plugins/inputs/cadvisor/extractors/cpu_extractor.go deleted file mode 100644 index 4f3c67064a..0000000000 --- a/plugins/inputs/cadvisor/extractors/cpu_extractor.go +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package extractors - -import ( - "time" - - cInfo "github.com/google/cadvisor/info/v1" - - . "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" - "github.com/aws/amazon-cloudwatch-agent/internal/mapWithExpiry" -) - -const ( - decimalToMillicores = 1000 -) - -type CpuMetricExtractor struct { - preInfos *mapWithExpiry.MapWithExpiry -} - -func (c *CpuMetricExtractor) HasValue(info *cInfo.ContainerInfo) bool { - return info.Spec.HasCpu -} - -func (c *CpuMetricExtractor) recordPreviousInfo(info *cInfo.ContainerInfo) { - c.preInfos.Set(info.Name, info) -} - -func (c *CpuMetricExtractor) GetValue(info *cInfo.ContainerInfo, containerType string) []*CAdvisorMetric { - var metrics []*CAdvisorMetric - // Skip infra container and handle node, pod, other containers in pod - if containerType == TypeInfraContainer { - return metrics - } - - if preInfo, ok := c.preInfos.Get(info.Name); ok { - // When there is more than one stats point, always use the last one - curStats := GetStats(info) - preStats := GetStats(preInfo.(*cInfo.ContainerInfo)) - deltaCTimeInNano := curStats.Timestamp.Sub(preStats.Timestamp).Nanoseconds() - - if deltaCTimeInNano > MinTimeDiff { - metric := newCadvisorMetric(containerType) - metric.cgroupPath = info.Name - - metric.fields[MetricName(containerType, CpuTotal)] = float64(curStats.Cpu.Usage.Total-preStats.Cpu.Usage.Total) / float64(deltaCTimeInNano) * decimalToMillicores - metric.fields[MetricName(containerType, CpuUser)] = float64(curStats.Cpu.Usage.User-preStats.Cpu.Usage.User) / float64(deltaCTimeInNano) * decimalToMillicores - metric.fields[MetricName(containerType, CpuSystem)] = float64(curStats.Cpu.Usage.System-preStats.Cpu.Usage.System) / float64(deltaCTimeInNano) * decimalToMillicores - - metrics = append(metrics, metric) - } - } - c.recordPreviousInfo(info) - return metrics -} - -func (c *CpuMetricExtractor) CleanUp(now time.Time) { - c.preInfos.CleanUp(now) -} - -func NewCpuMetricExtractor() *CpuMetricExtractor { - return &CpuMetricExtractor{ - preInfos: mapWithExpiry.NewMapWithExpiry(CleanInterval), - } -} diff --git a/plugins/inputs/cadvisor/extractors/cpu_extractor_test.go b/plugins/inputs/cadvisor/extractors/cpu_extractor_test.go deleted file mode 100644 index 4940789815..0000000000 --- a/plugins/inputs/cadvisor/extractors/cpu_extractor_test.go +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package extractors - -import ( - "bytes" - "encoding/json" - "log" - "testing" - - cinfo "github.com/google/cadvisor/info/v1" - - . "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" -) - -func TestCPUStats(t *testing.T) { - - var result []*cinfo.ContainerInfo - containers := map[string]*cinfo.ContainerInfo{} - err := json.Unmarshal([]byte(PreInfo), &containers) - - if err != nil { - log.Printf("Fail to read request body: %s", err) - } - - for _, containerInfo := range containers { - result = append(result, containerInfo) - } - - var b bytes.Buffer - enc := json.NewEncoder(&b) - enc.Encode(result) - containerType := TypeContainer - extractor := NewCpuMetricExtractor() - - extractor.preInfos.Set(result[0].Name, result[0]) - - var result2 []*cinfo.ContainerInfo - containers = map[string]*cinfo.ContainerInfo{} - err = json.Unmarshal([]byte(CurInfo), &containers) - - if err != nil { - log.Printf("Fail to read request body: %s", err) - } - - for _, containerInfo := range containers { - result2 = append(result2, containerInfo) - } - enc.Encode(result2) - - var cMetrics []*CAdvisorMetric - if extractor.HasValue(result2[0]) { - cMetrics = extractor.GetValue(result2[0], containerType) - } - for _, cadvisorMetric := range cMetrics { - log.Printf("cadvisor Metrics received:\n %v \n", *cadvisorMetric) - } - AssertContainsTaggedFloat(t, cMetrics[0], "container_cpu_usage_total", 10, 0) - AssertContainsTaggedFloat(t, cMetrics[0], "container_cpu_usage_user", 10, 0) - AssertContainsTaggedFloat(t, cMetrics[0], "container_cpu_usage_system", 10, 0) -} diff --git a/plugins/inputs/cadvisor/extractors/diskio_extractor.go b/plugins/inputs/cadvisor/extractors/diskio_extractor.go deleted file mode 100644 index 96c8351a32..0000000000 --- a/plugins/inputs/cadvisor/extractors/diskio_extractor.go +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package extractors - -import ( - "fmt" - "log" - "strings" - "time" - - cinfo "github.com/google/cadvisor/info/v1" - - . "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" - "github.com/aws/amazon-cloudwatch-agent/internal/mapWithExpiry" -) - -type DiskIOMetricExtractor struct { - preInfos *mapWithExpiry.MapWithExpiry -} - -func (d *DiskIOMetricExtractor) recordPreviousInfo(info *cinfo.ContainerInfo) { - d.preInfos.Set(info.Name, info) -} - -func (d *DiskIOMetricExtractor) HasValue(info *cinfo.ContainerInfo) bool { - return info.Spec.HasDiskIo -} - -func (d *DiskIOMetricExtractor) GetValue(info *cinfo.ContainerInfo, containerType string) []*CAdvisorMetric { - var metrics []*CAdvisorMetric - if containerType != TypeNode && containerType != TypeInstance { - return metrics - } - - if preInfo, ok := d.preInfos.Get(info.Name); ok { - curStats := GetStats(info) - preStats := GetStats(preInfo.(*cinfo.ContainerInfo)) - deltaCTimeInNano := curStats.Timestamp.Sub(preStats.Timestamp).Nanoseconds() - if deltaCTimeInNano > MinTimeDiff { - metrics = append(metrics, extractIoMetrics(curStats.DiskIo.IoServiceBytes, preStats.DiskIo.IoServiceBytes, DiskIOServiceBytesPrefix, deltaCTimeInNano, containerType)...) - metrics = append(metrics, extractIoMetrics(curStats.DiskIo.IoServiced, preStats.DiskIo.IoServiced, DiskIOServicedPrefix, deltaCTimeInNano, containerType)...) - } - } - d.recordPreviousInfo(info) - return metrics -} - -func extractIoMetrics(curStatsSet []cinfo.PerDiskStats, preStatsSet []cinfo.PerDiskStats, namePrefix string, deltaCTimeInNanoSec int64, containerType string) []*CAdvisorMetric { - var metrics []*CAdvisorMetric - expectedKey := []string{DiskIOAsync, DiskIOSync, DiskIORead, DiskIOWrite, DiskIOTotal} - for _, cur := range curStatsSet { - curDevName := devName(cur) - for _, pre := range preStatsSet { - preDevName := devName(pre) - if curDevName == preDevName { - metric := newCadvisorMetric(getDiskIOMetricType(containerType)) - metric.tags[DiskDev] = curDevName - for _, key := range expectedKey { - curVal, curOk := cur.Stats[key] - preVal, preOk := pre.Stats[key] - if curOk && preOk { - mname := MetricName(containerType, ioMetricName(namePrefix, key)) - metric.fields[mname] = float64(curVal-preVal) / float64(deltaCTimeInNanoSec) * float64(time.Second) - } - } - if len(metric.fields) > 0 { - metrics = append(metrics, metric) - } - break - } - } - } - return metrics -} - -func ioMetricName(prefix, key string) string { - return prefix + strings.ToLower(key) -} - -func devName(dStats cinfo.PerDiskStats) string { - devName := dStats.Device - if devName == "" { - devName = fmt.Sprintf("%d:%d", dStats.Major, dStats.Minor) - } - return devName -} - -func (d *DiskIOMetricExtractor) CleanUp(now time.Time) { - d.preInfos.CleanUp(now) -} - -func NewDiskIOMetricExtractor() *DiskIOMetricExtractor { - return &DiskIOMetricExtractor{ - preInfos: mapWithExpiry.NewMapWithExpiry(CleanInterval), - } -} - -func getDiskIOMetricType(containerType string) string { - metricType := "" - switch containerType { - case TypeNode: - metricType = TypeNodeDiskIO - case TypeInstance: - metricType = TypeInstanceDiskIO - case TypeContainer: - metricType = TypeContainerDiskIO - default: - log.Printf("W! diskio_extractor: diskIO metric extractor is parsing unexpected containerType %s", containerType) - } - return metricType -} diff --git a/plugins/inputs/cadvisor/extractors/diskio_extractor_test.go b/plugins/inputs/cadvisor/extractors/diskio_extractor_test.go deleted file mode 100644 index 914097d127..0000000000 --- a/plugins/inputs/cadvisor/extractors/diskio_extractor_test.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package extractors - -import ( - "bytes" - "encoding/json" - "log" - "testing" - - cinfo "github.com/google/cadvisor/info/v1" - - . "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" -) - -func TestDiskIOStats(t *testing.T) { - - var result []*cinfo.ContainerInfo - containers := map[string]*cinfo.ContainerInfo{} - err := json.Unmarshal([]byte(PreInfo), &containers) - - if err != nil { - log.Printf("Fail to read request body: %s", err) - } - - for _, containerInfo := range containers { - result = append(result, containerInfo) - } - - var b bytes.Buffer - enc := json.NewEncoder(&b) - enc.Encode(result) - containerType := TypeNode - extractor := NewDiskIOMetricExtractor() - - extractor.preInfos.Set(result[0].Name, result[0]) - - var result2 []*cinfo.ContainerInfo - containers = map[string]*cinfo.ContainerInfo{} - err = json.Unmarshal([]byte(CurInfo), &containers) - - if err != nil { - log.Printf("Fail to read request body: %s", err) - } - - for _, containerInfo := range containers { - result2 = append(result2, containerInfo) - } - enc.Encode(result2) - - var cMetrics []*CAdvisorMetric - if extractor.HasValue(result2[0]) { - cMetrics = extractor.GetValue(result2[0], containerType) - } - for _, cadvisorMetric := range cMetrics { - log.Printf("cadvisor Metrics received:\n %v \n", *cadvisorMetric) - } - expectedFieldsService := map[string]interface{}{ - "node_diskio_io_service_bytes_write": float64(10000), - "node_diskio_io_service_bytes_total": float64(10010), - "node_diskio_io_service_bytes_async": float64(10000), - "node_diskio_io_service_bytes_sync": float64(10000), - "node_diskio_io_service_bytes_read": float64(10), - } - expectedFieldsServiced := map[string]interface{}{ - "node_diskio_io_serviced_async": float64(10), - "node_diskio_io_serviced_sync": float64(10), - "node_diskio_io_serviced_read": float64(10), - "node_diskio_io_serviced_write": float64(10), - "node_diskio_io_serviced_total": float64(20), - } - expectedTags := map[string]string{ - "device": "/dev/xvda", - } - AssertContainsTaggedField(t, cMetrics[0], expectedFieldsService, expectedTags) - AssertContainsTaggedField(t, cMetrics[1], expectedFieldsServiced, expectedTags) - -} diff --git a/plugins/inputs/cadvisor/extractors/extractor.go b/plugins/inputs/cadvisor/extractors/extractor.go deleted file mode 100644 index 2d26236217..0000000000 --- a/plugins/inputs/cadvisor/extractors/extractor.go +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package extractors - -import ( - "log" - "time" - - cinfo "github.com/google/cadvisor/info/v1" - - "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" -) - -const ( - containerNameLabel = "io.kubernetes.container.name" - Metrics = "Metrics" - Dimensions = "Dimensions" - CleanInterval = 5 * time.Minute -) - -type MetricExtractor interface { - HasValue(*cinfo.ContainerInfo) bool - // GetValue normally applies to the following types: - // containerinsightscommon.TypeContainer - // containerinsightscommon.TypePod - // containerinsightscommon.TypeNode - // and ignores: - // containerinsightscommon.TypeInfraContainer - // The only exception is NetMetricExtractor because pod network metrics comes from infra container (i.e. pause). - // See https://www.ianlewis.org/en/almighty-pause-container - GetValue(info *cinfo.ContainerInfo, containerType string) []*CAdvisorMetric - CleanUp(time.Time) -} - -type CAdvisorMetric struct { - cgroupPath string // source of the metric for debugging merge conflict - fields map[string]interface{} - tags map[string]string - metricType string -} - -func newCadvisorMetric(mType string) *CAdvisorMetric { - metric := &CAdvisorMetric{ - fields: make(map[string]interface{}), - tags: make(map[string]string), - } - metric.metricType = mType - return metric -} - -func (c *CAdvisorMetric) GetTags() map[string]string { - return c.tags -} - -func (c *CAdvisorMetric) GetFields() map[string]interface{} { - return c.fields -} - -func (c *CAdvisorMetric) GetAllTags() map[string]string { - c.tags[containerinsightscommon.MetricType] = c.metricType - return c.tags -} - -func (c *CAdvisorMetric) GetMetricType() string { - return c.metricType -} - -func (c *CAdvisorMetric) AddTags(tags map[string]string) { - for k, v := range tags { - c.tags[k] = v - } -} - -func (c *CAdvisorMetric) Merge(src *CAdvisorMetric) { - // If there is any conflict, keep the fields with earlier timestamp - for k, v := range src.fields { - if _, ok := c.fields[k]; ok { - log.Printf("D! metric being merged has conflict in fields, path src: %q, dest: %q", src.cgroupPath, c.cgroupPath) - log.Printf("D! metric being merged has conflict in fields, src: %v, dest: %v", *src, *c) - if c.tags[containerinsightscommon.Timestamp] < src.tags[containerinsightscommon.Timestamp] { - continue - } - } - c.fields[k] = v - } -} diff --git a/plugins/inputs/cadvisor/extractors/extractor_test.go b/plugins/inputs/cadvisor/extractors/extractor_test.go deleted file mode 100644 index 996030a871..0000000000 --- a/plugins/inputs/cadvisor/extractors/extractor_test.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package extractors - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" -) - -func TestCAdvisorMetric_Merge(t *testing.T) { - src := &CAdvisorMetric{fields: map[string]interface{}{"value1": 1, "value2": 2}, tags: map[string]string{containerinsightscommon.Timestamp: "1586331559882"}} - dest := &CAdvisorMetric{fields: map[string]interface{}{"value1": 3, "value3": 3}, tags: map[string]string{containerinsightscommon.Timestamp: "1586331559973"}} - src.Merge(dest) - assert.Equal(t, 3, len(src.fields)) - assert.Equal(t, 1, src.fields["value1"].(int)) -} diff --git a/plugins/inputs/cadvisor/extractors/extractor_test_utils.go b/plugins/inputs/cadvisor/extractors/extractor_test_utils.go deleted file mode 100644 index 745134b78a..0000000000 --- a/plugins/inputs/cadvisor/extractors/extractor_test_utils.go +++ /dev/null @@ -1,458 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package extractors - -import ( - "fmt" - "reflect" - "testing" - - "github.com/stretchr/testify/assert" -) - -const ( - CurInfo = ` -{ -"/kubepods/besteffort/podaf16b540-4ae2-11e9-977b-0672b6c6fc94/573ee6cd04a6208af809b2329652c74386f1992faca8662c733d7f250014e718": { - "id": "573ee6cd04a6208af809b2329652c74386f1992faca8662c733d7f250014e718", - "name": "/kubepods/besteffort/podaf16b540-4ae2-11e9-977b-0672b6c6fc94/573ee6cd04a6208af809b2329652c74386f1992faca8662c733d7f250014e718", - "aliases": [ - "k8s_ubuntu_stress-1-core-mh2pn_default_af16b540-4ae2-11e9-977b-0672b6c6fc94_0", - "573ee6cd04a6208af809b2329652c74386f1992faca8662c733d7f250014e718" - ], - "namespace": "docker", - "spec": { - "creation_time": "2019-03-20T07:35:09.746280405Z", - "labels": { - "annotation.io.kubernetes.container.hash": "70bfcd85", - "annotation.io.kubernetes.container.restartCount": "0", - "annotation.io.kubernetes.container.terminationMessagePath": "/dev/termination-log", - "annotation.io.kubernetes.container.terminationMessagePolicy": "File", - "annotation.io.kubernetes.pod.terminationGracePeriod": "30", - "io.kubernetes.container.logpath": "/var/log/pods/af16b540-4ae2-11e9-977b-0672b6c6fc94/ubuntu/0.log", - "io.kubernetes.container.name": "ubuntu", - "io.kubernetes.docker.type": "container", - "io.kubernetes.pod.name": "stress-1-core-mh2pn", - "io.kubernetes.pod.namespace": "default", - "io.kubernetes.pod.uid": "af16b540-4ae2-11e9-977b-0672b6c6fc94", - "io.kubernetes.sandbox.id": "a5bb552d7fb8e5014468756f165732e0c6bcd9dcbd229efc51afc014317d20d6" - }, - "has_cpu": true, - "cpu": { - "limit": 2, - "max_limit": 0, - "mask": "0-3", - "period": 100000 - }, - "has_memory": true, - "memory": { - "limit": 9223372036854771712, - "reservation": 9223372036854771712, - "swap_limit": 9223372036854771712 - }, - "has_network": false, - "has_filesystem": true, - "has_diskio": true, - "has_custom_metrics": false, - "image": "ubuntu@sha256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8" - }, - "stats": [ - { - "timestamp": "2019-04-09T22:26:42.984081498Z", - "cpu": { - "usage": { - "total": 1727429404576983, - "user": 1005797430000000, - "system": 183880000000 - }, - "cfs": { - "periods": 0, - "throttled_periods": 0, - "throttled_time": 0 - }, - "schedstat": { - "run_time": 0, - "runqueue_time": 0, - "run_periods": 0 - }, - "load_average": 0 - }, - "diskio": { - "io_service_bytes": [ - { - "device": "/dev/xvda", - "major": 202, - "minor": 0, - "stats": { - "Async": 46864, - "Read": 10, - "Sync": 1690896, - "Total": 1727770, - "Write": 1727760 - } - } - ], - "io_serviced": [ - { - "device": "/dev/xvda", - "major": 202, - "minor": 0, - "stats": { - "Async": 14, - "Read": 10, - "Sync": 59, - "Total": 73, - "Write": 63 - } - } - ] - }, - "memory": { - "usage": 29728768, - "max_usage": 90775552, - "cache": 25645056, - "rss": 221184, - "swap": 0, - "working_set": 28844032, - "failcnt": 0, - "container_data": { - "pgfault": 98634, - "pgmajfault": 10 - }, - "hierarchical_data": { - "pgfault": 98634, - "pgmajfault": 10 - } - }, - "network": { - "name": "", - "rx_bytes": 0, - "rx_packets": 0, - "rx_errors": 0, - "rx_dropped": 0, - "tx_bytes": 0, - "tx_packets": 0, - "tx_errors": 0, - "tx_dropped": 0, - "tcp": { - "Established": 0, - "SynSent": 0, - "SynRecv": 0, - "FinWait1": 0, - "FinWait2": 0, - "TimeWait": 0, - "Close": 0, - "CloseWait": 0, - "LastAck": 0, - "Listen": 0, - "Closing": 0 - }, - "tcp6": { - "Established": 0, - "SynSent": 0, - "SynRecv": 0, - "FinWait1": 0, - "FinWait2": 0, - "TimeWait": 0, - "Close": 0, - "CloseWait": 0, - "LastAck": 0, - "Listen": 0, - "Closing": 0 - }, - "udp": { - "Listen": 0, - "Dropped": 0, - "RxQueued": 0, - "TxQueued": 0 - }, - "udp6": { - "Listen": 0, - "Dropped": 0, - "RxQueued": 0, - "TxQueued": 0 - } - }, - "filesystem": [ - { - "device": "/dev/xvda1", - "type": "vfs", - "capacity": 21462233088, - "usage": 25661440, - "base_usage": 25640960, - "available": 0, - "has_inodes": false, - "inodes": 67, - "inodes_free": 0, - "reads_completed": 0, - "reads_merged": 0, - "sectors_read": 0, - "read_time": 0, - "writes_completed": 0, - "writes_merged": 0, - "sectors_written": 0, - "write_time": 0, - "io_in_progress": 0, - "io_time": 0, - "weighted_io_time": 0 - } - ], - "task_stats": { - "nr_sleeping": 0, - "nr_running": 0, - "nr_stopped": 0, - "nr_uninterruptible": 0, - "nr_io_wait": 0 - } - } - ] - } -} -` - PreInfo = ` -{ -"/kubepods/besteffort/podaf16b540-4ae2-11e9-977b-0672b6c6fc94/573ee6cd04a6208af809b2329652c74386f1992faca8662c733d7f250014e718": { - "id": "573ee6cd04a6208af809b2329652c74386f1992faca8662c733d7f250014e718", - "name": "/kubepods/besteffort/podaf16b540-4ae2-11e9-977b-0672b6c6fc94/573ee6cd04a6208af809b2329652c74386f1992faca8662c733d7f250014e718", - "aliases": [ - "k8s_ubuntu_stress-1-core-mh2pn_default_af16b540-4ae2-11e9-977b-0672b6c6fc94_0", - "573ee6cd04a6208af809b2329652c74386f1992faca8662c733d7f250014e718" - ], - "namespace": "docker", - "spec": { - "creation_time": "2019-03-20T07:35:09.746280405Z", - "labels": { - "annotation.io.kubernetes.container.hash": "70bfcd85", - "annotation.io.kubernetes.container.restartCount": "0", - "annotation.io.kubernetes.container.terminationMessagePath": "/dev/termination-log", - "annotation.io.kubernetes.container.terminationMessagePolicy": "File", - "annotation.io.kubernetes.pod.terminationGracePeriod": "30", - "io.kubernetes.container.logpath": "/var/log/pods/af16b540-4ae2-11e9-977b-0672b6c6fc94/ubuntu/0.log", - "io.kubernetes.container.name": "ubuntu", - "io.kubernetes.docker.type": "container", - "io.kubernetes.pod.name": "stress-1-core-mh2pn", - "io.kubernetes.pod.namespace": "default", - "io.kubernetes.pod.uid": "af16b540-4ae2-11e9-977b-0672b6c6fc94", - "io.kubernetes.sandbox.id": "a5bb552d7fb8e5014468756f165732e0c6bcd9dcbd229efc51afc014317d20d6" - }, - "has_cpu": true, - "cpu": { - "limit": 2, - "max_limit": 0, - "mask": "0-3", - "period": 100000 - }, - "has_memory": true, - "memory": { - "limit": 9223372036854771712, - "reservation": 9223372036854771712, - "swap_limit": 9223372036854771712 - }, - "has_network": false, - "has_filesystem": true, - "has_diskio": true, - "has_custom_metrics": false, - "image": "ubuntu@sha256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8" - }, - "stats": [ - { - "timestamp": "2019-04-09T22:26:41.984081498Z", - "cpu": { - "usage": { - "total": 1727429394576983, - "user": 1005797420000000, - "system": 183870000000 - }, - "cfs": { - "periods": 0, - "throttled_periods": 0, - "throttled_time": 0 - }, - "schedstat": { - "run_time": 0, - "runqueue_time": 0, - "run_periods": 0 - }, - "load_average": 0 - }, - "diskio": { - "io_service_bytes": [ - { - "device": "/dev/xvda", - "major": 202, - "minor": 0, - "stats": { - "Async": 36864, - "Read": 0, - "Sync": 1680896, - "Total": 1717760, - "Write": 1717760 - } - } - ], - "io_serviced": [ - { - "device": "/dev/xvda", - "major": 202, - "minor": 0, - "stats": { - "Async": 4, - "Read": 0, - "Sync": 49, - "Total": 53, - "Write": 53 - } - } - ] - }, - "memory": { - "usage": 29728768, - "max_usage": 90775552, - "cache": 25645056, - "rss": 221184, - "swap": 0, - "working_set": 28844032, - "failcnt": 0, - "container_data": { - "pgfault": 97634, - "pgmajfault": 0 - }, - "hierarchical_data": { - "pgfault": 97634, - "pgmajfault": 0 - } - }, - "network": { - "name": "", - "rx_bytes": 0, - "rx_packets": 0, - "rx_errors": 0, - "rx_dropped": 0, - "tx_bytes": 0, - "tx_packets": 0, - "tx_errors": 0, - "tx_dropped": 0, - "tcp": { - "Established": 0, - "SynSent": 0, - "SynRecv": 0, - "FinWait1": 0, - "FinWait2": 0, - "TimeWait": 0, - "Close": 0, - "CloseWait": 0, - "LastAck": 0, - "Listen": 0, - "Closing": 0 - }, - "tcp6": { - "Established": 0, - "SynSent": 0, - "SynRecv": 0, - "FinWait1": 0, - "FinWait2": 0, - "TimeWait": 0, - "Close": 0, - "CloseWait": 0, - "LastAck": 0, - "Listen": 0, - "Closing": 0 - }, - "udp": { - "Listen": 0, - "Dropped": 0, - "RxQueued": 0, - "TxQueued": 0 - }, - "udp6": { - "Listen": 0, - "Dropped": 0, - "RxQueued": 0, - "TxQueued": 0 - } - }, - "filesystem": [ - { - "device": "/dev/xvda1", - "type": "vfs", - "capacity": 21462233088, - "usage": 25661440, - "base_usage": 25640960, - "available": 0, - "has_inodes": false, - "inodes": 67, - "inodes_free": 0, - "reads_completed": 0, - "reads_merged": 0, - "sectors_read": 0, - "read_time": 0, - "writes_completed": 0, - "writes_merged": 0, - "sectors_written": 0, - "write_time": 0, - "io_in_progress": 0, - "io_time": 0, - "weighted_io_time": 0 - } - ], - "task_stats": { - "nr_sleeping": 0, - "nr_running": 0, - "nr_stopped": 0, - "nr_uninterruptible": 0, - "nr_io_wait": 0 - } - } - ] - } -} -` -) - -func AssertContainsTaggedFloat( - t *testing.T, - cadvisorMetric *CAdvisorMetric, - field string, - expectedValue float64, - delta float64, -) { - var actualValue float64 - fields := cadvisorMetric.GetFields() - if val, ok := fields[field]; ok { - if val, ok := val.(float64); ok { - actualValue = val - if (val >= expectedValue-delta) && (val <= expectedValue+delta) { - //Found the point, return without failing - return - } - } else { - assert.Fail(t, fmt.Sprintf("Field \"%s\" does not have type float64", field)) - } - } - msg := fmt.Sprintf( - "Could not find field \"%s\" with requested tags within %f of %f, Actual: %f", - field, delta, expectedValue, actualValue) - assert.Fail(t, msg) -} - -func AssertContainsTaggedField( - t *testing.T, - cadvisorMetric *CAdvisorMetric, - expectedFields map[string]interface{}, - expectedTags map[string]string, -) { - - actualFields := cadvisorMetric.GetFields() - actualTags := cadvisorMetric.GetTags() - if !reflect.DeepEqual(expectedTags, actualTags) { - msg := fmt.Sprintf("No field exists for metric %v", *cadvisorMetric) - assert.Fail(t, msg) - } - if len(actualFields) > 0 { - assert.Equal(t, expectedFields, actualFields) - return - } - msg := fmt.Sprintf("No field exists for metric %v", *cadvisorMetric) - assert.Fail(t, msg) -} diff --git a/plugins/inputs/cadvisor/extractors/fs_extractor.go b/plugins/inputs/cadvisor/extractors/fs_extractor.go deleted file mode 100644 index bc68043ce4..0000000000 --- a/plugins/inputs/cadvisor/extractors/fs_extractor.go +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package extractors - -import ( - "log" - "regexp" - "time" - - cinfo "github.com/google/cadvisor/info/v1" - - . "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" -) - -const ( - allowList = "^tmpfs$|^/dev/|^overlay$" -) - -type FileSystemMetricExtractor struct { - allowListRegexP *regexp.Regexp -} - -// TODO(pingleig): it is always false for container using containerd https://github.com/aws/amazon-cloudwatch-agent/issues/192 -func (f *FileSystemMetricExtractor) HasValue(info *cinfo.ContainerInfo) bool { - return info.Spec.HasFilesystem -} - -func (f *FileSystemMetricExtractor) GetValue(info *cinfo.ContainerInfo, containerType string) []*CAdvisorMetric { - var metrics []*CAdvisorMetric - if containerType == TypePod || containerType == TypeInfraContainer { - return metrics - } - - containerType = getFSMetricType(containerType) - stats := GetStats(info) - - for _, v := range stats.Filesystem { - metric := newCadvisorMetric(containerType) - if v.Device == "" { - continue - } - if f.allowListRegexP != nil && !f.allowListRegexP.MatchString(v.Device) { - continue - } - - metric.tags[DiskDev] = v.Device - metric.tags[FSType] = v.Type - - metric.fields[MetricName(containerType, FSUsage)] = v.Usage - metric.fields[MetricName(containerType, FSCapacity)] = v.Limit - metric.fields[MetricName(containerType, FSAvailable)] = v.Available - - if v.Limit != 0 { - metric.fields[MetricName(containerType, FSUtilization)] = float64(v.Usage) / float64(v.Limit) * 100 - } - - if v.HasInodes { - metric.fields[MetricName(containerType, FSInodes)] = v.Inodes - metric.fields[MetricName(containerType, FSInodesfree)] = v.InodesFree - } - - metric.cgroupPath = info.Name - metrics = append(metrics, metric) - } - return metrics -} - -func (f *FileSystemMetricExtractor) CleanUp(now time.Time) { -} - -func NewFileSystemMetricExtractor() *FileSystemMetricExtractor { - fse := &FileSystemMetricExtractor{} - if p, err := regexp.Compile(allowList); err == nil { - fse.allowListRegexP = p - } else { - log.Printf("E! NewFileSystemMetricExtractor set regex failed: %v", err) - } - - return fse -} - -func getFSMetricType(containerType string) string { - metricType := "" - switch containerType { - case TypeNode: - metricType = TypeNodeFS - case TypeInstance: - metricType = TypeInstanceFS - case TypeContainer: - metricType = TypeContainerFS - default: - log.Printf("W! fs_extractor: fs metric extractor is parsing unexpected containerType %s", containerType) - } - return metricType -} diff --git a/plugins/inputs/cadvisor/extractors/fs_extractor_test.go b/plugins/inputs/cadvisor/extractors/fs_extractor_test.go deleted file mode 100644 index 45abac802e..0000000000 --- a/plugins/inputs/cadvisor/extractors/fs_extractor_test.go +++ /dev/null @@ -1,267 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package extractors - -import ( - "bytes" - "encoding/json" - "log" - "testing" - - cinfo "github.com/google/cadvisor/info/v1" - "github.com/stretchr/testify/assert" - - . "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" -) - -const ( - testAllowList = ` -{ - "/kubepods/besteffort/podaf16b540-4ae2-11e9-977b-0672b6c6fc94/573ee6cd04a6208af809b2329652c74386f1992faca8662c733d7f250014e718": { - "id": "573ee6cd04a6208af809b2329652c74386f1992faca8662c733d7f250014e718", - "name": "/kubepods/besteffort/podaf16b540-4ae2-11e9-977b-0672b6c6fc94/573ee6cd04a6208af809b2329652c74386f1992faca8662c733d7f250014e718", - "aliases": [ - "k8s_ubuntu_stress-1-core-mh2pn_default_af16b540-4ae2-11e9-977b-0672b6c6fc94_0", - "573ee6cd04a6208af809b2329652c74386f1992faca8662c733d7f250014e718" - ], - "namespace": "docker", - "spec": { - "creation_time": "2019-03-20T07:35:09.746280405Z", - "labels": { - "annotation.io.kubernetes.container.hash": "70bfcd85", - "annotation.io.kubernetes.container.restartCount": "0", - "annotation.io.kubernetes.container.terminationMessagePath": "/dev/termination-log", - "annotation.io.kubernetes.container.terminationMessagePolicy": "File", - "annotation.io.kubernetes.pod.terminationGracePeriod": "30", - "io.kubernetes.container.logpath": "/var/log/pods/af16b540-4ae2-11e9-977b-0672b6c6fc94/ubuntu/0.log", - "io.kubernetes.container.name": "ubuntu", - "io.kubernetes.docker.type": "container", - "io.kubernetes.pod.name": "stress-1-core-mh2pn", - "io.kubernetes.pod.namespace": "default", - "io.kubernetes.pod.uid": "af16b540-4ae2-11e9-977b-0672b6c6fc94", - "io.kubernetes.sandbox.id": "a5bb552d7fb8e5014468756f165732e0c6bcd9dcbd229efc51afc014317d20d6" - }, - "has_cpu": true, - "cpu": { - "limit": 2, - "max_limit": 0, - "mask": "0-3", - "period": 100000 - }, - "has_memory": true, - "memory": { - "limit": 9223372036854771712, - "reservation": 9223372036854771712, - "swap_limit": 9223372036854771712 - }, - "has_network": false, - "has_filesystem": true, - "has_diskio": false, - "has_custom_metrics": false, - "image": "ubuntu@sha256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8" - }, - "stats": [ - { - "timestamp": "2019-04-09T22:26:42.984081498Z", - "filesystem": [ - { - "device": "tmpfs", - "type": "vfs", - "capacity": 21462233088, - "usage": 25661440, - "base_usage": 25640960, - "available": 0, - "has_inodes": false, - "inodes": 67, - "inodes_free": 0, - "reads_completed": 0, - "reads_merged": 0, - "sectors_read": 0, - "read_time": 0, - "writes_completed": 0, - "writes_merged": 0, - "sectors_written": 0, - "write_time": 0, - "io_in_progress": 0, - "io_time": 0, - "weighted_io_time": 0 - }, - { - "device": "/dev/xvda1", - "type": "vfs", - "capacity": 21462233088, - "usage": 25661440, - "base_usage": 25640960, - "available": 0, - "has_inodes": false, - "inodes": 67, - "inodes_free": 0, - "reads_completed": 0, - "reads_merged": 0, - "sectors_read": 0, - "read_time": 0, - "writes_completed": 0, - "writes_merged": 0, - "sectors_written": 0, - "write_time": 0, - "io_in_progress": 0, - "io_time": 0, - "weighted_io_time": 0 - }, - { - "device": "overlay", - "type": "vfs", - "capacity": 21462233088, - "usage": 25661440, - "base_usage": 25640960, - "available": 0, - "has_inodes": false, - "inodes": 67, - "inodes_free": 0, - "reads_completed": 0, - "reads_merged": 0, - "sectors_read": 0, - "read_time": 0, - "writes_completed": 0, - "writes_merged": 0, - "sectors_written": 0, - "write_time": 0, - "io_in_progress": 0, - "io_time": 0, - "weighted_io_time": 0 - }, - { - "device": "/dev", - "type": "vfs", - "capacity": 21462233088, - "usage": 25661440, - "base_usage": 25640960, - "available": 0, - "has_inodes": false, - "inodes": 67, - "inodes_free": 0, - "reads_completed": 0, - "reads_merged": 0, - "sectors_read": 0, - "read_time": 0, - "writes_completed": 0, - "writes_merged": 0, - "sectors_written": 0, - "write_time": 0, - "io_in_progress": 0, - "io_time": 0, - "weighted_io_time": 0 - }, - { - "device": "overlaytest", - "type": "vfs", - "capacity": 21462233088, - "usage": 25661440, - "base_usage": 25640960, - "available": 0, - "has_inodes": false, - "inodes": 67, - "inodes_free": 0, - "reads_completed": 0, - "reads_merged": 0, - "sectors_read": 0, - "read_time": 0, - "writes_completed": 0, - "writes_merged": 0, - "sectors_written": 0, - "write_time": 0, - "io_in_progress": 0, - "io_time": 0, - "weighted_io_time": 0 - } - ] - } - ] - } -} -` -) - -func TestFSStats(t *testing.T) { - - var result []*cinfo.ContainerInfo - containers := map[string]*cinfo.ContainerInfo{} - err := json.Unmarshal([]byte(CurInfo), &containers) - - if err != nil { - log.Printf("Fail to read request body: %s", err) - } - - for _, containerInfo := range containers { - result = append(result, containerInfo) - } - - var b bytes.Buffer - enc := json.NewEncoder(&b) - enc.Encode(result) - containerType := TypeContainer - extractor := NewFileSystemMetricExtractor() - - var cMetrics []*CAdvisorMetric - if extractor.HasValue(result[0]) { - cMetrics = extractor.GetValue(result[0], containerType) - } - for _, cadvisorMetric := range cMetrics { - log.Printf("cadvisor Metrics received:\n %v \n", *cadvisorMetric) - } - expectedFields := map[string]interface{}{ - "container_filesystem_usage": uint64(25661440), - "container_filesystem_capacity": uint64(21462233088), - "container_filesystem_available": uint64(0), - "container_filesystem_utilization": float64(0.11956556381986117), - } - expectedTags := map[string]string{ - "device": "/dev/xvda1", - "fstype": "vfs", - } - AssertContainsTaggedField(t, cMetrics[0], expectedFields, expectedTags) -} - -func TestAllowList(t *testing.T) { - extractor := NewFileSystemMetricExtractor() - assert.Equal(t, true, extractor.allowListRegexP.MatchString("/dev/shm")) - assert.Equal(t, true, extractor.allowListRegexP.MatchString("tmpfs")) - assert.Equal(t, true, extractor.allowListRegexP.MatchString("overlay")) - assert.Equal(t, false, extractor.allowListRegexP.MatchString("overlaytest")) - assert.Equal(t, false, extractor.allowListRegexP.MatchString("/dev")) -} - -func TestFSStatsWithAllowList(t *testing.T) { - var result []*cinfo.ContainerInfo - containers := map[string]*cinfo.ContainerInfo{} - err := json.Unmarshal([]byte(testAllowList), &containers) - - if err != nil { - log.Printf("Fail to read request body: %s", err) - } - - for _, containerInfo := range containers { - result = append(result, containerInfo) - } - - var b bytes.Buffer - enc := json.NewEncoder(&b) - enc.Encode(result) - containerType := TypeContainer - extractor := NewFileSystemMetricExtractor() - - var cMetrics []*CAdvisorMetric - if extractor.HasValue(result[0]) { - cMetrics = extractor.GetValue(result[0], containerType) - } - for _, cadvisorMetric := range cMetrics { - log.Printf("cadvisor Metrics received:\n %v \n", *cadvisorMetric) - } - // There are 3 valid device names which pass the allowlist in testAllowList json. - assert.Equal(t, 3, len(cMetrics)) - assert.Equal(t, "tmpfs", cMetrics[0].tags["device"]) - assert.Equal(t, "/dev/xvda1", cMetrics[1].tags["device"]) - assert.Equal(t, "overlay", cMetrics[2].tags["device"]) - -} diff --git a/plugins/inputs/cadvisor/extractors/mem_extractor.go b/plugins/inputs/cadvisor/extractors/mem_extractor.go deleted file mode 100644 index 35a709fb73..0000000000 --- a/plugins/inputs/cadvisor/extractors/mem_extractor.go +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package extractors - -import ( - "time" - - cinfo "github.com/google/cadvisor/info/v1" - - . "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" - "github.com/aws/amazon-cloudwatch-agent/internal/mapWithExpiry" -) - -type MemMetricExtractor struct { - preInfos *mapWithExpiry.MapWithExpiry -} - -func (m *MemMetricExtractor) recordPreviousInfo(info *cinfo.ContainerInfo) { - m.preInfos.Set(info.Name, info) -} - -func (m *MemMetricExtractor) HasValue(info *cinfo.ContainerInfo) bool { - return info.Spec.HasMemory -} - -func (m *MemMetricExtractor) GetValue(info *cinfo.ContainerInfo, containerType string) []*CAdvisorMetric { - var metrics []*CAdvisorMetric - if containerType == TypeInfraContainer { - return metrics - } - - metric := newCadvisorMetric(containerType) - metric.cgroupPath = info.Name - curStats := GetStats(info) - - metric.fields[MetricName(containerType, MemUsage)] = curStats.Memory.Usage - metric.fields[MetricName(containerType, MemCache)] = curStats.Memory.Cache - metric.fields[MetricName(containerType, MemRss)] = curStats.Memory.RSS - metric.fields[MetricName(containerType, MemMaxusage)] = curStats.Memory.MaxUsage - metric.fields[MetricName(containerType, MemSwap)] = curStats.Memory.Swap - metric.fields[MetricName(containerType, MemFailcnt)] = curStats.Memory.Failcnt - metric.fields[MetricName(containerType, MemMappedfile)] = curStats.Memory.MappedFile - metric.fields[MetricName(containerType, MemWorkingset)] = curStats.Memory.WorkingSet - - if preInfo, ok := m.preInfos.Get(info.Name); ok { - preStats := GetStats(preInfo.(*cinfo.ContainerInfo)) - deltaCTimeInNano := curStats.Timestamp.Sub(preStats.Timestamp).Nanoseconds() - if deltaCTimeInNano > MinTimeDiff { - metric.fields[MetricName(containerType, MemPgfault)] = float64(curStats.Memory.ContainerData.Pgfault-preStats.Memory.ContainerData.Pgfault) / float64(deltaCTimeInNano) * float64(time.Second) - metric.fields[MetricName(containerType, MemPgmajfault)] = float64(curStats.Memory.ContainerData.Pgmajfault-preStats.Memory.ContainerData.Pgmajfault) / float64(deltaCTimeInNano) * float64(time.Second) - - metric.fields[MetricName(containerType, MemHierarchicalPgfault)] = float64(curStats.Memory.HierarchicalData.Pgfault-preStats.Memory.HierarchicalData.Pgfault) / float64(deltaCTimeInNano) * float64(time.Second) - metric.fields[MetricName(containerType, MemHierarchicalPgmajfault)] = float64(curStats.Memory.HierarchicalData.Pgmajfault-preStats.Memory.HierarchicalData.Pgmajfault) / float64(deltaCTimeInNano) * float64(time.Second) - } - } - - m.recordPreviousInfo(info) - metrics = append(metrics, metric) - return metrics -} - -func (m *MemMetricExtractor) CleanUp(now time.Time) { - m.preInfos.CleanUp(now) -} - -func NewMemMetricExtractor() *MemMetricExtractor { - return &MemMetricExtractor{ - preInfos: mapWithExpiry.NewMapWithExpiry(CleanInterval), - } -} diff --git a/plugins/inputs/cadvisor/extractors/mem_extractor_test.go b/plugins/inputs/cadvisor/extractors/mem_extractor_test.go deleted file mode 100644 index 21ca6a1d0f..0000000000 --- a/plugins/inputs/cadvisor/extractors/mem_extractor_test.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package extractors - -import ( - "bytes" - "encoding/json" - "log" - "testing" - - cinfo "github.com/google/cadvisor/info/v1" - - . "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" -) - -func TestMemStats(t *testing.T) { - - var result []*cinfo.ContainerInfo - containers := map[string]*cinfo.ContainerInfo{} - err := json.Unmarshal([]byte(PreInfo), &containers) - - if err != nil { - log.Printf("Fail to read request body: %s", err) - } - - for _, containerInfo := range containers { - result = append(result, containerInfo) - } - - var b bytes.Buffer - enc := json.NewEncoder(&b) - enc.Encode(result) - containerType := TypeContainer - extractor := NewMemMetricExtractor() - - extractor.preInfos.Set(result[0].Name, result[0]) - - var result2 []*cinfo.ContainerInfo - containers = map[string]*cinfo.ContainerInfo{} - err = json.Unmarshal([]byte(CurInfo), &containers) - - if err != nil { - log.Printf("Fail to read request body: %s", err) - } - - for _, containerInfo := range containers { - result2 = append(result2, containerInfo) - } - enc.Encode(result2) - - var cMetrics []*CAdvisorMetric - if extractor.HasValue(result2[0]) { - cMetrics = extractor.GetValue(result2[0], containerType) - } - for _, cadvisorMetric := range cMetrics { - log.Printf("cadvisor Metrics received:\n %v \n", *cadvisorMetric) - } - //AssertContainsTaggedFloat(t, cMetrics[0], "container_memory_working_set", 28844032, 0) - expectedFields := map[string]interface{}{ - "container_memory_cache": uint64(25645056), - "container_memory_rss": uint64(221184), - "container_memory_max_usage": uint64(90775552), - "container_memory_mapped_file": uint64(0), - "container_memory_pgfault": float64(1000), - "container_memory_pgmajfault": float64(10), - "container_memory_hierarchical_pgmajfault": float64(10), - "container_memory_usage": uint64(29728768), - "container_memory_swap": uint64(0), - "container_memory_failcnt": uint64(0), - "container_memory_working_set": uint64(28844032), - "container_memory_hierarchical_pgfault": float64(1000), - } - expectedTags := map[string]string{} - AssertContainsTaggedField(t, cMetrics[0], expectedFields, expectedTags) - -} diff --git a/plugins/inputs/cadvisor/extractors/net_extractor.go b/plugins/inputs/cadvisor/extractors/net_extractor.go deleted file mode 100644 index f32761c018..0000000000 --- a/plugins/inputs/cadvisor/extractors/net_extractor.go +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package extractors - -import ( - "log" - "time" - - cinfo "github.com/google/cadvisor/info/v1" - - . "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" - "github.com/aws/amazon-cloudwatch-agent/internal/mapWithExpiry" -) - -const ( - oneTerabytes = 1 * 1024 * 1024 * 1024 * 1024 -) - -type NetMetricExtractor struct { - preInfos *mapWithExpiry.MapWithExpiry -} - -func (n *NetMetricExtractor) recordPreviousInfo(info *cinfo.ContainerInfo) { - n.preInfos.Set(info.Name, info) -} - -func getInterfacesStats(stats *cinfo.ContainerStats) []cinfo.InterfaceStats { - ifceStats := stats.Network.Interfaces - if len(ifceStats) == 0 { - ifceStats = []cinfo.InterfaceStats{stats.Network.InterfaceStats} - } - return ifceStats -} - -func (n *NetMetricExtractor) HasValue(info *cinfo.ContainerInfo) bool { - return info.Spec.HasNetwork -} - -func (n *NetMetricExtractor) GetValue(info *cinfo.ContainerInfo, containerType string) []*CAdvisorMetric { - var metrics []*CAdvisorMetric - - // Ignore both pod and container because the network metrics comes from InfraContainer. - if containerType == TypePod || containerType == TypeContainer { - return metrics - } - // Rename type to pod so the metric name prefix is pod_ - if containerType == TypeInfraContainer { - containerType = TypePod - } - - if preInfo, ok := n.preInfos.Get(info.Name); ok { - curStats := GetStats(info) - preStats := GetStats(preInfo.(*cinfo.ContainerInfo)) - deltaCTimeInNano := curStats.Timestamp.Sub(preStats.Timestamp).Nanoseconds() - if deltaCTimeInNano > MinTimeDiff { - curIfceStats := getInterfacesStats(curStats) - preIfceStats := getInterfacesStats(preStats) - - // used for aggregation - var netIfceMetrics []map[string]float64 - - for _, cur := range curIfceStats { - for _, pre := range preIfceStats { - if cur.Name == pre.Name { - mType := getNetMetricType(containerType) - netIfceMetric := make(map[string]float64) - - netIfceMetric[NetRxBytes] = float64(cur.RxBytes-pre.RxBytes) / float64(deltaCTimeInNano) * float64(time.Second) - netIfceMetric[NetRxPackets] = float64(cur.RxPackets-pre.RxPackets) / float64(deltaCTimeInNano) * float64(time.Second) - netIfceMetric[NetRxDropped] = float64(cur.RxDropped-pre.RxDropped) / float64(deltaCTimeInNano) * float64(time.Second) - netIfceMetric[NetRxErrors] = float64(cur.RxErrors-pre.RxErrors) / float64(deltaCTimeInNano) * float64(time.Second) - netIfceMetric[NetTxBytes] = float64(cur.TxBytes-pre.TxBytes) / float64(deltaCTimeInNano) * float64(time.Second) - netIfceMetric[NetTxPackets] = float64(cur.TxPackets-pre.TxPackets) / float64(deltaCTimeInNano) * float64(time.Second) - netIfceMetric[NetTxDropped] = float64(cur.TxDropped-pre.TxDropped) / float64(deltaCTimeInNano) * float64(time.Second) - netIfceMetric[NetTxErrors] = float64(cur.TxErrors-pre.TxErrors) / float64(deltaCTimeInNano) * float64(time.Second) - netIfceMetric[NetTotalBytes] = netIfceMetric[NetRxBytes] + netIfceMetric[NetTxBytes] - if netIfceMetric[NetRxBytes] > oneTerabytes || netIfceMetric[NetTxBytes] > oneTerabytes { - log.Printf("I! Too Big value for network RX/TX bytes, final Rx:%v, final Tx:%v, curRx:%v, preRx:%v, curTx:%v, preTx:%v, deltaCTimeInNano:%v", - netIfceMetric[NetRxBytes], netIfceMetric[NetTxBytes], - cur.RxBytes, pre.RxBytes, - cur.TxBytes, pre.TxBytes, - deltaCTimeInNano) - } - - netIfceMetrics = append(netIfceMetrics, netIfceMetric) - - metric := newCadvisorMetric(mType) - metric.tags[NetIfce] = cur.Name - for k, v := range netIfceMetric { - metric.fields[MetricName(mType, k)] = v - } - - metric.cgroupPath = info.Name - metrics = append(metrics, metric) - break - } - } - } - aggregatedFields := aggregate(netIfceMetrics) - if len(aggregatedFields) > 0 { - metric := newCadvisorMetric(containerType) - for k, v := range aggregatedFields { - metric.fields[MetricName(containerType, k)] = v - } - metric.cgroupPath = info.Name - metrics = append(metrics, metric) - } - } - } - n.recordPreviousInfo(info) - - return metrics -} - -func (n *NetMetricExtractor) CleanUp(now time.Time) { - n.preInfos.CleanUp(now) -} - -func NewNetMetricExtractor() *NetMetricExtractor { - return &NetMetricExtractor{ - preInfos: mapWithExpiry.NewMapWithExpiry(CleanInterval), - } -} - -func getNetMetricType(containerType string) string { - metricType := "" - switch containerType { - case TypeNode: - metricType = TypeNodeNet - case TypeInstance: - metricType = TypeInstanceNet - case TypePod: - metricType = TypePodNet - default: - log.Printf("W! net_extractor: net metric extractor is parsing unexpected containerType %s", containerType) - } - return metricType -} diff --git a/plugins/inputs/cadvisor/extractors/net_extractor_test.go b/plugins/inputs/cadvisor/extractors/net_extractor_test.go deleted file mode 100644 index 2f62aa9588..0000000000 --- a/plugins/inputs/cadvisor/extractors/net_extractor_test.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package extractors - -import ( - "bytes" - "encoding/json" - "log" - "testing" - - cinfo "github.com/google/cadvisor/info/v1" - - . "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" -) - -func TestNetStats(t *testing.T) { - - var result []*cinfo.ContainerInfo - containers := map[string]*cinfo.ContainerInfo{} - err := json.Unmarshal([]byte(PreInfo), &containers) - - if err != nil { - log.Printf("Fail to read request body: %s", err) - } - - for _, containerInfo := range containers { - result = append(result, containerInfo) - } - - var b bytes.Buffer - enc := json.NewEncoder(&b) - enc.Encode(result) - containerType := TypeContainer - extractor := NewNetMetricExtractor() - - extractor.preInfos.Set(result[0].Name, result[0]) - - var result2 []*cinfo.ContainerInfo - containers = map[string]*cinfo.ContainerInfo{} - err = json.Unmarshal([]byte(CurInfo), &containers) - - if err != nil { - log.Printf("Fail to read request body: %s", err) - } - - for _, containerInfo := range containers { - result2 = append(result2, containerInfo) - } - enc.Encode(result2) - - var cMetrics []*CAdvisorMetric - if extractor.HasValue(result2[0]) { - cMetrics = extractor.GetValue(result2[0], containerType) - } - for _, cadvisorMetric := range cMetrics { - log.Printf("cadvisor Metrics received:\n %v \n", *cadvisorMetric) - } - -} diff --git a/plugins/inputs/cadvisor/extractors/utils.go b/plugins/inputs/cadvisor/extractors/utils.go deleted file mode 100644 index a1363ba222..0000000000 --- a/plugins/inputs/cadvisor/extractors/utils.go +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package extractors - -import ( - cinfo "github.com/google/cadvisor/info/v1" -) - -// aggregate fileds -func aggregate(fields []map[string]float64) map[string]float64 { - if len(fields) == 0 { - return nil - } - - result := make(map[string]float64) - // Use the first element as the base - for k, v := range fields[0] { - result[k] = v - } - - if len(fields) == 1 { - return result - } - - for i := 1; i < len(fields); i++ { - for k, v := range result { - result[k] = v + fields[i][k] - } - } - return result -} - -func GetStats(info *cinfo.ContainerInfo) *cinfo.ContainerStats { - if len(info.Stats) == 0 { - return nil - } - // When there is more than one stats point, always use the last one - return info.Stats[len(info.Stats)-1] -} diff --git a/plugins/inputs/cadvisor/merger.go b/plugins/inputs/cadvisor/merger.go deleted file mode 100644 index f2bf9b751e..0000000000 --- a/plugins/inputs/cadvisor/merger.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package cadvisor - -import ( - "fmt" - - . "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" - "github.com/aws/amazon-cloudwatch-agent/plugins/inputs/cadvisor/extractors" -) - -func mergeMetrics(metrics []*extractors.CAdvisorMetric) []*extractors.CAdvisorMetric { - var result []*extractors.CAdvisorMetric - metricMap := make(map[string]*extractors.CAdvisorMetric) - for _, metric := range metrics { - if metricKey := getMetricKey(metric); metricKey != "" { - if mergedMetric, ok := metricMap[metricKey]; ok { - mergedMetric.Merge(metric) - } else { - metricMap[metricKey] = metric - } - } else { - // this metric cannot be merged - result = append(result, metric) - } - } - for _, metric := range metricMap { - result = append(result, metric) - } - return result -} - -// return MetricKey for merge-able metrics -func getMetricKey(metric *extractors.CAdvisorMetric) string { - metricType := metric.GetMetricType() - metricKey := "" - switch metricType { - case TypeInstance: - // merge cpu, memory, net metric for type Instance - metricKey = fmt.Sprintf("metricType:%s", TypeInstance) - case TypeNode: - // merge cpu, memory, net metric for type Node - metricKey = fmt.Sprintf("metricType:%s", TypeNode) - case TypePod: - // merge cpu, memory, net metric for type Pod - metricKey = fmt.Sprintf("metricType:%s,podId:%s", TypePod, metric.GetTags()[PodIdKey]) - case TypeContainer: - // merge cpu, memory metric for type Container - metricKey = fmt.Sprintf("metricType:%s,podId:%s,containerName:%s", TypeContainer, metric.GetTags()[PodIdKey], metric.GetTags()[ContainerNamekey]) - case TypeInstanceDiskIO: - // merge io_serviced, io_service_bytes for type InstanceDiskIO - metricKey = fmt.Sprintf("metricType:%s,device:%s", TypeInstanceDiskIO, metric.GetTags()[DiskDev]) - case TypeNodeDiskIO: - // merge io_serviced, io_service_bytes for type NodeDiskIO - metricKey = fmt.Sprintf("metricType:%s,device:%s", TypeNodeDiskIO, metric.GetTags()[DiskDev]) - default: - metricKey = "" - } - return metricKey -} diff --git a/plugins/inputs/cadvisor/mesos/client.go b/plugins/inputs/cadvisor/mesos/client.go deleted file mode 100644 index 34fca2a1e5..0000000000 --- a/plugins/inputs/cadvisor/mesos/client.go +++ /dev/null @@ -1,216 +0,0 @@ -// Copyright 2018 Google Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build linux -// +build linux - -package mesos - -import ( - "fmt" - "net/url" - "sync" - - "github.com/Rican7/retry" - "github.com/Rican7/retry/strategy" - mesos "github.com/mesos/mesos-go/api/v1/lib" - "github.com/mesos/mesos-go/api/v1/lib/agent" - "github.com/mesos/mesos-go/api/v1/lib/agent/calls" - mclient "github.com/mesos/mesos-go/api/v1/lib/client" - "github.com/mesos/mesos-go/api/v1/lib/encoding/codecs" - "github.com/mesos/mesos-go/api/v1/lib/httpcli" -) - -const ( - maxRetryAttempts = 3 - invalidPID = -1 -) - -var ( - mesosClientOnce sync.Once - mesosClient *client -) - -type client struct { - hc *httpcli.Client -} - -type mesosAgentClient interface { - containerInfo(id string) (*containerInfo, error) - containerPID(id string) (int, error) -} - -type containerInfo struct { - cntr *mContainer - labels map[string]string -} - -// newClient is an interface to query mesos agent http endpoints -func newClient() (mesosAgentClient, error) { - mesosClientOnce.Do(func() { - // Start Client - apiURL := url.URL{ - Scheme: "http", - Host: *MesosAgentAddress, - Path: "/api/v1", - } - - mesosClient = &client{ - hc: httpcli.New( - httpcli.Endpoint(apiURL.String()), - httpcli.Codec(codecs.ByMediaType[codecs.MediaTypeProtobuf]), - httpcli.Do(httpcli.With(httpcli.Timeout(*MesosAgentTimeout))), - ), - } - }) - - _, err := mesosClient.getVersion() - if err != nil { - return nil, fmt.Errorf("failed to get version") - } - return mesosClient, nil -} - -// containerInfo returns the container information of the given container id -func (c *client) containerInfo(id string) (*containerInfo, error) { - container, err := c.getContainer(id) - if err != nil { - return nil, err - } - - // Get labels of the container - l, err := c.getLabels(container) - if err != nil { - return nil, err - } - - return &containerInfo{ - cntr: container, - labels: l, - }, nil -} - -// Get the Pid of the container -func (c *client) containerPID(id string) (int, error) { - var pid int - err := retry.Retry( - func(attempt uint) error { - c, err := c.containerInfo(id) - if err != nil { - return err - } - - if c.cntr.ContainerStatus != nil { - pid = int(*c.cntr.ContainerStatus.ExecutorPID) - } else { - err = fmt.Errorf("error fetching Pid") - } - return err - }, - strategy.Limit(maxRetryAttempts), - ) - if err != nil { - return invalidPID, fmt.Errorf("failed to fetch pid") - } - return pid, err -} - -func (c *client) getContainer(id string) (*mContainer, error) { - // Get all containers - cntrs, err := c.getContainers() - if err != nil { - return nil, err - } - - // Check if there is a container with given id and return the container - for _, c := range cntrs.Containers { - if c.ContainerID.Value == id { - return &c, nil - } - } - return nil, fmt.Errorf("can't locate container %s", id) -} - -func (c *client) getVersion() (string, error) { - req := calls.NonStreaming(calls.GetVersion()) - result, err := c.fetchAndDecode(req) - if err != nil { - return "", fmt.Errorf("failed to get mesos version: %v", err) - } - version := result.GetVersion - - if version == nil { - return "", fmt.Errorf("failed to get mesos version") - } - return version.VersionInfo.Version, nil -} - -func (c *client) getContainers() (mContainers, error) { - req := calls.NonStreaming(calls.GetContainers()) - result, err := c.fetchAndDecode(req) - if err != nil { - return nil, fmt.Errorf("failed to get mesos containers: %v", err) - } - cntrs := result.GetContainers - - if cntrs == nil { - return nil, fmt.Errorf("failed to get mesos containers") - } - return cntrs, nil -} - -func (c *client) getLabels(container *mContainer) (map[string]string, error) { - // Get mesos agent state which contains all containers labels - var s state - req := calls.NonStreaming(calls.GetState()) - result, err := c.fetchAndDecode(req) - if err != nil { - return map[string]string{}, fmt.Errorf("failed to get mesos agent state: %v", err) - } - s.st = result.GetState - - // Fetch labels from state object - labels, err := s.FetchLabels(container.FrameworkID.Value, container.ExecutorID.Value) - if err != nil { - return labels, fmt.Errorf("error while fetching labels from executor: %v", err) - } - - return labels, nil -} - -func (c *client) fetchAndDecode(req calls.RequestFunc) (*agent.Response, error) { - var res mesos.Response - var err error - - // Send request - err = retry.Retry( - func(attempt uint) error { - res, err = mesosClient.hc.Send(req, mclient.ResponseClassSingleton, nil) - return err - }, - strategy.Limit(maxRetryAttempts), - ) - if err != nil { - return nil, fmt.Errorf("error fetching %s: %s", req.Call(), err) - } - - // Decode the result - var target agent.Response - err = res.Decode(&target) - if err != nil { - return nil, fmt.Errorf("error while decoding response body from %s: %s", res, err) - } - - return &target, nil -} diff --git a/plugins/inputs/cadvisor/mesos/client_test.go b/plugins/inputs/cadvisor/mesos/client_test.go deleted file mode 100644 index 9f05bcc094..0000000000 --- a/plugins/inputs/cadvisor/mesos/client_test.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2018 Google Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build linux -// +build linux - -package mesos - -import "fmt" - -type FakeMesosAgentClient struct { - cntrInfo map[string]*containerInfo - err error -} - -func (c *FakeMesosAgentClient) containerInfo(id string) (*containerInfo, error) { - if c.err != nil { - return nil, c.err - } - cInfo, ok := c.cntrInfo[id] - if !ok { - return nil, fmt.Errorf("can't locate container %s", id) - } - return cInfo, nil -} - -func (c *FakeMesosAgentClient) containerPID(id string) (int, error) { - if c.err != nil { - return invalidPID, c.err - } - cInfo, ok := c.cntrInfo[id] - if !ok { - return invalidPID, fmt.Errorf("can't locate container %s", id) - } - - if cInfo.cntr.ContainerStatus == nil { - return invalidPID, fmt.Errorf("error fetching Pid") - } - - pid := int(*cInfo.cntr.ContainerStatus.ExecutorPID) - return pid, nil -} - -func fakeMesosAgentClient(cntrInfo map[string]*containerInfo, err error) mesosAgentClient { - return &FakeMesosAgentClient{ - err: err, - cntrInfo: cntrInfo, - } -} diff --git a/plugins/inputs/cadvisor/mesos/factory.go b/plugins/inputs/cadvisor/mesos/factory.go deleted file mode 100644 index a4f12c62f4..0000000000 --- a/plugins/inputs/cadvisor/mesos/factory.go +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright 2018 Google Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build linux -// +build linux - -package mesos - -import ( - "flag" - "fmt" - "path" - "regexp" - "strings" - "time" - - "github.com/google/cadvisor/container" - "github.com/google/cadvisor/container/libcontainer" - "github.com/google/cadvisor/fs" - info "github.com/google/cadvisor/info/v1" - "github.com/google/cadvisor/watcher" - "k8s.io/klog/v2" -) - -var MesosAgentAddress = flag.String("mesos_agent", "127.0.0.1:5051", "Mesos agent address") -var MesosAgentTimeout = flag.Duration("mesos_agent_timeout", 10*time.Second, "Mesos agent timeout") - -// The namespace under which mesos aliases are unique. -const MesosNamespace = "mesos" - -// Regexp that identifies mesos cgroups, containers started with -// --cgroup-parent have another prefix than 'mesos' -var mesosCgroupRegexp = regexp.MustCompile(`([a-z-0-9]{36})`) - -// mesosFactory implements the interface ContainerHandlerFactory -type mesosFactory struct { - machineInfoFactory info.MachineInfoFactory - - // Information about the cgroup subsystems. - cgroupSubsystems map[string]string - - // Information about mounted filesystems. - fsInfo fs.FsInfo - - includedMetrics map[container.MetricKind]struct{} - - client mesosAgentClient -} - -func (f *mesosFactory) String() string { - return MesosNamespace -} - -func (f *mesosFactory) NewContainerHandler(name string, metadataEnvAllowList []string, inHostNamespace bool) (container.ContainerHandler, error) { - client, err := newClient() - if err != nil { - return nil, err - } - - return newMesosContainerHandler( - name, - f.cgroupSubsystems, - f.machineInfoFactory, - f.fsInfo, - f.includedMetrics, - inHostNamespace, - metadataEnvAllowList, - client, - ) -} - -// ContainerNameToMesosId returns the Mesos ID from the full container name. -func ContainerNameToMesosId(name string) string { - id := path.Base(name) - - if matches := mesosCgroupRegexp.FindStringSubmatch(id); matches != nil { - return matches[1] - } - - return id -} - -// isContainerName returns true if the cgroup with associated name -// corresponds to a mesos container. -func isContainerName(name string) bool { - // always ignore .mount cgroup even if associated with mesos and delegate to systemd - if strings.HasSuffix(name, ".mount") { - return false - } - return mesosCgroupRegexp.MatchString(path.Base(name)) -} - -// The mesos factory can handle any container. -func (f *mesosFactory) CanHandleAndAccept(name string) (handle bool, accept bool, err error) { - // if the container is not associated with mesos, we can't handle it or accept it. - if !isContainerName(name) { - return false, false, nil - } - - // Check if the container is known to mesos and it is active. - id := ContainerNameToMesosId(name) - - _, err = f.client.containerInfo(id) - if err != nil { - return false, true, fmt.Errorf("error getting running container: %v", err) - } - - return true, true, nil -} - -func (f *mesosFactory) DebugInfo() map[string][]string { - return map[string][]string{} -} - -func Register( - machineInfoFactory info.MachineInfoFactory, - fsInfo fs.FsInfo, - includedMetrics container.MetricSet, -) error { - client, err := newClient() - - if err != nil { - return fmt.Errorf("unable to create mesos agent client: %v", err) - } - - cgroupSubsystems, err := libcontainer.GetCgroupSubsystems(includedMetrics) - if err != nil { - return fmt.Errorf("failed to get cgroup subsystems: %v", err) - } - - klog.V(1).Infof("Registering mesos factory") - factory := &mesosFactory{ - machineInfoFactory: machineInfoFactory, - cgroupSubsystems: cgroupSubsystems, - fsInfo: fsInfo, - includedMetrics: includedMetrics, - client: client, - } - container.RegisterContainerHandlerFactory(factory, []watcher.ContainerWatchSource{watcher.Raw}) - return nil -} diff --git a/plugins/inputs/cadvisor/mesos/factory_test.go b/plugins/inputs/cadvisor/mesos/factory_test.go deleted file mode 100644 index 195b8c4672..0000000000 --- a/plugins/inputs/cadvisor/mesos/factory_test.go +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2018 Google Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build linux -// +build linux - -package mesos - -import ( - "testing" - - mesos "github.com/mesos/mesos-go/api/v1/lib" - "github.com/stretchr/testify/assert" -) - -func TestIsContainerName(t *testing.T) { - tests := []struct { - name string - expected bool - }{ - { - name: "/system.slice/var-lib-mesos-provisioner-containers-04e20821-d67d3-4bf7-96b4-7d4495f50b28-backends-overlay-rootfses-6d97be39-7359-4bb7-a46b-e55c6771da81.mount", - expected: false, - }, - { - name: "/mesos/04e20821-67d3-4bf7-96b4-7d4495f50b28", - expected: true, - }, - } - for _, test := range tests { - if actual := isContainerName(test.name); actual != test.expected { - t.Errorf("%s: expected: %v, actual: %v", test.name, test.expected, actual) - } - } -} -func TestCanHandleAndAccept(t *testing.T) { - as := assert.New(t) - testContainers := make(map[string]*containerInfo) - var pid uint32 = 123 - testContainer := &containerInfo{ - cntr: &mContainer{ - ContainerStatus: &mesos.ContainerStatus{ - ExecutorPID: &pid, - }, - }, - } - - testContainers["04e20821-67d3-4bf7-96b4-7d4495f50b28"] = testContainer - - f := &mesosFactory{ - machineInfoFactory: nil, - cgroupSubsystems: nil, - fsInfo: nil, - includedMetrics: nil, - client: fakeMesosAgentClient(testContainers, nil), - } - tests := []struct { - name string - expected bool - }{ - { - name: "/mesos/04e20821-67d3-4bf7-96b4-7d4495f50b28", - expected: true, - }, - { - name: "/system.slice/var-lib-mesos-provisioner-containers-04e20821-d67d3-4bf7-96b4-7d4495f50b28-backends-overlay-rootfses-6d97be39-7359-4bb7-a46b-e55c6771da81.mount", - expected: false, - }, - } - - for _, test := range tests { - b1, b2, err := f.CanHandleAndAccept(test.name) - as.Nil(err) - as.Equal(b1, test.expected) - as.Equal(b2, test.expected) - } -} diff --git a/plugins/inputs/cadvisor/mesos/handler.go b/plugins/inputs/cadvisor/mesos/handler.go deleted file mode 100644 index ad6f9fd1a3..0000000000 --- a/plugins/inputs/cadvisor/mesos/handler.go +++ /dev/null @@ -1,205 +0,0 @@ -// Copyright 2018 Google Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Handler for "mesos" containers. - -//go:build linux -// +build linux - -package mesos - -import ( - "fmt" - - "github.com/google/cadvisor/container" - "github.com/google/cadvisor/container/common" - containerlibcontainer "github.com/google/cadvisor/container/libcontainer" - "github.com/google/cadvisor/fs" - info "github.com/google/cadvisor/info/v1" -) - -type mesosContainerHandler struct { - // Name of the container for this handler. - name string - - // machineInfoFactory provides info.MachineInfo - machineInfoFactory info.MachineInfoFactory - - // Absolute path to the cgroup hierarchies of this container. - // (e.g.: "cpu" -> "/sys/fs/cgroup/cpu/test") - cgroupPaths map[string]string - - // File System Info - fsInfo fs.FsInfo - - // Metrics to be included. - includedMetrics container.MetricSet - - labels map[string]string - - // Reference to the container - reference info.ContainerReference - - libcontainerHandler *containerlibcontainer.Handler -} - -func newMesosContainerHandler( - name string, - cgroupSubsystems map[string]string, - machineInfoFactory info.MachineInfoFactory, - fsInfo fs.FsInfo, - includedMetrics container.MetricSet, - inHostNamespace bool, - metadataEnvAllowList []string, - client mesosAgentClient, -) (container.ContainerHandler, error) { - cgroupPaths := common.MakeCgroupPaths(cgroupSubsystems, name) - - // Generate the equivalent cgroup manager for this container. - cgroupManager, err := containerlibcontainer.NewCgroupManager(name, cgroupPaths) - if err != nil { - return nil, err - } - - rootFs := "/" - if !inHostNamespace { - rootFs = "/rootfs" - } - - id := ContainerNameToMesosId(name) - - cinfo, err := client.containerInfo(id) - - if err != nil { - return nil, err - } - - labels := cinfo.labels - pid, err := client.containerPID(id) - if err != nil { - return nil, err - } - - libcontainerHandler := containerlibcontainer.NewHandler(cgroupManager, rootFs, pid, includedMetrics) - - reference := info.ContainerReference{ - Id: id, - Name: name, - Namespace: MesosNamespace, - Aliases: []string{id, name}, - } - - handler := &mesosContainerHandler{ - name: name, - machineInfoFactory: machineInfoFactory, - cgroupPaths: cgroupPaths, - fsInfo: fsInfo, - includedMetrics: includedMetrics, - labels: labels, - reference: reference, - libcontainerHandler: libcontainerHandler, - } - - return handler, nil -} - -func (h *mesosContainerHandler) ContainerReference() (info.ContainerReference, error) { - // We only know the container by its one name. - return h.reference, nil -} - -// Nothing to start up. -func (h *mesosContainerHandler) Start() {} - -// Nothing to clean up. -func (h *mesosContainerHandler) Cleanup() {} - -func (h *mesosContainerHandler) GetSpec() (info.ContainerSpec, error) { - // TODO: Since we dont collect disk usage and network stats for mesos containers, we set - // hasFilesystem and hasNetwork to false. Revisit when we support disk usage, network - // stats for mesos containers. - hasNetwork := false - hasFilesystem := false - - spec, err := common.GetSpec(h.cgroupPaths, h.machineInfoFactory, hasNetwork, hasFilesystem) - if err != nil { - return spec, err - } - - spec.Labels = h.labels - - return spec, nil -} - -func (h *mesosContainerHandler) getFsStats(stats *info.ContainerStats) error { - - mi, err := h.machineInfoFactory.GetMachineInfo() - if err != nil { - return err - } - - if h.includedMetrics.Has(container.DiskIOMetrics) { - common.AssignDeviceNamesToDiskStats((*common.MachineInfoNamer)(mi), &stats.DiskIo) - } - - return nil -} - -func (h *mesosContainerHandler) GetStats() (*info.ContainerStats, error) { - stats, err := h.libcontainerHandler.GetStats() - if err != nil { - return stats, err - } - - // Get filesystem stats. - err = h.getFsStats(stats) - if err != nil { - return stats, err - } - - return stats, nil -} - -func (h *mesosContainerHandler) GetCgroupPath(resource string) (string, error) { - path, ok := h.cgroupPaths[resource] - if !ok { - return "", fmt.Errorf("could not find path for resource %q for container %q", resource, h.name) - } - return path, nil -} - -func (h *mesosContainerHandler) GetContainerLabels() map[string]string { - return h.labels -} - -func (h *mesosContainerHandler) GetContainerIPAddress() string { - // the IP address for the mesos container corresponds to the system ip address. - return "127.0.0.1" -} - -func (h *mesosContainerHandler) ListContainers(listType container.ListType) ([]info.ContainerReference, error) { - return common.ListContainers(h.name, h.cgroupPaths, listType) -} - -func (h *mesosContainerHandler) ListProcesses(listType container.ListType) ([]int, error) { - return h.libcontainerHandler.GetProcesses() -} - -func (h *mesosContainerHandler) Exists() bool { - return common.CgroupExists(h.cgroupPaths) -} - -func (h *mesosContainerHandler) Type() container.ContainerType { - return container.ContainerTypeMesos -} diff --git a/plugins/inputs/cadvisor/mesos/handler_test.go b/plugins/inputs/cadvisor/mesos/handler_test.go deleted file mode 100644 index e84f1c321b..0000000000 --- a/plugins/inputs/cadvisor/mesos/handler_test.go +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2018 Google Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build linux -// +build linux - -package mesos - -import ( - "fmt" - "testing" - - "github.com/google/cadvisor/container" - "github.com/google/cadvisor/fs" - info "github.com/google/cadvisor/info/v1" - mesos "github.com/mesos/mesos-go/api/v1/lib" - "github.com/stretchr/testify/assert" -) - -func PopulateContainer() *mContainer { - var pid uint32 = 123 - cntr := &mContainer{ - ContainerStatus: &mesos.ContainerStatus{ExecutorPID: &pid}, - } - return cntr -} - -func TestContainerReference(t *testing.T) { - as := assert.New(t) - type testCase struct { - client mesosAgentClient - name string - machineInfoFactory info.MachineInfoFactory - fsInfo fs.FsInfo - cgroupSubsystems map[string]string - inHostNamespace bool - metadataEnvAllowList []string - includedMetrics container.MetricSet - - hasErr bool - errContains string - checkReference *info.ContainerReference - } - for _, ts := range []testCase{ - { - fakeMesosAgentClient(nil, fmt.Errorf("no client returned")), - "/mesos/04e20821-67d3-4bf7-96b4-7d4495f50b28", - nil, - nil, - nil, - false, - []string{}, - nil, - - true, - "no client returned", - nil, - }, - { - fakeMesosAgentClient(nil, nil), - "/mesos/04e20821-67d3-4bf7-96b4-7d4495f50b28", - nil, - nil, - nil, - false, - []string{}, - nil, - - true, - "can't locate container 04e20821-67d3-4bf7-96b4-7d4495f50b28", - nil, - }, - { - fakeMesosAgentClient(map[string]*containerInfo{"04e20821-67d3-4bf7-96b4-7d4495f50b28": {cntr: PopulateContainer()}}, nil), - "/mesos/04e20821-67d3-4bf7-96b4-7d4495f50b28", - nil, - nil, - nil, - false, - []string{}, - nil, - - false, - "", - &info.ContainerReference{ - Id: "04e20821-67d3-4bf7-96b4-7d4495f50b28", - Name: "/mesos/04e20821-67d3-4bf7-96b4-7d4495f50b28", - Aliases: []string{"04e20821-67d3-4bf7-96b4-7d4495f50b28", "/mesos/04e20821-67d3-4bf7-96b4-7d4495f50b28"}, - Namespace: MesosNamespace, - }, - }, - } { - handler, err := newMesosContainerHandler(ts.name, ts.cgroupSubsystems, ts.machineInfoFactory, ts.fsInfo, ts.includedMetrics, ts.inHostNamespace, ts.metadataEnvAllowList, ts.client) - if ts.hasErr { - as.NotNil(err) - if ts.errContains != "" { - as.Contains(err.Error(), ts.errContains) - } - } - if ts.checkReference != nil { - cr, err := handler.ContainerReference() - as.Nil(err) - as.Equal(*ts.checkReference, cr) - } - } -} diff --git a/plugins/inputs/cadvisor/mesos/mesos_agent.go b/plugins/inputs/cadvisor/mesos/mesos_agent.go deleted file mode 100644 index 0d3b4b32d8..0000000000 --- a/plugins/inputs/cadvisor/mesos/mesos_agent.go +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright 2018 Google Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build linux -// +build linux - -package mesos - -import ( - "fmt" - - mesos "github.com/mesos/mesos-go/api/v1/lib" - "github.com/mesos/mesos-go/api/v1/lib/agent" -) - -const ( - cpus = "cpus" - schedulerSLA = "scheduler_sla" - framework = "framework" - source = "source" - revocable = "revocable" - nonRevocable = "non_revocable" -) - -type mContainers *agent.Response_GetContainers -type mContainer = agent.Response_GetContainers_Container - -type ( - state struct { - st *agent.Response_GetState - } -) - -// GetFramework finds a framework with the given id and returns nil if not found. Note that -// this is different from the framework name. -func (s *state) GetFramework(id string) (*mesos.FrameworkInfo, error) { - for _, fw := range s.st.GetFrameworks.Frameworks { - if fw.FrameworkInfo.ID.Value == id { - return &fw.FrameworkInfo, nil - } - } - return nil, fmt.Errorf("unable to find framework id %s", id) -} - -// GetExecutor finds an executor with the given ID and returns nil if not found. Note that -// this is different from the executor name. -func (s *state) GetExecutor(id string) (*mesos.ExecutorInfo, error) { - for _, exec := range s.st.GetExecutors.Executors { - if exec.ExecutorInfo.ExecutorID.Value == id { - return &exec.ExecutorInfo, nil - } - } - return nil, fmt.Errorf("unable to find executor with id %s", id) -} - -// GetTask returns a task launched by given executor. -func (s *state) GetTask(exID string) (*mesos.Task, error) { - // Check if task is in Launched Tasks list - for _, t := range s.st.GetTasks.LaunchedTasks { - if s.isMatchingTask(&t, exID) { - return &t, nil - } - } - - // Check if task is in Queued Tasks list - for _, t := range s.st.GetTasks.QueuedTasks { - if s.isMatchingTask(&t, exID) { - return &t, nil - } - } - return nil, fmt.Errorf("unable to find task matching executor id %s", exID) -} - -func (s *state) isMatchingTask(t *mesos.Task, exID string) bool { - // MESOS-9111: For tasks launched through mesos command/default executor, the - // executorID(which is same as the taskID) field is not filled in the TaskInfo object. - // The workaround is compare with taskID field if executorID is empty - if t.ExecutorID != nil { - if t.ExecutorID.Value == exID { - return true - } - } else { - if t.TaskID.Value == exID { - return true - } - } - - return false -} - -func (s *state) fetchLabelsFromTask(exID string, labels map[string]string) error { - t, err := s.GetTask(exID) - if err != nil { - return err - } - - // Identify revocability. Can be removed once we have a proper label - for _, resource := range t.Resources { - if resource.Name == cpus { - if resource.Revocable != nil { - labels[schedulerSLA] = revocable - } else { - labels[schedulerSLA] = nonRevocable - } - break - } - } - - if t.Labels != nil { - for _, l := range t.Labels.Labels { - labels[l.Key] = *l.Value - } - } - - return nil -} - -func (s *state) FetchLabels(fwID string, exID string) (map[string]string, error) { - labels := make(map[string]string) - - // Look for the framework which launched the container. - fw, err := s.GetFramework(fwID) - if err != nil { - return labels, fmt.Errorf("framework ID %q not found: %v", fwID, err) - } - labels[framework] = fw.Name - - // Get the executor info of the container which contains all the task info. - exec, err := s.GetExecutor(exID) - if err != nil { - return labels, fmt.Errorf("executor ID %q not found: %v", exID, err) - } - - labels[source] = exec.GetSource() - - err = s.fetchLabelsFromTask(exID, labels) - if err != nil { - return labels, fmt.Errorf("failed to fetch labels from task with executor ID %s", exID) - } - - return labels, nil -} diff --git a/plugins/inputs/cadvisor/mesos/mesos_agent_test.go b/plugins/inputs/cadvisor/mesos/mesos_agent_test.go deleted file mode 100644 index 3f0d71222c..0000000000 --- a/plugins/inputs/cadvisor/mesos/mesos_agent_test.go +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright 2018 Google Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build linux -// +build linux - -package mesos - -import ( - "fmt" - "testing" - - mesos "github.com/mesos/mesos-go/api/v1/lib" - "github.com/mesos/mesos-go/api/v1/lib/agent" - "github.com/stretchr/testify/assert" -) - -func PopulateFrameworks(fwID string) *agent.Response_GetFrameworks { - fws := &agent.Response_GetFrameworks{} - fws.Frameworks = make([]agent.Response_GetFrameworks_Framework, 1) - fw := &agent.Response_GetFrameworks_Framework{} - fw.FrameworkInfo = mesos.FrameworkInfo{ - ID: &mesos.FrameworkID{Value: fwID}, - Name: "TestFramework", - } - fws.Frameworks[0] = *fw - return fws -} - -func PopulateExecutors(exID string) *agent.Response_GetExecutors { - execs := &agent.Response_GetExecutors{} - execs.Executors = make([]agent.Response_GetExecutors_Executor, 1) - exec := &agent.Response_GetExecutors_Executor{} - source := "source1" - exec.ExecutorInfo = mesos.ExecutorInfo{ - ExecutorID: mesos.ExecutorID{Value: exID}, - Source: &source, - } - execs.Executors[0] = *exec - return execs -} - -func PopulateTasks(taskID string, exID string) *agent.Response_GetTasks { - tasks := &agent.Response_GetTasks{} - tasks.LaunchedTasks = make([]mesos.Task, 1) - - task := mesos.Task{ - TaskID: mesos.TaskID{Value: taskID}, - } - if len(exID) > 0 { - task.ExecutorID = &mesos.ExecutorID{Value: exID} - } - - task.Resources = make([]mesos.Resource, 1) - resource := mesos.Resource{ - Name: cpus, - Revocable: nil, - } - task.Resources[0] = resource - - task.Labels = &mesos.Labels{ - Labels: make([]mesos.Label, 1), - } - labelValue := "value1" - label := mesos.Label{ - Key: "key1", - Value: &labelValue, - } - task.Labels.Labels[0] = label - - tasks.LaunchedTasks[0] = task - return tasks -} - -func TestFetchLabels(t *testing.T) { - type testCase struct { - frameworkID string - executorID string - agentState *agent.Response_GetState - expectedError error - expectedLabels map[string]string - } - - for _, ts := range []testCase{ - { - frameworkID: "fw-id1", - executorID: "exec-id1", - agentState: &agent.Response_GetState{ - GetFrameworks: PopulateFrameworks("fw-id1"), - GetExecutors: PopulateExecutors("exec-id1"), - GetTasks: PopulateTasks("task-id1", "exec-id1"), - }, - expectedError: nil, - expectedLabels: map[string]string{ - framework: "TestFramework", - source: "source1", - schedulerSLA: nonRevocable, - "key1": "value1", - }, - }, - { - frameworkID: "fw-id1", - executorID: "task-id1", - agentState: &agent.Response_GetState{ - GetFrameworks: PopulateFrameworks("fw-id1"), - GetExecutors: PopulateExecutors("task-id1"), - GetTasks: PopulateTasks("task-id1", ""), - }, - expectedError: nil, - expectedLabels: map[string]string{ - framework: "TestFramework", - source: "source1", - schedulerSLA: nonRevocable, - "key1": "value1", - }, - }, - { - frameworkID: "fw-id2", - executorID: "exec-id1", - agentState: &agent.Response_GetState{ - GetFrameworks: PopulateFrameworks("fw-id1"), - GetExecutors: PopulateExecutors("exec-id1"), - GetTasks: PopulateTasks("task-id1", "exec-id1"), - }, - expectedError: fmt.Errorf("framework ID \"fw-id2\" not found: unable to find framework id fw-id2"), - expectedLabels: map[string]string{}, - }, - } { - - var s state - s.st = ts.agentState - - actualLabels, err := s.FetchLabels(ts.frameworkID, ts.executorID) - if ts.expectedError == nil { - assert.Nil(t, err) - } else { - assert.Equal(t, ts.expectedError.Error(), err.Error()) - } - assert.Equal(t, ts.expectedLabels, actualLabels) - } -} diff --git a/plugins/inputs/cadvisor/mesos/plugin.go b/plugins/inputs/cadvisor/mesos/plugin.go deleted file mode 100644 index 6292f63860..0000000000 --- a/plugins/inputs/cadvisor/mesos/plugin.go +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2019 Google Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build linux -// +build linux - -package mesos - -import ( - "github.com/google/cadvisor/container" - "github.com/google/cadvisor/fs" - info "github.com/google/cadvisor/info/v1" - "github.com/google/cadvisor/watcher" -) - -// NewPlugin returns an implementation of container.Plugin suitable for passing to container.RegisterPlugin() -func NewPlugin() container.Plugin { - return &plugin{} -} - -type plugin struct{} - -func (p *plugin) InitializeFSContext(context *fs.Context) error { - return nil -} - -func (p *plugin) Register(factory info.MachineInfoFactory, fsInfo fs.FsInfo, includedMetrics container.MetricSet) (watcher.ContainerWatcher, error) { - err := Register(factory, fsInfo, includedMetrics) - return nil, err -} diff --git a/plugins/inputs/k8sapiserver/k8sapiserver.go b/plugins/inputs/k8sapiserver/k8sapiserver.go deleted file mode 100644 index 6cc1cfe813..0000000000 --- a/plugins/inputs/k8sapiserver/k8sapiserver.go +++ /dev/null @@ -1,198 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package k8sapiserver - -import ( - "context" - "errors" - "log" - "os" - "strconv" - "time" - - "github.com/influxdata/telegraf" - "github.com/influxdata/telegraf/plugins/inputs" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/kubernetes" - "k8s.io/client-go/kubernetes/scheme" - v1core "k8s.io/client-go/kubernetes/typed/core/v1" - "k8s.io/client-go/tools/leaderelection" - "k8s.io/client-go/tools/leaderelection/resourcelock" - "k8s.io/client-go/tools/record" - "k8s.io/klog/v2" - - "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" - "github.com/aws/amazon-cloudwatch-agent/internal/k8sCommon/k8sclient" -) - -const ( - lockName = "cwagent-clusterleader" -) - -type K8sAPIServer struct { - NodeName string `toml:"node_name"` - - cancel context.CancelFunc - leading bool -} - -var sampleConfig = ` -` - -func init() { - inputs.Add("k8sapiserver", func() telegraf.Input { - return &K8sAPIServer{} - }) -} - -// SampleConfig returns a sample config -func (k *K8sAPIServer) SampleConfig() string { - return sampleConfig -} - -// Description returns the description of this plugin -func (k *K8sAPIServer) Description() string { - return "Calculate cluster level metrics from the k8s api server" -} - -func (k *K8sAPIServer) Gather(acc telegraf.Accumulator) error { - if k.leading { - log.Printf("D! collect data from K8s API Server...") - timestamp := strconv.FormatInt(time.Now().UnixNano()/1e6, 10) - client := k8sclient.Get() - acc.AddFields("k8sapiserver", - map[string]interface{}{ - "cluster_failed_node_count": client.Node.ClusterFailedNodeCount(), - "cluster_node_count": client.Node.ClusterNodeCount(), - }, - map[string]string{ - containerinsightscommon.MetricType: containerinsightscommon.TypeCluster, - "Timestamp": timestamp, - }) - for service, podNum := range client.Ep.ServiceToPodNum() { - acc.AddFields("k8sapiserver", - map[string]interface{}{ - "service_number_of_running_pods": podNum, - }, - map[string]string{ - containerinsightscommon.MetricType: containerinsightscommon.TypeClusterService, - "Timestamp": timestamp, - containerinsightscommon.TypeService: service.ServiceName, - containerinsightscommon.K8sNamespace: service.Namespace, - }) - } - log.Printf("I! number of namespace to running pod num %v", client.Pod.NamespaceToRunningPodNum()) - for namespace, podNum := range client.Pod.NamespaceToRunningPodNum() { - acc.AddFields("k8sapiserver", - map[string]interface{}{ - "namespace_number_of_running_pods": podNum, - }, - map[string]string{ - containerinsightscommon.MetricType: containerinsightscommon.TypeClusterNamespace, - "Timestamp": timestamp, - containerinsightscommon.K8sNamespace: namespace, - }) - } - } - return nil -} - -func (k *K8sAPIServer) Start(telegraf.Accumulator) error { - var ctx context.Context - ctx, k.cancel = context.WithCancel(context.Background()) - - lockNamespace := os.Getenv("K8S_NAMESPACE") - if lockNamespace == "" { - log.Printf("E! Missing environment variable K8S_NAMESPACE which is required to create lock. Please check your YAML config.") - return errors.New("missing environment variable K8S_NAMESPACE") - } - - configMapInterface := k8sclient.Get().ClientSet.CoreV1().ConfigMaps(lockNamespace) - opts := metav1.CreateOptions{} - if configMap, err := configMapInterface.Get(ctx, lockName, metav1.GetOptions{}); configMap == nil || err != nil { - log.Printf("I! Cannot get the leader config map: %v, try to create the config map...", err) - configMap, err = configMapInterface.Create(ctx, &v1.ConfigMap{ObjectMeta: metav1.ObjectMeta{ - Namespace: lockNamespace, - Name: lockName, - }, - }, - opts) - log.Printf("I! configMap: %v, err: %v", configMap, err) - } - - lock, err := resourcelock.New( - resourcelock.ConfigMapsLeasesResourceLock, - lockNamespace, lockName, - k8sclient.Get().ClientSet.CoreV1(), - k8sclient.Get().ClientSet.CoordinationV1(), - resourcelock.ResourceLockConfig{ - Identity: k.NodeName, - EventRecorder: createRecorder(k8sclient.Get().ClientSet, lockName, lockNamespace), - }) - if err != nil { - log.Printf("E! Failed to create resource lock: %v", err) - return err - } - - go k.startLeaderElection(ctx, lock) - - return nil -} - -func (k *K8sAPIServer) startLeaderElection(ctx context.Context, lock resourcelock.Interface) { - - for { - leaderelection.RunOrDie(ctx, leaderelection.LeaderElectionConfig{ - Lock: lock, - // IMPORTANT: you MUST ensure that any code you have that - // is protected by the lease must terminate **before** - // you call cancel. Otherwise, you could have a background - // loop still running and another process could - // get elected before your background loop finished, violating - // the stated goal of the lease. - LeaseDuration: 60 * time.Second, - RenewDeadline: 15 * time.Second, - RetryPeriod: 5 * time.Second, - Callbacks: leaderelection.LeaderCallbacks{ - OnStartedLeading: func(ctx context.Context) { - log.Printf("I! k8sapiserver OnStartedLeading: %s", k.NodeName) - // we're notified when we start - k.leading = true - }, - OnStoppedLeading: func() { - log.Printf("I! k8sapiserver OnStoppedLeading: %s", k.NodeName) - // we can do cleanup here, or after the RunOrDie method returns - k.leading = false - //node and pod are only used for cluster level metrics, endpoint is used for decorator too. - k8sclient.Get().Node.Shutdown() - k8sclient.Get().Pod.Shutdown() - }, - OnNewLeader: func(identity string) { - log.Printf("I! k8sapiserver Switch New Leader: %s", identity) - }, - }, - }) - - select { - case <-ctx.Done(): //when leader election ends, the channel ctx.Done() will be closed - log.Printf("I! k8sapiserver shutdown Leader Election: %s", k.NodeName) - return - default: - } - } -} - -func (k *K8sAPIServer) Stop() { - if k.cancel != nil { - k.cancel() - } -} - -func createRecorder(clientSet kubernetes.Interface, name, namespace string) record.EventRecorder { - eventBroadcaster := record.NewBroadcaster() - eventBroadcaster.StartLogging(klog.Infof) - eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: v1core.New(clientSet.CoreV1().RESTClient()).Events(namespace)}) - return eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: name}) -} diff --git a/plugins/inputs/k8sapiserver/k8sapiserver_test.go b/plugins/inputs/k8sapiserver/k8sapiserver_test.go deleted file mode 100644 index 039ca144a7..0000000000 --- a/plugins/inputs/k8sapiserver/k8sapiserver_test.go +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: MIT - -package k8sapiserver - -import ( - "log" - "os" - "testing" - - "github.com/influxdata/telegraf/testutil" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - - "github.com/aws/amazon-cloudwatch-agent/internal/containerinsightscommon" - "github.com/aws/amazon-cloudwatch-agent/internal/k8sCommon/k8sclient" -) - -var mockClient = new(MockClient) - -var mockK8sClient = &k8sclient.K8sClient{ - Pod: mockClient, - Node: mockClient, - Ep: mockClient, -} - -func mockGet() *k8sclient.K8sClient { - return mockK8sClient -} - -type MockClient struct { - k8sclient.PodClient - k8sclient.NodeClient - k8sclient.EpClient - - mock.Mock -} - -// k8sclient.PodClient -func (client *MockClient) NamespaceToRunningPodNum() map[string]int { - args := client.Called() - return args.Get(0).(map[string]int) -} - -// k8sclient.NodeClient -func (client *MockClient) ClusterFailedNodeCount() int { - args := client.Called() - return args.Get(0).(int) -} - -func (client *MockClient) ClusterNodeCount() int { - args := client.Called() - return args.Get(0).(int) -} - -// k8sclient.EpClient -func (client *MockClient) ServiceToPodNum() map[k8sclient.Service]int { - args := client.Called() - return args.Get(0).(map[k8sclient.Service]int) -} - -func (client *MockClient) Init() { -} - -func (client *MockClient) Shutdown() { -} - -func TestK8sAPIServer_Gather(t *testing.T) { - hostName, err := os.Hostname() - assert.NoError(t, err) - plugin := &K8sAPIServer{ - NodeName: hostName, - leading: true, - } - - k8sclient.Get = mockGet - - mockClient.On("NamespaceToRunningPodNum").Return(map[string]int{"default": 2}) - mockClient.On("ClusterFailedNodeCount").Return(1) - mockClient.On("ClusterNodeCount").Return(1) - mockClient.On("ServiceToPodNum").Return(map[k8sclient.Service]int{k8sclient.NewService("service1", "kube-system"): 1, k8sclient.NewService("service2", "kube-system"): 1}) - - var acc testutil.Accumulator - - err = plugin.Gather(&acc) - assert.NoError(t, err) - - /* - tags: map[Timestamp:1557291396709 Type:Cluster], fields: map[cluster_failed_node_count:1 cluster_node_count:1], - tags: map[Service:service2 Timestamp:1557291396709 Type:ClusterService], fields: map[service_number_of_running_pods:1], - tags: map[Service:service1 Timestamp:1557291396709 Type:ClusterService], fields: map[service_number_of_running_pods:1], - tags: map[Namespace:default Timestamp:1557291396709 Type:ClusterNamespace], fields: map[namespace_number_of_running_pods:2], - */ - for _, metric := range acc.Metrics { - log.Printf("measurement: %v, tags: %v, fields: %v, time: %v\n", metric.Measurement, metric.Tags, metric.Fields, metric.Time) - if metricType := metric.Tags[containerinsightscommon.MetricType]; metricType == containerinsightscommon.TypeCluster { - assert.Equal(t, map[string]interface{}{"cluster_failed_node_count": 1, "cluster_node_count": 1}, metric.Fields) - } else if metricType == containerinsightscommon.TypeClusterService { - assert.Equal(t, map[string]interface{}{"service_number_of_running_pods": 1}, metric.Fields) - if serviceTag := metric.Tags[containerinsightscommon.TypeService]; serviceTag != "service1" && serviceTag != "service2" { - assert.Fail(t, "Expect to see a tag named as Service") - } - if namespaceTag := metric.Tags[containerinsightscommon.K8sNamespace]; namespaceTag != "kube-system" { - assert.Fail(t, "Expect to see a tag named as Namespace") - } - } else if metricType == containerinsightscommon.TypeClusterNamespace { - assert.Equal(t, map[string]interface{}{"namespace_number_of_running_pods": 2}, metric.Fields) - assert.Equal(t, "default", metric.Tags[containerinsightscommon.K8sNamespace]) - } else { - assert.Fail(t, "Unexpected metric type: "+metricType) - } - } - -} diff --git a/plugins/plugins.go b/plugins/plugins.go index bdf080a859..897cbef921 100644 --- a/plugins/plugins.go +++ b/plugins/plugins.go @@ -9,8 +9,6 @@ import ( _ "github.com/aws/amazon-cloudwatch-agent/plugins/processors/k8sdecorator" // Enabled cloudwatch-agent input plugins - _ "github.com/aws/amazon-cloudwatch-agent/plugins/inputs/cadvisor" - _ "github.com/aws/amazon-cloudwatch-agent/plugins/inputs/k8sapiserver" _ "github.com/aws/amazon-cloudwatch-agent/plugins/inputs/logfile" _ "github.com/aws/amazon-cloudwatch-agent/plugins/inputs/prometheus" _ "github.com/aws/amazon-cloudwatch-agent/plugins/inputs/statsd" diff --git a/translator/tocwconfig/sampleConfig/advanced_config_darwin.yaml b/translator/tocwconfig/sampleConfig/advanced_config_darwin.yaml index 2ac4fdc437..7d18a9d5cd 100644 --- a/translator/tocwconfig/sampleConfig/advanced_config_darwin.yaml +++ b/translator/tocwconfig/sampleConfig/advanced_config_darwin.yaml @@ -35,21 +35,27 @@ receivers: telegraf_cpu: collection_interval: 1m0s initial_delay: 1s + timeout: 0s telegraf_disk: collection_interval: 1m0s initial_delay: 1s + timeout: 0s telegraf_diskio: collection_interval: 1m0s initial_delay: 1s + timeout: 0s telegraf_mem: collection_interval: 1m0s initial_delay: 1s + timeout: 0s telegraf_netstat: collection_interval: 1m0s initial_delay: 1s + timeout: 0s telegraf_swap: collection_interval: 1m0s initial_delay: 1s + timeout: 0s service: extensions: [] pipelines: @@ -88,7 +94,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/advanced_config_linux.yaml b/translator/tocwconfig/sampleConfig/advanced_config_linux.yaml index d034fed780..d611afb50f 100644 --- a/translator/tocwconfig/sampleConfig/advanced_config_linux.yaml +++ b/translator/tocwconfig/sampleConfig/advanced_config_linux.yaml @@ -26,36 +26,44 @@ processors: ec2_instance_tag_keys: - AutoScalingGroupName ec2_metadata_tags: - - ImageId - InstanceId - InstanceType + - ImageId refresh_interval_seconds: 0s imds_retries: 1 receivers: telegraf_cpu: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_disk: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_diskio: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_ethtool: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_mem: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_netstat: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_nvidia_smi: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_swap: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -96,7 +104,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/advanced_config_windows.yaml b/translator/tocwconfig/sampleConfig/advanced_config_windows.yaml index 71546509fb..2226ca01c1 100644 --- a/translator/tocwconfig/sampleConfig/advanced_config_windows.yaml +++ b/translator/tocwconfig/sampleConfig/advanced_config_windows.yaml @@ -23,31 +23,38 @@ receivers: telegraf_win_perf_counters/1492679118: alias_name : Memory collection_interval: 1s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/2039663244: alias_name : TCPv6 collection_interval: 1s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/2073218482: alias_name : TCPv4 collection_interval: 1s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/3446270237: alias_name : PhysicalDisk collection_interval: 1s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/3610923661: alias_name : Paging File collection_interval: 1s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/3762679655: alias_name : Processor collection_interval: 1s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/4283769065: alias_name : LogicalDisk collection_interval: 1s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -80,7 +87,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/base_container_insights_config.yaml b/translator/tocwconfig/sampleConfig/base_container_insights_config.yaml index ddca40b22e..2384ab5cee 100644 --- a/translator/tocwconfig/sampleConfig/base_container_insights_config.yaml +++ b/translator/tocwconfig/sampleConfig/base_container_insights_config.yaml @@ -122,10 +122,14 @@ exporters: extensions: {} processors: batch/emf_logs: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 5s batch/containerinsights: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 5s @@ -197,8 +201,8 @@ service: processors: - batch/emf_logs receivers: - - udplog/emf_logs - tcplog/emf_logs + - udplog/emf_logs metrics/containerinsights: exporters: - awsemf/containerinsights @@ -222,7 +226,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] \ No newline at end of file diff --git a/translator/tocwconfig/sampleConfig/basic_config_linux.yaml b/translator/tocwconfig/sampleConfig/basic_config_linux.yaml index b51c26ecce..676f41c6ad 100644 --- a/translator/tocwconfig/sampleConfig/basic_config_linux.yaml +++ b/translator/tocwconfig/sampleConfig/basic_config_linux.yaml @@ -23,9 +23,11 @@ receivers: telegraf_disk: collection_interval: 1m0s initial_delay: "1s" + timeout: 0s telegraf_mem: collection_interval: 1m0s initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -53,7 +55,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/basic_config_windows.yaml b/translator/tocwconfig/sampleConfig/basic_config_windows.yaml index d82388aaa6..851790b6e4 100644 --- a/translator/tocwconfig/sampleConfig/basic_config_windows.yaml +++ b/translator/tocwconfig/sampleConfig/basic_config_windows.yaml @@ -24,10 +24,12 @@ receivers: alias_name : Memory collection_interval: 1m0s initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/4283769065: alias_name : LogicalDisk collection_interval: 1m0s initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -55,7 +57,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/collectd_config_linux.yaml b/translator/tocwconfig/sampleConfig/collectd_config_linux.yaml index 5f70d9fc1e..420f130b3a 100644 --- a/translator/tocwconfig/sampleConfig/collectd_config_linux.yaml +++ b/translator/tocwconfig/sampleConfig/collectd_config_linux.yaml @@ -14,6 +14,7 @@ receivers: telegraf_socket_listener: collection_interval: 1m0s initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -39,7 +40,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/complete_darwin_config.yaml b/translator/tocwconfig/sampleConfig/complete_darwin_config.yaml index 6027b45f47..b69cb4a775 100644 --- a/translator/tocwconfig/sampleConfig/complete_darwin_config.yaml +++ b/translator/tocwconfig/sampleConfig/complete_darwin_config.yaml @@ -69,10 +69,14 @@ exporters: extensions: {} processors: batch/emf_logs: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 1m0s batch/xray: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 200ms @@ -121,10 +125,13 @@ receivers: role_arn: trace_role_arn_value_test tls: ca_file: "" + ca_pem: "[REDACTED]" cert_file: "" + cert_pem: "[REDACTED]" insecure: true insecure_skip_verify: false key_file: "" + key_pem: "[REDACTED]" max_version: "" min_version: "" reload_interval: 0s @@ -149,41 +156,53 @@ receivers: endpoint: 0.0.0.0:2222 include_metadata: false max_request_body_size: 0 + response_headers: {} tls: null telegraf_cpu: collection_interval: 10s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_disk: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_diskio: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_mem: collection_interval: 1s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_net: collection_interval: 10s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_netstat: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_processes: collection_interval: 10s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_procstat/1917393364: alias_name: /var/run/example1.pid collection_interval: 10s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_socket_listener: collection_interval: 10s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_statsd: collection_interval: 10s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_swap: collection_interval: 10s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s udplog/emf_logs: attributes: {} encoding: utf-8 @@ -219,15 +238,15 @@ service: - ec2tagger - transform receivers: + - telegraf_procstat/1917393364 + - telegraf_mem - telegraf_cpu - telegraf_disk - - telegraf_mem - - telegraf_netstat - - telegraf_processes - - telegraf_procstat/1917393364 - - telegraf_socket_listener - - telegraf_statsd - telegraf_swap + - telegraf_statsd + - telegraf_socket_listener + - telegraf_processes + - telegraf_netstat metrics/hostDeltaMetrics: exporters: - awscloudwatch @@ -263,7 +282,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/complete_linux_config.yaml b/translator/tocwconfig/sampleConfig/complete_linux_config.yaml index 383517955f..24b7aa6373 100644 --- a/translator/tocwconfig/sampleConfig/complete_linux_config.yaml +++ b/translator/tocwconfig/sampleConfig/complete_linux_config.yaml @@ -72,10 +72,14 @@ exporters: extensions: {} processors: batch/emf_logs: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 1m0s batch/xray: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 200ms @@ -124,10 +128,13 @@ receivers: role_arn: trace_role_arn_value_test tls: ca_file: "" + ca_pem: "[REDACTED]" cert_file: "" + cert_pem: "[REDACTED]" insecure: true insecure_skip_verify: false key_file: "" + key_pem: "[REDACTED]" max_version: "" min_version: "" reload_interval: 0s @@ -152,41 +159,53 @@ receivers: endpoint: 0.0.0.0:2222 include_metadata: false max_request_body_size: 0 + response_headers: {} tls: null telegraf_cpu: collection_interval: 10s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_disk: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_diskio: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_mem: collection_interval: 1s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_net: collection_interval: 10s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_netstat: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_processes: collection_interval: 10s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_procstat/1917393364: alias_name: /var/run/example1.pid collection_interval: 10s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_socket_listener: collection_interval: 10s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_statsd: collection_interval: 10s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_swap: collection_interval: 10s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s udplog/emf_logs: attributes: {} encoding: utf-8 @@ -222,15 +241,15 @@ service: - ec2tagger - transform receivers: + - telegraf_procstat/1917393364 + - telegraf_mem - telegraf_cpu - telegraf_disk - - telegraf_mem - - telegraf_netstat - - telegraf_processes - - telegraf_procstat/1917393364 - - telegraf_socket_listener - - telegraf_statsd - telegraf_swap + - telegraf_statsd + - telegraf_socket_listener + - telegraf_processes + - telegraf_netstat metrics/hostDeltaMetrics: exporters: - awscloudwatch @@ -266,7 +285,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/complete_windows_config.yaml b/translator/tocwconfig/sampleConfig/complete_windows_config.yaml index fe7c3dac28..83f3e153e7 100644 --- a/translator/tocwconfig/sampleConfig/complete_windows_config.yaml +++ b/translator/tocwconfig/sampleConfig/complete_windows_config.yaml @@ -69,10 +69,14 @@ exporters: extensions: {} processors: batch/emf_logs: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 1m0s batch/xray: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 200ms @@ -108,10 +112,13 @@ receivers: role_arn: trace_role_arn_value_test tls: ca_file: "" + ca_pem: "[REDACTED]" cert_file: "" + cert_pem: "[REDACTED]" insecure: true insecure_skip_verify: false key_file: "" + key_pem: "[REDACTED]" max_version: "" min_version: "" reload_interval: 0s @@ -136,41 +143,51 @@ receivers: endpoint: 0.0.0.0:2222 include_metadata: false max_request_body_size: 0 + response_headers: {} tls: null telegraf_nvidia_smi: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_procstat/1340600742: alias_name: agent collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_statsd: collection_interval: 10s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/1063858558: alias_name: Network Interface collection_interval: 5s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/1492679118: alias_name: Memory collection_interval: 5s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/2402387132: alias_name: System collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/3081249416: alias_name: customizedObjectName collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/3762679655: alias_name: Processor collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/4283769065: alias_name: LogicalDisk collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s udplog/emf_logs: attributes: {} encoding: utf-8 @@ -240,7 +257,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/config_with_env.yaml b/translator/tocwconfig/sampleConfig/config_with_env.yaml index cc1aab5b1a..227fcbfac4 100644 --- a/translator/tocwconfig/sampleConfig/config_with_env.yaml +++ b/translator/tocwconfig/sampleConfig/config_with_env.yaml @@ -32,6 +32,8 @@ exporters: extensions: {} processors: batch/emf_logs: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 5s @@ -97,7 +99,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/delta_config_linux.yaml b/translator/tocwconfig/sampleConfig/delta_config_linux.yaml index c158ab23ac..9516f2ad5e 100644 --- a/translator/tocwconfig/sampleConfig/delta_config_linux.yaml +++ b/translator/tocwconfig/sampleConfig/delta_config_linux.yaml @@ -47,7 +47,8 @@ processors: receivers: telegraf_diskio: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -76,7 +77,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/delta_net_config_linux.yaml b/translator/tocwconfig/sampleConfig/delta_net_config_linux.yaml index 0bfe03db2f..46b39e6f38 100644 --- a/translator/tocwconfig/sampleConfig/delta_net_config_linux.yaml +++ b/translator/tocwconfig/sampleConfig/delta_net_config_linux.yaml @@ -32,7 +32,8 @@ processors: receivers: telegraf_net: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -60,7 +61,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/drop_origin_linux.yaml b/translator/tocwconfig/sampleConfig/drop_origin_linux.yaml index fdaddb49b3..1049f465b4 100644 --- a/translator/tocwconfig/sampleConfig/drop_origin_linux.yaml +++ b/translator/tocwconfig/sampleConfig/drop_origin_linux.yaml @@ -37,13 +37,16 @@ processors: receivers: telegraf_cpu: collection_interval: 10s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_disk: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_nvidia_smi: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -73,7 +76,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/emf_and_kubernetes_config.yaml b/translator/tocwconfig/sampleConfig/emf_and_kubernetes_config.yaml index e271931b39..efc671621b 100644 --- a/translator/tocwconfig/sampleConfig/emf_and_kubernetes_config.yaml +++ b/translator/tocwconfig/sampleConfig/emf_and_kubernetes_config.yaml @@ -248,10 +248,14 @@ processors: operations: [ ] submatch_case: "" batch/containerinsights: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 5s batch/emf_logs: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 5s @@ -349,7 +353,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/ignore_append_dimensions.yaml b/translator/tocwconfig/sampleConfig/ignore_append_dimensions.yaml index 8739368c71..952734d325 100644 --- a/translator/tocwconfig/sampleConfig/ignore_append_dimensions.yaml +++ b/translator/tocwconfig/sampleConfig/ignore_append_dimensions.yaml @@ -19,9 +19,11 @@ receivers: telegraf_disk: collection_interval: 1m0s initial_delay: "1s" + timeout: 0s telegraf_mem: collection_interval: 1m0s initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -49,7 +51,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/invalid_input_linux.yaml b/translator/tocwconfig/sampleConfig/invalid_input_linux.yaml index a4138a74a0..caa37a5522 100644 --- a/translator/tocwconfig/sampleConfig/invalid_input_linux.yaml +++ b/translator/tocwconfig/sampleConfig/invalid_input_linux.yaml @@ -23,9 +23,11 @@ receivers: telegraf_disk: collection_interval: 1m0s initial_delay: "1s" + timeout: 0s telegraf_mem: collection_interval: 1m0s initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -53,7 +55,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/kubernetes_on_prem_config.yaml b/translator/tocwconfig/sampleConfig/kubernetes_on_prem_config.yaml index f64a4dc72e..9d9cf38de7 100644 --- a/translator/tocwconfig/sampleConfig/kubernetes_on_prem_config.yaml +++ b/translator/tocwconfig/sampleConfig/kubernetes_on_prem_config.yaml @@ -219,6 +219,8 @@ processors: operations: [ ] submatch_case: "" batch/containerinsights: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 5s @@ -275,7 +277,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/log_ecs_metric_only.yaml b/translator/tocwconfig/sampleConfig/log_ecs_metric_only.yaml index 6d362f7a8d..7fc58646b2 100644 --- a/translator/tocwconfig/sampleConfig/log_ecs_metric_only.yaml +++ b/translator/tocwconfig/sampleConfig/log_ecs_metric_only.yaml @@ -93,10 +93,14 @@ exporters: extensions: {} processors: batch/containerinsights: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 5s batch/emf_logs: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 5s @@ -193,7 +197,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/logs_and_kubernetes_config.yaml b/translator/tocwconfig/sampleConfig/logs_and_kubernetes_config.yaml index bab1b16494..13421cbf89 100644 --- a/translator/tocwconfig/sampleConfig/logs_and_kubernetes_config.yaml +++ b/translator/tocwconfig/sampleConfig/logs_and_kubernetes_config.yaml @@ -248,10 +248,14 @@ processors: operations: [ ] submatch_case: "" batch/containerinsights: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 5s batch/emf_logs: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 5s @@ -349,7 +353,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/prometheus_config_linux.yaml b/translator/tocwconfig/sampleConfig/prometheus_config_linux.yaml index b198362cd8..75b0e082e3 100644 --- a/translator/tocwconfig/sampleConfig/prometheus_config_linux.yaml +++ b/translator/tocwconfig/sampleConfig/prometheus_config_linux.yaml @@ -74,6 +74,8 @@ extensions: {} processors: batch/prometheus: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 30s @@ -82,6 +84,7 @@ receivers: telegraf_prometheus: collection_interval: 1m0s initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -108,7 +111,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/prometheus_config_windows.yaml b/translator/tocwconfig/sampleConfig/prometheus_config_windows.yaml index 463b596cb9..cf1f191a3b 100644 --- a/translator/tocwconfig/sampleConfig/prometheus_config_windows.yaml +++ b/translator/tocwconfig/sampleConfig/prometheus_config_windows.yaml @@ -57,6 +57,8 @@ extensions: {} processors: batch/prometheus: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 5s @@ -65,6 +67,7 @@ receivers: telegraf_prometheus: collection_interval: 1m0s initial_delay: "1s" + timeout: 0s service: extensions: [] @@ -93,7 +96,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/standard_config_linux.yaml b/translator/tocwconfig/sampleConfig/standard_config_linux.yaml index c769665646..42b63b6f46 100644 --- a/translator/tocwconfig/sampleConfig/standard_config_linux.yaml +++ b/translator/tocwconfig/sampleConfig/standard_config_linux.yaml @@ -33,19 +33,24 @@ processors: receivers: telegraf_cpu: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_disk: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_diskio: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_mem: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_swap: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -83,7 +88,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/standard_config_linux_with_common_config.yaml b/translator/tocwconfig/sampleConfig/standard_config_linux_with_common_config.yaml index dbdcf2ea97..ed32b9994b 100644 --- a/translator/tocwconfig/sampleConfig/standard_config_linux_with_common_config.yaml +++ b/translator/tocwconfig/sampleConfig/standard_config_linux_with_common_config.yaml @@ -38,19 +38,24 @@ processors: receivers: telegraf_cpu: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_disk: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_diskio: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_mem: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_swap: collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -88,7 +93,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/standard_config_windows.yaml b/translator/tocwconfig/sampleConfig/standard_config_windows.yaml index 236384d062..ad93d6290d 100644 --- a/translator/tocwconfig/sampleConfig/standard_config_windows.yaml +++ b/translator/tocwconfig/sampleConfig/standard_config_windows.yaml @@ -22,23 +22,28 @@ receivers: telegraf_win_perf_counters/1492679118: alias_name: Memory collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/3446270237: alias_name: PhysicalDisk collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/3610923661: alias_name: Paging File collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/3762679655: alias_name: Processor collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/4283769065: alias_name: LogicalDisk collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -69,7 +74,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/standard_config_windows_with_common_config.yaml b/translator/tocwconfig/sampleConfig/standard_config_windows_with_common_config.yaml index 79d05592be..15e01ad980 100644 --- a/translator/tocwconfig/sampleConfig/standard_config_windows_with_common_config.yaml +++ b/translator/tocwconfig/sampleConfig/standard_config_windows_with_common_config.yaml @@ -27,23 +27,28 @@ receivers: telegraf_win_perf_counters/1492679118: alias_name: Memory collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/3446270237: alias_name: PhysicalDisk collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/3610923661: alias_name: Paging File collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/3762679655: alias_name: Processor collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s telegraf_win_perf_counters/4283769065: alias_name: LogicalDisk collection_interval: 1m0s - initial_delay: 1s + initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -74,7 +79,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/statsd_config_linux.yaml b/translator/tocwconfig/sampleConfig/statsd_config_linux.yaml index d2dc954d0e..8440d99174 100644 --- a/translator/tocwconfig/sampleConfig/statsd_config_linux.yaml +++ b/translator/tocwconfig/sampleConfig/statsd_config_linux.yaml @@ -15,6 +15,7 @@ receivers: telegraf_statsd: collection_interval: 10s initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -40,7 +41,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] \ No newline at end of file diff --git a/translator/tocwconfig/sampleConfig/statsd_config_windows.yaml b/translator/tocwconfig/sampleConfig/statsd_config_windows.yaml index a1b0dd5e26..a64e21b8a7 100644 --- a/translator/tocwconfig/sampleConfig/statsd_config_windows.yaml +++ b/translator/tocwconfig/sampleConfig/statsd_config_windows.yaml @@ -14,6 +14,7 @@ receivers: telegraf_statsd: collection_interval: 10s initial_delay: "1s" + timeout: 0s service: extensions: [] pipelines: @@ -39,7 +40,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/trace_config_linux.yaml b/translator/tocwconfig/sampleConfig/trace_config_linux.yaml index 4dc94d0a3f..f4b0ede444 100644 --- a/translator/tocwconfig/sampleConfig/trace_config_linux.yaml +++ b/translator/tocwconfig/sampleConfig/trace_config_linux.yaml @@ -24,6 +24,8 @@ exporters: extensions: {} processors: batch/xray: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 200ms @@ -57,6 +59,7 @@ receivers: endpoint: 127.0.0.1:4318 include_metadata: false max_request_body_size: 0 + response_headers: {} tls: null service: extensions: [] @@ -86,7 +89,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: [] diff --git a/translator/tocwconfig/sampleConfig/trace_config_windows.yaml b/translator/tocwconfig/sampleConfig/trace_config_windows.yaml index 319499420d..14a5d01072 100644 --- a/translator/tocwconfig/sampleConfig/trace_config_windows.yaml +++ b/translator/tocwconfig/sampleConfig/trace_config_windows.yaml @@ -24,6 +24,8 @@ exporters: extensions: {} processors: batch/xray: + metadata_cardinality_limit: 1000 + metadata_keys: [] send_batch_max_size: 0 send_batch_size: 8192 timeout: 200ms @@ -57,6 +59,7 @@ receivers: endpoint: 127.0.0.1:4318 include_metadata: false max_request_body_size: 0 + response_headers: {} tls: null service: extensions: [] @@ -86,7 +89,8 @@ service: metrics: address: "" level: None - metric_readers: [] + readers: [] resource: {} traces: + processors: [] propagators: []