From cb1dbab974ab0422c7d8b46e56e8e1b4c3fb3bed Mon Sep 17 00:00:00 2001 From: Tomas Panik Date: Sun, 28 Apr 2024 12:07:34 +0200 Subject: [PATCH 01/11] Reconfiguring dependabot to do only security updates in go.mod --- .github/dependabot.yaml | 29 +++-------------------------- 1 file changed, 3 insertions(+), 26 deletions(-) diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index d54c91ed..e935480c 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -25,14 +25,15 @@ updates: - go - Skip Changelog schedule: - interval: weekly - day: sunday + interval: "daily" allow: # Allow both direct and indirect updates for all packages - dependency-type: "all" ignore: - dependency-name: "github.com/open-telemetry/opentelemetry-collector-contrib*" - dependency-name: "go.opentelemetry.io/collector*" + # Disable version updates + open-pull-requests-limit: 0 groups: minor-and-patch: applies-to: security-updates @@ -41,27 +42,3 @@ updates: update-types: - "patch" - "minor" - - package-ecosystem: gomod - directory: /src/processor/k8sattributesprocessor - labels: - - dependencies - - go - - Skip Changelog - schedule: - interval: weekly - day: sunday - ignore: - - dependency-name: "github.com/open-telemetry/opentelemetry-collector-contrib*" - - dependency-name: "go.opentelemetry.io/collector*" - - package-ecosystem: gomod - directory: /src/processor/swmetricstransformprocessor - labels: - - dependencies - - go - - Skip Changelog - schedule: - interval: weekly - day: sunday - ignore: - - dependency-name: "github.com/open-telemetry/opentelemetry-collector-contrib*" - - dependency-name: "go.opentelemetry.io/collector*" From b1499a3580254805a57d45a5c146a290fef0ecea Mon Sep 17 00:00:00 2001 From: Michal Pecenka Date: Tue, 7 May 2024 17:21:40 +0200 Subject: [PATCH 02/11] cluster version fix --- deploy/helm/metrics-collector-config.yaml | 5 +++- deploy/helm/templates/_common-config.tpl | 6 +---- ...ollector-config-map-fargate_test.yaml.snap | 8 +++---- ...etrics-collector-config-map_test.yaml.snap | 24 +++++++++---------- ...ollector-config-map-windows_test.yaml.snap | 5 +--- .../node-collector-config-map_test.yaml.snap | 20 ++++------------ 6 files changed, 26 insertions(+), 42 deletions(-) diff --git a/deploy/helm/metrics-collector-config.yaml b/deploy/helm/metrics-collector-config.yaml index cee05008..1422ac3a 100644 --- a/deploy/helm/metrics-collector-config.yaml +++ b/deploy/helm/metrics-collector-config.yaml @@ -644,6 +644,9 @@ processors: - action: aggregate_labels label_set: [git_version] aggregation_type: sum + - action: update_label + label: git_version + new_label: sw.k8s.cluster.version - include: k8s.kubernetes_build_info action: update new_name: k8s.kubernetes_build_info_temp @@ -764,7 +767,7 @@ processors: - replicaset - job_name - cronjob - - git_version + - sw.k8s.cluster.version - internal_ip - job_condition - persistentvolumeclaim diff --git a/deploy/helm/templates/_common-config.tpl b/deploy/helm/templates/_common-config.tpl index ef413788..32fc823e 100644 --- a/deploy/helm/templates/_common-config.tpl +++ b/deploy/helm/templates/_common-config.tpl @@ -444,7 +444,7 @@ groupbyattrs/all: - replicaset - job_name - cronjob - - git_version + - sw.k8s.cluster.version - internal_ip - job_condition - persistentvolumeclaim @@ -496,10 +496,6 @@ resource/metrics: value: ${CLUSTER_NAME} action: insert - - key: sw.k8s.cluster.version - from_attribute: git_version - action: insert - # k8s.node.name - key: sw.k8s.node.version from_attribute: kubelet_version diff --git a/deploy/helm/tests/__snapshot__/metrics-collector-config-map-fargate_test.yaml.snap b/deploy/helm/tests/__snapshot__/metrics-collector-config-map-fargate_test.yaml.snap index ab6d6336..380080a8 100644 --- a/deploy/helm/tests/__snapshot__/metrics-collector-config-map-fargate_test.yaml.snap +++ b/deploy/helm/tests/__snapshot__/metrics-collector-config-map-fargate_test.yaml.snap @@ -684,7 +684,7 @@ Metrics config should match snapshot when using default values: - replicaset - job_name - cronjob - - git_version + - sw.k8s.cluster.version - internal_ip - job_condition - persistentvolumeclaim @@ -1684,6 +1684,9 @@ Metrics config should match snapshot when using default values: aggregation_type: sum label_set: - git_version + - action: update_label + label: git_version + new_label: sw.k8s.cluster.version - action: update include: k8s.kubernetes_build_info new_name: k8s.kubernetes_build_info_temp @@ -1770,9 +1773,6 @@ Metrics config should match snapshot when using default values: - action: insert key: k8s.cluster.name value: ${CLUSTER_NAME} - - action: insert - from_attribute: git_version - key: sw.k8s.cluster.version - action: insert from_attribute: kubelet_version key: sw.k8s.node.version diff --git a/deploy/helm/tests/__snapshot__/metrics-collector-config-map_test.yaml.snap b/deploy/helm/tests/__snapshot__/metrics-collector-config-map_test.yaml.snap index 514c5453..40d947ba 100644 --- a/deploy/helm/tests/__snapshot__/metrics-collector-config-map_test.yaml.snap +++ b/deploy/helm/tests/__snapshot__/metrics-collector-config-map_test.yaml.snap @@ -684,7 +684,7 @@ Metrics config should match snapshot when fargate is enabled: - replicaset - job_name - cronjob - - git_version + - sw.k8s.cluster.version - internal_ip - job_condition - persistentvolumeclaim @@ -1684,6 +1684,9 @@ Metrics config should match snapshot when fargate is enabled: aggregation_type: sum label_set: - git_version + - action: update_label + label: git_version + new_label: sw.k8s.cluster.version - action: update include: k8s.kubernetes_build_info new_name: k8s.kubernetes_build_info_temp @@ -1770,9 +1773,6 @@ Metrics config should match snapshot when fargate is enabled: - action: insert key: k8s.cluster.name value: ${CLUSTER_NAME} - - action: insert - from_attribute: git_version - key: sw.k8s.cluster.version - action: insert from_attribute: kubelet_version key: sw.k8s.node.version @@ -3019,7 +3019,7 @@ Metrics config should match snapshot when using Prometheus url with extra_scrape - replicaset - job_name - cronjob - - git_version + - sw.k8s.cluster.version - internal_ip - job_condition - persistentvolumeclaim @@ -4019,6 +4019,9 @@ Metrics config should match snapshot when using Prometheus url with extra_scrape aggregation_type: sum label_set: - git_version + - action: update_label + label: git_version + new_label: sw.k8s.cluster.version - action: update include: k8s.kubernetes_build_info new_name: k8s.kubernetes_build_info_temp @@ -4105,9 +4108,6 @@ Metrics config should match snapshot when using Prometheus url with extra_scrape - action: insert key: k8s.cluster.name value: ${CLUSTER_NAME} - - action: insert - from_attribute: git_version - key: sw.k8s.cluster.version - action: insert from_attribute: kubelet_version key: sw.k8s.node.version @@ -5296,7 +5296,7 @@ Metrics config should match snapshot when using default values: - replicaset - job_name - cronjob - - git_version + - sw.k8s.cluster.version - internal_ip - job_condition - persistentvolumeclaim @@ -6296,6 +6296,9 @@ Metrics config should match snapshot when using default values: aggregation_type: sum label_set: - git_version + - action: update_label + label: git_version + new_label: sw.k8s.cluster.version - action: update include: k8s.kubernetes_build_info new_name: k8s.kubernetes_build_info_temp @@ -6382,9 +6385,6 @@ Metrics config should match snapshot when using default values: - action: insert key: k8s.cluster.name value: ${CLUSTER_NAME} - - action: insert - from_attribute: git_version - key: sw.k8s.cluster.version - action: insert from_attribute: kubelet_version key: sw.k8s.node.version diff --git a/deploy/helm/tests/__snapshot__/node-collector-config-map-windows_test.yaml.snap b/deploy/helm/tests/__snapshot__/node-collector-config-map-windows_test.yaml.snap index 7f56156b..8c617db4 100644 --- a/deploy/helm/tests/__snapshot__/node-collector-config-map-windows_test.yaml.snap +++ b/deploy/helm/tests/__snapshot__/node-collector-config-map-windows_test.yaml.snap @@ -229,7 +229,7 @@ Node collector config for windows nodes should match snapshot when using default - replicaset - job_name - cronjob - - git_version + - sw.k8s.cluster.version - internal_ip - job_condition - persistentvolumeclaim @@ -814,9 +814,6 @@ Node collector config for windows nodes should match snapshot when using default - action: insert key: k8s.cluster.name value: ${CLUSTER_NAME} - - action: insert - from_attribute: git_version - key: sw.k8s.cluster.version - action: insert from_attribute: kubelet_version key: sw.k8s.node.version diff --git a/deploy/helm/tests/__snapshot__/node-collector-config-map_test.yaml.snap b/deploy/helm/tests/__snapshot__/node-collector-config-map_test.yaml.snap index aa7bb218..eb6f1aa1 100644 --- a/deploy/helm/tests/__snapshot__/node-collector-config-map_test.yaml.snap +++ b/deploy/helm/tests/__snapshot__/node-collector-config-map_test.yaml.snap @@ -229,7 +229,7 @@ Node collector config should match snapshot when autodiscovery is disabled: - replicaset - job_name - cronjob - - git_version + - sw.k8s.cluster.version - internal_ip - job_condition - persistentvolumeclaim @@ -834,9 +834,6 @@ Node collector config should match snapshot when autodiscovery is disabled: - action: insert key: k8s.cluster.name value: ${CLUSTER_NAME} - - action: insert - from_attribute: git_version - key: sw.k8s.cluster.version - action: insert from_attribute: kubelet_version key: sw.k8s.node.version @@ -1405,7 +1402,7 @@ Node collector config should match snapshot when fargate is enabled: - replicaset - job_name - cronjob - - git_version + - sw.k8s.cluster.version - internal_ip - job_condition - persistentvolumeclaim @@ -2010,9 +2007,6 @@ Node collector config should match snapshot when fargate is enabled: - action: insert key: k8s.cluster.name value: ${CLUSTER_NAME} - - action: insert - from_attribute: git_version - key: sw.k8s.cluster.version - action: insert from_attribute: kubelet_version key: sw.k8s.node.version @@ -2550,7 +2544,7 @@ Node collector config should match snapshot when fargate is enabled and autodisc - replicaset - job_name - cronjob - - git_version + - sw.k8s.cluster.version - internal_ip - job_condition - persistentvolumeclaim @@ -3155,9 +3149,6 @@ Node collector config should match snapshot when fargate is enabled and autodisc - action: insert key: k8s.cluster.name value: ${CLUSTER_NAME} - - action: insert - from_attribute: git_version - key: sw.k8s.cluster.version - action: insert from_attribute: kubelet_version key: sw.k8s.node.version @@ -3657,7 +3648,7 @@ Node collector config should match snapshot when using default values: - replicaset - job_name - cronjob - - git_version + - sw.k8s.cluster.version - internal_ip - job_condition - persistentvolumeclaim @@ -4262,9 +4253,6 @@ Node collector config should match snapshot when using default values: - action: insert key: k8s.cluster.name value: ${CLUSTER_NAME} - - action: insert - from_attribute: git_version - key: sw.k8s.cluster.version - action: insert from_attribute: kubelet_version key: sw.k8s.node.version From a66e8f84cd04894ff9f04ff7ec2b05eda7bfa752 Mon Sep 17 00:00:00 2001 From: Michal Pecenka Date: Tue, 7 May 2024 17:38:13 +0200 Subject: [PATCH 03/11] updating changelog --- deploy/helm/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/deploy/helm/CHANGELOG.md b/deploy/helm/CHANGELOG.md index 2182e089..83b4b777 100644 --- a/deploy/helm/CHANGELOG.md +++ b/deploy/helm/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Fixed + +- Only `k8s.cluster.version` metric has attribute `sw.k8s.cluster.version` + ## [3.3.0] - 2024-04-26 ### Added From 969b34657f4240280d35beb94797c283a08072d5 Mon Sep 17 00:00:00 2001 From: Michal Pecenka Date: Thu, 9 May 2024 10:19:37 +0200 Subject: [PATCH 04/11] new collector version --- deploy/helm/CHANGELOG.md | 2 ++ deploy/helm/Chart.yaml | 2 +- .../tests/__snapshot__/logs-fargate-config-map_test.yaml.snap | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/deploy/helm/CHANGELOG.md b/deploy/helm/CHANGELOG.md index 83b4b777..26462277 100644 --- a/deploy/helm/CHANGELOG.md +++ b/deploy/helm/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +## [3.4.0-alpha.1] - 2024-05-09 + ### Fixed - Only `k8s.cluster.version` metric has attribute `sw.k8s.cluster.version` diff --git a/deploy/helm/Chart.yaml b/deploy/helm/Chart.yaml index 64bbe6c1..ec2046d5 100644 --- a/deploy/helm/Chart.yaml +++ b/deploy/helm/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: swo-k8s-collector -version: 3.3.0 +version: 3.4.0-alpha.1 appVersion: "0.10.0" description: SolarWinds Kubernetes Integration keywords: diff --git a/deploy/helm/tests/__snapshot__/logs-fargate-config-map_test.yaml.snap b/deploy/helm/tests/__snapshot__/logs-fargate-config-map_test.yaml.snap index 4a183fe1..712d7685 100644 --- a/deploy/helm/tests/__snapshot__/logs-fargate-config-map_test.yaml.snap +++ b/deploy/helm/tests/__snapshot__/logs-fargate-config-map_test.yaml.snap @@ -22,7 +22,7 @@ Fargate logging ConfigMap spec should include additional filters when they are c Match * Add sw.k8s.cluster.uid Add sw.k8s.log.type container - Add sw.k8s.agent.manifest.version "3.3.0" + Add sw.k8s.agent.manifest.version "3.4.0-alpha.1" flb_log_cw: "false" output.conf: | [OUTPUT] @@ -60,7 +60,7 @@ Fargate logging ConfigMap spec should match snapshot when Fargate logging is ena Match * Add sw.k8s.cluster.uid Add sw.k8s.log.type container - Add sw.k8s.agent.manifest.version "3.3.0" + Add sw.k8s.agent.manifest.version "3.4.0-alpha.1" flb_log_cw: "false" output.conf: | [OUTPUT] From 82f8b4edc05f735cd3283f7840f364348ecdfd1e Mon Sep 17 00:00:00 2001 From: juraj-paska Date: Tue, 14 May 2024 14:48:07 +0200 Subject: [PATCH 05/11] Updated section "Limitations" --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 899648d2..f6bdc9bc 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ Walk through Add Kubernetes wizard in [SolarWinds Observability](https://documen ## Limitations -- Supported Kubernetes version: 1.18 and higher. +- Each Kubernetes version is supported for 15 months after its initial release. See [history of Kubernetes releases](https://kubernetes.io/releases/patch-releases/#detailed-release-history-for-active-branches). For example, version 1.27 is supported until 2024-07-11. - Local Kubernetes deployments (e.q. Minikube) are not supported (although most of the functionality may be working). - Note: since Kubernetes v1.24 Docker container runtime will not be reporting pod level network metrics (`kubenet` and other network plumbing was removed from upstream as part of the dockershim removal/deprecation) - Supported architectures: Linux x86-64 (`amd64`), Linux ARM (`arm64`), Windows x86-64 (`amd64`). From 0c165d17e456698a2d2ffc00f4929edb2f58bd80 Mon Sep 17 00:00:00 2001 From: juraj-paska Date: Wed, 15 May 2024 13:12:36 +0200 Subject: [PATCH 06/11] Updated text --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f6bdc9bc..79b7a48b 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ Walk through Add Kubernetes wizard in [SolarWinds Observability](https://documen ## Limitations -- Each Kubernetes version is supported for 15 months after its initial release. See [history of Kubernetes releases](https://kubernetes.io/releases/patch-releases/#detailed-release-history-for-active-branches). For example, version 1.27 is supported until 2024-07-11. +- Each Kubernetes version is supported for 15 months after its initial release. For example, version 1.27 released on April 11, 2023 is supported until July 11, 2024. For release dates for individual Kubernetes versions, see [Patch Releases](https://kubernetes.io/releases/patch-releases/#detailed-release-history-for-active-branches) in Kubernetes documentation. - Local Kubernetes deployments (e.q. Minikube) are not supported (although most of the functionality may be working). - Note: since Kubernetes v1.24 Docker container runtime will not be reporting pod level network metrics (`kubenet` and other network plumbing was removed from upstream as part of the dockershim removal/deprecation) - Supported architectures: Linux x86-64 (`amd64`), Linux ARM (`arm64`), Windows x86-64 (`amd64`). From d8b847dd85ca6d83376eab8fd5388b0b5e627e19 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 May 2024 05:16:45 +0000 Subject: [PATCH 07/11] Bump library/golang in /build/docker Bumps library/golang from 1.22.2-nanoserver-ltsc2022 to 1.22.3-nanoserver-ltsc2022. --- updated-dependencies: - dependency-name: library/golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] (cherry picked from commit e76d3836a7db7f652e5dee140b1b86495a0a1022) --- build/docker/Dockerfile | 2 +- build/docker/Dockerfile.Windows-2022 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile index e39ed59b..98e1b3c4 100644 --- a/build/docker/Dockerfile +++ b/build/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM docker.io/library/golang:1.22.2-bookworm as base +FROM docker.io/library/golang:1.22.3-bookworm as base WORKDIR /src COPY ["./src/", "./src/"] diff --git a/build/docker/Dockerfile.Windows-2022 b/build/docker/Dockerfile.Windows-2022 index 52d37b13..8c909a33 100644 --- a/build/docker/Dockerfile.Windows-2022 +++ b/build/docker/Dockerfile.Windows-2022 @@ -1,4 +1,4 @@ -FROM docker.io/library/golang:1.22.2-nanoserver-ltsc2022@sha256:0b8935555f09ae9b1ac6d261979fec84f7aa089c38d9f5eec319ec1742173233 as base +FROM docker.io/library/golang:1.22.3-nanoserver-ltsc2022@sha256:1a7c49ea03c8ae682233d81c65bd690c7cbfa32ab4a0b1d0ff3a52aa515207d3 as base WORKDIR /src COPY ["./src/", "./src/"] From f4c7e25f483740338e4007e02893fc646e4c93cc Mon Sep 17 00:00:00 2001 From: Peter Stranak Date: Fri, 31 May 2024 15:13:49 +0200 Subject: [PATCH 08/11] Fix for large Helm index The base64 encode was too large to be used as a command line argument (cherry picked from commit e3d0e7e10739eb19b88191c3476cac1958202250) --- .github/cr.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/cr.sh b/.github/cr.sh index 274cefc3..0c5a7b46 100755 --- a/.github/cr.sh +++ b/.github/cr.sh @@ -71,14 +71,12 @@ push_files() { --jq '.sha') MESSAGE="New release $release_name" - CONTENT=$(base64 -i .cr-index/index.yaml) # Push new index.yaml to the feature branch echo "Pushing new index.yaml to branch '$branch_name'..." gh api --method PUT /repos/solarwinds/swi-k8s-opentelemetry-collector/contents/index.yaml \ --field message="$MESSAGE" \ - --field content="$CONTENT" \ - --field encoding="base64" \ + --field content=@<(base64 -i .cr-index/index.yaml) \ --field branch="$branch_name" \ --field sha="$SHA" } From ca9b3524121dff6ec34dd4f791ced15477c22b56 Mon Sep 17 00:00:00 2001 From: Tomas Panik Date: Fri, 21 Jun 2024 06:50:33 +0200 Subject: [PATCH 09/11] NH-77823: Disabling journal on local deployment and marking Docker desktop unsupported in README (cherry picked from commit f9ef9b8c77effadafaa1836985db752b5ba1e87a) --- README.md | 2 +- skaffold.yaml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 79b7a48b..d0b9dc13 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Walk through Add Kubernetes wizard in [SolarWinds Observability](https://documen ## Limitations - Each Kubernetes version is supported for 15 months after its initial release. For example, version 1.27 released on April 11, 2023 is supported until July 11, 2024. For release dates for individual Kubernetes versions, see [Patch Releases](https://kubernetes.io/releases/patch-releases/#detailed-release-history-for-active-branches) in Kubernetes documentation. - - Local Kubernetes deployments (e.q. Minikube) are not supported (although most of the functionality may be working). + - Local Kubernetes deployments (e.q. Minikube, Docker Desktop) are not supported (although most of the functionality may be working). - Note: since Kubernetes v1.24 Docker container runtime will not be reporting pod level network metrics (`kubenet` and other network plumbing was removed from upstream as part of the dockershim removal/deprecation) - Supported architectures: Linux x86-64 (`amd64`), Linux ARM (`arm64`), Windows x86-64 (`amd64`). diff --git a/skaffold.yaml b/skaffold.yaml index 38357817..a1a93878 100644 --- a/skaffold.yaml +++ b/skaffold.yaml @@ -87,6 +87,8 @@ deploy: sending_queue: offload_to_disk: true logs: + # journal on Docker Desktop is not supported + journal: false filter: include: record_attributes: From 579ab2c18d2260e45eddf5d83831beaf969b8ac2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 9 Jun 2024 05:18:07 +0000 Subject: [PATCH 10/11] Bump library/golang in /build/docker Bumps library/golang from 1.22.3-nanoserver-ltsc2022 to 1.22.4-nanoserver-ltsc2022. --- updated-dependencies: - dependency-name: library/golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] (cherry picked from commit 4487013d3c3995921386d2000dee62733a7c847d) --- build/docker/Dockerfile | 2 +- build/docker/Dockerfile.Windows-2022 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile index 98e1b3c4..bdadb732 100644 --- a/build/docker/Dockerfile +++ b/build/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM docker.io/library/golang:1.22.3-bookworm as base +FROM docker.io/library/golang:1.22.4-bookworm as base WORKDIR /src COPY ["./src/", "./src/"] diff --git a/build/docker/Dockerfile.Windows-2022 b/build/docker/Dockerfile.Windows-2022 index 8c909a33..538f6ac6 100644 --- a/build/docker/Dockerfile.Windows-2022 +++ b/build/docker/Dockerfile.Windows-2022 @@ -1,4 +1,4 @@ -FROM docker.io/library/golang:1.22.3-nanoserver-ltsc2022@sha256:1a7c49ea03c8ae682233d81c65bd690c7cbfa32ab4a0b1d0ff3a52aa515207d3 as base +FROM docker.io/library/golang:1.22.4-nanoserver-ltsc2022@sha256:08fb710ab1f56fd09bbfee3d3d23ee871016e6315bfeb8572f9be77837145652 as base WORKDIR /src COPY ["./src/", "./src/"] From 8b0c98c41e2a80a722ef141ea3432c1f41d4e3ab Mon Sep 17 00:00:00 2001 From: Peter Stranak Date: Tue, 25 Jun 2024 10:40:37 +0200 Subject: [PATCH 11/11] Update OTEL Collector from 0.98.0 to 0.103.0 --- build/docker/structure-test.yaml | 2 +- src/cmd/go.mod | 240 ++++---- src/cmd/go.sum | 535 ++++++++--------- src/cmd/main.go | 2 +- .../k8sattributesprocessor/README.md | 7 +- .../k8sattributesprocessor/client_test.go | 4 +- .../k8sattributesprocessor/config_test.go | 2 +- .../k8sattributesprocessor/factory.go | 14 +- .../k8sattributesprocessor/factory_test.go | 2 +- .../generated_component_telemetry_test.go | 76 +++ src/processor/k8sattributesprocessor/go.mod | 63 +- src/processor/k8sattributesprocessor/go.sum | 127 ++-- .../internal/kube/client.go | 59 +- .../internal/kube/client_resource.go | 107 ++-- .../internal/kube/client_test.go | 130 +--- .../internal/kube/kube.go | 4 +- .../metadata/generated_config_test.go | 3 +- .../internal/metadata/generated_status.go | 11 - .../internal/metadata/generated_telemetry.go | 221 +++++++ .../metadata/generated_telemetry_resource.go | 252 ++++++++ .../metadata/generated_telemetry_test.go | 76 +++ .../internal/observability/empty_test.go | 18 - .../internal/observability/observability.go | 196 ------ .../observability/observability_resource.go | 565 ------------------ .../observability/observability_test.go | 163 ----- .../k8sattributesprocessor/processor.go | 6 +- .../k8sattributesprocessor/processor_test.go | 11 +- .../config_test.go | 2 +- .../swmetricstransformprocessor/factory.go | 2 +- .../factory_test.go | 7 +- .../swmetricstransformprocessor/go.mod | 49 +- .../swmetricstransformprocessor/go.sum | 102 ++-- .../internal/metadata/generated_status.go | 10 - .../internal/metadata/generated_telemetry.go | 17 + .../metadata/generated_telemetry_test.go | 63 ++ .../package_test.go | 18 +- 36 files changed, 1406 insertions(+), 1760 deletions(-) create mode 100644 src/processor/k8sattributesprocessor/generated_component_telemetry_test.go create mode 100644 src/processor/k8sattributesprocessor/internal/metadata/generated_telemetry.go create mode 100644 src/processor/k8sattributesprocessor/internal/metadata/generated_telemetry_resource.go create mode 100644 src/processor/k8sattributesprocessor/internal/metadata/generated_telemetry_test.go delete mode 100644 src/processor/k8sattributesprocessor/internal/observability/empty_test.go delete mode 100644 src/processor/k8sattributesprocessor/internal/observability/observability.go delete mode 100644 src/processor/k8sattributesprocessor/internal/observability/observability_resource.go delete mode 100644 src/processor/k8sattributesprocessor/internal/observability/observability_test.go create mode 100644 src/processor/swmetricstransformprocessor/internal/metadata/generated_telemetry.go create mode 100644 src/processor/swmetricstransformprocessor/internal/metadata/generated_telemetry_test.go diff --git a/build/docker/structure-test.yaml b/build/docker/structure-test.yaml index 1973ab13..37d1f77b 100644 --- a/build/docker/structure-test.yaml +++ b/build/docker/structure-test.yaml @@ -17,4 +17,4 @@ commandTests: - name: "swi-otelcol is working in the image" command: "/swi-otelcol" args: ["-v"] - expectedOutput: ["swi-k8s-opentelemetry-collector version 0.10.0"] + expectedOutput: ["swi-k8s-opentelemetry-collector version 0.10.1"] diff --git a/src/cmd/go.mod b/src/cmd/go.mod index 0e9e10eb..9bf17a92 100644 --- a/src/cmd/go.mod +++ b/src/cmd/go.mod @@ -17,55 +17,54 @@ module github.com/solarwinds/swi-k8s-opentelemetry-collector go 1.22 require ( - github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatorateprocessor v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricsgenerationprocessor v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/simpleprometheusreceiver v0.98.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowseventlogreceiver v0.98.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatorateprocessor v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricsgenerationprocessor v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/simpleprometheusreceiver v0.103.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowseventlogreceiver v0.103.0 github.com/solarwinds/swi-k8s-opentelemetry-collector/processor/swmetricstransformprocessor v0.0.1 github.com/stretchr/testify v1.9.0 - go.opentelemetry.io/collector/component v0.98.0 - go.opentelemetry.io/collector/connector v0.98.0 - go.opentelemetry.io/collector/connector/forwardconnector v0.98.0 - go.opentelemetry.io/collector/exporter v0.98.0 - go.opentelemetry.io/collector/exporter/otlpexporter v0.98.0 - go.opentelemetry.io/collector/extension v0.98.0 - go.opentelemetry.io/collector/extension/ballastextension v0.98.0 - go.opentelemetry.io/collector/otelcol v0.98.0 - go.opentelemetry.io/collector/processor v0.98.0 - go.opentelemetry.io/collector/processor/batchprocessor v0.98.0 - go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.98.0 - go.opentelemetry.io/collector/receiver v0.98.0 - go.opentelemetry.io/collector/receiver/otlpreceiver v0.98.0 - golang.org/x/sys v0.19.0 + go.opentelemetry.io/collector/component v0.103.0 + go.opentelemetry.io/collector/connector v0.103.0 + go.opentelemetry.io/collector/connector/forwardconnector v0.103.0 + go.opentelemetry.io/collector/exporter v0.103.0 + go.opentelemetry.io/collector/exporter/otlpexporter v0.103.0 + go.opentelemetry.io/collector/extension v0.103.0 + go.opentelemetry.io/collector/extension/ballastextension v0.103.0 + go.opentelemetry.io/collector/otelcol v0.103.0 + go.opentelemetry.io/collector/processor v0.103.0 + go.opentelemetry.io/collector/processor/batchprocessor v0.103.0 + go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.103.0 + go.opentelemetry.io/collector/receiver v0.103.0 + go.opentelemetry.io/collector/receiver/otlpreceiver v0.103.0 + golang.org/x/sys v0.21.0 ) require ( - cloud.google.com/go/compute v1.24.0 // indirect - cloud.google.com/go/compute/metadata v0.2.4-0.20230617002413-005d2dfb6b68 // indirect + cloud.google.com/go/compute/metadata v0.3.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.2 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.6.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.5.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v4 v4.3.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/Code-Hex/go-generics-cache v1.3.1 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/alecthomas/participle/v2 v2.1.1 // indirect github.com/alecthomas/units v0.0.0-20231202071711-9a357b53e9c9 // indirect github.com/armon/go-metrics v0.4.1 // indirect @@ -74,7 +73,7 @@ require ( github.com/bmatcuk/doublestar/v4 v4.6.1 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa // indirect + github.com/cncf/xds/go v0.0.0-20240318125728-8a4994d93e50 // 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.109.0 // indirect @@ -85,7 +84,7 @@ require ( github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/envoyproxy/go-control-plane v0.12.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.0.4 // indirect - github.com/expr-lang/expr v1.16.3 // indirect + github.com/expr-lang/expr v1.16.9 // indirect github.com/fatih/color v1.15.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect @@ -97,7 +96,7 @@ require ( github.com/go-openapi/jsonpointer v0.20.2 // indirect github.com/go-openapi/jsonreference v0.20.4 // indirect github.com/go-openapi/swag v0.22.9 // indirect - github.com/go-resty/resty/v2 v2.11.0 // indirect + github.com/go-resty/resty/v2 v2.12.0 // indirect github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 // indirect github.com/go-zookeeper/zk v1.0.3 // indirect github.com/gobwas/glob v0.2.3 // indirect @@ -117,7 +116,7 @@ require ( github.com/gophercloud/gophercloud v1.8.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect github.com/hashicorp/consul/api v1.28.2 // indirect github.com/hashicorp/cronexpr v1.1.2 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -127,7 +126,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.4 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect - github.com/hashicorp/go-version v1.6.0 // indirect + github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/hashicorp/nomad/api v0.0.0-20240306004928-3e7191ccb702 // indirect @@ -136,7 +135,6 @@ require ( github.com/iancoleman/strcase v0.3.0 // indirect github.com/imdario/mergo v0.3.16 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/influxdata/go-syslog/v3 v3.0.1-0.20230911200830-875f5bc594a4 // indirect github.com/ionos-cloud/sdk-go/v6 v6.1.11 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect @@ -148,8 +146,9 @@ require ( github.com/knadh/koanf/v2 v2.1.1 // indirect github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b // indirect github.com/kylelemons/godebug v1.1.0 // indirect - github.com/leodido/ragel-machinery v0.0.0-20181214104525-299bdde78165 // indirect - github.com/linode/linodego v1.30.0 // indirect + github.com/leodido/go-syslog/v4 v4.1.0 // indirect + github.com/leodido/ragel-machinery v0.0.0-20190525184631-5f46317e436b // indirect + github.com/linode/linodego v1.33.0 // indirect github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect @@ -162,19 +161,20 @@ require ( github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/mostynb/go-grpc-compression v1.2.2 // indirect + github.com/mostynb/go-grpc-compression v1.2.3 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.98.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.98.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.98.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.98.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.98.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.98.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.98.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.98.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.98.1-0.20240411185029-efefc6fac8ab // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.98.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.103.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.103.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.103.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.103.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.103.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.103.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.103.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.103.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.103.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.103.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.103.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect github.com/openshift/api v3.9.0+incompatible // indirect @@ -184,15 +184,15 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect - github.com/prometheus/client_golang v1.19.0 // indirect + github.com/prometheus/client_golang v1.19.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.52.2 // indirect + github.com/prometheus/common v0.54.0 // indirect github.com/prometheus/common/sigv4 v0.1.0 // indirect - github.com/prometheus/procfs v0.13.0 // indirect + github.com/prometheus/procfs v0.15.0 // indirect github.com/prometheus/prometheus v0.51.2-0.20240405174432-b4a973753c6e // indirect github.com/rs/cors v1.10.1 // indirect github.com/scaleway/scaleway-sdk-go v1.0.0-beta.25 // indirect - github.com/shirou/gopsutil/v3 v3.24.3 // indirect + github.com/shirou/gopsutil/v4 v4.24.5 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/spf13/cast v1.6.0 // indirect github.com/spf13/cobra v1.8.0 // indirect @@ -202,70 +202,70 @@ require ( github.com/valyala/fastjson v1.6.4 // indirect github.com/vultr/govultr/v2 v2.17.2 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.etcd.io/bbolt v1.3.9 // indirect + go.etcd.io/bbolt v1.3.10 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/collector v0.98.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.98.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.5.0 // indirect - go.opentelemetry.io/collector/config/configgrpc v0.98.0 // indirect - go.opentelemetry.io/collector/config/confighttp v0.98.0 // indirect - go.opentelemetry.io/collector/config/confignet v0.98.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.5.0 // indirect - go.opentelemetry.io/collector/config/configretry v0.98.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.98.0 // indirect - go.opentelemetry.io/collector/config/configtls v0.98.0 // indirect - go.opentelemetry.io/collector/config/internal v0.98.0 // indirect - go.opentelemetry.io/collector/confmap v0.98.0 // indirect - go.opentelemetry.io/collector/confmap/converter/expandconverter v0.98.0 // indirect - go.opentelemetry.io/collector/confmap/provider/envprovider v0.98.0 // indirect - go.opentelemetry.io/collector/confmap/provider/fileprovider v0.98.0 // indirect - go.opentelemetry.io/collector/confmap/provider/httpprovider v0.98.0 // indirect - go.opentelemetry.io/collector/confmap/provider/httpsprovider v0.98.0 // indirect - go.opentelemetry.io/collector/confmap/provider/yamlprovider v0.98.0 // indirect - go.opentelemetry.io/collector/consumer v0.98.0 // indirect - go.opentelemetry.io/collector/extension/auth v0.98.0 // indirect - go.opentelemetry.io/collector/featuregate v1.5.0 // indirect - go.opentelemetry.io/collector/pdata v1.5.0 // indirect - go.opentelemetry.io/collector/semconv v0.98.0 // indirect - go.opentelemetry.io/collector/service v0.98.0 // indirect - go.opentelemetry.io/contrib/config v0.4.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.25.0 // indirect - go.opentelemetry.io/otel v1.25.0 // indirect - go.opentelemetry.io/otel/bridge/opencensus v1.25.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.25.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.25.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.25.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.25.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.25.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.47.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.25.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.25.0 // indirect - go.opentelemetry.io/otel/metric v1.25.0 // indirect - go.opentelemetry.io/otel/sdk v1.25.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.25.0 // indirect - go.opentelemetry.io/otel/trace v1.25.0 // indirect - go.opentelemetry.io/proto/otlp v1.1.0 // indirect + go.opentelemetry.io/collector v0.103.0 // indirect + go.opentelemetry.io/collector/config/configauth v0.103.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.10.0 // indirect + go.opentelemetry.io/collector/config/configgrpc v0.103.0 // indirect + go.opentelemetry.io/collector/config/confighttp v0.103.0 // indirect + go.opentelemetry.io/collector/config/confignet v0.103.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.10.0 // indirect + go.opentelemetry.io/collector/config/configretry v0.103.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.103.0 // indirect + go.opentelemetry.io/collector/config/configtls v0.103.0 // indirect + go.opentelemetry.io/collector/config/internal v0.103.0 // indirect + go.opentelemetry.io/collector/confmap v0.103.0 // indirect + go.opentelemetry.io/collector/confmap/converter/expandconverter v0.103.0 // indirect + go.opentelemetry.io/collector/confmap/provider/envprovider v0.103.0 // indirect + go.opentelemetry.io/collector/confmap/provider/fileprovider v0.103.0 // indirect + go.opentelemetry.io/collector/confmap/provider/httpprovider v0.103.0 // indirect + go.opentelemetry.io/collector/confmap/provider/httpsprovider v0.103.0 // indirect + go.opentelemetry.io/collector/confmap/provider/yamlprovider v0.103.0 // indirect + go.opentelemetry.io/collector/consumer v0.103.0 // indirect + go.opentelemetry.io/collector/extension/auth v0.103.0 // indirect + go.opentelemetry.io/collector/featuregate v1.10.0 // indirect + go.opentelemetry.io/collector/pdata v1.10.0 // indirect + go.opentelemetry.io/collector/semconv v0.103.0 // indirect + go.opentelemetry.io/collector/service v0.103.0 // indirect + go.opentelemetry.io/contrib/config v0.7.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.27.0 // indirect + go.opentelemetry.io/otel v1.27.0 // indirect + go.opentelemetry.io/otel/bridge/opencensus v1.27.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.27.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.27.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.49.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.27.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.27.0 // indirect + go.opentelemetry.io/otel/metric v1.27.0 // indirect + go.opentelemetry.io/otel/sdk v1.27.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect + go.opentelemetry.io/otel/trace v1.27.0 // indirect + go.opentelemetry.io/proto/otlp v1.2.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/crypto v0.22.0 // indirect - golang.org/x/exp v0.0.0-20240205201215-2c58cdc269a3 // indirect - golang.org/x/mod v0.16.0 // indirect - golang.org/x/net v0.24.0 // indirect - golang.org/x/oauth2 v0.18.0 // indirect - golang.org/x/term v0.19.0 // indirect - golang.org/x/text v0.14.0 // indirect + golang.org/x/crypto v0.24.0 // indirect + golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect + golang.org/x/mod v0.17.0 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/oauth2 v0.20.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/term v0.21.0 // indirect + golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.19.0 // indirect + golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect gonum.org/v1/gonum v0.15.0 // indirect google.golang.org/api v0.172.0 // indirect - google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect - google.golang.org/grpc v1.63.2 // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240520151616-dc85e6b867a5 // indirect + google.golang.org/grpc v1.64.0 // indirect + google.golang.org/protobuf v1.34.2 // 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 @@ -281,6 +281,6 @@ require ( sigs.k8s.io/yaml v1.4.0 // indirect ) -replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.98.0 => ../processor/k8sattributesprocessor +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.103.0 => ../processor/k8sattributesprocessor replace github.com/solarwinds/swi-k8s-opentelemetry-collector/processor/swmetricstransformprocessor v0.0.1 => ../processor/swmetricstransformprocessor diff --git a/src/cmd/go.sum b/src/cmd/go.sum index 88d62953..dabd9ca6 100644 --- a/src/cmd/go.sum +++ b/src/cmd/go.sum @@ -19,10 +19,8 @@ cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvf 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/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= -cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= -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/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= +cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= @@ -37,10 +35,10 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 h1:E+OJmp2tPvt1W+amx48v1eqbjDYsgN+RzP4q16yV5eM= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1/go.mod h1:a6xsAQUZg+VsS3TJ05SRp524Hs4pZ/AeFSr5ENf0Yjo= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.2 h1:FDif4R1+UUR+00q6wquyX90K7A8dN+R5E8GEadoP7sU= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.2/go.mod h1:aiYBYui4BJ/BJCAIKs92XiPyQfTaBWqvHujDwKb6CBU= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2 h1:LqbJ/WzJUwBf8UiaSzgX7aMclParm9/5Vgp+TY51uBQ= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2/go.mod h1:yInRyqWXAuaPrgI7p70+lDDgh3mlBohis29jGMISnmc= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.6.0 h1:U2rTu3Ef+7w9FHKIAXM6ZyqF3UOWJZ12zIm8zECAFfg= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.6.0/go.mod h1:9kIvujWAA58nmPmWB1m23fyWic1kYZMxD9CxaWn4Qpg= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 h1:jBQA3cKT4L2rWMpgE7Yt3Hwh2aUj8KXjIGLxjHeYNNo= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0/go.mod h1:4OG6tQ9EOP/MT0NMjDlRzWoVFxfu9rN9B2X+tlSVktg= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.5.0 h1:MxA59PGoCFb+vCwRQi3PhQEwHj4+r2dhuv9HG+vM7iM= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.5.0/go.mod h1:uYt4CfhkJA9o0FN7jfE5minm/i4nUE4MjGUJkzB6Zs8= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v2 v2.0.0 h1:PTFGRSlMKCQelWwxUyYVEUqseBJVemLyqWJjvMyt0do= @@ -65,8 +63,8 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym github.com/Code-Hex/go-generics-cache v1.3.1 h1:i8rLwyhoyhaerr7JpjtYjJZUcCbWOdiYO3fZXLiEC4g= github.com/Code-Hex/go-generics-cache v1.3.1/go.mod h1:qxcC9kRVrct9rHeiYpFWSoW1vxyillCVzX13KZG8dl4= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= 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= @@ -115,8 +113,8 @@ github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6D github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= -github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= +github.com/cncf/xds/go v0.0.0-20240318125728-8a4994d93e50 h1:DBmgJDC9dTfkVyGgipamEh2BpGYxScCH1TOF1LL1cXc= +github.com/cncf/xds/go v0.0.0-20240318125728-8a4994d93e50/go.mod h1:5e1+Vvlzido69INQaVO6d87Qn543Xr6nooe9Kz7oBFM= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -156,8 +154,8 @@ github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZ github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/expr-lang/expr v1.16.3 h1:NLldf786GffptcXNxxJx5dQ+FzeWDKChBDqOOwyK8to= -github.com/expr-lang/expr v1.16.3/go.mod h1:uCkhfG+x7fcZ5A5sXHKuQ07jGZRl6J0FCAaf2k4PtVQ= +github.com/expr-lang/expr v1.16.9 h1:WUAzmR0JNI9JCiF0/ewwHB1gmcGw5wW7nWt8gc6PpCI= +github.com/expr-lang/expr v1.16.9/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4= 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.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= @@ -208,8 +206,8 @@ github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.22.9 h1:XX2DssF+mQKM2DHsbgZK74y/zj4mo9I99+89xUmuZCE= github.com/go-openapi/swag v0.22.9/go.mod h1:3/OXnFfnMAwBD099SwYRk7GD3xOrr1iL7d/XNLXVVwE= -github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8= -github.com/go-resty/resty/v2 v2.11.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A= +github.com/go-resty/resty/v2 v2.12.0 h1:rsVL8P90LFvkUYq/V5BTVe203WfRIU4gvcf+yfzJzGA= +github.com/go-resty/resty/v2 v2.12.0/go.mod h1:o0yGPrkS3lOe1+eFajk6kBW8ScXzwU3hD69/gt2yB/0= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= @@ -251,8 +249,6 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= @@ -274,7 +270,6 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -317,8 +312,8 @@ github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/ad github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd h1:PpuIBO5P3e9hpqBD0O/HjhShYuM6XE0i/lbE6J94kww= github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd/go.mod h1:M5qHK+eWfAv8VR/265dIuEpL3fNfeC21tXXp9itM24A= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1 h1:/c3QmbOGMGTOumP2iT/rCwB7b0QDGLKzqOmktBjT+Is= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1/go.mod h1:5SN9VR2LTsRFsrEC6FHgRbTWrTHu6tqPeKxEQv15giM= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= github.com/hashicorp/consul/api v1.28.2 h1:mXfkRHrpHN4YY3RqL09nXU1eHKLNiuAN4kHvDQ16k/8= github.com/hashicorp/consul/api v1.28.2/go.mod h1:KyzqzgMEya+IZPcD65YFoOVAgPpbfERu4I/tzG6/ueE= github.com/hashicorp/consul/sdk v0.16.0 h1:SE9m0W6DEfgIVCJX7xU+iv/hUl4m/nxqMTnCdMxDpJ8= @@ -357,8 +352,8 @@ github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= -github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= @@ -386,8 +381,6 @@ 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.20230911200830-875f5bc594a4 h1:2r2WiFeAwiJ/uyx1qIKnV1L4C9w/2V8ehlbJY4gjFaM= -github.com/influxdata/go-syslog/v3 v3.0.1-0.20230911200830-875f5bc594a4/go.mod h1:1yEQhaLb/cETXCqQmdh7lDjupNAReO7c83AHyK2dJ48= github.com/ionos-cloud/sdk-go/v6 v6.1.11 h1:J/uRN4UWO3wCyGOeDdMKv8LWRzKu6UIkLEaes38Kzh8= github.com/ionos-cloud/sdk-go/v6 v6.1.11/go.mod h1:EzEgRIDxBELvfoa/uBN0kOQaqovLjUWEB7iW4/Q+t4k= github.com/jarcoal/httpmock v1.3.1 h1:iUx3whfZWVf3jT01hQTO/Eo5sAYtB2/rqaUuOtpInww= @@ -436,11 +429,12 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/leodido/ragel-machinery v0.0.0-20181214104525-299bdde78165 h1:bCiVCRCs1Heq84lurVinUPy19keqGEe4jh5vtK37jcg= -github.com/leodido/ragel-machinery v0.0.0-20181214104525-299bdde78165/go.mod h1:WZxr2/6a/Ar9bMDc2rN/LJrE/hF6bXE4LPyDSIxwAfg= -github.com/linode/linodego v1.30.0 h1:6HJli+LX7NGu+Sne2G+ux790EkVOWOV/SR4mK3jcs6k= -github.com/linode/linodego v1.30.0/go.mod h1:/46h/XpmWi//oSA92GX2p3FIxb8HbX7grslPPQalR2o= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/leodido/go-syslog/v4 v4.1.0 h1:Wsl194qyWXr7V6DrGWC3xmxA9Ra6XgWO+toNt2fmCaI= +github.com/leodido/go-syslog/v4 v4.1.0/go.mod h1:eJ8rUfDN5OS6dOkCOBYlg2a+hbAg6pJa99QXXgMrd98= +github.com/leodido/ragel-machinery v0.0.0-20190525184631-5f46317e436b h1:11UHH39z1RhZ5dc4y4r/4koJo6IYFgTRMe/LlwRTEw0= +github.com/leodido/ragel-machinery v0.0.0-20190525184631-5f46317e436b/go.mod h1:WZxr2/6a/Ar9bMDc2rN/LJrE/hF6bXE4LPyDSIxwAfg= +github.com/linode/linodego v1.33.0 h1:cX2FYry7r6CA1ujBMsdqiM4VhvIQtnWsOuVblzfBhCw= +github.com/linode/linodego v1.33.0/go.mod h1:dSJJgIwqZCF5wnpuC6w5cyIbRtcexAm7uVvuJopGB40= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c h1:VtwQ41oftZwlMnOEbMWQtSEUgU64U4s+GHk7hZK+jtY= github.com/lufia/plan9stats v0.0.0-20220913051719-115f729f3c8c/go.mod h1:JKx41uQRwqlTZabZc+kILPrO/3jlKnQ2Z8b7YiVw5cE= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -497,8 +491,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/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.2.2 h1:XaDbnRvt2+1vgr0b/l0qh4mJAfIxE0bKXtz2Znl3GGI= -github.com/mostynb/go-grpc-compression v1.2.2/go.mod h1:GOCr2KBxXcblCuczg3YdLQlcin1/NfyDA348ckuCH6w= +github.com/mostynb/go-grpc-compression v1.2.3 h1:42/BKWMy0KEJGSdWvzqIyOZ95YcR9mLPqKctH7Uo//I= +github.com/mostynb/go-grpc-compression v1.2.3/go.mod h1:AghIxF3P57umzqM9yz795+y1Vjs47Km/Y2FE6ouQ7Lg= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= @@ -519,76 +513,78 @@ github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGV github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg= github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.98.0 h1:PvTmyr1MOFwlKdEqHDKEwoOSLINTiEppcvzp6a2jsFQ= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.98.0/go.mod h1:fxMPjSrU2yhl0wcc+aBgv1F6brf6A4t2IM/IT1PwLZ0= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.98.0 h1:96d2bgJfwjyX7oisKJjYPPUnhdKVK4mss/mL9f3nw2g= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.98.0/go.mod h1:DQBGDiuwOOmIXIxgWMRiK0Qu7XbAyHO8OEDsjIWEoNk= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.98.0 h1:0Md3yNJ9UwvRl69wOlfOmvh/Y9Ol66kfzg9G3NmdwNc= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.98.0/go.mod h1:iK2poAVp6s2v90HumR5PxNt43HxuvQfg+nqHCyI98YE= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.98.0 h1:irvnnbeyN+oJNeWPvBa893Ut4QbkeCyg21AYA5AKjNo= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.98.0/go.mod h1:y7f3lvVQv0P7Rv6RP/BLnU/h3iGbAbYgArS/nVGJvOw= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.98.0 h1:yend0fdg/ejfVSFOCI8CLo5ikkNhSl41Zs6ma5jUZ4c= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.98.0/go.mod h1:yGkFJl78686wAA5235HdLLQrWlOxuNqnZzQMUz2I7Ac= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.98.0 h1:+hjx5T+FMOyKChkpY03oSUCw3rALupeXFCkbS0Lu4OY= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.98.0/go.mod h1:Y4WKKdXboSG7HuI+Xf0dK8AZTAJKt+XKTvcYiwMwEEw= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.98.0 h1:rbfZJ4YA82WSC9HW2jgmY1UZEsOYte8VTjrBFU6dv5Y= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.98.0/go.mod h1:KOTp7iN8sWTmqk/SxbMqvM2KXUdgXRWb6hI84E5arLY= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.98.0 h1:FaldDCQ6hpPAauYZ1kbNWkTFU2vRgL/nr5UY8d2jrT4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.98.0/go.mod h1:0arlQ0mj/VhcFFSKHDmIc+iieHweXKENSBcqNnAY8OA= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.98.0 h1:KHO7ptmWdDW1wi0oiDzLNEDyXDG9TFsK/N6LTgyL6JI= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.98.0/go.mod h1:EwaZ9Bj0+7l5roLUkdKIH1pHXdfHCGve/8mZTf5Hzxk= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.98.0 h1:i5+XkPXUFqbNnOYngPq1b7nZ1PyGdAtLwcsEGHJ79yw= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.98.0/go.mod h1:JRRvo6HJ8jtHzHA2/H4+bIZsO5M8gpSXDLZ06fHN7II= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.98.0 h1:F6ZLrCnfX4JmSQaqfpHY3k7dLjAmXOoYdWbfVkbpT/s= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.98.0/go.mod h1:jdQtG3kZnRRZ6lv/Q3iBINkMN8BfZStsLhG08okP19M= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.98.0 h1:Y4UbYtpt+AsCVj4W8HKxLSlKNrMLhxypmA34GkwjJGE= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.98.0/go.mod h1:a1eqRzzePACd9YamtiY0+42P4dn1pB0Ozc0B3P6JGMs= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.98.0 h1:vgVVJgTRQzgkIf8iODqKiS5VoMUyUPHRQjAUMOeLJt8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.98.0/go.mod h1:5RtSFx/r557j1/Sy8+MO+N0ulfEzDwSNwEKo7bdHvYQ= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.98.0 h1:lZGvpoHCYoEFBDLhnKGGAgGJyX2l2jGZUgC1kTz/esI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.98.0/go.mod h1:fOHCXaWnVcKJPY9Jxeoyl7tSuuhZ/PPN92ib8eyjSLQ= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.98.0 h1:F1Vnzkhg0Trncmvw65Mq1wBKPgX2wI3aGE90J7CXhuU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.98.0/go.mod h1:yybbWtN2RnnIoqw3KzboFjk4iYpEBXPzHQvARs+eO9U= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.98.0 h1:Ml4/JEqJeJknFMiXW5AxtrejrbGXyocRq/BfCCLS5jA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.98.0/go.mod h1:DjiZ//9SFD9if4d/Q7dFam/4etFiXFpkxZ3kGM7XKmE= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.98.1-0.20240411185029-efefc6fac8ab h1:lAuhBMCLNhmo068frwX4nrnCuhCJD7jKJkRtPqaXf/U= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.98.1-0.20240411185029-efefc6fac8ab/go.mod h1:TMN4DbgfVeJS1WHphlCc27t/g2seZL7VnwhmV0NnZgo= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.98.0 h1:dbgJR93JNl/XKbwHwGzISTk0owYODddoDHRIoimpehs= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.98.0/go.mod h1:FjFQFT6tfC7Gac53GC/vorbTwvR/UzRrGh/rgSQsCB4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.98.0 h1:pM4puW3v2E+kfvuxz9L3bqGXbg/l6skLYVyZE3ksI0Y= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.98.0/go.mod h1:tdgLPheVJOpy9Gic113d7F9+a4S/slFV5OxJAiIpGSk= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.98.0 h1:xn3jwhEm9tWaOjyPH3OwVH032AmKj2UshkeenmKeVQE= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.98.0/go.mod h1:e6bjGXih8jmPZ+h6K5HDE7xFwZv4r+mKiIvqKTHAcgk= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.98.0 h1:F93HvVWJSEUtiwtyqXicjBiq3PhXxVjvX59VJtRuZL0= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.98.0/go.mod h1:vUObVWshD4NKy4CzZpcC8V/avUyFD6WmIwOIaux7oDA= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatorateprocessor v0.98.0 h1:g0EYXHvXQDtex9f2ktNDyUM7fJpaBSWvXSAVFTWywPM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatorateprocessor v0.98.0/go.mod h1:yzebFLp50w9NL+waozYKJSQKaScjJwqKIP/vorZIWe0= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.98.0 h1:+o1Jm65Yp8Z/EXHwimEfWQlRrnYNpB0ITAH9TFlY96c= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.98.0/go.mod h1:dHnrsXrapzrkj/G5zIYdavY/5d+n1J9qeYXKrepLYf4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.98.0 h1:0bpxJBDSZB95VhEOu0krpUwC5oh6mh6Uv5U7WsOSOO0= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.98.0/go.mod h1:JQ5u+t2D4pV6/xnZz6e3DXE3H8dES1YQtxewHx//BtE= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricsgenerationprocessor v0.98.0 h1:kW1Ud+M2aipcMtlr6E3FMJIgyM8/DUVefNT6boiZkTg= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricsgenerationprocessor v0.98.0/go.mod h1:AeVJbTS/xLWowVMojvpfRQhsjZwFEiMlANp6IRXterg= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.98.0 h1:Q+NzXfH9LTNupFpUdXFG/q3rka/Hv7lutBX5cjiPYmg= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.98.0/go.mod h1:9G5dg3SYuipPocclXv4U87hQ1/B2T4ca7lzUOLSReko= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.98.0 h1:+xPdlUjZiMTRrZK059U8zPP/IlhYoDt8jT+WpdT+9WE= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.98.0/go.mod h1:8+Kko3psy8Wmkc1q8dpnxzaw9ZbzYHeFovb8ozyr5FM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.98.0 h1:ljdy8h+V69mjx4X0Jbu4nt0FbeXa8h53ogie6OIK2zg= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.98.0/go.mod h1:iz/isMSPjHCFKiS9twzsfBMwy1j7p4fAxLSL47mf7zI= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.98.0 h1:hiudTWIOCQ6boREJ10ijrsaSwB6ywZ+Zf9JpDWBLsfM= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.98.0/go.mod h1:C+3Bs5efAss1Wv0y1Bfq5YWGf8xmoF0d2TCDx/Kr5o8= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver v0.98.0 h1:AlZze9NREP9uhaC+UIsBQMNAAblJYkARdDCeIaER7sA= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver v0.98.0/go.mod h1:rxpSJXQyNJj5sDvz86sZCBCrGDpS+JK5qyzVNee6eeE= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.98.0 h1:K6dYF20qdqn9QSlijqbTVAjCZQxzLwDdsQkdtW+Zlm8= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.98.0/go.mod h1:eVg5mfwmn3uk0K7o3jRe2m8i0Ldv9aenjTmyuwTJCJ0= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.98.0 h1:zlAAkEfq8HMwVPRIMWeoMIdwwO2ULDoTQCj/NxfJ4MI= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.98.0/go.mod h1:JLA1nMGAcSlqAdtK9KuVg092WnrXE2ULkCr1j/1po6g= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.98.0 h1:VzeSurxdtdhxAumPzq/jqmSNdazAigoJLoryIiV8cE8= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.98.0/go.mod h1:sL1bBOJdUDGY1pghpKMTanKxEdwT5IMYDIVf8zSuYHE= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/simpleprometheusreceiver v0.98.0 h1:G+nmX3MxEM9H4bGazSYZ40ufCf+BHICmVm7BBFGxt/M= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/simpleprometheusreceiver v0.98.0/go.mod h1:c9Ja3iIRyYyoTSWWKqrVkd4ARY32FQ80vX+mXe6979g= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowseventlogreceiver v0.98.0 h1:J/TV0BbLkdt/wR9/I8t+R6zJ/AlcOeWDs5XoyKHyZ5U= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowseventlogreceiver v0.98.0/go.mod h1:YbEOHpbagiYAh79AifrdvKSSgSOD6qkTMxENZSsNvAU= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.103.0 h1:blcAZWoZ9vqDvr1pT/Q5RfYYNOcOd71oaKFI2m4P4Hc= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.103.0/go.mod h1:FXy3BBa2RwAVHa8M5pTX6vFLouFAh3Ly9bAvnTAp0nk= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.103.0 h1:TV8mINcQEHPk0J2Kd7XtfAfRliG+3s6ZMh7y2Lcqpz8= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.103.0/go.mod h1:sH1bocIM8yLuCVVla8O5ks4zP4Dkqc5opUVAGHlYTRg= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.103.0 h1:PpZdcIP1g4NjuCMJ4uxm+fTN1HcdNtF/+cGrj0LHbgg= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.103.0/go.mod h1:QQUgfXBq28KcvwxFwY4NPy4XA/theDwBqfssy/HSjLc= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.103.0 h1:mZfr7+IOQPU9TyMCCZB8e3SaoZJNnbaO7NGrQZ1gqIo= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.103.0/go.mod h1:g7BMZ7uzahDyFfNxGNKrCgCqXipfkdBwrXkZuRlU2U4= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.103.0 h1:txNSkgEEmDyrasuGO9egQ+58i+7P/mJKdHmSHg0sO4c= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.103.0/go.mod h1:XtRqfouM/9owDyCIi2TksmSc1sfLGmLRiFhyQ7KFS6w= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.103.0 h1:iEreRkHc4UI6cKeTMqFKhCusa7q8BnmJcHFNmJFaBwk= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.103.0/go.mod h1:piJxxco+5cKjsAEWv5hh9YLK4FZbajXXNW5hTxptEL4= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.103.0 h1:olbjLOuCgVCiRNzdg0I9Lv7VuUHFbEuqP31fdriyqi0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.103.0/go.mod h1:2Zksmb1fF+4ksNsOxSVrHz5IoC/2ljvtqJGzy7qe8+E= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.103.0 h1:xtU09wCMSp/VazMC4qjP69LnuUUNDj6aGNG/jmSZXTM= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.103.0/go.mod h1:arqw5KwD4HBC3PZeqsLqMWPmnkaOcrrW5bMndHwNyO4= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.103.0 h1:HIhw3poxC0r5NyOOvO5m+yCnXWBaOvRfkq3XGs+Ag58= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.103.0/go.mod h1:5Y5wUGq+NNIgvkj3qNSsS3QJx3KiU4DfUFbMrlMlPsQ= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.103.0 h1:MZuxGGLUIMbErgwUeT9yqFXrsMYveGoPjck9OxHtT0A= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.103.0/go.mod h1:VS66oUydCMwiWl1BFmLs7iNy4lGsfVYsriXr/d1fpAk= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.103.0 h1:5PHQ2a5VsqXDZBmso84fLDzT66GV0mqDT5JCB07W8Ws= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.103.0/go.mod h1:oU1oils/dQVq3E3h7e3afFEXfCSmwniEK/NlEByaJWY= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.103.0 h1:j53/hdxxE6qphxI7S4ybo22/mT/0kDktWLgdwV5pB/Y= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.103.0/go.mod h1:3GFvGay9sySyHLAFlkkV1N+fUNvHz5LcN8/gPFBzEYw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.103.0 h1:GMx3/P287NuWOJH22eLCtaJ1ATW8BoOZL6GjINUAVYI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.103.0/go.mod h1:xGM9aD/2Dww/WKg5ei7a43TRSWuVwgMO9NPjPbgtmT8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.103.0 h1:angDCU0CPBLu2fAi7r7yCEWxRKthhNnYnMugdiULmvw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.103.0/go.mod h1:N80rYgsjtq+G/DJQVCLCkxmpCIA/mnQTRUJxa8mMNsw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.103.0 h1:XYkQCe4UPFy7qmBs1zhknhe1wzPnAff4Rb4WtnD8aAQ= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.103.0/go.mod h1:hmeKPJaZjzOjcndDxpWnjt0781EMqvj3or01baNVoRI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.103.0 h1:1cZyMMLSpSWFdfITyVc9Bb+8rn175/GGwtWZQ3nClpc= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.103.0/go.mod h1:o8BPP4DM2SkdkPJxJOdmgxKz5DftGcuyUXgqf5MoWAw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.103.0 h1:imXTMt9ravkIqcvvow0ya3aQh64OOiQpMOyWeG/SLDQ= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.103.0/go.mod h1:DR/fbOxaIyobmsd8nbDzuwqwwSNX9+yONDWx8dF2qS4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.103.0 h1:1A4uUWQlV7K4ei0GDHFSU0wWH1qH+W0AOchbodjCDHs= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.103.0/go.mod h1:Pg/6+QdHzFVuyTrCzXv8J8S4L6/H41sbRLcpoPQo4dE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.103.0 h1:mZbM5uIvfL4/Q0i9xKYps8AYe37MhwJJpk1Ojz9m6mw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.103.0/go.mod h1:+WiRcWZOrXV3B5Qk0KlF5Tm7BopRvLpoPYqTrt4iA7s= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.103.0 h1:MquBpfLZRaGnQeeIF3Kn+bQNXRLZtKTWGEysbNnxcRo= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.103.0/go.mod h1:+3rCl7Z3Zm4ZZOyX9lMmaAoN8NeeCXUOmR/tysR631g= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.103.0 h1:c5sOZWBMD/gyKxqwGgS6cwLdvkg6W8I3/0RZOm84xA0= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.103.0/go.mod h1:2CG+06d3sh+O36maAs2TPAbNRXZ0zcqY2kH5pEABrzg= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.103.0 h1:xerHvPmP765eM4U5eaSvfRpXiV3ioCJjLR5ydi6BgVs= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.103.0/go.mod h1:5yUxKVs+fx/MtDkGKlJWOTnOZIgOYdE+Zpya3mAdaQw= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatorateprocessor v0.103.0 h1:ZFyDkChccGaT717u7CnMaMOPERr0d2tlJvOrSlDGNbM= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatorateprocessor v0.103.0/go.mod h1:cElQF63Syrv/yugPAe5ho/BofKJoy0YSLuH8JYEQEvc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.103.0 h1:u2ZcBCuOXpD7FIm+LZrhEMhi/Ny/mhivAfuCUpPzrUg= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.103.0/go.mod h1:9n3OvWN10XXyg+o71jeuO94u8mEWOI90Vg8y3M7zpE0= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.103.0 h1:zDPvJi7pcuzn7kY4Wghzi277tLMkvL2BIYg2XyKNEFo= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.103.0/go.mod h1:G8GVZ3nzKKdURGsuZHEpbuZAftIMCWfmh7oZQogpwjs= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricsgenerationprocessor v0.103.0 h1:nGxoV0yVFNJOS7jGRAdkSHEUBONHp7Sd8kbP/WP64go= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricsgenerationprocessor v0.103.0/go.mod h1:T1+fAkPFvDPsOxmyrNSm8t5yAsvM6S1k3Fh1N2WiWas= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.103.0 h1:2IanPrPrTN3YYbxGSiF8axwE0+C+bJ9rKO2hvuG9uf8= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.103.0/go.mod h1:AH3r6xo/87nV1QNMDNamuFYIMwEfSLma06KdjEzxRdU= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.103.0 h1:Gg2j3yN2iCQYwK+464RyVvmX+QyjjdXL3JpG+6BfDAQ= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.103.0/go.mod h1:4nxV+BIA4LLyjhFeuUuLlY7iza+PyySjKz4PfL44SRQ= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.103.0 h1:+JRtnmcLjvG0BESXWCQ9PECtTisWtnIT1/DutAdr38U= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.103.0/go.mod h1:0mYHrHaJZiWfEcYxJCMTs7AlXmnIsC3cDNbSq5e255Q= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.103.0 h1:QUsI2cTLs4CLk/TBll1llkzzchmqr2TRANdgMy0Nz/k= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.103.0/go.mod h1:cdJpaBiLfV16LteiKj8iP7snJ6alJy1dVa7FTcC915c= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver v0.103.0 h1:nCNKbPPZBUPOoFpCqt+/pLNQZyQyI3SzFy6r3lYtvh4= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver v0.103.0/go.mod h1:vcqbS3qS7XIkiiAHUVMi7wD4iOmrZgHeupNA38vx4cA= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.103.0 h1:od5Gf6aVuh9qzfngtBK2hz2u0GmUFncXFJjt+ovhFSg= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.103.0/go.mod h1:5RY2vbjH6bRSuu5fSiHLh70P/TtsrCCGy9Hhhl6Ge7g= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.103.0 h1:V1N1X+KbjMauQsqW99vOfwTWBmdDGHafyoCN2LVtro4= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.103.0/go.mod h1:Sd26pFKO2fLsFKJCeQMn77k87z7lOyx5t2CISD5psR0= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.103.0 h1:TtvyeuCOFnVccvlcnT6eQlzGizXiRitgMMY3CcJOMkY= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.103.0/go.mod h1:uTSjoibioTuySX5cCQm+gjaeP98lceG3aHr5W02quEc= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/simpleprometheusreceiver v0.103.0 h1:uwf7IbvWIn2meU1RrA/nB3errMY+WS9mFyw1kG16kiU= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/simpleprometheusreceiver v0.103.0/go.mod h1:ofMwxpiAs54Cuv09BD2hW1lLZeD62GRtfTqrz/+1S18= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowseventlogreceiver v0.103.0 h1:t7idfKLaGMsL6x79qRYqvvdDFpJVmGUJU11uPM/V/WM= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowseventlogreceiver v0.103.0/go.mod h1:OlzRXRyvifRFEwtQkQ4LhQqleTZNFEzWZ9BOwumAjJs= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= @@ -616,7 +612,6 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI 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/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c h1:NRoLoZvkBTKvR5gQLgA3e0hqjkY9u1wm+iOL45VN/qI= github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= @@ -624,8 +619,8 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= -github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= +github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= +github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= 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= @@ -637,8 +632,8 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.52.2 h1:LW8Vk7BccEdONfrJBDffQGRtpSzi5CQaRZGtboOO2ck= -github.com/prometheus/common v0.52.2/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= +github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= +github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= github.com/prometheus/common/sigv4 v0.1.0 h1:qoVebwtwwEhS85Czm2dSROY5fTo2PAPEVdDeppTwGX4= github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57JrvHu9k5YwTjsNtI= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= @@ -646,13 +641,13 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= -github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= +github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= +github.com/prometheus/procfs v0.15.0/go.mod h1:Y0RJ/Y5g5wJpkTisOtqwDSo4HwhGmLB4VQSw2sQJLHk= github.com/prometheus/prometheus v0.51.2-0.20240405174432-b4a973753c6e h1:UmqAuY2OyDoog8+l5FybViJE5B2r+UxVGCUwFTsY5AA= github.com/prometheus/prometheus v0.51.2-0.20240405174432-b4a973753c6e/go.mod h1:+0ld+ozir7zWFcHA2vVpWAKxXakIioEjPPNOqH+J3ZA= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -661,11 +656,10 @@ github.com/scaleway/scaleway-sdk-go v1.0.0-beta.25 h1:/8rfZAdFfafRXOgz+ZpMZZWZ5p github.com/scaleway/scaleway-sdk-go v1.0.0-beta.25/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/shirou/gopsutil/v3 v3.24.3 h1:eoUGJSmdfLzJ3mxIhmOAhgKEKgQkeOwKpz1NbhVnuPE= -github.com/shirou/gopsutil/v3 v3.24.3/go.mod h1:JpND7O217xa72ewWz9zN2eIIkPWsDN/3pl0H8Qt0uwg= +github.com/shirou/gopsutil/v4 v4.24.5 h1:gGsArG5K6vmsh5hcFOHaPm87UD003CaDMkAOweSQjhM= +github.com/shirou/gopsutil/v4 v4.24.5/go.mod h1:aoebb2vxetJ/yIDZISmduFvVNPHqXQ9SEJwRXxkf0RA= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -697,7 +691,6 @@ 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.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tidwall/gjson v1.10.2 h1:APbLGOM0rrEkd8WBw9C24nllro4ajFuJu0Sc9hRz8Bo= @@ -726,8 +719,8 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= -go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= +go.etcd.io/bbolt v1.3.10 h1:+BqfJTcCzTItrop8mq/lbzL8wSGtj94UO/3U31shqG0= +go.etcd.io/bbolt v1.3.10/go.mod h1:bK3UQLPJZly7IlNmV7uVHJDxfe5aK9Ll93e/74Y9oEQ= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -735,124 +728,124 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= 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.98.0 h1:O7bpARGWzNfFQEYevLl4iigDrpGTJY3vV/kKqNZzMOk= -go.opentelemetry.io/collector v0.98.0/go.mod h1:fvPM+tBML07uvAP1MV2msYPSYJ9U/lgE1jDb3AFBaMM= -go.opentelemetry.io/collector/component v0.98.0 h1:0TMaBOyCdABiVLFdGOgG8zd/1IeGldCinYonbY08xWk= -go.opentelemetry.io/collector/component v0.98.0/go.mod h1:F6zyQLsoExl6r2q6WWZm8rmSSALbwG2zwIHLrMzZVio= -go.opentelemetry.io/collector/config/configauth v0.98.0 h1:FPffZ1dRL6emStrDUEGpL0rCChbUZNAQgpArXD0SESI= -go.opentelemetry.io/collector/config/configauth v0.98.0/go.mod h1:5pMzf2zgFwS7tujNq0AtOOli5vxIvnrNi7JlZwrBOFo= -go.opentelemetry.io/collector/config/configcompression v1.5.0 h1:FTxKbFPN4LznRCH/GQ+b+0tAWmg80Y2eEka79S2sLZ0= -go.opentelemetry.io/collector/config/configcompression v1.5.0/go.mod h1:O0fOPCADyGwGLLIf5lf7N3960NsnIfxsm6dr/mIpL+M= -go.opentelemetry.io/collector/config/configgrpc v0.98.0 h1:4yP/TphwQnbgLpJ72NymXaERVjLjuDAQp4iDKCTcv5g= -go.opentelemetry.io/collector/config/configgrpc v0.98.0/go.mod h1:tIng0xx1XlVr4I0YG5bNpts0hZDjwzN3Jkz6cKaSH/s= -go.opentelemetry.io/collector/config/confighttp v0.98.0 h1:pW7gR34TTXcrCHJgemL6A4VBVBS2NyDAkruSMvQj1Vo= -go.opentelemetry.io/collector/config/confighttp v0.98.0/go.mod h1:M9PMtiKrTJMG8i3SqJ+AUVKhR6sa3G/8S2F1+Dxkkr0= -go.opentelemetry.io/collector/config/confignet v0.98.0 h1:pXDBb2hFe10T/NMHlL/oMgk1aFfe4NmmJFdFoioyC9o= -go.opentelemetry.io/collector/config/confignet v0.98.0/go.mod h1:3naWoPss70RhDHhYjGACi7xh4NcVRvs9itzIRVWyu1k= -go.opentelemetry.io/collector/config/configopaque v1.5.0 h1:WJzgmsFU2v63BypPBNGL31ACwWn6PwumPJNpLZplcdE= -go.opentelemetry.io/collector/config/configopaque v1.5.0/go.mod h1:/otnfj2E8r5EfaAdNV4qHkTclmiBCZXaahV5EcLwT7k= -go.opentelemetry.io/collector/config/configretry v0.98.0 h1:gZRenX9oMLJmQ/CD8YwFNl9YYl68RtcD0RYSCJhrMAk= -go.opentelemetry.io/collector/config/configretry v0.98.0/go.mod h1:uRdmPeCkrW9Zsadh2WEbQ1AGXGYJ02vCfmmT+0g69nY= -go.opentelemetry.io/collector/config/configtelemetry v0.98.0 h1:f8RNZ1l/kYPPoxFmKKvTUli8iON7CMsm85KM38PVNts= -go.opentelemetry.io/collector/config/configtelemetry v0.98.0/go.mod h1:YV5PaOdtnU1xRomPcYqoHmyCr48tnaAREeGO96EZw8o= -go.opentelemetry.io/collector/config/configtls v0.98.0 h1:g+MADy01ge8iGC6v2tbJ5G27CWNG1BaJtmYdmpvm8e4= -go.opentelemetry.io/collector/config/configtls v0.98.0/go.mod h1:9RHArziz0mNEEkti0kz5LIdvbQGT7/Unu/0whKKazHQ= -go.opentelemetry.io/collector/config/internal v0.98.0 h1:wz/6ncawMX5cfIiXJEYSUm1g1U6iE/VxFRm4/WhVBPI= -go.opentelemetry.io/collector/config/internal v0.98.0/go.mod h1:xPnEE6QaTSXr+ctYMSTBxI2qwTntTUM4cYk7OTm6Ugc= -go.opentelemetry.io/collector/confmap v0.98.0 h1:qQreBlrqio1y7uhrAvr+W86YbQ6fw7StgkbYpvJ2vVc= -go.opentelemetry.io/collector/confmap v0.98.0/go.mod h1:BWKPIpYeUzSG6ZgCJMjF7xsLvyrvJCfYURl57E5vhiQ= -go.opentelemetry.io/collector/confmap/converter/expandconverter v0.98.0 h1:lRhfcLr3gK5S/zn92h3clyOPnCvvNKs1WTMbtH4UvO0= -go.opentelemetry.io/collector/confmap/converter/expandconverter v0.98.0/go.mod h1:vNMFTWe4dF05LsodUOc84OfxdlYVp1kCMuZzb41WfAk= -go.opentelemetry.io/collector/confmap/provider/envprovider v0.98.0 h1:x/VsGlBj+DtJCXIucwzwcxiwnwAU8a6ALK6UN8fPdKQ= -go.opentelemetry.io/collector/confmap/provider/envprovider v0.98.0/go.mod h1:BapTGXu7CYrQGNohbapPwTSt2Ty/k/c6Oemx9mSSiK4= -go.opentelemetry.io/collector/confmap/provider/fileprovider v0.98.0 h1:SxDS+Yr8qE+ID58ELR5n0D+SUlqHKOZ72pK3YPFAelA= -go.opentelemetry.io/collector/confmap/provider/fileprovider v0.98.0/go.mod h1:DEoB0d0k1iGt4KEABntL8AW9xYQ6E7fmgkM2/s8aXvM= -go.opentelemetry.io/collector/confmap/provider/httpprovider v0.98.0 h1:C02SPbRPvrtmZ9TvsHWpz2TvHzqY5mNyEAlDdhax/a4= -go.opentelemetry.io/collector/confmap/provider/httpprovider v0.98.0/go.mod h1:dzZKtykJio3Rm+G+Cmr15VV3xKp0PmFuh9Q9b3c1K7A= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v0.98.0 h1:04zGXVQZ8D6nvoPX8AaqxWxGHNNVsGR78E+tY+2VQr8= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v0.98.0/go.mod h1:+UrRiugWaQPssz4mgEgQQo640f2bDUCFlo2Xr0/5ulc= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v0.98.0 h1:JYpDN0OnMsu0awk0rjaYEIko9hFzzBJ6+2U5W2iVvUE= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v0.98.0/go.mod h1:xrXL804nBum1PgbvmJQ4I+hyW+DU4xBGO3MKMiYFX6E= -go.opentelemetry.io/collector/connector v0.98.0 h1:1ifadXqOtB5bZ+OocLVlzF0zltWjP70E3+xYt2fJnMg= -go.opentelemetry.io/collector/connector v0.98.0/go.mod h1:OFii9qa2ZgktI61/r0gWDsGjXtpEe+qXC8+0o4ZySeA= -go.opentelemetry.io/collector/connector/forwardconnector v0.98.0 h1:zIn0GaqUKq+3GcvfdVEIB/GSv7Zdtda8q0XChXG6Qj0= -go.opentelemetry.io/collector/connector/forwardconnector v0.98.0/go.mod h1:eC6PfRbK0Mx7QpqfnEI0uPAjq27MR//sRb5Vxzuf6eE= -go.opentelemetry.io/collector/consumer v0.98.0 h1:47zJ5HFKXVA0RciuwkZnPU5W8j0TYUxToB1/zzzgEhs= -go.opentelemetry.io/collector/consumer v0.98.0/go.mod h1:c2edTq38uVJET/NE6VV7/Qpyznnlz8b6VE7J6TXD57c= -go.opentelemetry.io/collector/exporter v0.98.0 h1:eN2qtkiwpeX9gBu9JZw1k/CZ3N9wZE1aGJ1A0EvwJ7w= -go.opentelemetry.io/collector/exporter v0.98.0/go.mod h1:GCW46a0VAuW7nljlW//GgFXI+8mSrJjrdEKVO9icExE= -go.opentelemetry.io/collector/exporter/otlpexporter v0.98.0 h1:uhiR/luaJCwMnvvkIS/gIxBbSAp+/vbqeC3AXmuc/kg= -go.opentelemetry.io/collector/exporter/otlpexporter v0.98.0/go.mod h1:1ySnK/6Cl+67FTP6ty04PX9nrXPYFPuBqZ+Xn9Jzz6Y= -go.opentelemetry.io/collector/extension v0.98.0 h1:08B5ipEsoNmPHY96j5EUsUrFre01GOZ4zgttUDtPUkY= -go.opentelemetry.io/collector/extension v0.98.0/go.mod h1:fZ1Hnnahszl5j3xcW2sMRJ0FLWDOFkFMQeVDP0Se7i8= -go.opentelemetry.io/collector/extension/auth v0.98.0 h1:7b1jioijJbTMqaOCrz5Hoqf+zJn2iPlGmtN7pXLNWbA= -go.opentelemetry.io/collector/extension/auth v0.98.0/go.mod h1:gssWC4AxAwAEKI2CqS93lhjWffsVdzD8q7UGL6LaRr0= -go.opentelemetry.io/collector/extension/ballastextension v0.98.0 h1:EPzsYpiSY4vAfzJMqhVK6bIh+qZRmXVskaNlRFKjA0w= -go.opentelemetry.io/collector/extension/ballastextension v0.98.0/go.mod h1:IY/JNP0g+tUUe/w5YHgBYwv5XlH4eqo5d4th+RGROFU= -go.opentelemetry.io/collector/extension/zpagesextension v0.98.0 h1:JfvsDpTwAhA9au8/4vmONRh0OBVU6n36seb41JD/mTQ= -go.opentelemetry.io/collector/extension/zpagesextension v0.98.0/go.mod h1:t1zDwy6kYp4w1JgcGHMvdGbKYHqWpK00bB1AEQ0Oqlc= -go.opentelemetry.io/collector/featuregate v1.5.0 h1:uK8qnYQKz1TMkK+FDTFsywg/EybW/gbnOUaPNUkRznM= -go.opentelemetry.io/collector/featuregate v1.5.0/go.mod h1:w7nUODKxEi3FLf1HslCiE6YWtMtOOrMnSwsDam8Mg9w= -go.opentelemetry.io/collector/otelcol v0.98.0 h1:sUk49Wqw+VBYeDynEA+GSeVEusFvzFW3KuF2vfDbyo0= -go.opentelemetry.io/collector/otelcol v0.98.0/go.mod h1:dW3UzuaiaNTddjKajk3Tp2Y7muDvYJdQz2yGUOE53gs= -go.opentelemetry.io/collector/pdata v1.5.0 h1:1fKTmUpr0xCOhP/B0VEvtz7bYPQ45luQ8XFyA07j8LE= -go.opentelemetry.io/collector/pdata v1.5.0/go.mod h1:TYj8aKRWZyT/KuKQXKyqSEvK/GV+slFaDMEI+Ke64Yw= -go.opentelemetry.io/collector/pdata/testdata v0.98.0 h1:8gohV+LFXqMzuDwfOOQy9GcZBOX0C9xGoQkoeXFTzmI= -go.opentelemetry.io/collector/pdata/testdata v0.98.0/go.mod h1:B/IaHcf6+RtxI292CZu9TjfYQdi1n4+v6b8rHEonpKs= -go.opentelemetry.io/collector/processor v0.98.0 h1:onrg8a99lToytbHF148Bg9a7DfNk31B+p6UHouiiVTw= -go.opentelemetry.io/collector/processor v0.98.0/go.mod h1:QxgzjmJI12DQWN0LIHmZBOR7HRzPuVWFW4oqTdrS1ho= -go.opentelemetry.io/collector/processor/batchprocessor v0.98.0 h1:iM4fMLGig3GKmz5XNtOPKDsnCnvbi0+UHYaWsx/aSRc= -go.opentelemetry.io/collector/processor/batchprocessor v0.98.0/go.mod h1:ROnuUkZJgpKEIDf3AIVjgRGNI7KPqCKPXsw8whL6Hzs= -go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.98.0 h1:1jjiC3POfIluGLVM+6y8nolKEI95/vlHAvDmIOatags= -go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.98.0/go.mod h1:VQDDrhQbIoelGF+fKzy6vCQM3hWDCH2YFaZKqgTDmGk= -go.opentelemetry.io/collector/receiver v0.98.0 h1:qw6JYwm+sHcZvM1DByo3QlGe6yGHuwd0yW4hEPVqYKU= -go.opentelemetry.io/collector/receiver v0.98.0/go.mod h1:AwIWn+KnquTR+kbhXQrMH+i2PvTCFldSIJznBWFYs0s= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.98.0 h1:j7lfLwc5o1dtXIPXU8LjmxadejmJVRHN57ZYGH33Wq4= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.98.0/go.mod h1:uWDBDxaWuzF1U5S2UIhstO0+Q8aUiwiUu8uO1IYN2XQ= -go.opentelemetry.io/collector/semconv v0.98.0 h1:zO4L4TmlxXoYu8UgPeYElGY19BW7wPjM+quL5CzoOoY= -go.opentelemetry.io/collector/semconv v0.98.0/go.mod h1:8ElcRZ8Cdw5JnvhTOQOdYizkJaQ10Z2fS+R6djOnj6A= -go.opentelemetry.io/collector/service v0.98.0 h1:lLJ7VXPXcV62fSISh4GuNd5ti6WvKje76NSgezc3ydo= -go.opentelemetry.io/collector/service v0.98.0/go.mod h1:wB7ozvZTHtMefb5KTYy5nyrVYWpGk8teq8jWFs4blIU= -go.opentelemetry.io/contrib/config v0.4.0 h1:Xb+ncYOqseLroMuBesGNRgVQolXcXOhMj7EhGwJCdHs= -go.opentelemetry.io/contrib/config v0.4.0/go.mod h1:drNk2xRqLWW4/amk6Uh1S+sDAJTc7bcEEN1GfJzj418= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/contrib/propagators/b3 v1.25.0 h1:QU8UEKyPqgr/8vCC9LlDmkPnfFmiWAUF9GtJdcLz+BU= -go.opentelemetry.io/contrib/propagators/b3 v1.25.0/go.mod h1:qonC7wyvtX1E6cEpAR+bJmhcGr6IVRGc/f6ZTpvi7jA= -go.opentelemetry.io/contrib/zpages v0.50.0 h1:hKC5asr83xDN4ErwSHVdk3gv053pZiF8SZKmS86IPEw= -go.opentelemetry.io/contrib/zpages v0.50.0/go.mod h1:8WovRn95fZdaX/dr3e4h7D8IqiVsnZ+WxY0Yn4LyU3k= -go.opentelemetry.io/otel v1.25.0 h1:gldB5FfhRl7OJQbUHt/8s0a7cE8fbsPAtdpRaApKy4k= -go.opentelemetry.io/otel v1.25.0/go.mod h1:Wa2ds5NOXEMkCmUou1WA7ZBfLTHWIsp034OVD7AO+Vg= -go.opentelemetry.io/otel/bridge/opencensus v1.25.0 h1:0o/9KwAgxjK+3pMV0pwIF5toYHqDsPmQhfrBvKaG6mU= -go.opentelemetry.io/otel/bridge/opencensus v1.25.0/go.mod h1:rZyTdpmRqoV+PpUn6QlruxJp/kE4765rPy0pP6mRDk8= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.25.0 h1:hDKnobznDpcdTlNzO0S/owRB8tyVr1OoeZZhDoqY+Cs= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.25.0/go.mod h1:kUDQaUs1h8iTIHbQTk+iJRiUvSfJYMMKTtMCaiVu7B0= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.25.0 h1:Wc4hZuYXhVqq+TfRXLXlmNIL/awOanGx8ssq3ciDQxc= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.25.0/go.mod h1:BydOvapRqVEc0DVz27qWBX2jq45Ca5TI9mhZBDIdweY= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.25.0 h1:dT33yIHtmsqpixFsSQPwNeY5drM9wTcoL8h0FWF4oGM= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.25.0/go.mod h1:h95q0LBGh7hlAC08X2DhSeyIG02YQ0UyioTCVAqRPmc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.25.0 h1:vOL89uRfOCCNIjkisd0r7SEdJF3ZJFyCNY34fdZs8eU= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.25.0/go.mod h1:8GlBGcDk8KKi7n+2S4BT/CPZQYH3erLu0/k64r1MYgo= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.25.0 h1:Mbi5PKN7u322woPa85d7ebZ+SOvEoPvoiBu+ryHWgfA= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.25.0/go.mod h1:e7ciERRhZaOZXVjx5MiL8TK5+Xv7G5Gv5PA2ZDEJdL8= -go.opentelemetry.io/otel/exporters/prometheus v0.47.0 h1:OL6yk1Z/pEGdDnrBbxSsH+t4FY1zXfBRGd7bjwhlMLU= -go.opentelemetry.io/otel/exporters/prometheus v0.47.0/go.mod h1:xF3N4OSICZDVbbYZydz9MHFro1RjmkPUKEvar2utG+Q= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.25.0 h1:d7nHbdzU84STOiszaOxQ3kw5IwkSmHsU5Muol5/vL4I= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.25.0/go.mod h1:yiPA1iZbb/EHYnODXOxvtKuB0I2hV8ehfLTEWpl7BJU= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.25.0 h1:0vZZdECYzhTt9MKQZ5qQ0V+J3MFu4MQaQ3COfugF+FQ= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.25.0/go.mod h1:e7iXx3HjaSSBXfy9ykVUlupS2Vp7LBIBuT21ousM2Hk= -go.opentelemetry.io/otel/metric v1.25.0 h1:LUKbS7ArpFL/I2jJHdJcqMGxkRdxpPHE0VU/D4NuEwA= -go.opentelemetry.io/otel/metric v1.25.0/go.mod h1:rkDLUSd2lC5lq2dFNrX9LGAbINP5B7WBkC78RXCpH5s= -go.opentelemetry.io/otel/sdk v1.25.0 h1:PDryEJPC8YJZQSyLY5eqLeafHtG+X7FWnf3aXMtxbqo= -go.opentelemetry.io/otel/sdk v1.25.0/go.mod h1:oFgzCM2zdsxKzz6zwpTZYLLQsFwc+K0daArPdIhuxkw= -go.opentelemetry.io/otel/sdk/metric v1.25.0 h1:7CiHOy08LbrxMAp4vWpbiPcklunUshVpAvGBrdDRlGw= -go.opentelemetry.io/otel/sdk/metric v1.25.0/go.mod h1:LzwoKptdbBBdYfvtGCzGwk6GWMA3aUzBOwtQpR6Nz7o= -go.opentelemetry.io/otel/trace v1.25.0 h1:tqukZGLwQYRIFtSQM2u2+yfMVTgGVeqRLPUYx1Dq6RM= -go.opentelemetry.io/otel/trace v1.25.0/go.mod h1:hCCs70XM/ljO+BeQkyFnbK28SBIJ/Emuha+ccrCRT7I= -go.opentelemetry.io/proto/otlp v1.1.0 h1:2Di21piLrCqJ3U3eXGCTPHE9R8Nh+0uglSnOyxikMeI= -go.opentelemetry.io/proto/otlp v1.1.0/go.mod h1:GpBHCBWiqvVLDqmHZsoMM3C5ySeKTC7ej/RNTae6MdY= +go.opentelemetry.io/collector v0.103.0 h1:mssWo1y31p1F/SRsSBnVUX6YocgawCqM1blpE+hkWog= +go.opentelemetry.io/collector v0.103.0/go.mod h1:mgqdTFB7QCYiOeEdJSSEktovPqy+2fw4oTKJzyeSB0U= +go.opentelemetry.io/collector/component v0.103.0 h1:j52YAsp8EmqYUotVUwhovkqFZGuxArEkk65V4TI46NE= +go.opentelemetry.io/collector/component v0.103.0/go.mod h1:jKs19tGtCO8Hr5/YM0F+PoFcl8SVe/p4Ge30R6srkbc= +go.opentelemetry.io/collector/config/configauth v0.103.0 h1:tv2Ilj0X9T8ZsDd4mB8Sl+nXQ8CG8MJVQ1Lo4mmE0Pk= +go.opentelemetry.io/collector/config/configauth v0.103.0/go.mod h1:VIo8DpFeyOOCMUVoQsBdq3t2snUiBBECP0UxW1bwz/o= +go.opentelemetry.io/collector/config/configcompression v1.10.0 h1:ClkAY1rzaxFawmC53BUf3TjTWKOGx+2xnpqOJIkg6Tk= +go.opentelemetry.io/collector/config/configcompression v1.10.0/go.mod h1:6+m0GKCv7JKzaumn7u80A2dLNCuYf5wdR87HWreoBO0= +go.opentelemetry.io/collector/config/configgrpc v0.103.0 h1:H1TXxUwxaZINmAzuehP/8ExKhJKzuw/oBGc7juzwloo= +go.opentelemetry.io/collector/config/configgrpc v0.103.0/go.mod h1:1FG873Wpw9AWANjXBvOd59noWY3dZoU6WkMWLJDx5FQ= +go.opentelemetry.io/collector/config/confighttp v0.103.0 h1:tgCWMKuIorSr4+iQOv0A8Ya/8do73hiG5KHinWaz63Q= +go.opentelemetry.io/collector/config/confighttp v0.103.0/go.mod h1:xMXoLsTGTJlftu+VAL3iadEs4gkmqFrvuPPnpNi6ETo= +go.opentelemetry.io/collector/config/confignet v0.103.0 h1:A2/8y2oEFaJbmtl+r1JIP0y+281vmmcPp0P51xcSn5s= +go.opentelemetry.io/collector/config/confignet v0.103.0/go.mod h1:pfOrCTfSZEB6H2rKtx41/3RN4dKs+X2EKQbw3MGRh0E= +go.opentelemetry.io/collector/config/configopaque v1.10.0 h1:FAxj6ggLpJE/kFnR1ezYwjRdo6gHo2+CjlIsHVCFVnQ= +go.opentelemetry.io/collector/config/configopaque v1.10.0/go.mod h1:0xURn2sOy5j4fbaocpEYfM97HPGsiffkkVudSPyTJlM= +go.opentelemetry.io/collector/config/configretry v0.103.0 h1:AwWGdeYJvUCZfh127Jb8uj7kuoPrJ3t2iZGwQUxmb7c= +go.opentelemetry.io/collector/config/configretry v0.103.0/go.mod h1:P+RA0IA+QoxnDn4072uyeAk1RIoYiCbxYsjpKX5eFC4= +go.opentelemetry.io/collector/config/configtelemetry v0.103.0 h1:KLbhkFqdw9D31t0IhJ/rnhMRvz/s14eie0fKfm5xWns= +go.opentelemetry.io/collector/config/configtelemetry v0.103.0/go.mod h1:WxWKNVAQJg/Io1nA3xLgn/DWLE/W1QOB2+/Js3ACi40= +go.opentelemetry.io/collector/config/configtls v0.103.0 h1:nbk8sJIHoYYQbpZtUkUQceTbjC4wEjoePKJ15v8cCcU= +go.opentelemetry.io/collector/config/configtls v0.103.0/go.mod h1:046dfdfHW8wWCMhzUaWJo7guRiCoSz5QzVjCSDzymdU= +go.opentelemetry.io/collector/config/internal v0.103.0 h1:pimS3uLHfOBbConZrviGoTwu+bkTNDoQBtbeWCg8U8k= +go.opentelemetry.io/collector/config/internal v0.103.0/go.mod h1:kJRkB+PgamWqPi/GWbYWvnRzVzS1rwDUh6+VSz4C7NQ= +go.opentelemetry.io/collector/confmap v0.103.0 h1:qKKZyWzropSKfgtGv12JzADOXNgThqH1Vx6qzblBE24= +go.opentelemetry.io/collector/confmap v0.103.0/go.mod h1:TlOmqe/Km3K6WgxyhEAdCb/V1Yp6eSU76fCoiluEa88= +go.opentelemetry.io/collector/confmap/converter/expandconverter v0.103.0 h1:zApcKLSosuu9I/4IRHTqlE1H6XNiZNAgd26YbzHwkto= +go.opentelemetry.io/collector/confmap/converter/expandconverter v0.103.0/go.mod h1:hoel+3CPjRhPSHzCrE1E+wCyoSLHlgW7662Ntwx2ujM= +go.opentelemetry.io/collector/confmap/provider/envprovider v0.103.0 h1:0XHQ/ffxSUx3sMbnYSf8a4jnVYLUrxo+/XwdhXkizgs= +go.opentelemetry.io/collector/confmap/provider/envprovider v0.103.0/go.mod h1:NiE4Fe42Sew1TyXuU1YEd0xZBDNI+w6IRkC2OTlJUak= +go.opentelemetry.io/collector/confmap/provider/fileprovider v0.103.0 h1:5dB2G7d6RKmWS8ptuAWvAEKGYODk2DTRm84bU9HooLQ= +go.opentelemetry.io/collector/confmap/provider/fileprovider v0.103.0/go.mod h1:GT/GBk17lDhc27762w6PNHvKYbA+TnHvNEyQHUsjKpY= +go.opentelemetry.io/collector/confmap/provider/httpprovider v0.103.0 h1:Hrp+nw4W9/jeJfi3GfJW6EYh7DeNkaC1wojOh4x8CbI= +go.opentelemetry.io/collector/confmap/provider/httpprovider v0.103.0/go.mod h1:kUst0pGVBlKDSlvJYDclrsApbkMv7ahRDh6/pE4LsBc= +go.opentelemetry.io/collector/confmap/provider/httpsprovider v0.103.0 h1:JUDRYsMOhkIBxZqZli0BU+64zahIUgnEPZSe9wo2T0Q= +go.opentelemetry.io/collector/confmap/provider/httpsprovider v0.103.0/go.mod h1:+mUrWjpdGIdSKMeeplLO+qXFSBc287as2oIPVdKMTxc= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v0.103.0 h1:boTv+ZRkn1h5eUbt5sLSU5lCrItCCxCen/laRmsHLyg= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v0.103.0/go.mod h1:0pZ7RD7SPg+yklgGPN+74Zzbps4R9x5bRPZX1D1gtGM= +go.opentelemetry.io/collector/connector v0.103.0 h1:jwmrgCT6ftz3U4o8mAqP+/yaQ5KsLMFXo2+OHXhy+tE= +go.opentelemetry.io/collector/connector v0.103.0/go.mod h1:6RDaeDMiXTKEXSy1eIaO0EiM+/91NVHdBxOc9e2++2A= +go.opentelemetry.io/collector/connector/forwardconnector v0.103.0 h1:r4+BxddgTpkvFXEDsh9jL5Qg+wqlkwgHwDUfYux8QTM= +go.opentelemetry.io/collector/connector/forwardconnector v0.103.0/go.mod h1:1dp/eyK6GtdUlSeYQseJGdb9KyprDfBQbBRTOzYuGY8= +go.opentelemetry.io/collector/consumer v0.103.0 h1:L/7SA/U2ua5L4yTLChnI9I+IFGKYU5ufNQ76QKYcPYs= +go.opentelemetry.io/collector/consumer v0.103.0/go.mod h1:7jdYb9kSSOsu2R618VRX0VJ+Jt3OrDvvUsDToHTEOLI= +go.opentelemetry.io/collector/exporter v0.103.0 h1:g0nF/FAwuA7tTJf5uo1PvlQl7xFqCgvfH+FYqufBSiw= +go.opentelemetry.io/collector/exporter v0.103.0/go.mod h1:PC2OvciPEew2kaA/ZMyxRqfeOW8Wgi0CYR614PEyS/w= +go.opentelemetry.io/collector/exporter/otlpexporter v0.103.0 h1:YKdYP3tDOQC6sOdOD1/Sun6CA4Zwpky+aRve3dx5QcE= +go.opentelemetry.io/collector/exporter/otlpexporter v0.103.0/go.mod h1:4UVHkqgL80CRVrbD85p2k4swDe27gLyQkoKlSYOkR0A= +go.opentelemetry.io/collector/extension v0.103.0 h1:vTsd+GElvT7qKk9Y9d6UKuuT2Ngx0mai8Q48hkKQMwM= +go.opentelemetry.io/collector/extension v0.103.0/go.mod h1:rp2l3xskNKWv0yBCyU69Pv34TnP1QVD1ijr0zSndnsM= +go.opentelemetry.io/collector/extension/auth v0.103.0 h1:i7cQl+Ewpve/DIN4rFMg1GiyUPE14LZsYWrJ1RqtP84= +go.opentelemetry.io/collector/extension/auth v0.103.0/go.mod h1:JdYBS/EkPAz2APAi8g7xTiSRlZTc7c4H82AQM9epzxw= +go.opentelemetry.io/collector/extension/ballastextension v0.103.0 h1:U8f6b6xnkD04HNIOgqLAWXfCcezSAU2vMq5SMtKjjbo= +go.opentelemetry.io/collector/extension/ballastextension v0.103.0/go.mod h1:/B3xE2YhUgGXSsFH8Qg0kq4WpfkuTyWDJGNyfRgMax8= +go.opentelemetry.io/collector/extension/zpagesextension v0.103.0 h1:jgSEQY++zOI6hFQygwuvS6ulJ/Yu4xXgUg+Ijoxx51I= +go.opentelemetry.io/collector/extension/zpagesextension v0.103.0/go.mod h1:2OUi0Hp+3zPUJmi7goJ6d1/kGgFAw3SDESRX7xQ0QHE= +go.opentelemetry.io/collector/featuregate v1.10.0 h1:krSqokHTp7JthgmtewysqHuOAkcuuZl7G2n91s7HygE= +go.opentelemetry.io/collector/featuregate v1.10.0/go.mod h1:PsOINaGgTiFc+Tzu2K/X2jP+Ngmlp7YKGV1XrnBkH7U= +go.opentelemetry.io/collector/otelcol v0.103.0 h1:Skqnc2mxDdk3eiYioUuG7ST6ur5k83SOv7mIBt60fBw= +go.opentelemetry.io/collector/otelcol v0.103.0/go.mod h1:iJF3ghCv+nRZI6+hI7z3kGRZrgH///Fd9tNXY82X90g= +go.opentelemetry.io/collector/pdata v1.10.0 h1:oLyPLGvPTQrcRT64ZVruwvmH/u3SHTfNo01pteS4WOE= +go.opentelemetry.io/collector/pdata v1.10.0/go.mod h1:IHxHsp+Jq/xfjORQMDJjSH6jvedOSTOyu3nbxqhWSYE= +go.opentelemetry.io/collector/pdata/testdata v0.103.0 h1:iI6NOE0L2je/bxlWzAWHQ/yCtnGupgv42Hl9Al1q/g4= +go.opentelemetry.io/collector/pdata/testdata v0.103.0/go.mod h1:tLzRhb/h37/9wFRQVr+CxjKi5qmhSRpCAiOlhwRkeEk= +go.opentelemetry.io/collector/processor v0.103.0 h1:YZ+LRuHKtOam7SCeLkJAP6bS1d6XxeYP22OyMN3VP0s= +go.opentelemetry.io/collector/processor v0.103.0/go.mod h1:/mxyh0NpJgpZycm7iHDpM7i5PdtWvKKdCZf0cyADJfU= +go.opentelemetry.io/collector/processor/batchprocessor v0.103.0 h1:vunxXGq5Pzcawj4QbXKrIOoXLHpPbRbwNBFPR80X0R4= +go.opentelemetry.io/collector/processor/batchprocessor v0.103.0/go.mod h1:c5nh1LHVlBFQajCnm/5hwKqAvOLpTTOd2GQyB7lT75E= +go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.103.0 h1:ZwPULpXaIOmY/Niaia2aNyKc40KZE9jorhN+zm6zijw= +go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.103.0/go.mod h1:BvAZflYYV3/FoHjVDKYfeyx5/bIqJDaeAaf/JtDmc8w= +go.opentelemetry.io/collector/receiver v0.103.0 h1:V3JBKkX+7e/NYpDDZVyeu2VQB1/lLFuoJFPfupdCcZs= +go.opentelemetry.io/collector/receiver v0.103.0/go.mod h1:Yybv4ynKFdMOYViWWPMmjkugR89FSQN0P37wP6mX6qM= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.103.0 h1:TycVVl4AWioV6kWeFcCIk2QuKfXOzn88yw989opsMdE= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.103.0/go.mod h1:jAbzL5lwOGG93YbcPZ6aFZIZq+tjYQ+BS3vKKT2nRgw= +go.opentelemetry.io/collector/semconv v0.103.0 h1:5tlVoZlo9USHAU2Bz4YrEste0Vm5AMufXkYJhAVve1Q= +go.opentelemetry.io/collector/semconv v0.103.0/go.mod h1:yMVUCNoQPZVq/IPfrHrnntZTWsLf5YGZ7qwKulIl5hw= +go.opentelemetry.io/collector/service v0.103.0 h1:e4Eri4jo+YOuEK0+/JE9SUdT/NZaJ2jz/ROJlmLn96s= +go.opentelemetry.io/collector/service v0.103.0/go.mod h1:p1mlniiC1MuPN5FANYJYgf5V5CGFP0hNqWfI8t7Aw8M= +go.opentelemetry.io/contrib/config v0.7.0 h1:b1rK5tGTuhhPirJiMxOcyQfZs76j2VapY6ODn3b2Dbs= +go.opentelemetry.io/contrib/config v0.7.0/go.mod h1:8tdiFd8N5etOi3XzBmAoMxplEzI3TcL8dU5rM5/xcOQ= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0 h1:vS1Ao/R55RNV4O7TA2Qopok8yN+X0LIP6RVWLFkprck= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0/go.mod h1:BMsdeOxN04K0L5FNUBfjFdvwWGNe/rkmSwH4Aelu/X0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0 h1:IjgxbomVrV9za6bRi8fWCNXENs0co37SZedQilP2hm0= +go.opentelemetry.io/contrib/propagators/b3 v1.27.0/go.mod h1:Dv9obQz25lCisDvvs4dy28UPh974CxkahRDUPsY7y9E= +go.opentelemetry.io/contrib/zpages v0.52.0 h1:MPgkMy0Cp3O5EdfVXP0ss3ujhEibysTM4eszx7E7d+E= +go.opentelemetry.io/contrib/zpages v0.52.0/go.mod h1:fqG5AFdoYru3A3DnhibVuaaEfQV2WKxE7fYE1jgDRwk= +go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= +go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= +go.opentelemetry.io/otel/bridge/opencensus v1.27.0 h1:ao9aGGHd+G4YfjBpGs6vbkvt5hoC67STlJA9fCnOAcs= +go.opentelemetry.io/otel/bridge/opencensus v1.27.0/go.mod h1:uRvWtAAXzyVOST0WMPX5JHGBaAvBws+2F8PcC5gMnTk= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.27.0 h1:bFgvUr3/O4PHj3VQcFEuYKvRZJX1SJDQ+11JXuSB3/w= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.27.0/go.mod h1:xJntEd2KL6Qdg5lwp97HMLQDVeAhrYxmzFseAMDPQ8I= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.27.0 h1:CIHWikMsN3wO+wq1Tp5VGdVRTcON+DmOJSfDjXypKOc= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.27.0/go.mod h1:TNupZ6cxqyFEpLXAZW7On+mLFL0/g0TE3unIYL91xWc= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 h1:R9DE4kQ4k+YtfLI2ULwX82VtNQ2J8yZmA7ZIF/D+7Mc= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0/go.mod h1:OQFyQVrDlbe+R7xrEyDr/2Wr67Ol0hRUgsfA+V5A95s= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 h1:qFffATk0X+HD+f1Z8lswGiOQYKHRlzfmdJm0wEaVrFA= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0 h1:QY7/0NeRPKlzusf40ZE4t1VlMKbqSNT7cJRYzWuja0s= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0/go.mod h1:HVkSiDhTM9BoUJU8qE6j2eSWLLXvi1USXjyd2BXT8PY= +go.opentelemetry.io/otel/exporters/prometheus v0.49.0 h1:Er5I1g/YhfYv9Affk9nJLfH/+qCCVVg1f2R9AbJfqDQ= +go.opentelemetry.io/otel/exporters/prometheus v0.49.0/go.mod h1:KfQ1wpjf3zsHjzP149P4LyAwWRupc6c7t1ZJ9eXpKQM= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.27.0 h1:/jlt1Y8gXWiHG9FBx6cJaIC5hYx5Fe64nC8w5Cylt/0= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.27.0/go.mod h1:bmToOGOBZ4hA9ghphIc1PAf66VA8KOtsuy3+ScStG20= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.27.0 h1:/0YaXu3755A/cFbtXp+21lkXgI0QE5avTWA2HjU9/WE= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.27.0/go.mod h1:m7SFxp0/7IxmJPLIY3JhOcU9CoFzDaCPL6xxQIxhA+o= +go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= +go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= +go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= +go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= +go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= +go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= +go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= +go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/proto/otlp v1.2.0 h1:pVeZGk7nXDC9O2hncA6nHldxEjm6LByfA2aN8IOkz94= +go.opentelemetry.io/proto/otlp v1.2.0/go.mod h1:gGpR8txAl5M03pDhMC79G6SdqNV26naRm/KDsgaHD8A= 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.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -873,9 +866,10 @@ 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-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= -golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= +golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -886,8 +880,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-20240205201215-2c58cdc269a3 h1:/RIbNt/Zr7rVhIkQhooTxCxFcdWLGIKnZA4IXNFSrvo= -golang.org/x/exp v0.0.0-20240205201215-2c58cdc269a3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= +golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= +golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -911,8 +905,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.1-0.20200828183125-ce943fd02449/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.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= -golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -954,17 +948,18 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= -golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= +golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= +golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= 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= @@ -978,8 +973,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-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= 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= @@ -1043,19 +1038,20 @@ 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.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 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.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= -golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= -golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= +golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= 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= @@ -1064,17 +1060,15 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/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.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1125,8 +1119,8 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw= -golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= 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= @@ -1157,8 +1151,6 @@ google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -1188,10 +1180,10 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 h1:RFiFrvy37/mpSpdySBDrUdipW/dHwsRwh3J3+A9VgT4= -google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237/go.mod h1:Z5Iiy3jtmioajWHDGFk7CeugTyHtPvMHA4UTmUkyalE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda h1:LI5DOvAxUPMv/50agcLLoo+AdWc1irS9Rzz4vPuD1V4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 h1:P8OJ/WCl/Xo4E4zoe4/bifHpSmmKwARqyqE4nW6J2GQ= +google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:RGnPtTG7r4i8sPlNyDeikXF99hMM+hN6QMm4ooG9g2g= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240520151616-dc85e6b867a5 h1:Q2RxlXqh1cgzzUgV261vBO2jI5R/3DD1J2pM0nI4NhU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1205,8 +1197,8 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= -google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= +google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1218,9 +1210,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/src/cmd/main.go b/src/cmd/main.go index 62eb94c5..56f1dbfc 100644 --- a/src/cmd/main.go +++ b/src/cmd/main.go @@ -26,7 +26,7 @@ func main() { info := component.BuildInfo{ Command: "swi-k8s-opentelemetry-collector", Description: "SolarWinds distribution for OpenTelemetry", - Version: "0.10.0", + Version: "0.10.1", } if err := run(otelcol.CollectorSettings{BuildInfo: info, Factories: components}); err != nil { diff --git a/src/processor/k8sattributesprocessor/README.md b/src/processor/k8sattributesprocessor/README.md index 91451cde..4ef55573 100644 --- a/src/processor/k8sattributesprocessor/README.md +++ b/src/processor/k8sattributesprocessor/README.md @@ -273,8 +273,5 @@ as tags. ## Timestamp Format -By default, the `k8s.pod.start_time` uses [Time.String()](https://pkg.go.dev/time#Time.String) to format the -timestamp value. - -The `k8sattr.rfc3339` feature gate can be enabled to format the `k8s.pod.start_time` timestamp value with an RFC3339 -compliant timestamp. See [Time.MarshalText()](https://pkg.go.dev/time#Time.MarshalText) for more information. +By default, the `k8s.pod.start_time` uses [Time.MarshalText()](https://pkg.go.dev/time#Time.MarshalText) to format the +timestamp value as an RFC3339 compliant timestamp. diff --git a/src/processor/k8sattributesprocessor/client_test.go b/src/processor/k8sattributesprocessor/client_test.go index b012e92c..a39714b0 100644 --- a/src/processor/k8sattributesprocessor/client_test.go +++ b/src/processor/k8sattributesprocessor/client_test.go @@ -18,7 +18,7 @@ package k8sattributesprocessor import ( - "go.uber.org/zap" + "go.opentelemetry.io/collector/component" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/kubernetes/fake" @@ -49,7 +49,7 @@ func selectors() (labels.Selector, fields.Selector) { // newFakeClient instantiates a new FakeClient object and satisfies the ClientProvider type func newFakeClient( - _ *zap.Logger, + _ component.TelemetrySettings, apiCfg k8sconfig.APIConfig, rules kube.ExtractionRules, filters kube.Filters, diff --git a/src/processor/k8sattributesprocessor/config_test.go b/src/processor/k8sattributesprocessor/config_test.go index 6c297cd4..64d495ba 100644 --- a/src/processor/k8sattributesprocessor/config_test.go +++ b/src/processor/k8sattributesprocessor/config_test.go @@ -442,7 +442,7 @@ func TestLoadConfig(t *testing.T) { sub, err := cm.Sub(tt.id.String()) require.NoError(t, err) - require.NoError(t, component.UnmarshalConfig(sub, cfg)) + require.NoError(t, sub.Unmarshal(cfg)) if tt.expected == nil { err = component.ValidateConfig(cfg) diff --git a/src/processor/k8sattributesprocessor/factory.go b/src/processor/k8sattributesprocessor/factory.go index e684ac37..75f3758f 100644 --- a/src/processor/k8sattributesprocessor/factory.go +++ b/src/processor/k8sattributesprocessor/factory.go @@ -57,7 +57,7 @@ func createDefaultConfig() component.Config { func createTracesProcessor( ctx context.Context, - params processor.CreateSettings, + params processor.Settings, cfg component.Config, next consumer.Traces, ) (processor.Traces, error) { @@ -66,7 +66,7 @@ func createTracesProcessor( func createLogsProcessor( ctx context.Context, - params processor.CreateSettings, + params processor.Settings, cfg component.Config, nextLogsConsumer consumer.Logs, ) (processor.Logs, error) { @@ -75,7 +75,7 @@ func createLogsProcessor( func createMetricsProcessor( ctx context.Context, - params processor.CreateSettings, + params processor.Settings, cfg component.Config, nextMetricsConsumer consumer.Metrics, ) (processor.Metrics, error) { @@ -84,7 +84,7 @@ func createMetricsProcessor( func createTracesProcessorWithOptions( ctx context.Context, - set processor.CreateSettings, + set processor.Settings, cfg component.Config, next consumer.Traces, options ...option, @@ -104,7 +104,7 @@ func createTracesProcessorWithOptions( func createMetricsProcessorWithOptions( ctx context.Context, - set processor.CreateSettings, + set processor.Settings, cfg component.Config, nextMetricsConsumer consumer.Metrics, options ...option, @@ -124,7 +124,7 @@ func createMetricsProcessorWithOptions( func createLogsProcessorWithOptions( ctx context.Context, - set processor.CreateSettings, + set processor.Settings, cfg component.Config, nextLogsConsumer consumer.Logs, options ...option, @@ -143,7 +143,7 @@ func createLogsProcessorWithOptions( } func createKubernetesProcessor( - params processor.CreateSettings, + params processor.Settings, cfg component.Config, options ...option, ) *kubernetesprocessor { diff --git a/src/processor/k8sattributesprocessor/factory_test.go b/src/processor/k8sattributesprocessor/factory_test.go index 03ef9251..0cf4f881 100644 --- a/src/processor/k8sattributesprocessor/factory_test.go +++ b/src/processor/k8sattributesprocessor/factory_test.go @@ -41,7 +41,7 @@ func TestCreateProcessor(t *testing.T) { kubeClientProvider = newFakeClient cfg := factory.CreateDefaultConfig() - params := processortest.NewNopCreateSettings() + params := processortest.NewNopSettings() tp, err := factory.CreateTracesProcessor(context.Background(), params, cfg, consumertest.NewNop()) assert.NotNil(t, tp) diff --git a/src/processor/k8sattributesprocessor/generated_component_telemetry_test.go b/src/processor/k8sattributesprocessor/generated_component_telemetry_test.go new file mode 100644 index 00000000..f9dd7763 --- /dev/null +++ b/src/processor/k8sattributesprocessor/generated_component_telemetry_test.go @@ -0,0 +1,76 @@ +// Code generated by mdatagen. DO NOT EDIT. + +package k8sattributesprocessor + +import ( + "context" + "testing" + + "github.com/stretchr/testify/require" + sdkmetric "go.opentelemetry.io/otel/sdk/metric" + "go.opentelemetry.io/otel/sdk/metric/metricdata" + "go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest" + + "go.opentelemetry.io/collector/component" + "go.opentelemetry.io/collector/processor" + "go.opentelemetry.io/collector/processor/processortest" +) + +type componentTestTelemetry struct { + reader *sdkmetric.ManualReader + meterProvider *sdkmetric.MeterProvider +} + +func (tt *componentTestTelemetry) NewSettings() processor.Settings { + settings := processortest.NewNopSettings() + settings.MeterProvider = tt.meterProvider + settings.ID = component.NewID(component.MustNewType("k8sattributes")) + + return settings +} + +func setupTestTelemetry() componentTestTelemetry { + reader := sdkmetric.NewManualReader() + return componentTestTelemetry{ + reader: reader, + meterProvider: sdkmetric.NewMeterProvider(sdkmetric.WithReader(reader)), + } +} + +func (tt *componentTestTelemetry) assertMetrics(t *testing.T, expected []metricdata.Metrics) { + var md metricdata.ResourceMetrics + require.NoError(t, tt.reader.Collect(context.Background(), &md)) + // ensure all required metrics are present + for _, want := range expected { + got := tt.getMetric(want.Name, md) + metricdatatest.AssertEqual(t, want, got, metricdatatest.IgnoreTimestamp()) + } + + // ensure no additional metrics are emitted + require.Equal(t, len(expected), tt.len(md)) +} + +func (tt *componentTestTelemetry) getMetric(name string, got metricdata.ResourceMetrics) metricdata.Metrics { + for _, sm := range got.ScopeMetrics { + for _, m := range sm.Metrics { + if m.Name == name { + return m + } + } + } + + return metricdata.Metrics{} +} + +func (tt *componentTestTelemetry) len(got metricdata.ResourceMetrics) int { + metricsCount := 0 + for _, sm := range got.ScopeMetrics { + metricsCount += len(sm.Metrics) + } + + return metricsCount +} + +func (tt *componentTestTelemetry) Shutdown(ctx context.Context) error { + return tt.meterProvider.Shutdown(ctx) +} diff --git a/src/processor/k8sattributesprocessor/go.mod b/src/processor/k8sattributesprocessor/go.mod index 41e18595..4deae214 100644 --- a/src/processor/k8sattributesprocessor/go.mod +++ b/src/processor/k8sattributesprocessor/go.mod @@ -4,19 +4,20 @@ go 1.22 require ( github.com/google/go-cmp v0.6.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.98.0 + github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.103.0 github.com/stretchr/testify v1.9.0 - go.opencensus.io v0.24.0 - go.opentelemetry.io/collector v0.98.0 - go.opentelemetry.io/collector/component v0.98.0 - go.opentelemetry.io/collector/confmap v0.98.0 - go.opentelemetry.io/collector/consumer v0.98.0 - go.opentelemetry.io/collector/featuregate v1.5.0 - go.opentelemetry.io/collector/pdata v1.5.0 - go.opentelemetry.io/collector/processor v0.98.0 - go.opentelemetry.io/collector/semconv v0.98.0 - go.opentelemetry.io/otel/metric v1.25.0 - go.opentelemetry.io/otel/trace v1.25.0 + go.opentelemetry.io/collector v0.103.0 + go.opentelemetry.io/collector/component v0.103.0 + go.opentelemetry.io/collector/config/configtelemetry v0.103.0 + go.opentelemetry.io/collector/confmap v0.103.0 + go.opentelemetry.io/collector/consumer v0.103.0 + go.opentelemetry.io/collector/featuregate v1.10.0 + go.opentelemetry.io/collector/pdata v1.10.0 + go.opentelemetry.io/collector/processor v0.103.0 + go.opentelemetry.io/collector/semconv v0.103.0 + go.opentelemetry.io/otel/metric v1.27.0 + go.opentelemetry.io/otel/sdk/metric v1.27.0 + go.opentelemetry.io/otel/trace v1.27.0 go.uber.org/goleak v1.3.0 go.uber.org/zap v1.27.0 k8s.io/api v0.29.3 @@ -26,7 +27,7 @@ require ( require ( github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/evanphx/json-patch v5.6.0+incompatible // indirect @@ -37,12 +38,11 @@ require ( github.com/go-openapi/swag v0.22.3 // indirect github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/gnostic-models v0.6.8 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/hashicorp/go-version v1.6.0 // indirect + github.com/hashicorp/go-version v1.7.0 // indirect github.com/imdario/mergo v0.3.13 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect @@ -59,28 +59,25 @@ require ( github.com/openshift/client-go v0.0.0-20210521082421-73d9475a9142 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.19.0 // indirect + github.com/prometheus/client_golang v1.19.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.48.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect + github.com/prometheus/common v0.54.0 // indirect + github.com/prometheus/procfs v0.15.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.98.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.98.0 // indirect - go.opentelemetry.io/otel v1.25.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.47.0 // indirect - go.opentelemetry.io/otel/sdk v1.25.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.25.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.103.0 // indirect + go.opentelemetry.io/otel v1.27.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.49.0 // indirect + go.opentelemetry.io/otel/sdk v1.27.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/net v0.24.0 // indirect - golang.org/x/oauth2 v0.16.0 // indirect - golang.org/x/sys v0.19.0 // indirect - golang.org/x/term v0.19.0 // indirect - golang.org/x/text v0.14.0 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/oauth2 v0.19.0 // indirect + golang.org/x/sys v0.21.0 // indirect + golang.org/x/term v0.21.0 // indirect + golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.4.0 // indirect - google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect - google.golang.org/grpc v1.62.1 // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240520151616-dc85e6b867a5 // indirect + google.golang.org/grpc v1.64.0 // indirect + google.golang.org/protobuf v1.34.2 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/src/processor/k8sattributesprocessor/go.sum b/src/processor/k8sattributesprocessor/go.sum index 6a689dc3..5de80013 100644 --- a/src/processor/k8sattributesprocessor/go.sum +++ b/src/processor/k8sattributesprocessor/go.sum @@ -789,8 +789,9 @@ github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= 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.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -900,7 +901,6 @@ github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/ github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= @@ -1018,8 +1018,8 @@ github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:Fecb github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= -github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= -github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= @@ -1107,8 +1107,8 @@ github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGV github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg= github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.98.0 h1:i5+XkPXUFqbNnOYngPq1b7nZ1PyGdAtLwcsEGHJ79yw= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.98.0/go.mod h1:JRRvo6HJ8jtHzHA2/H4+bIZsO5M8gpSXDLZ06fHN7II= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.103.0 h1:MZuxGGLUIMbErgwUeT9yqFXrsMYveGoPjck9OxHtT0A= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.103.0/go.mod h1:VS66oUydCMwiWl1BFmLs7iNy4lGsfVYsriXr/d1fpAk= github.com/openshift/api v0.0.0-20180801171038-322a19404e37 h1:05irGU4HK4IauGGDbsk+ZHrm1wOzMLYjMlfaiqMrBYc= github.com/openshift/api v0.0.0-20180801171038-322a19404e37/go.mod h1:dh9o4Fs58gpFXGSYfnVxGR9PnV53I8TW84pQaJDdGiY= github.com/openshift/api v0.0.0-20210521075222-e273a339932a/go.mod h1:izBmoXbUu3z5kUa4FjZhvekTsyzIWiOoaIgJiZBBMQs= @@ -1128,18 +1128,18 @@ github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZ github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= 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/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= -github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= +github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= +github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= -github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= +github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= +github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= +github.com/prometheus/procfs v0.15.0/go.mod h1:Y0RJ/Y5g5wJpkTisOtqwDSo4HwhGmLB4VQSw2sQJLHk= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= @@ -1191,40 +1191,39 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= 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.98.0 h1:O7bpARGWzNfFQEYevLl4iigDrpGTJY3vV/kKqNZzMOk= -go.opentelemetry.io/collector v0.98.0/go.mod h1:fvPM+tBML07uvAP1MV2msYPSYJ9U/lgE1jDb3AFBaMM= -go.opentelemetry.io/collector/component v0.98.0 h1:0TMaBOyCdABiVLFdGOgG8zd/1IeGldCinYonbY08xWk= -go.opentelemetry.io/collector/component v0.98.0/go.mod h1:F6zyQLsoExl6r2q6WWZm8rmSSALbwG2zwIHLrMzZVio= -go.opentelemetry.io/collector/config/configtelemetry v0.98.0 h1:f8RNZ1l/kYPPoxFmKKvTUli8iON7CMsm85KM38PVNts= -go.opentelemetry.io/collector/config/configtelemetry v0.98.0/go.mod h1:YV5PaOdtnU1xRomPcYqoHmyCr48tnaAREeGO96EZw8o= -go.opentelemetry.io/collector/confmap v0.98.0 h1:qQreBlrqio1y7uhrAvr+W86YbQ6fw7StgkbYpvJ2vVc= -go.opentelemetry.io/collector/confmap v0.98.0/go.mod h1:BWKPIpYeUzSG6ZgCJMjF7xsLvyrvJCfYURl57E5vhiQ= -go.opentelemetry.io/collector/consumer v0.98.0 h1:47zJ5HFKXVA0RciuwkZnPU5W8j0TYUxToB1/zzzgEhs= -go.opentelemetry.io/collector/consumer v0.98.0/go.mod h1:c2edTq38uVJET/NE6VV7/Qpyznnlz8b6VE7J6TXD57c= -go.opentelemetry.io/collector/featuregate v1.5.0 h1:uK8qnYQKz1TMkK+FDTFsywg/EybW/gbnOUaPNUkRznM= -go.opentelemetry.io/collector/featuregate v1.5.0/go.mod h1:w7nUODKxEi3FLf1HslCiE6YWtMtOOrMnSwsDam8Mg9w= -go.opentelemetry.io/collector/pdata v1.5.0 h1:1fKTmUpr0xCOhP/B0VEvtz7bYPQ45luQ8XFyA07j8LE= -go.opentelemetry.io/collector/pdata v1.5.0/go.mod h1:TYj8aKRWZyT/KuKQXKyqSEvK/GV+slFaDMEI+Ke64Yw= -go.opentelemetry.io/collector/pdata/testdata v0.98.0 h1:8gohV+LFXqMzuDwfOOQy9GcZBOX0C9xGoQkoeXFTzmI= -go.opentelemetry.io/collector/pdata/testdata v0.98.0/go.mod h1:B/IaHcf6+RtxI292CZu9TjfYQdi1n4+v6b8rHEonpKs= -go.opentelemetry.io/collector/processor v0.98.0 h1:onrg8a99lToytbHF148Bg9a7DfNk31B+p6UHouiiVTw= -go.opentelemetry.io/collector/processor v0.98.0/go.mod h1:QxgzjmJI12DQWN0LIHmZBOR7HRzPuVWFW4oqTdrS1ho= -go.opentelemetry.io/collector/semconv v0.98.0 h1:zO4L4TmlxXoYu8UgPeYElGY19BW7wPjM+quL5CzoOoY= -go.opentelemetry.io/collector/semconv v0.98.0/go.mod h1:8ElcRZ8Cdw5JnvhTOQOdYizkJaQ10Z2fS+R6djOnj6A= -go.opentelemetry.io/otel v1.25.0 h1:gldB5FfhRl7OJQbUHt/8s0a7cE8fbsPAtdpRaApKy4k= -go.opentelemetry.io/otel v1.25.0/go.mod h1:Wa2ds5NOXEMkCmUou1WA7ZBfLTHWIsp034OVD7AO+Vg= -go.opentelemetry.io/otel/exporters/prometheus v0.47.0 h1:OL6yk1Z/pEGdDnrBbxSsH+t4FY1zXfBRGd7bjwhlMLU= -go.opentelemetry.io/otel/exporters/prometheus v0.47.0/go.mod h1:xF3N4OSICZDVbbYZydz9MHFro1RjmkPUKEvar2utG+Q= -go.opentelemetry.io/otel/metric v1.25.0 h1:LUKbS7ArpFL/I2jJHdJcqMGxkRdxpPHE0VU/D4NuEwA= -go.opentelemetry.io/otel/metric v1.25.0/go.mod h1:rkDLUSd2lC5lq2dFNrX9LGAbINP5B7WBkC78RXCpH5s= -go.opentelemetry.io/otel/sdk v1.25.0 h1:PDryEJPC8YJZQSyLY5eqLeafHtG+X7FWnf3aXMtxbqo= -go.opentelemetry.io/otel/sdk v1.25.0/go.mod h1:oFgzCM2zdsxKzz6zwpTZYLLQsFwc+K0daArPdIhuxkw= -go.opentelemetry.io/otel/sdk/metric v1.25.0 h1:7CiHOy08LbrxMAp4vWpbiPcklunUshVpAvGBrdDRlGw= -go.opentelemetry.io/otel/sdk/metric v1.25.0/go.mod h1:LzwoKptdbBBdYfvtGCzGwk6GWMA3aUzBOwtQpR6Nz7o= -go.opentelemetry.io/otel/trace v1.25.0 h1:tqukZGLwQYRIFtSQM2u2+yfMVTgGVeqRLPUYx1Dq6RM= -go.opentelemetry.io/otel/trace v1.25.0/go.mod h1:hCCs70XM/ljO+BeQkyFnbK28SBIJ/Emuha+ccrCRT7I= +go.opentelemetry.io/collector v0.103.0 h1:mssWo1y31p1F/SRsSBnVUX6YocgawCqM1blpE+hkWog= +go.opentelemetry.io/collector v0.103.0/go.mod h1:mgqdTFB7QCYiOeEdJSSEktovPqy+2fw4oTKJzyeSB0U= +go.opentelemetry.io/collector/component v0.103.0 h1:j52YAsp8EmqYUotVUwhovkqFZGuxArEkk65V4TI46NE= +go.opentelemetry.io/collector/component v0.103.0/go.mod h1:jKs19tGtCO8Hr5/YM0F+PoFcl8SVe/p4Ge30R6srkbc= +go.opentelemetry.io/collector/config/configtelemetry v0.103.0 h1:KLbhkFqdw9D31t0IhJ/rnhMRvz/s14eie0fKfm5xWns= +go.opentelemetry.io/collector/config/configtelemetry v0.103.0/go.mod h1:WxWKNVAQJg/Io1nA3xLgn/DWLE/W1QOB2+/Js3ACi40= +go.opentelemetry.io/collector/confmap v0.103.0 h1:qKKZyWzropSKfgtGv12JzADOXNgThqH1Vx6qzblBE24= +go.opentelemetry.io/collector/confmap v0.103.0/go.mod h1:TlOmqe/Km3K6WgxyhEAdCb/V1Yp6eSU76fCoiluEa88= +go.opentelemetry.io/collector/consumer v0.103.0 h1:L/7SA/U2ua5L4yTLChnI9I+IFGKYU5ufNQ76QKYcPYs= +go.opentelemetry.io/collector/consumer v0.103.0/go.mod h1:7jdYb9kSSOsu2R618VRX0VJ+Jt3OrDvvUsDToHTEOLI= +go.opentelemetry.io/collector/featuregate v1.10.0 h1:krSqokHTp7JthgmtewysqHuOAkcuuZl7G2n91s7HygE= +go.opentelemetry.io/collector/featuregate v1.10.0/go.mod h1:PsOINaGgTiFc+Tzu2K/X2jP+Ngmlp7YKGV1XrnBkH7U= +go.opentelemetry.io/collector/pdata v1.10.0 h1:oLyPLGvPTQrcRT64ZVruwvmH/u3SHTfNo01pteS4WOE= +go.opentelemetry.io/collector/pdata v1.10.0/go.mod h1:IHxHsp+Jq/xfjORQMDJjSH6jvedOSTOyu3nbxqhWSYE= +go.opentelemetry.io/collector/pdata/testdata v0.103.0 h1:iI6NOE0L2je/bxlWzAWHQ/yCtnGupgv42Hl9Al1q/g4= +go.opentelemetry.io/collector/pdata/testdata v0.103.0/go.mod h1:tLzRhb/h37/9wFRQVr+CxjKi5qmhSRpCAiOlhwRkeEk= +go.opentelemetry.io/collector/processor v0.103.0 h1:YZ+LRuHKtOam7SCeLkJAP6bS1d6XxeYP22OyMN3VP0s= +go.opentelemetry.io/collector/processor v0.103.0/go.mod h1:/mxyh0NpJgpZycm7iHDpM7i5PdtWvKKdCZf0cyADJfU= +go.opentelemetry.io/collector/semconv v0.103.0 h1:5tlVoZlo9USHAU2Bz4YrEste0Vm5AMufXkYJhAVve1Q= +go.opentelemetry.io/collector/semconv v0.103.0/go.mod h1:yMVUCNoQPZVq/IPfrHrnntZTWsLf5YGZ7qwKulIl5hw= +go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= +go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= +go.opentelemetry.io/otel/exporters/prometheus v0.49.0 h1:Er5I1g/YhfYv9Affk9nJLfH/+qCCVVg1f2R9AbJfqDQ= +go.opentelemetry.io/otel/exporters/prometheus v0.49.0/go.mod h1:KfQ1wpjf3zsHjzP149P4LyAwWRupc6c7t1ZJ9eXpKQM= +go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= +go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= +go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= +go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= +go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= +go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= +go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= +go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= @@ -1379,8 +1378,8 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= 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= @@ -1412,8 +1411,8 @@ golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= -golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= -golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= +golang.org/x/oauth2 v0.19.0 h1:9+E/EZBCbTLNrbN35fHv/a/d/mOBatymz1zbtQrXpIg= +golang.org/x/oauth2 v0.19.0/go.mod h1:vYi7skDa1x015PmRRYZ7+s1cWyPgrPiSYRe4rnsexc8= 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= @@ -1516,8 +1515,8 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 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= @@ -1533,8 +1532,8 @@ golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= -golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= -golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= +golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= +golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= 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= @@ -1554,8 +1553,8 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= 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= @@ -1632,8 +1631,8 @@ golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= -golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA= -golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= 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= @@ -1720,8 +1719,6 @@ google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -1882,8 +1879,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130/go. google.golang.org/genproto/googleapis/rpc v0.0.0-20230731190214-cbb8c96f2d6d/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/genproto/googleapis/rpc v0.0.0-20230803162519-f966b187b2e5/go.mod h1:zBEcrKX2ZOcEkHWxBPAIvYUWOKKMIhYcmNiUIu2ji3I= google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 h1:AjyfHzEPEFp/NpvfN5g+KDla3EMojjhRVZc1i7cj+oM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240520151616-dc85e6b867a5 h1:Q2RxlXqh1cgzzUgV261vBO2jI5R/3DD1J2pM0nI4NhU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1930,8 +1927,8 @@ google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpX google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= -google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= -google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= +google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= 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= @@ -1951,8 +1948,8 @@ google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/src/processor/k8sattributesprocessor/internal/kube/client.go b/src/processor/k8sattributesprocessor/internal/kube/client.go index 048a2402..6d6a8f40 100644 --- a/src/processor/k8sattributesprocessor/internal/kube/client.go +++ b/src/processor/k8sattributesprocessor/internal/kube/client.go @@ -18,12 +18,14 @@ package kube // import "github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor/internal/kube" import ( + "context" "fmt" "regexp" "strings" "sync" "time" + "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/featuregate" conventions "go.opentelemetry.io/collector/semconv/v1.6.1" "go.uber.org/zap" @@ -36,15 +38,15 @@ import ( "k8s.io/client-go/tools/cache" "github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor/internal/observability" + "github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor/internal/metadata" ) -// Upgrade to StageStable in v0.92.0 var enableRFC3339Timestamp = featuregate.GlobalRegistry().MustRegister( "k8sattr.rfc3339", - featuregate.StageBeta, + featuregate.StageStable, featuregate.WithRegisterDescription("When enabled, uses RFC3339 format for k8s.pod.start_time value"), featuregate.WithRegisterFromVersion("v0.82.0"), + featuregate.WithRegisterToVersion("v0.102.0"), ) // WatchClient is the main interface provided by this package to a kubernetes cluster. @@ -82,6 +84,8 @@ type WatchClient struct { PersistentVolumeClient *WatchResourceClient[KubernetesResource] PersistentVolumeClaimClient *WatchResourceClient[KubernetesResource] ServiceClient *WatchResourceClient[KubernetesResource] + + telemetryBuilder *metadata.TelemetryBuilder } // Extract replicaset name from the pod name. Pod name is created using @@ -94,7 +98,7 @@ var cronJobRegex = regexp.MustCompile(`^(.*)-[0-9]+$`) // New initializes a new k8s Client. func New( - logger *zap.Logger, + set component.TelemetrySettings, apiCfg k8sconfig.APIConfig, rules ExtractionRules, filters Filters, @@ -104,15 +108,21 @@ func New( newInformer InformerProvider, newNamespaceInformer InformerProviderNamespace, clientResources map[string]*ClientResource) (Client, error) { + telemetryBuilder, err := metadata.NewTelemetryBuilder(set) + if err != nil { + return nil, err + } + c := &WatchClient{ - logger: logger, - Rules: rules, - Filters: filters, - Associations: associations, - Exclude: exclude, - replicasetRegex: rRegex, - cronJobRegex: cronJobRegex, - stopCh: make(chan struct{}), + logger: set.Logger, + Rules: rules, + Filters: filters, + Associations: associations, + Exclude: exclude, + replicasetRegex: rRegex, + cronJobRegex: cronJobRegex, + stopCh: make(chan struct{}), + telemetryBuilder: telemetryBuilder, } go c.deleteLoop(time.Second*30, defaultPodDeleteGracePeriod) @@ -132,7 +142,7 @@ func New( if err != nil { return nil, err } - logger.Info( + set.Logger.Info( "k8s filtering", zap.String("labelSelector", labelSelector.String()), zap.String("fieldSelector", fieldSelector.String()), @@ -361,18 +371,19 @@ func (c *WatchClient) Stop() { } func (c *WatchClient) handlePodAdd(obj any) { - observability.RecordPodAdded() + c.telemetryBuilder.OtelsvcK8sPodAdded.Add(context.Background(), 1) if pod, ok := obj.(*api_v1.Pod); ok { c.addOrUpdatePod(pod) } else { c.logger.Error("object received was not of type api_v1.Pod", zap.Any("received", obj)) } podTableSize := len(c.Pods) - observability.RecordPodTableSize(int64(podTableSize)) + c.telemetryBuilder.OtelsvcK8sPodTableSize.Record(context.Background(), int64(podTableSize)) + } func (c *WatchClient) handlePodUpdate(_, newPod any) { - observability.RecordPodUpdated() + c.telemetryBuilder.OtelsvcK8sPodUpdated.Add(context.Background(), 1) if pod, ok := newPod.(*api_v1.Pod); ok { // TODO: update or remove based on whether container is ready/unready?. c.addOrUpdatePod(pod) @@ -380,22 +391,22 @@ func (c *WatchClient) handlePodUpdate(_, newPod any) { c.logger.Error("object received was not of type api_v1.Pod", zap.Any("received", newPod)) } podTableSize := len(c.Pods) - observability.RecordPodTableSize(int64(podTableSize)) + c.telemetryBuilder.OtelsvcK8sPodTableSize.Record(context.Background(), int64(podTableSize)) } func (c *WatchClient) handlePodDelete(obj any) { - observability.RecordPodDeleted() + c.telemetryBuilder.OtelsvcK8sPodDeleted.Add(context.Background(), 1) if pod, ok := ignoreDeletedFinalStateUnknown(obj).(*api_v1.Pod); ok { c.forgetPod(pod) } else { c.logger.Error("object received was not of type api_v1.Pod", zap.Any("received", obj)) } podTableSize := len(c.Pods) - observability.RecordPodTableSize(int64(podTableSize)) + c.telemetryBuilder.OtelsvcK8sPodTableSize.Record(context.Background(), int64(podTableSize)) } func (c *WatchClient) handleNamespaceAdd(obj any) { - observability.RecordNamespaceAdded() + c.telemetryBuilder.OtelsvcK8sNamespaceAdded.Add(context.Background(), 1) if namespace, ok := obj.(*api_v1.Namespace); ok { c.addOrUpdateNamespace(namespace) } else { @@ -404,7 +415,7 @@ func (c *WatchClient) handleNamespaceAdd(obj any) { } func (c *WatchClient) handleNamespaceUpdate(_, newNamespace any) { - observability.RecordNamespaceUpdated() + c.telemetryBuilder.OtelsvcK8sNamespaceUpdated.Add(context.Background(), 1) if namespace, ok := newNamespace.(*api_v1.Namespace); ok { c.addOrUpdateNamespace(namespace) } else { @@ -413,7 +424,7 @@ func (c *WatchClient) handleNamespaceUpdate(_, newNamespace any) { } func (c *WatchClient) handleNamespaceDelete(obj any) { - observability.RecordNamespaceDeleted() + c.telemetryBuilder.OtelsvcK8sNamespaceDeleted.Add(context.Background(), 1) if namespace, ok := ignoreDeletedFinalStateUnknown(obj).(*api_v1.Namespace); ok { c.m.Lock() if ns, ok := c.Namespaces[namespace.Name]; ok { @@ -459,7 +470,7 @@ func (c *WatchClient) deleteLoop(interval time.Duration, gracePeriod time.Durati } } podTableSize := len(c.Pods) - observability.RecordPodTableSize(int64(podTableSize)) + c.telemetryBuilder.OtelsvcK8sPodTableSize.Record(context.Background(), int64(podTableSize)) c.m.Unlock() case <-c.stopCh: @@ -479,7 +490,7 @@ func (c *WatchClient) GetPod(identifier PodIdentifier) (*Pod, bool) { } return pod, ok } - observability.RecordIPLookupMiss() + c.telemetryBuilder.OtelsvcK8sIPLookupMiss.Add(context.Background(), 1) return nil, false } diff --git a/src/processor/k8sattributesprocessor/internal/kube/client_resource.go b/src/processor/k8sattributesprocessor/internal/kube/client_resource.go index 7501772e..80c7651c 100644 --- a/src/processor/k8sattributesprocessor/internal/kube/client_resource.go +++ b/src/processor/k8sattributesprocessor/internal/kube/client_resource.go @@ -15,11 +15,12 @@ package kube // import "github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor/internal/kube" import ( + "context" "strings" "time" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor/internal/observability" conventions "go.opentelemetry.io/collector/semconv/v1.6.1" + "go.opentelemetry.io/otel/metric" "go.uber.org/zap" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/tools/cache" @@ -56,10 +57,10 @@ func NewWatchStatefulSetClient( MetadataFromStatefulSet, conventions.AttributeK8SStatefulSetName, conventions.AttributeK8SStatefulSetUID, - observability.RecordStatefulSetTableSize, - observability.RecordStatefulSetAdded, - observability.RecordStatefulSetUpdated, - observability.RecordStatefulSetDeleted, + client.telemetryBuilder.OtelsvcK8sStatefulSetTableSize, + client.telemetryBuilder.OtelsvcK8sPodAdded, + client.telemetryBuilder.OtelsvcK8sPodUpdated, + client.telemetryBuilder.OtelsvcK8sPodDeleted, newStatefulSetSharedInformer, ) } @@ -74,10 +75,10 @@ func NewWatchDeploymentClient( MetadataFromDeployment, conventions.AttributeK8SDeploymentName, conventions.AttributeK8SDeploymentUID, - observability.RecordDeploymentTableSize, - observability.RecordDeploymentAdded, - observability.RecordDeploymentUpdated, - observability.RecordDeploymentDeleted, + client.telemetryBuilder.OtelsvcK8sDeploymentTableSize, + client.telemetryBuilder.OtelsvcK8sDeploymentAdded, + client.telemetryBuilder.OtelsvcK8sDeploymentUpdated, + client.telemetryBuilder.OtelsvcK8sDeploymentDeleted, newDeploymentSharedInformer, ) } @@ -91,10 +92,10 @@ func NewWatchReplicaSetClient( MetadataFromReplicaSet, conventions.AttributeK8SReplicaSetName, conventions.AttributeK8SReplicaSetUID, - observability.RecordReplicaSetTableSize, - observability.RecordReplicaSetAdded, - observability.RecordReplicaSetUpdated, - observability.RecordReplicaSetDeleted, + client.telemetryBuilder.OtelsvcK8sReplicasetTableSize, + client.telemetryBuilder.OtelsvcK8sReplicasetAdded, + client.telemetryBuilder.OtelsvcK8sReplicasetUpdated, + client.telemetryBuilder.OtelsvcK8sReplicasetDeleted, newReplicaSetSharedInformer, ) } @@ -108,10 +109,10 @@ func NewWatchDaemonSetClient( MetadataFromDaemonSet, conventions.AttributeK8SDaemonSetName, conventions.AttributeK8SDaemonSetUID, - observability.RecordDaemonSetTableSize, - observability.RecordDaemonSetAdded, - observability.RecordDaemonSetUpdated, - observability.RecordDaemonSetDeleted, + client.telemetryBuilder.OtelsvcK8sDaemonSetTableSize, + client.telemetryBuilder.OtelsvcK8sDaemonSetAdded, + client.telemetryBuilder.OtelsvcK8sDaemonSetUpdated, + client.telemetryBuilder.OtelsvcK8sDaemonSetDeleted, newDaemonSetSharedInformer, ) } @@ -125,10 +126,10 @@ func NewWatchJobClient( MetadataFromJob, conventions.AttributeK8SJobName, conventions.AttributeK8SJobUID, - observability.RecordJobTableSize, - observability.RecordJobAdded, - observability.RecordJobUpdated, - observability.RecordJobDeleted, + client.telemetryBuilder.OtelsvcK8sJobTableSize, + client.telemetryBuilder.OtelsvcK8sJobAdded, + client.telemetryBuilder.OtelsvcK8sJobUpdated, + client.telemetryBuilder.OtelsvcK8sJobDeleted, newJobSharedInformer, ) } @@ -142,10 +143,10 @@ func NewWatchCronJobClient( MetadataFromCronJob, conventions.AttributeK8SCronJobName, conventions.AttributeK8SCronJobUID, - observability.RecordCronJobTableSize, - observability.RecordCronJobAdded, - observability.RecordCronJobUpdated, - observability.RecordCronJobDeleted, + client.telemetryBuilder.OtelsvcK8sCronJobTableSize, + client.telemetryBuilder.OtelsvcK8sCronJobAdded, + client.telemetryBuilder.OtelsvcK8sCronJobUpdated, + client.telemetryBuilder.OtelsvcK8sCronJobDeleted, newCronJobSharedInformer, ) } @@ -159,10 +160,10 @@ func NewWatchNodeClient( MetadataFromNode, conventions.AttributeK8SNodeName, conventions.AttributeK8SNodeUID, - observability.RecordNodeTableSize, - observability.RecordNodeAdded, - observability.RecordNodeUpdated, - observability.RecordNodeDeleted, + client.telemetryBuilder.OtelsvcK8sNodeTableSize, + client.telemetryBuilder.OtelsvcK8sNodeAdded, + client.telemetryBuilder.OtelsvcK8sNodeUpdated, + client.telemetryBuilder.OtelsvcK8sNodeDeleted, newNodeSharedInformer, ) } @@ -176,10 +177,10 @@ func NewWatchPersistentVolumeClient( MetadataFromPersistentVolume, "k8s.persistentvolume.name", "k8s.persistentvolume.uid", - observability.RecordPersistentVolumeTableSize, - observability.RecordPersistentVolumeAdded, - observability.RecordPersistentVolumeUpdated, - observability.RecordPersistentVolumeDeleted, + client.telemetryBuilder.OtelsvcK8sPersistentVolumeTableSize, + client.telemetryBuilder.OtelsvcK8sPersistentVolumeAdded, + client.telemetryBuilder.OtelsvcK8sPersistentVolumeUpdated, + client.telemetryBuilder.OtelsvcK8sPersistentVolumeDeleted, newPersistentVolumeSharedInformer, ) } @@ -193,10 +194,10 @@ func NewWatchPersistentVolumeClaimClient( MetadataFromPersistentVolumeClaim, "k8s.persistentvolumeclaim.name", "k8s.persistentvolumeclaim.uid", - observability.RecordPersistentVolumeClaimTableSize, - observability.RecordPersistentVolumeClaimAdded, - observability.RecordPersistentVolumeClaimUpdated, - observability.RecordPersistentVolumeClaimDeleted, + client.telemetryBuilder.OtelsvcK8sPersistentVolumeClaimTableSize, + client.telemetryBuilder.OtelsvcK8sPersistentVolumeClaimAdded, + client.telemetryBuilder.OtelsvcK8sPersistentVolumeClaimUpdated, + client.telemetryBuilder.OtelsvcK8sPersistentVolumeClaimDeleted, newPersistentVolumeClaimSharedInformer, ) } @@ -210,10 +211,10 @@ func NewWatchServiceClient( MetadataFromService, "k8s.service.name", "k8s.service.uid", - observability.RecordServiceTableSize, - observability.RecordServiceAdded, - observability.RecordServiceUpdated, - observability.RecordServiceDeleted, + client.telemetryBuilder.OtelsvcK8sServiceTableSize, + client.telemetryBuilder.OtelsvcK8sServiceAdded, + client.telemetryBuilder.OtelsvcK8sServiceUpdated, + client.telemetryBuilder.OtelsvcK8sServiceDeleted, newServiceSharedInformer, ) } @@ -225,10 +226,10 @@ func NewWatchResourceClient[T KubernetesResource]( resourceType string, nameConvention string, uuidConvention string, - observabilityTableSizeFunc func(tableSize int64), - observabilityResourceAdded func(), - observabilityResourceUpdated func(), - observabilityResourceDeleted func(), + observabilityTableSize metric.Int64Gauge, + observabilityResourceAdded metric.Int64Counter, + observabilityResourceUpdated metric.Int64Counter, + observabilityResourceDeleted metric.Int64Counter, informerProvider InformerProvider) (*WatchResourceClient[T], error) { c := &WatchResourceClient[T]{ client: client, @@ -238,13 +239,15 @@ func NewWatchResourceClient[T KubernetesResource]( Associations: clientResource.Associations, Exclude: clientResource.Excludes, - nameConvention: nameConvention, - uuidConvention: uuidConvention, - resourceType: resourceType, - observabilityTableSizeFunc: observabilityTableSizeFunc, - observabilityResourceAdded: observabilityResourceAdded, - observabilityResourceUpdated: observabilityResourceUpdated, - observabilityResourceDeleted: observabilityResourceDeleted, + nameConvention: nameConvention, + uuidConvention: uuidConvention, + resourceType: resourceType, + observabilityTableSizeFunc: func(tableSize int64) { + observabilityTableSize.Record(context.Background(), tableSize) + }, + observabilityResourceAdded: func() { observabilityResourceAdded.Add(context.Background(), 1) }, + observabilityResourceUpdated: func() { observabilityResourceUpdated.Add(context.Background(), 1) }, + observabilityResourceDeleted: func() { observabilityResourceDeleted.Add(context.Background(), 1) }, } go c.deleteLoop(time.Second*30, defaultPodDeleteGracePeriod) diff --git a/src/processor/k8sattributesprocessor/internal/kube/client_test.go b/src/processor/k8sattributesprocessor/internal/kube/client_test.go index 54a9c054..99fdbde9 100644 --- a/src/processor/k8sattributesprocessor/internal/kube/client_test.go +++ b/src/processor/k8sattributesprocessor/internal/kube/client_test.go @@ -24,7 +24,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "go.opentelemetry.io/collector/featuregate" + "go.opentelemetry.io/collector/component/componenttest" "go.uber.org/zap" "go.uber.org/zap/zapcore" "go.uber.org/zap/zaptest/observer" @@ -128,19 +128,19 @@ func namespaceAddAndUpdateTest(t *testing.T, c *WatchClient, handler func(obj an } func TestDefaultClientset(t *testing.T) { - c, err := New(zap.NewNop(), k8sconfig.APIConfig{}, ExtractionRules{}, Filters{}, []Association{}, Excludes{}, nil, nil, nil, map[string]*ClientResource{}) + c, err := New(componenttest.NewNopTelemetrySettings(), k8sconfig.APIConfig{}, ExtractionRules{}, Filters{}, []Association{}, Excludes{}, nil, nil, nil, map[string]*ClientResource{}) assert.Error(t, err) assert.Equal(t, "invalid authType for kubernetes: ", err.Error()) assert.Nil(t, c) - c, err = New(zap.NewNop(), k8sconfig.APIConfig{}, ExtractionRules{}, Filters{}, []Association{}, Excludes{}, newFakeAPIClientset, nil, nil, map[string]*ClientResource{}) + c, err = New(componenttest.NewNopTelemetrySettings(), k8sconfig.APIConfig{}, ExtractionRules{}, Filters{}, []Association{}, Excludes{}, newFakeAPIClientset, nil, nil, map[string]*ClientResource{}) assert.NoError(t, err) assert.NotNil(t, c) } func TestBadFilters(t *testing.T) { c, err := New( - zap.NewNop(), + componenttest.NewNopTelemetrySettings(), k8sconfig.APIConfig{}, ExtractionRules{}, Filters{Fields: []FieldFilter{{Op: selection.Exists}}}, @@ -195,7 +195,7 @@ func TestConstructorErrors(t *testing.T) { return nil, fmt.Errorf("error creating k8s client") } c, err := New( - zap.NewNop(), + componenttest.NewNopTelemetrySettings(), apiCfg, er, ff, @@ -537,115 +537,6 @@ func TestHandlerWrongType(t *testing.T) { } } -func TestRFC3339FeatureGate(t *testing.T) { - err := featuregate.GlobalRegistry().Set(enableRFC3339Timestamp.ID(), true) - require.NoError(t, err) - - c, _ := newTestClientWithRulesAndFilters(t, ExtractionRules{}, Filters{}) - // Disable saving ip into k8s.pod.ip - c.Associations[0].Sources[0].Name = "" - - pod := &api_v1.Pod{ - ObjectMeta: meta_v1.ObjectMeta{ - Name: "auth-service-abc12-xyz3", - UID: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", - Namespace: "ns1", - CreationTimestamp: meta_v1.Now(), - Labels: map[string]string{ - "label1": "lv1", - "label2": "k1=v1 k5=v5 extra!", - }, - Annotations: map[string]string{ - "annotation1": "av1", - }, - OwnerReferences: []meta_v1.OwnerReference{ - { - APIVersion: "apps/v1", - Kind: "ReplicaSet", - Name: "auth-service-66f5996c7c", - UID: "207ea729-c779-401d-8347-008ecbc137e3", - }, - { - APIVersion: "apps/v1", - Kind: "DaemonSet", - Name: "auth-daemonset", - UID: "c94d3814-2253-427a-ab13-2cf609e4dafa", - }, - { - APIVersion: "batch/v1", - Kind: "Job", - Name: "auth-cronjob-27667920", - UID: "59f27ac1-5c71-42e5-abe9-2c499d603706", - }, - { - APIVersion: "apps/v1", - Kind: "StatefulSet", - Name: "pi-statefulset", - UID: "03755eb1-6175-47d5-afd5-05cfc30244d7", - }, - }, - }, - Spec: api_v1.PodSpec{ - NodeName: "node1", - Hostname: "host1", - }, - Status: api_v1.PodStatus{ - PodIP: "1.1.1.1", - }, - } - - rfc3339ts, err := pod.GetCreationTimestamp().MarshalText() - require.NoError(t, err) - - testCases := []struct { - name string - rules ExtractionRules - attributes map[string]string - }{{ - name: "metadata", - rules: ExtractionRules{ - Deployment: true, - Namespace: true, - PodName: true, - PodUID: true, - PodHostName: true, - Node: true, - StartTime: true, - }, - attributes: map[string]string{ - "k8s.deployment.name": "auth-service", - "k8s.namespace.name": "ns1", - "k8s.node.name": "node1", - "k8s.pod.name": "auth-service-abc12-xyz3", - "k8s.pod.hostname": "host1", - "k8s.pod.uid": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", - "k8s.pod.start_time": string(rfc3339ts), - }, - }, - } - for _, tc := range testCases { - t.Run(tc.name, func(t *testing.T) { - c.Rules = tc.rules - - // manually call the data removal functions here - // normally the informer does this, but fully emulating the informer in this test is annoying - transformedPod := removeUnnecessaryPodData(pod, c.Rules) - c.handlePodAdd(transformedPod) - p, ok := c.GetPod(newPodIdentifier("connection", "", pod.Status.PodIP)) - require.True(t, ok) - - assert.Equal(t, len(tc.attributes), len(p.Attributes)) - for k, v := range tc.attributes { - got, ok := p.Attributes[k] - assert.True(t, ok) - assert.Equal(t, v, got) - } - }) - } - err = featuregate.GlobalRegistry().Set(enableRFC3339Timestamp.ID(), false) - require.NoError(t, err) -} - func TestExtractionRules(t *testing.T) { c, _ := newTestClientWithRulesAndFilters(t, ExtractionRules{}, Filters{}) @@ -807,7 +698,11 @@ func TestExtractionRules(t *testing.T) { "k8s.pod.name": "auth-service-abc12-xyz3", "k8s.pod.hostname": "host1", "k8s.pod.uid": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", - "k8s.pod.start_time": pod.GetCreationTimestamp().String(), + "k8s.pod.start_time": func() string { + b, err := pod.GetCreationTimestamp().MarshalText() + require.NoError(t, err) + return string(b) + }(), }, }, { name: "labels", @@ -1539,8 +1434,9 @@ func TestExtractNamespaceLabelsAnnotations(t *testing.T) { } func newTestClientWithRulesAndFilters(t *testing.T, e ExtractionRules, f Filters) (*WatchClient, *observer.ObservedLogs) { + set := componenttest.NewNopTelemetrySettings() observedLogger, logs := observer.New(zapcore.WarnLevel) - logger := zap.New(observedLogger) + set.Logger = zap.New(observedLogger) exclude := Excludes{ Pods: []ExcludePods{ {Name: regexp.MustCompile(`jaeger-agent`)}, @@ -1566,7 +1462,7 @@ func newTestClientWithRulesAndFilters(t *testing.T, e ExtractionRules, f Filters } c, err := New( - logger, + set, k8sconfig.APIConfig{}, e, f, diff --git a/src/processor/k8sattributesprocessor/internal/kube/kube.go b/src/processor/k8sattributesprocessor/internal/kube/kube.go index 3801ddfb..44690434 100644 --- a/src/processor/k8sattributesprocessor/internal/kube/kube.go +++ b/src/processor/k8sattributesprocessor/internal/kube/kube.go @@ -22,7 +22,7 @@ import ( "regexp" "time" - "go.uber.org/zap" + "go.opentelemetry.io/collector/component" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/selection" "k8s.io/client-go/kubernetes" @@ -109,7 +109,7 @@ type Client interface { // ClientProvider defines a func type that returns a new Client. type ClientProvider func( - *zap.Logger, + component.TelemetrySettings, k8sconfig.APIConfig, ExtractionRules, Filters, diff --git a/src/processor/k8sattributesprocessor/internal/metadata/generated_config_test.go b/src/processor/k8sattributesprocessor/internal/metadata/generated_config_test.go index d6f9a36b..225e68a3 100644 --- a/src/processor/k8sattributesprocessor/internal/metadata/generated_config_test.go +++ b/src/processor/k8sattributesprocessor/internal/metadata/generated_config_test.go @@ -9,7 +9,6 @@ import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/stretchr/testify/require" - "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/confmap/confmaptest" ) @@ -95,7 +94,7 @@ func loadResourceAttributesConfig(t *testing.T, name string) ResourceAttributesC sub, err = sub.Sub("resource_attributes") require.NoError(t, err) cfg := DefaultResourceAttributesConfig() - require.NoError(t, component.UnmarshalConfig(sub, &cfg)) + require.NoError(t, sub.Unmarshal(&cfg)) return cfg } diff --git a/src/processor/k8sattributesprocessor/internal/metadata/generated_status.go b/src/processor/k8sattributesprocessor/internal/metadata/generated_status.go index 4e8e7c57..d6558d22 100644 --- a/src/processor/k8sattributesprocessor/internal/metadata/generated_status.go +++ b/src/processor/k8sattributesprocessor/internal/metadata/generated_status.go @@ -4,9 +4,6 @@ package metadata import ( "go.opentelemetry.io/collector/component" - "go.opentelemetry.io/otel/metric" - "go.opentelemetry.io/otel/trace" - ) var ( @@ -19,11 +16,3 @@ const ( MetricsStability = component.StabilityLevelBeta TracesStability = component.StabilityLevelBeta ) - -func Meter(settings component.TelemetrySettings) metric.Meter { - return settings.MeterProvider.Meter("otelcol/k8sattributes") -} - -func Tracer(settings component.TelemetrySettings) trace.Tracer { - return settings.TracerProvider.Tracer("otelcol/k8sattributes") -} diff --git a/src/processor/k8sattributesprocessor/internal/metadata/generated_telemetry.go b/src/processor/k8sattributesprocessor/internal/metadata/generated_telemetry.go new file mode 100644 index 00000000..bd83df22 --- /dev/null +++ b/src/processor/k8sattributesprocessor/internal/metadata/generated_telemetry.go @@ -0,0 +1,221 @@ +// Copyright 2022 SolarWinds Worldwide, LLC. 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. + +// Source: https://github.com/open-telemetry/opentelemetry-collector-contrib +// Changes customizing the original source code: see CHANGELOG.md in deploy/helm directory + +// Code generated by mdatagen. DO NOT EDIT. + +package metadata + +import ( + "errors" + + "go.opentelemetry.io/otel/metric" + "go.opentelemetry.io/otel/metric/noop" + "go.opentelemetry.io/otel/trace" + + "go.opentelemetry.io/collector/component" + "go.opentelemetry.io/collector/config/configtelemetry" +) + +func Meter(settings component.TelemetrySettings) metric.Meter { + return settings.MeterProvider.Meter("otelcol/k8sattributes") +} + +func Tracer(settings component.TelemetrySettings) trace.Tracer { + return settings.TracerProvider.Tracer("otelcol/k8sattributes") +} + +// TelemetryBuilder provides an interface for components to report telemetry +// as defined in metadata and user config. +type TelemetryBuilder struct { + meter metric.Meter + OtelsvcK8sIPLookupMiss metric.Int64Counter + OtelsvcK8sNamespaceAdded metric.Int64Counter + OtelsvcK8sNamespaceDeleted metric.Int64Counter + OtelsvcK8sNamespaceUpdated metric.Int64Counter + OtelsvcK8sNodeAdded metric.Int64Counter + OtelsvcK8sNodeDeleted metric.Int64Counter + OtelsvcK8sNodeUpdated metric.Int64Counter + OtelsvcK8sPodAdded metric.Int64Counter + OtelsvcK8sPodDeleted metric.Int64Counter + OtelsvcK8sPodTableSize metric.Int64Gauge + OtelsvcK8sPodUpdated metric.Int64Counter + OtelsvcK8sReplicasetAdded metric.Int64Counter + OtelsvcK8sReplicasetDeleted metric.Int64Counter + OtelsvcK8sReplicasetUpdated metric.Int64Counter + + OtelsvcK8sDeploymentAdded metric.Int64Counter + OtelsvcK8sDeploymentDeleted metric.Int64Counter + OtelsvcK8sDeploymentTableSize metric.Int64Gauge + OtelsvcK8sDeploymentUpdated metric.Int64Counter + + OtelsvcK8sStatefulSetAdded metric.Int64Counter + OtelsvcK8sStatefulSetDeleted metric.Int64Counter + OtelsvcK8sStatefulSetTableSize metric.Int64Gauge + OtelsvcK8sStatefulSetUpdated metric.Int64Counter + + OtelsvcK8sReplicasetTableSize metric.Int64Gauge + + OtelsvcK8sDaemonSetAdded metric.Int64Counter + OtelsvcK8sDaemonSetDeleted metric.Int64Counter + OtelsvcK8sDaemonSetTableSize metric.Int64Gauge + OtelsvcK8sDaemonSetUpdated metric.Int64Counter + + OtelsvcK8sJobAdded metric.Int64Counter + OtelsvcK8sJobDeleted metric.Int64Counter + OtelsvcK8sJobTableSize metric.Int64Gauge + OtelsvcK8sJobUpdated metric.Int64Counter + + OtelsvcK8sCronJobAdded metric.Int64Counter + OtelsvcK8sCronJobDeleted metric.Int64Counter + OtelsvcK8sCronJobTableSize metric.Int64Gauge + OtelsvcK8sCronJobUpdated metric.Int64Counter + + OtelsvcK8sNodeTableSize metric.Int64Gauge + + OtelsvcK8sPersistentVolumeAdded metric.Int64Counter + OtelsvcK8sPersistentVolumeDeleted metric.Int64Counter + OtelsvcK8sPersistentVolumeTableSize metric.Int64Gauge + OtelsvcK8sPersistentVolumeUpdated metric.Int64Counter + + OtelsvcK8sPersistentVolumeClaimAdded metric.Int64Counter + OtelsvcK8sPersistentVolumeClaimDeleted metric.Int64Counter + OtelsvcK8sPersistentVolumeClaimTableSize metric.Int64Gauge + OtelsvcK8sPersistentVolumeClaimUpdated metric.Int64Counter + + OtelsvcK8sServiceAdded metric.Int64Counter + OtelsvcK8sServiceDeleted metric.Int64Counter + OtelsvcK8sServiceTableSize metric.Int64Gauge + OtelsvcK8sServiceUpdated metric.Int64Counter + + level configtelemetry.Level +} + +// telemetryBuilderOption applies changes to default builder. +type telemetryBuilderOption func(*TelemetryBuilder) + +// WithLevel sets the current telemetry level for the component. +func WithLevel(lvl configtelemetry.Level) telemetryBuilderOption { + return func(builder *TelemetryBuilder) { + builder.level = lvl + } +} + +// NewTelemetryBuilder provides a struct with methods to update all internal telemetry +// for a component +func NewTelemetryBuilder(settings component.TelemetrySettings, options ...telemetryBuilderOption) (*TelemetryBuilder, error) { + builder := TelemetryBuilder{level: configtelemetry.LevelBasic} + for _, op := range options { + op(&builder) + } + var err, errs error + if builder.level >= configtelemetry.LevelBasic { + builder.meter = Meter(settings) + } else { + builder.meter = noop.Meter{} + } + + builder.OtelsvcK8sIPLookupMiss, err = builder.meter.Int64Counter( + "otelsvc_k8s_ip_lookup_miss", + metric.WithDescription("Number of times pod by IP lookup failed."), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sNamespaceAdded, err = builder.meter.Int64Counter( + "otelsvc_k8s_namespace_added", + metric.WithDescription("Number of namespace add events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sNamespaceDeleted, err = builder.meter.Int64Counter( + "otelsvc_k8s_namespace_deleted", + metric.WithDescription("Number of namespace delete events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sNamespaceUpdated, err = builder.meter.Int64Counter( + "otelsvc_k8s_namespace_updated", + metric.WithDescription("Number of namespace update events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sNodeAdded, err = builder.meter.Int64Counter( + "otelsvc_k8s_node_added", + metric.WithDescription("Number of node add events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sNodeDeleted, err = builder.meter.Int64Counter( + "otelsvc_k8s_node_deleted", + metric.WithDescription("Number of node delete events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sNodeUpdated, err = builder.meter.Int64Counter( + "otelsvc_k8s_node_updated", + metric.WithDescription("Number of node update events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sPodAdded, err = builder.meter.Int64Counter( + "otelsvc_k8s_pod_added", + metric.WithDescription("Number of pod add events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sPodDeleted, err = builder.meter.Int64Counter( + "otelsvc_k8s_pod_deleted", + metric.WithDescription("Number of pod delete events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sPodTableSize, err = builder.meter.Int64Gauge( + "otelsvc_k8s_pod_table_size", + metric.WithDescription("Size of table containing pod info"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sPodUpdated, err = builder.meter.Int64Counter( + "otelsvc_k8s_pod_updated", + metric.WithDescription("Number of pod update events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sReplicasetAdded, err = builder.meter.Int64Counter( + "otelsvc_k8s_replicaset_added", + metric.WithDescription("Number of ReplicaSet add events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sReplicasetDeleted, err = builder.meter.Int64Counter( + "otelsvc_k8s_replicaset_deleted", + metric.WithDescription("Number of ReplicaSet delete events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sReplicasetUpdated, err = builder.meter.Int64Counter( + "otelsvc_k8s_replicaset_updated", + metric.WithDescription("Number of ReplicaSet update events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + + + err = addAdditionalMeters(&builder) + errs = errors.Join(errs, err) + + return &builder, errs +} diff --git a/src/processor/k8sattributesprocessor/internal/metadata/generated_telemetry_resource.go b/src/processor/k8sattributesprocessor/internal/metadata/generated_telemetry_resource.go new file mode 100644 index 00000000..b6cac598 --- /dev/null +++ b/src/processor/k8sattributesprocessor/internal/metadata/generated_telemetry_resource.go @@ -0,0 +1,252 @@ +// Copyright 2022 SolarWinds Worldwide, LLC. 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. + +package metadata + +import ( + "errors" + + "go.opentelemetry.io/otel/metric" +) + +// addAdditionalMeters adds meters for the custom metrics that are not upstream, like `OtelsvcK8sJobAdded` +func addAdditionalMeters(builder *TelemetryBuilder) error { + var err, errs error + + // Deployment metrics + builder.OtelsvcK8sDeploymentAdded, err = builder.meter.Int64Counter( + "otelsvc_k8s_deployment_added", + metric.WithDescription("Number of deployment add events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sDeploymentUpdated, err = builder.meter.Int64Counter( + "otelsvc_k8s_deployment_updated", + metric.WithDescription("Number of deployment update events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sDeploymentDeleted, err = builder.meter.Int64Counter( + "otelsvc_k8s_deployment_deleted", + metric.WithDescription("Number of deployment delete events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sDeploymentTableSize, err = builder.meter.Int64Gauge( + "otelsvc_k8s_deployment_table_size", + metric.WithDescription("Size of table containing deployment info"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + + // StatefulSet metrics + builder.OtelsvcK8sStatefulSetAdded, err = builder.meter.Int64Counter( + "otelsvc_k8s_statefulset_added", + metric.WithDescription("Number of statefulset add events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sStatefulSetUpdated, err = builder.meter.Int64Counter( + "otelsvc_k8s_statefulset_updated", + metric.WithDescription("Number of statefulset update events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sStatefulSetDeleted, err = builder.meter.Int64Counter( + "otelsvc_k8s_statefulset_deleted", + metric.WithDescription("Number of statefulset delete events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sStatefulSetTableSize, err = builder.meter.Int64Gauge( + "otelsvc_k8s_statefulset_table_size", + metric.WithDescription("Size of table containing statefulset info"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + + // ReplicaSet metrics + builder.OtelsvcK8sReplicasetTableSize, err = builder.meter.Int64Gauge( + "otelsvc_k8s_replicaset_table_size", + metric.WithDescription("Size of table containing replicaset info"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + + // DaemonSet metrics + builder.OtelsvcK8sDaemonSetAdded, err = builder.meter.Int64Counter( + "otelsvc_k8s_daemonset_added", + metric.WithDescription("Number of daemonset add events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sDaemonSetUpdated, err = builder.meter.Int64Counter( + "otelsvc_k8s_daemonset_updated", + metric.WithDescription("Number of daemonset update events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sDaemonSetDeleted, err = builder.meter.Int64Counter( + "otelsvc_k8s_daemonset_deleted", + metric.WithDescription("Number of daemonset delete events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sDaemonSetTableSize, err = builder.meter.Int64Gauge( + "otelsvc_k8s_daemonset_table_size", + metric.WithDescription("Size of table containing daemonset info"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + + // Job metrics + builder.OtelsvcK8sJobAdded, err = builder.meter.Int64Counter( + "otelsvc_k8s_job_added", + metric.WithDescription("Number of job add events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sJobUpdated, err = builder.meter.Int64Counter( + "otelsvc_k8s_job_updated", + metric.WithDescription("Number of job update events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sJobDeleted, err = builder.meter.Int64Counter( + "otelsvc_k8s_job_deleted", + metric.WithDescription("Number of job delete events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sJobTableSize, err = builder.meter.Int64Gauge( + "otelsvc_k8s_job_table_size", + metric.WithDescription("Size of table containing job info"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + + // CronJob metrics + builder.OtelsvcK8sCronJobAdded, err = builder.meter.Int64Counter( + "otelsvc_k8s_cronjob_added", + metric.WithDescription("Number of cronjob add events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sCronJobUpdated, err = builder.meter.Int64Counter( + "otelsvc_k8s_cronjob_updated", + metric.WithDescription("Number of cronjob update events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sCronJobDeleted, err = builder.meter.Int64Counter( + "otelsvc_k8s_cronjob_deleted", + metric.WithDescription("Number of cronjob delete events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sCronJobTableSize, err = builder.meter.Int64Gauge( + "otelsvc_k8s_cronjob_table_size", + metric.WithDescription("Size of table containing cronjob info"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + + // Node metrics + builder.OtelsvcK8sNodeTableSize, err = builder.meter.Int64Gauge( + "otelsvc_k8s_node_table_size", + metric.WithDescription("Size of table containing node info"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + + // Persistent volume metrics + builder.OtelsvcK8sPersistentVolumeAdded, err = builder.meter.Int64Counter( + "otelsvc_k8s_persistentvolume_added", + metric.WithDescription("Number of persistentvolume add events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sPersistentVolumeUpdated, err = builder.meter.Int64Counter( + "otelsvc_k8s_persistentvolume_updated", + metric.WithDescription("Number of persistentvolume update events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sPersistentVolumeDeleted, err = builder.meter.Int64Counter( + "otelsvc_k8s_persistentvolume_deleted", + metric.WithDescription("Number of persistentvolume delete events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sPersistentVolumeTableSize, err = builder.meter.Int64Gauge( + "otelsvc_k8s_persistentvolume_table_size", + metric.WithDescription("Size of table containing persistentvolume info"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + + // Persistent volume claim metrics + builder.OtelsvcK8sPersistentVolumeClaimAdded, err = builder.meter.Int64Counter( + "otelsvc_k8s_persistentvolumeclaim_added", + metric.WithDescription("Number of persistentvolumeclaim add events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sPersistentVolumeClaimUpdated, err = builder.meter.Int64Counter( + "otelsvc_k8s_persistentvolumeclaim_updated", + metric.WithDescription("Number of persistentvolumeclaim update events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sPersistentVolumeClaimDeleted, err = builder.meter.Int64Counter( + "otelsvc_k8s_persistentvolumeclaim_deleted", + metric.WithDescription("Number of persistentvolumeclaim delete events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sPersistentVolumeClaimTableSize, err = builder.meter.Int64Gauge( + "otelsvc_k8s_persistentvolumeclaim_table_size", + metric.WithDescription("Size of table containing persistentvolumeclaim info"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + + // Service metrics + builder.OtelsvcK8sServiceAdded, err = builder.meter.Int64Counter( + "otelsvc_k8s_service_added", + metric.WithDescription("Number of service add events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sServiceUpdated, err = builder.meter.Int64Counter( + "otelsvc_k8s_service_updated", + metric.WithDescription("Number of service update events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sServiceDeleted, err = builder.meter.Int64Counter( + "otelsvc_k8s_service_deleted", + metric.WithDescription("Number of service delete events received"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + builder.OtelsvcK8sServiceTableSize, err = builder.meter.Int64Gauge( + "otelsvc_k8s_service_table_size", + metric.WithDescription("Size of table containing service info"), + metric.WithUnit("1"), + ) + errs = errors.Join(errs, err) + + return errs +} diff --git a/src/processor/k8sattributesprocessor/internal/metadata/generated_telemetry_test.go b/src/processor/k8sattributesprocessor/internal/metadata/generated_telemetry_test.go new file mode 100644 index 00000000..85f43c5c --- /dev/null +++ b/src/processor/k8sattributesprocessor/internal/metadata/generated_telemetry_test.go @@ -0,0 +1,76 @@ +// Code generated by mdatagen. DO NOT EDIT. + +package metadata + +import ( + "testing" + + "github.com/stretchr/testify/require" + "go.opentelemetry.io/otel/metric" + embeddedmetric "go.opentelemetry.io/otel/metric/embedded" + noopmetric "go.opentelemetry.io/otel/metric/noop" + "go.opentelemetry.io/otel/trace" + embeddedtrace "go.opentelemetry.io/otel/trace/embedded" + nooptrace "go.opentelemetry.io/otel/trace/noop" + + "go.opentelemetry.io/collector/component" +) + +type mockMeter struct { + noopmetric.Meter + name string +} +type mockMeterProvider struct { + embeddedmetric.MeterProvider +} + +func (m mockMeterProvider) Meter(name string, opts ...metric.MeterOption) metric.Meter { + return mockMeter{name: name} +} + +type mockTracer struct { + nooptrace.Tracer + name string +} + +type mockTracerProvider struct { + embeddedtrace.TracerProvider +} + +func (m mockTracerProvider) Tracer(name string, opts ...trace.TracerOption) trace.Tracer { + return mockTracer{name: name} +} + +func TestProviders(t *testing.T) { + set := component.TelemetrySettings{ + MeterProvider: mockMeterProvider{}, + TracerProvider: mockTracerProvider{}, + } + + meter := Meter(set) + if m, ok := meter.(mockMeter); ok { + require.Equal(t, "otelcol/k8sattributes", m.name) + } else { + require.Fail(t, "returned Meter not mockMeter") + } + + tracer := Tracer(set) + if m, ok := tracer.(mockTracer); ok { + require.Equal(t, "otelcol/k8sattributes", m.name) + } else { + require.Fail(t, "returned Meter not mockTracer") + } +} + +func TestNewTelemetryBuilder(t *testing.T) { + set := component.TelemetrySettings{ + MeterProvider: mockMeterProvider{}, + TracerProvider: mockTracerProvider{}, + } + applied := false + _, err := NewTelemetryBuilder(set, func(b *TelemetryBuilder) { + applied = true + }) + require.NoError(t, err) + require.True(t, applied) +} diff --git a/src/processor/k8sattributesprocessor/internal/observability/empty_test.go b/src/processor/k8sattributesprocessor/internal/observability/empty_test.go deleted file mode 100644 index bd828106..00000000 --- a/src/processor/k8sattributesprocessor/internal/observability/empty_test.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2022 SolarWinds Worldwide, LLC. 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. - -// Source: https://github.com/open-telemetry/opentelemetry-collector-contrib -// Changes customizing the original source code: see CHANGELOG.md in deploy/helm directory - -package observability diff --git a/src/processor/k8sattributesprocessor/internal/observability/observability.go b/src/processor/k8sattributesprocessor/internal/observability/observability.go deleted file mode 100644 index d6111535..00000000 --- a/src/processor/k8sattributesprocessor/internal/observability/observability.go +++ /dev/null @@ -1,196 +0,0 @@ -// Copyright 2022 SolarWinds Worldwide, LLC. 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. - -// Source: https://github.com/open-telemetry/opentelemetry-collector-contrib -// Changes customizing the original source code: see CHANGELOG.md in deploy/helm directory - -package observability // import "github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor/internal/observability" - -import ( - "context" - - "go.opencensus.io/stats" - "go.opencensus.io/stats/view" -) - -// TODO: re-think if processor should register it's own telemetry views or if some other -// mechanism should be used by the collector to discover views from all components - -func init() { - _ = view.Register( - viewPodsUpdated, - viewPodsAdded, - viewPodsDeleted, - viewIPLookupMiss, - viewPodTableSize, - viewNamespacesAdded, - viewNamespacesUpdated, - viewNamespacesDeleted, - viewDeploymentsUpdated, - viewDeploymentsAdded, - viewDeploymentsDeleted, - viewDeploymentTableSize, - viewStatefulSetsUpdated, - viewStatefulSetsAdded, - viewStatefulSetsDeleted, - viewStatefulSetTableSize, - - viewReplicaSetsUpdated, - viewReplicaSetsAdded, - viewReplicaSetsDeleted, - viewReplicaSetTableSize, - - viewDaemonSetsUpdated, - viewDaemonSetsAdded, - viewDaemonSetsDeleted, - viewDaemonSetTableSize, - - viewJobsUpdated, - viewJobsAdded, - viewJobsDeleted, - viewJobTableSize, - - viewCronJobsUpdated, - viewCronJobsAdded, - viewCronJobsDeleted, - viewCronJobTableSize, - - viewNodesUpdated, - viewNodesAdded, - viewNodesDeleted, - viewNodeTableSize, - - viewPersistentVolumesUpdated, - viewPersistentVolumesAdded, - viewPersistentVolumesDeleted, - viewPersistentVolumeTableSize, - - viewPersistentVolumeClaimsUpdated, - viewPersistentVolumeClaimsAdded, - viewPersistentVolumeClaimsDeleted, - viewPersistentVolumeClaimTableSize, - - viewServicesUpdated, - viewServicesAdded, - viewServicesDeleted, - viewServiceTableSize, - ) -} - -var ( - mPodsUpdated = stats.Int64("otelsvc/k8s/pod_updated", "Number of pod update events received", "1") - mPodsAdded = stats.Int64("otelsvc/k8s/pod_added", "Number of pod add events received", "1") - mPodsDeleted = stats.Int64("otelsvc/k8s/pod_deleted", "Number of pod delete events received", "1") - mPodTableSize = stats.Int64("otelsvc/k8s/pod_table_size", "Size of table containing pod info", "1") - mIPLookupMiss = stats.Int64("otelsvc/k8s/ip_lookup_miss", "Number of times pod by IP lookup failed.", "1") - mNamespacesUpdated = stats.Int64("otelsvc/k8s/namespace_updated", "Number of namespace update events received", "1") - mNamespacesAdded = stats.Int64("otelsvc/k8s/namespace_added", "Number of namespace add events received", "1") - mNamespacesDeleted = stats.Int64("otelsvc/k8s/namespace_deleted", "Number of namespace delete events received", "1") -) - -var viewPodsUpdated = &view.View{ - Name: mPodsUpdated.Name(), - Description: mPodsUpdated.Description(), - Measure: mPodsUpdated, - Aggregation: view.Sum(), -} - -var viewPodsAdded = &view.View{ - Name: mPodsAdded.Name(), - Description: mPodsAdded.Description(), - Measure: mPodsAdded, - Aggregation: view.Sum(), -} - -var viewPodsDeleted = &view.View{ - Name: mPodsDeleted.Name(), - Description: mPodsDeleted.Description(), - Measure: mPodsDeleted, - Aggregation: view.Sum(), -} - -var viewIPLookupMiss = &view.View{ - Name: mIPLookupMiss.Name(), - Description: mIPLookupMiss.Description(), - Measure: mIPLookupMiss, - Aggregation: view.Sum(), -} - -var viewPodTableSize = &view.View{ - Name: mPodTableSize.Name(), - Description: mPodTableSize.Description(), - Measure: mPodTableSize, - Aggregation: view.LastValue(), -} - -var viewNamespacesUpdated = &view.View{ - Name: mNamespacesUpdated.Name(), - Description: mNamespacesUpdated.Description(), - Measure: mNamespacesUpdated, - Aggregation: view.Sum(), -} - -var viewNamespacesAdded = &view.View{ - Name: mNamespacesAdded.Name(), - Description: mNamespacesAdded.Description(), - Measure: mNamespacesAdded, - Aggregation: view.Sum(), -} - -var viewNamespacesDeleted = &view.View{ - Name: mNamespacesDeleted.Name(), - Description: mNamespacesDeleted.Description(), - Measure: mNamespacesDeleted, - Aggregation: view.Sum(), -} - -// RecordPodUpdated increments the metric that records pod update events received. -func RecordPodUpdated() { - stats.Record(context.Background(), mPodsUpdated.M(int64(1))) -} - -// RecordPodAdded increments the metric that records pod add events receiver. -func RecordPodAdded() { - stats.Record(context.Background(), mPodsAdded.M(int64(1))) -} - -// RecordPodDeleted increments the metric that records pod events deleted. -func RecordPodDeleted() { - stats.Record(context.Background(), mPodsDeleted.M(int64(1))) -} - -// RecordIPLookupMiss increments the metric that records Pod lookup by IP misses. -func RecordIPLookupMiss() { - stats.Record(context.Background(), mIPLookupMiss.M(int64(1))) -} - -// RecordPodTableSize store size of pod table field in WatchClient -func RecordPodTableSize(podTableSize int64) { - stats.Record(context.Background(), mPodTableSize.M(podTableSize)) -} - -// RecordNamespaceUpdated increments the metric that records namespace update events received. -func RecordNamespaceUpdated() { - stats.Record(context.Background(), mNamespacesUpdated.M(int64(1))) -} - -// RecordNamespaceAdded increments the metric that records namespace add events receiver. -func RecordNamespaceAdded() { - stats.Record(context.Background(), mNamespacesAdded.M(int64(1))) -} - -// RecordNamespaceDeleted increments the metric that records namespace events deleted. -func RecordNamespaceDeleted() { - stats.Record(context.Background(), mNamespacesDeleted.M(int64(1))) -} diff --git a/src/processor/k8sattributesprocessor/internal/observability/observability_resource.go b/src/processor/k8sattributesprocessor/internal/observability/observability_resource.go deleted file mode 100644 index be9fa7a7..00000000 --- a/src/processor/k8sattributesprocessor/internal/observability/observability_resource.go +++ /dev/null @@ -1,565 +0,0 @@ -// Copyright 2022 SolarWinds Worldwide, LLC. 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. - -package observability // import "github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor/internal/observability" - -import ( - "context" - - "go.opencensus.io/stats" - "go.opencensus.io/stats/view" -) - -var ( - // Deployment metrics - mDeploymentsUpdated = stats.Int64("otelsvc/k8s/deployment_updated", "Number of deployment update events received", "1") - mDeploymentsAdded = stats.Int64("otelsvc/k8s/deployment_added", "Number of deployment add events received", "1") - mDeploymentsDeleted = stats.Int64("otelsvc/k8s/deployment_deleted", "Number of deployment delete events received", "1") - mDeploymentTableSize = stats.Int64("otelsvc/k8s/deployment_table_size", "Size of table containing deployment info", "1") - - // StatefulSet metrics - mStatefulSetsUpdated = stats.Int64("otelsvc/k8s/statefulset_updated", "Number of statefulset update events received", "1") - mStatefulSetsAdded = stats.Int64("otelsvc/k8s/statefulset_added", "Number of statefulset add events received", "1") - mStatefulSetsDeleted = stats.Int64("otelsvc/k8s/statefulset_deleted", "Number of statefulset delete events received", "1") - mStatefulSetTableSize = stats.Int64("otelsvc/k8s/statefulset_table_size", "Size of table containing statefulset info", "1") - - // ReplicaSet metrics - mReplicaSetsUpdated = stats.Int64("otelsvc/k8s/replicaset_updated", "Number of replicaset update events received", "1") - mReplicaSetsAdded = stats.Int64("otelsvc/k8s/replicaset_added", "Number of replicaset add events received", "1") - mReplicaSetsDeleted = stats.Int64("otelsvc/k8s/replicaset_deleted", "Number of replicaset delete events received", "1") - mReplicaSetTableSize = stats.Int64("otelsvc/k8s/replicaset_table_size", "Size of table containing replicaset info", "1") - - // DaemonSet metrics - mDaemonSetsUpdated = stats.Int64("otelsvc/k8s/daemonset_updated", "Number of daemonset update events received", "1") - mDaemonSetsAdded = stats.Int64("otelsvc/k8s/daemonset_added", "Number of daemonset add events received", "1") - mDaemonSetsDeleted = stats.Int64("otelsvc/k8s/daemonset_deleted", "Number of daemonset delete events received", "1") - mDaemonSetTableSize = stats.Int64("otelsvc/k8s/daemonset_table_size", "Size of table containing daemonset info", "1") - - // Job metrics - mJobsUpdated = stats.Int64("otelsvc/k8s/job_updated", "Number of job update events received", "1") - mJobsAdded = stats.Int64("otelsvc/k8s/job_added", "Number of job add events received", "1") - mJobsDeleted = stats.Int64("otelsvc/k8s/job_deleted", "Number of job delete events received", "1") - mJobTableSize = stats.Int64("otelsvc/k8s/job_table_size", "Size of table containing job info", "1") - - // CronJob metrics - mCronJobsUpdated = stats.Int64("otelsvc/k8s/cronjob_updated", "Number of cronjob update events received", "1") - mCronJobsAdded = stats.Int64("otelsvc/k8s/cronjob_added", "Number of cronjob add events received", "1") - mCronJobsDeleted = stats.Int64("otelsvc/k8s/cronjob_deleted", "Number of cronjob delete events received", "1") - mCronJobTableSize = stats.Int64("otelsvc/k8s/cronjob_table_size", "Size of table containing cronjob info", "1") - - // Node metrics - mNodesUpdated = stats.Int64("otelsvc/k8s/node_updated", "Number of node update events received", "1") - mNodesAdded = stats.Int64("otelsvc/k8s/node_added", "Number of node add events received", "1") - mNodesDeleted = stats.Int64("otelsvc/k8s/node_deleted", "Number of node delete events received", "1") - mNodeTableSize = stats.Int64("otelsvc/k8s/node_table_size", "Size of table containing node info", "1") - - // Persistent volume metrics - mPersistentVolumesUpdated = stats.Int64("otelsvc/k8s/persistentvolume_updated", "Number of persistentvolume update events received", "1") - mPersistentVolumesAdded = stats.Int64("otelsvc/k8s/persistentvolume_added", "Number of persistentvolume add events received", "1") - mPersistentVolumesDeleted = stats.Int64("otelsvc/k8s/persistentvolume_deleted", "Number of persistentvolume delete events received", "1") - mPersistentVolumeTableSize = stats.Int64("otelsvc/k8s/persistentvolume_table_size", "Size of table containing persistentvolume info", "1") - - // Persistent volume claim metrics - mPersistentVolumeClaimsUpdated = stats.Int64("otelsvc/k8s/persistentvolumeclaim_updated", "Number of persistentvolumeclaim update events received", "1") - mPersistentVolumeClaimsAdded = stats.Int64("otelsvc/k8s/persistentvolumeclaim_added", "Number of persistentvolumeclaim add events received", "1") - mPersistentVolumeClaimsDeleted = stats.Int64("otelsvc/k8s/persistentvolumeclaim_deleted", "Number of persistentvolumeclaim delete events received", "1") - mPersistentVolumeClaimTableSize = stats.Int64("otelsvc/k8s/persistentvolumeclaim_table_size", "Size of table containing persistentvolumeclaim info", "1") - - // Service metrics - mServicesUpdated = stats.Int64("otelsvc/k8s/service_updated", "Number of service update events received", "1") - mServicesAdded = stats.Int64("otelsvc/k8s/service_added", "Number of service add events received", "1") - mServicesDeleted = stats.Int64("otelsvc/k8s/service_deleted", "Number of service delete events received", "1") - mServiceTableSize = stats.Int64("otelsvc/k8s/service_table_size", "Size of table containing service info", "1") -) - -// RecordDeploymentUpdated increments the metric that records deployment update events received. -func RecordDeploymentUpdated() { - stats.Record(context.Background(), mDeploymentsUpdated.M(int64(1))) -} - -// RecordDeploymentAdded increments the metric that records deployment add events receiver. -func RecordDeploymentAdded() { - stats.Record(context.Background(), mDeploymentsAdded.M(int64(1))) -} - -// RecordDeploymentDeleted increments the metric that records deployment events deleted. -func RecordDeploymentDeleted() { - stats.Record(context.Background(), mDeploymentsDeleted.M(int64(1))) -} - -// RecordDeploymentTableSize stores the size of the deployment table field in WatchClient -func RecordDeploymentTableSize(deploymentTableSize int64) { - stats.Record(context.Background(), mDeploymentTableSize.M(deploymentTableSize)) -} - -// RecordStatefulSetUpdated increments the metric that records statefulset update events received. -func RecordStatefulSetUpdated() { - stats.Record(context.Background(), mStatefulSetsUpdated.M(int64(1))) -} - -// RecordStatefulSetAdded increments the metric that records statefulset add events receiver. -func RecordStatefulSetAdded() { - stats.Record(context.Background(), mStatefulSetsAdded.M(int64(1))) -} - -// RecordStatefulSetDeleted increments the metric that records statefulset events deleted. -func RecordStatefulSetDeleted() { - stats.Record(context.Background(), mStatefulSetsDeleted.M(int64(1))) -} - -// RecordStatefulSetTableSize stores the size of the statefulset table field in WatchClient -func RecordStatefulSetTableSize(statefulSetTableSize int64) { - stats.Record(context.Background(), mStatefulSetTableSize.M(statefulSetTableSize)) -} - -// RecordReplicaSetUpdated increments the metric that records replicaset update events received. -func RecordReplicaSetUpdated() { - stats.Record(context.Background(), mReplicaSetsUpdated.M(int64(1))) -} - -// RecordReplicaSetAdded increments the metric that records replicaset add events received. -func RecordReplicaSetAdded() { - stats.Record(context.Background(), mReplicaSetsAdded.M(int64(1))) -} - -// RecordReplicaSetDeleted increments the metric that records replicaset delete events received. -func RecordReplicaSetDeleted() { - stats.Record(context.Background(), mReplicaSetsDeleted.M(int64(1))) -} - -// RecordReplicaSetTableSize stores the size of the replicaset table field in WatchClient -func RecordReplicaSetTableSize(replicaSetTableSize int64) { - stats.Record(context.Background(), mReplicaSetTableSize.M(replicaSetTableSize)) -} - -// RecordDaemonSetUpdated increments the metric that records daemonset update events received. -func RecordDaemonSetUpdated() { - stats.Record(context.Background(), mDaemonSetsUpdated.M(int64(1))) -} - -// RecordDaemonSetAdded increments the metric that records daemonset add events received. -func RecordDaemonSetAdded() { - stats.Record(context.Background(), mDaemonSetsAdded.M(int64(1))) -} - -// RecordDaemonSetDeleted increments the metric that records daemonset delete events received. -func RecordDaemonSetDeleted() { - stats.Record(context.Background(), mDaemonSetsDeleted.M(int64(1))) -} - -// RecordDaemonSetTableSize stores the size of the daemonset table field in WatchClient -func RecordDaemonSetTableSize(daemonSetTableSize int64) { - stats.Record(context.Background(), mDaemonSetTableSize.M(daemonSetTableSize)) -} - -// RecordJobUpdated increments the metric that records job update events received. -func RecordJobUpdated() { - stats.Record(context.Background(), mJobsUpdated.M(int64(1))) -} - -// RecordJobAdded increments the metric that records job add events received. -func RecordJobAdded() { - stats.Record(context.Background(), mJobsAdded.M(int64(1))) -} - -// RecordJobDeleted increments the metric that records job delete events received. -func RecordJobDeleted() { - stats.Record(context.Background(), mJobsDeleted.M(int64(1))) -} - -// RecordJobTableSize stores the size of the job table field in WatchClient -func RecordJobTableSize(jobTableSize int64) { - stats.Record(context.Background(), mJobTableSize.M(jobTableSize)) -} - -// RecordCronJobUpdated increments the metric that records cronjob update events received. -func RecordCronJobUpdated() { - stats.Record(context.Background(), mCronJobsUpdated.M(int64(1))) -} - -// RecordCronJobAdded increments the metric that records cronjob add events received. -func RecordCronJobAdded() { - stats.Record(context.Background(), mCronJobsAdded.M(int64(1))) -} - -// RecordCronJobDeleted increments the metric that records cronjob delete events received. -func RecordCronJobDeleted() { - stats.Record(context.Background(), mCronJobsDeleted.M(int64(1))) -} - -// RecordCronJobTableSize stores the size of the cronjob table field in WatchClient -func RecordCronJobTableSize(cronJobTableSize int64) { - stats.Record(context.Background(), mCronJobTableSize.M(cronJobTableSize)) -} - -// RecordNodeUpdated increments the metric that records node update events received. -func RecordNodeUpdated() { - stats.Record(context.Background(), mNodesUpdated.M(int64(1))) -} - -// RecordNodeAdded increments the metric that records node add events received. -func RecordNodeAdded() { - stats.Record(context.Background(), mNodesAdded.M(int64(1))) -} - -// RecordNodeDeleted increments the metric that records node delete events received. -func RecordNodeDeleted() { - stats.Record(context.Background(), mNodesDeleted.M(int64(1))) -} - -// RecordNodeTableSize stores the size of the node table field in WatchClient -func RecordNodeTableSize(nodeTableSize int64) { - stats.Record(context.Background(), mNodeTableSize.M(nodeTableSize)) -} - -// RecordPersistentVolumeUpdated increments the metric that records persistent volume update events received. -func RecordPersistentVolumeUpdated() { - stats.Record(context.Background(), mPersistentVolumesUpdated.M(int64(1))) -} - -// RecordPersistentVolumeAdded increments the metric that records persistent volume add events received. -func RecordPersistentVolumeAdded() { - stats.Record(context.Background(), mPersistentVolumesAdded.M(int64(1))) -} - -// RecordPersistentVolumeDeleted increments the metric that records persistent volume delete events received. -func RecordPersistentVolumeDeleted() { - stats.Record(context.Background(), mPersistentVolumesDeleted.M(int64(1))) -} - -// RecordPersistentVolumeTableSize stores the size of the persistent volume table field in WatchClient -func RecordPersistentVolumeTableSize(persistentVolumeTableSize int64) { - stats.Record(context.Background(), mPersistentVolumeTableSize.M(persistentVolumeTableSize)) -} - -// RecordPersistentVolumeClaimUpdated increments the metric that records persistent volume update events received. -func RecordPersistentVolumeClaimUpdated() { - stats.Record(context.Background(), mPersistentVolumeClaimsUpdated.M(int64(1))) -} - -// RecordPersistentVolumeClaimAdded increments the metric that records persistent volume add events received. -func RecordPersistentVolumeClaimAdded() { - stats.Record(context.Background(), mPersistentVolumeClaimsAdded.M(int64(1))) -} - -// RecordPersistentVolumeClaimDeleted increments the metric that records persistent volume delete events received. -func RecordPersistentVolumeClaimDeleted() { - stats.Record(context.Background(), mPersistentVolumeClaimsDeleted.M(int64(1))) -} - -// RecordPersistentVolumeClaimTableSize stores the size of the persistent volume table field in WatchClient -func RecordPersistentVolumeClaimTableSize(persistentVolumeClaimTableSize int64) { - stats.Record(context.Background(), mPersistentVolumeTableSize.M(persistentVolumeClaimTableSize)) -} - -// RecordServiceUpdated increments the metric that records persistent volume update events received. -func RecordServiceUpdated() { - stats.Record(context.Background(), mServicesUpdated.M(int64(1))) -} - -// RecordServiceAdded increments the metric that records persistent volume add events received. -func RecordServiceAdded() { - stats.Record(context.Background(), mServicesAdded.M(int64(1))) -} - -// RecordServiceDeleted increments the metric that records persistent volume delete events received. -func RecordServiceDeleted() { - stats.Record(context.Background(), mServicesDeleted.M(int64(1))) -} - -// RecordServiceTableSize stores the size of the persistent volume table field in WatchClient -func RecordServiceTableSize(ServiceTableSize int64) { - stats.Record(context.Background(), mPersistentVolumeTableSize.M(ServiceTableSize)) -} - -// Create views for each metric -var viewDeploymentsUpdated = &view.View{ - Name: mDeploymentsUpdated.Name(), - Description: mDeploymentsUpdated.Description(), - Measure: mDeploymentsUpdated, - Aggregation: view.Sum(), -} - -var viewDeploymentsAdded = &view.View{ - Name: mDeploymentsAdded.Name(), - Description: mDeploymentsAdded.Description(), - Measure: mDeploymentsAdded, - Aggregation: view.Sum(), -} - -var viewDeploymentsDeleted = &view.View{ - Name: mDeploymentsDeleted.Name(), - Description: mDeploymentsDeleted.Description(), - Measure: mDeploymentsDeleted, - Aggregation: view.Sum(), -} - -var viewDeploymentTableSize = &view.View{ - Name: mDeploymentTableSize.Name(), - Description: mDeploymentTableSize.Description(), - Measure: mDeploymentTableSize, - Aggregation: view.LastValue(), -} - -var viewStatefulSetsUpdated = &view.View{ - Name: mStatefulSetsUpdated.Name(), - Description: mStatefulSetsUpdated.Description(), - Measure: mStatefulSetsUpdated, - Aggregation: view.Sum(), -} - -var viewStatefulSetsAdded = &view.View{ - Name: mStatefulSetsAdded.Name(), - Description: mStatefulSetsAdded.Description(), - Measure: mStatefulSetsAdded, - Aggregation: view.Sum(), -} - -var viewStatefulSetsDeleted = &view.View{ - Name: mStatefulSetsDeleted.Name(), - Description: mStatefulSetsDeleted.Description(), - Measure: mStatefulSetsDeleted, - Aggregation: view.Sum(), -} - -var viewStatefulSetTableSize = &view.View{ - Name: mStatefulSetTableSize.Name(), - Description: mStatefulSetTableSize.Description(), - Measure: mStatefulSetTableSize, - Aggregation: view.LastValue(), -} - -var viewReplicaSetsUpdated = &view.View{ - Name: mReplicaSetsUpdated.Name(), - Description: mReplicaSetsUpdated.Description(), - Measure: mReplicaSetsUpdated, - Aggregation: view.Sum(), -} - -var viewReplicaSetsAdded = &view.View{ - Name: mReplicaSetsAdded.Name(), - Description: mReplicaSetsAdded.Description(), - Measure: mReplicaSetsAdded, - Aggregation: view.Sum(), -} - -var viewReplicaSetsDeleted = &view.View{ - Name: mReplicaSetsDeleted.Name(), - Description: mReplicaSetsDeleted.Description(), - Measure: mReplicaSetsDeleted, - Aggregation: view.Sum(), -} - -var viewReplicaSetTableSize = &view.View{ - Name: mReplicaSetTableSize.Name(), - Description: mReplicaSetTableSize.Description(), - Measure: mReplicaSetTableSize, - Aggregation: view.LastValue(), -} - -var viewDaemonSetsUpdated = &view.View{ - Name: mDaemonSetsUpdated.Name(), - Description: mDaemonSetsUpdated.Description(), - Measure: mDaemonSetsUpdated, - Aggregation: view.Sum(), -} - -var viewDaemonSetsAdded = &view.View{ - Name: mDaemonSetsAdded.Name(), - Description: mDaemonSetsAdded.Description(), - Measure: mDaemonSetsAdded, - Aggregation: view.Sum(), -} - -var viewDaemonSetsDeleted = &view.View{ - Name: mDaemonSetsDeleted.Name(), - Description: mDaemonSetsDeleted.Description(), - Measure: mDaemonSetsDeleted, - Aggregation: view.Sum(), -} - -var viewDaemonSetTableSize = &view.View{ - Name: mDaemonSetTableSize.Name(), - Description: mDaemonSetTableSize.Description(), - Measure: mDaemonSetTableSize, - Aggregation: view.LastValue(), -} - -var viewJobsUpdated = &view.View{ - Name: mJobsUpdated.Name(), - Description: mJobsUpdated.Description(), - Measure: mJobsUpdated, - Aggregation: view.Sum(), -} - -var viewJobsAdded = &view.View{ - Name: mJobsAdded.Name(), - Description: mJobsAdded.Description(), - Measure: mJobsAdded, - Aggregation: view.Sum(), -} - -var viewJobsDeleted = &view.View{ - Name: mJobsDeleted.Name(), - Description: mJobsDeleted.Description(), - Measure: mJobsDeleted, - Aggregation: view.Sum(), -} - -var viewJobTableSize = &view.View{ - Name: mJobTableSize.Name(), - Description: mJobTableSize.Description(), - Measure: mJobTableSize, - Aggregation: view.LastValue(), -} - -var viewCronJobsUpdated = &view.View{ - Name: mCronJobsUpdated.Name(), - Description: mCronJobsUpdated.Description(), - Measure: mCronJobsUpdated, - Aggregation: view.Sum(), -} - -var viewCronJobsAdded = &view.View{ - Name: mCronJobsAdded.Name(), - Description: mCronJobsAdded.Description(), - Measure: mCronJobsAdded, - Aggregation: view.Sum(), -} - -var viewCronJobsDeleted = &view.View{ - Name: mCronJobsDeleted.Name(), - Description: mCronJobsDeleted.Description(), - Measure: mCronJobsDeleted, - Aggregation: view.Sum(), -} - -var viewCronJobTableSize = &view.View{ - Name: mCronJobTableSize.Name(), - Description: mCronJobTableSize.Description(), - Measure: mCronJobTableSize, - Aggregation: view.LastValue(), -} - -var viewNodesUpdated = &view.View{ - Name: mNodesUpdated.Name(), - Description: mNodesUpdated.Description(), - Measure: mNodesUpdated, - Aggregation: view.Sum(), -} - -var viewNodesAdded = &view.View{ - Name: mNodesAdded.Name(), - Description: mNodesAdded.Description(), - Measure: mNodesAdded, - Aggregation: view.Sum(), -} - -var viewNodesDeleted = &view.View{ - Name: mNodesDeleted.Name(), - Description: mNodesDeleted.Description(), - Measure: mNodesDeleted, - Aggregation: view.Sum(), -} - -var viewNodeTableSize = &view.View{ - Name: mNodeTableSize.Name(), - Description: mNodeTableSize.Description(), - Measure: mNodeTableSize, - Aggregation: view.LastValue(), -} - -var viewPersistentVolumesUpdated = &view.View{ - Name: mPersistentVolumesUpdated.Name(), - Description: mPersistentVolumesUpdated.Description(), - Measure: mPersistentVolumesUpdated, - Aggregation: view.Sum(), -} - -var viewPersistentVolumesAdded = &view.View{ - Name: mPersistentVolumesAdded.Name(), - Description: mPersistentVolumesAdded.Description(), - Measure: mPersistentVolumesAdded, - Aggregation: view.Sum(), -} - -var viewPersistentVolumesDeleted = &view.View{ - Name: mPersistentVolumesDeleted.Name(), - Description: mPersistentVolumesDeleted.Description(), - Measure: mPersistentVolumesDeleted, - Aggregation: view.Sum(), -} - -var viewPersistentVolumeTableSize = &view.View{ - Name: mPersistentVolumeTableSize.Name(), - Description: mPersistentVolumeTableSize.Description(), - Measure: mPersistentVolumeTableSize, - Aggregation: view.LastValue(), -} - -var viewPersistentVolumeClaimsUpdated = &view.View{ - Name: mPersistentVolumeClaimsUpdated.Name(), - Description: mPersistentVolumeClaimsUpdated.Description(), - Measure: mPersistentVolumeClaimsUpdated, - Aggregation: view.Sum(), -} - -var viewPersistentVolumeClaimsAdded = &view.View{ - Name: mPersistentVolumeClaimsAdded.Name(), - Description: mPersistentVolumeClaimsAdded.Description(), - Measure: mPersistentVolumeClaimsAdded, - Aggregation: view.Sum(), -} - -var viewPersistentVolumeClaimsDeleted = &view.View{ - Name: mPersistentVolumeClaimsDeleted.Name(), - Description: mPersistentVolumeClaimsDeleted.Description(), - Measure: mPersistentVolumeClaimsDeleted, - Aggregation: view.Sum(), -} - -var viewPersistentVolumeClaimTableSize = &view.View{ - Name: mPersistentVolumeClaimTableSize.Name(), - Description: mPersistentVolumeClaimTableSize.Description(), - Measure: mPersistentVolumeClaimTableSize, - Aggregation: view.LastValue(), -} - -var viewServicesUpdated = &view.View{ - Name: mServicesUpdated.Name(), - Description: mServicesUpdated.Description(), - Measure: mServicesUpdated, - Aggregation: view.Sum(), -} - -var viewServicesAdded = &view.View{ - Name: mServicesAdded.Name(), - Description: mServicesAdded.Description(), - Measure: mServicesAdded, - Aggregation: view.Sum(), -} - -var viewServicesDeleted = &view.View{ - Name: mServicesDeleted.Name(), - Description: mServicesDeleted.Description(), - Measure: mServicesDeleted, - Aggregation: view.Sum(), -} - -var viewServiceTableSize = &view.View{ - Name: mServiceTableSize.Name(), - Description: mServiceTableSize.Description(), - Measure: mServiceTableSize, - Aggregation: view.LastValue(), -} \ No newline at end of file diff --git a/src/processor/k8sattributesprocessor/internal/observability/observability_test.go b/src/processor/k8sattributesprocessor/internal/observability/observability_test.go deleted file mode 100644 index a4aae02b..00000000 --- a/src/processor/k8sattributesprocessor/internal/observability/observability_test.go +++ /dev/null @@ -1,163 +0,0 @@ -// Copyright 2022 SolarWinds Worldwide, LLC. 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. - -// Source: https://github.com/open-telemetry/opentelemetry-collector-contrib -// Changes customizing the original source code: see CHANGELOG.md in deploy/helm directory - -package observability - -import ( - "context" - "sort" - "testing" - "time" - - "github.com/stretchr/testify/assert" - "go.opencensus.io/metric/metricdata" - "go.opencensus.io/metric/metricexport" -) - -type exporter struct { - pipe chan *metricdata.Metric -} - -func newExporter() *exporter { - return &exporter{make(chan *metricdata.Metric)} -} - -func (e *exporter) ReturnAfter(after int) chan []*metricdata.Metric { - ch := make(chan []*metricdata.Metric) - go func() { - // Sometimes we can get only subset of all metrics, so lets make sure - // we look at unique records - receivedUnique := map[string]*metricdata.Metric{} - for m := range e.pipe { - receivedUnique[m.Descriptor.Name] = m - if len(receivedUnique) >= after { - break - } - } - - var received []*metricdata.Metric - for _, value := range receivedUnique { - received = append(received, value) - } - ch <- received - }() - return ch -} - -func (e *exporter) ExportMetrics(_ context.Context, data []*metricdata.Metric) error { - for _, m := range data { - e.pipe <- m - } - return nil -} - -// NOTE: -// This test can only be run with -count 1 because of static -// metricproducer.GlobalManager() used in metricexport.NewReader(). -func TestMetrics(t *testing.T) { - type testCase struct { - name string - recordFunc func() - } - tests := []testCase{ - { - "otelsvc/k8s/pod_added", - RecordPodAdded, - }, - { - "otelsvc/k8s/pod_deleted", - RecordPodDeleted, - }, - { - "otelsvc/k8s/pod_updated", - RecordPodUpdated, - }, - { - "otelsvc/k8s/ip_lookup_miss", - RecordIPLookupMiss, - }, - { - "otelsvc/k8s/namespace_added", - RecordNamespaceAdded, - }, - { - "otelsvc/k8s/namespace_updated", - RecordNamespaceUpdated, - }, - { - "otelsvc/k8s/namespace_deleted", - RecordNamespaceDeleted, - }, - } - - var ( - fail = make(chan struct{}) - chData = make(chan []*metricdata.Metric) - ) - - go func() { - reader := metricexport.NewReader() - e := newExporter() - ch := e.ReturnAfter(len(tests)) - - // Add a manual retry mechanism in case there's a hiccup reading the - // metrics from producers in ReadAndExport(): we can wait for the metrics - // to come instead of failing because they didn't come right away. - for i := 0; i < 10; i++ { - go reader.ReadAndExport(e) - - select { - case <-time.After(500 * time.Millisecond): - - case data := <-ch: - chData <- data - return - } - } - - fail <- struct{}{} - }() - - for _, tt := range tests { - tt.recordFunc() - } - - var data []*metricdata.Metric - select { - case <-fail: - t.Fatalf("timedout waiting for metrics to arrive") - case data = <-chData: - } - - sort.Slice(tests, func(i, j int) bool { - return tests[i].name < tests[j].name - }) - - sort.Slice(data, func(i, j int) bool { - return data[i].Descriptor.Name < data[j].Descriptor.Name - }) - - assert.Len(t, data, len(tests)) - - for i, tt := range tests { - d := data[i] - assert.Equal(t, tt.name, d.Descriptor.Name) - assert.Len(t, d.TimeSeries, 1) - assert.Len(t, d.TimeSeries[0].Points, 1) - assert.Equal(t, int64(1), d.TimeSeries[0].Points[0].Value) - } -} diff --git a/src/processor/k8sattributesprocessor/processor.go b/src/processor/k8sattributesprocessor/processor.go index 1f6ac055..af4ca410 100644 --- a/src/processor/k8sattributesprocessor/processor.go +++ b/src/processor/k8sattributesprocessor/processor.go @@ -55,13 +55,13 @@ type kubernetesprocessor struct { resources map[string]*kubernetesProcessorResource } -func (kp *kubernetesprocessor) initKubeClient(logger *zap.Logger, kubeClient kube.ClientProvider) error { +func (kp *kubernetesprocessor) initKubeClient(set component.TelemetrySettings, kubeClient kube.ClientProvider) error { if kubeClient == nil { kubeClient = kube.New } if !kp.passthroughMode { kc, err := kubeClient( - logger, + set, kp.apiConfig, kp.rules, kp.filters, @@ -103,7 +103,7 @@ func (kp *kubernetesprocessor) Start(_ context.Context, _ component.Host) error // This might have been set by an option already if kp.kc == nil { - err := kp.initKubeClient(kp.logger, kubeClientProvider) + err := kp.initKubeClient(kp.telemetrySettings, kubeClientProvider) if err != nil { kp.telemetrySettings.ReportStatus(component.NewFatalErrorEvent(err)) return nil diff --git a/src/processor/k8sattributesprocessor/processor_test.go b/src/processor/k8sattributesprocessor/processor_test.go index 1207a61e..93dff203 100644 --- a/src/processor/k8sattributesprocessor/processor_test.go +++ b/src/processor/k8sattributesprocessor/processor_test.go @@ -38,7 +38,6 @@ import ( "go.opentelemetry.io/collector/processor" "go.opentelemetry.io/collector/processor/processortest" conventions "go.opentelemetry.io/collector/semconv/v1.8.0" - "go.uber.org/zap" "github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig" "github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor/internal/kube" @@ -60,7 +59,7 @@ func newTracesProcessor(cfg component.Config, next consumer.Traces, errFunc func opts := options opts = append(opts, withKubeClientProvider(newFakeClient)) - set := processortest.NewNopCreateSettings() + set := processortest.NewNopSettings() set.ReportStatus = func(event *component.StatusEvent) { errFunc(event.Err()) } @@ -76,7 +75,7 @@ func newTracesProcessor(cfg component.Config, next consumer.Traces, errFunc func func newMetricsProcessor(cfg component.Config, nextMetricsConsumer consumer.Metrics, errFunc func(error), options ...option) (processor.Metrics, error) { opts := options opts = append(opts, withKubeClientProvider(newFakeClient)) - set := processortest.NewNopCreateSettings() + set := processortest.NewNopSettings() set.ReportStatus = func(event *component.StatusEvent) { errFunc(event.Err()) } @@ -92,7 +91,7 @@ func newMetricsProcessor(cfg component.Config, nextMetricsConsumer consumer.Metr func newLogsProcessor(cfg component.Config, nextLogsConsumer consumer.Logs, errFunc func(error), options ...option) (processor.Logs, error) { opts := options opts = append(opts, withKubeClientProvider(newFakeClient)) - set := processortest.NewNopCreateSettings() + set := processortest.NewNopSettings() set.ReportStatus = func(event *component.StatusEvent) { errFunc(event.Err()) } @@ -108,7 +107,7 @@ func newLogsProcessor(cfg component.Config, nextLogsConsumer consumer.Logs, errF // withKubeClientProvider sets the specific implementation for getting K8s Client instances func withKubeClientProvider(kcp kube.ClientProvider) option { return func(p *kubernetesprocessor) error { - return p.initKubeClient(p.logger, kcp) + return p.initKubeClient(p.telemetrySettings, kcp) } } @@ -240,7 +239,7 @@ func TestNewProcessor(t *testing.T) { func TestProcessorBadClientProvider(t *testing.T) { clientProvider := func( - _ *zap.Logger, + _ component.TelemetrySettings, _ k8sconfig.APIConfig, _ kube.ExtractionRules, _ kube.Filters, diff --git a/src/processor/swmetricstransformprocessor/config_test.go b/src/processor/swmetricstransformprocessor/config_test.go index c3e5fe08..beea8bcc 100644 --- a/src/processor/swmetricstransformprocessor/config_test.go +++ b/src/processor/swmetricstransformprocessor/config_test.go @@ -168,7 +168,7 @@ func TestLoadingFullConfig(t *testing.T) { sub, err := cm.Sub(test.id.String()) require.NoError(t, err) - require.NoError(t, component.UnmarshalConfig(sub, cfg)) + require.NoError(t, sub.Unmarshal(cfg)) assert.NoError(t, component.ValidateConfig(cfg)) assert.Equal(t, test.expCfg, cfg) diff --git a/src/processor/swmetricstransformprocessor/factory.go b/src/processor/swmetricstransformprocessor/factory.go index 0fa6f489..0810bb49 100644 --- a/src/processor/swmetricstransformprocessor/factory.go +++ b/src/processor/swmetricstransformprocessor/factory.go @@ -49,7 +49,7 @@ func createDefaultConfig() component.Config { func createMetricsProcessor( ctx context.Context, - params processor.CreateSettings, + params processor.Settings, cfg component.Config, nextConsumer consumer.Metrics, ) (processor.Metrics, error) { diff --git a/src/processor/swmetricstransformprocessor/factory_test.go b/src/processor/swmetricstransformprocessor/factory_test.go index f4173f28..24e55283 100644 --- a/src/processor/swmetricstransformprocessor/factory_test.go +++ b/src/processor/swmetricstransformprocessor/factory_test.go @@ -29,6 +29,7 @@ import ( "github.com/solarwinds/swi-k8s-opentelemetry-collector/processor/swmetricstransformprocessor/internal/metadata" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/component/componenttest" "go.opentelemetry.io/collector/confmap/confmaptest" @@ -113,11 +114,11 @@ func TestCreateProcessors(t *testing.T) { sub, err := cm.Sub(k) assert.NoError(t, err) - assert.NoError(t, component.UnmarshalConfig(sub, cfg)) + require.NoError(t, sub.Unmarshal(cfg)) tp, tErr := factory.CreateTracesProcessor( context.Background(), - processortest.NewNopCreateSettings(), + processortest.NewNopSettings(), cfg, consumertest.NewNop(), ) // Not implemented error @@ -126,7 +127,7 @@ func TestCreateProcessors(t *testing.T) { mp, mErr := factory.CreateMetricsProcessor( context.Background(), - processortest.NewNopCreateSettings(), + processortest.NewNopSettings(), cfg, consumertest.NewNop(), ) diff --git a/src/processor/swmetricstransformprocessor/go.mod b/src/processor/swmetricstransformprocessor/go.mod index 7ef3e0a2..16d76d9f 100644 --- a/src/processor/swmetricstransformprocessor/go.mod +++ b/src/processor/swmetricstransformprocessor/go.mod @@ -4,13 +4,13 @@ go 1.22 require ( github.com/stretchr/testify v1.9.0 - go.opentelemetry.io/collector/component v0.98.0 - go.opentelemetry.io/collector/confmap v0.98.0 - go.opentelemetry.io/collector/consumer v0.98.0 - go.opentelemetry.io/collector/pdata v1.5.0 - go.opentelemetry.io/collector/processor v0.98.0 - go.opentelemetry.io/otel/metric v1.25.0 - go.opentelemetry.io/otel/trace v1.25.0 + go.opentelemetry.io/collector/component v0.103.0 + go.opentelemetry.io/collector/confmap v0.103.0 + go.opentelemetry.io/collector/consumer v0.103.0 + go.opentelemetry.io/collector/pdata v1.10.0 + go.opentelemetry.io/collector/processor v0.103.0 + go.opentelemetry.io/otel/metric v1.27.0 + go.opentelemetry.io/otel/trace v1.27.0 go.uber.org/goleak v1.3.0 go.uber.org/zap v1.27.0 ) @@ -23,8 +23,8 @@ require ( github.com/go-logr/stdr v1.2.2 // indirect github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/protobuf v1.5.3 // indirect github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/go-version v1.7.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/knadh/koanf/maps v0.1.1 // indirect github.com/knadh/koanf/providers/confmap v0.1.0 // indirect @@ -34,23 +34,24 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.19.0 // indirect + github.com/prometheus/client_golang v1.19.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.48.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect - go.opentelemetry.io/collector v0.98.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.98.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.98.0 // indirect - go.opentelemetry.io/otel v1.25.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.47.0 // indirect - go.opentelemetry.io/otel/sdk v1.25.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.25.0 // indirect + github.com/prometheus/common v0.54.0 // indirect + github.com/prometheus/procfs v0.15.0 // indirect + go.opentelemetry.io/collector v0.103.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.103.0 // indirect + go.opentelemetry.io/collector/featuregate v1.10.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.103.0 // indirect + go.opentelemetry.io/otel v1.27.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.49.0 // indirect + go.opentelemetry.io/otel/sdk v1.27.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/net v0.24.0 // indirect - golang.org/x/sys v0.19.0 // indirect - golang.org/x/text v0.14.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect - google.golang.org/grpc v1.62.1 // indirect - google.golang.org/protobuf v1.33.0 // indirect + golang.org/x/net v0.25.0 // indirect + golang.org/x/sys v0.20.0 // indirect + golang.org/x/text v0.15.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240520151616-dc85e6b867a5 // indirect + google.golang.org/grpc v1.64.0 // indirect + google.golang.org/protobuf v1.34.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/src/processor/swmetricstransformprocessor/go.sum b/src/processor/swmetricstransformprocessor/go.sum index f41ccdea..e3633609 100644 --- a/src/processor/swmetricstransformprocessor/go.sum +++ b/src/processor/swmetricstransformprocessor/go.sum @@ -14,15 +14,13 @@ github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 h1:TQcrn6Wq+sKGkpyPvppOz99zsM github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -48,14 +46,14 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= -github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= +github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= +github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= -github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= +github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= +github.com/prometheus/procfs v0.15.0 h1:A82kmvXJq2jTu5YUhSGNlYoxh85zLnKgPz4bMZgI5Ek= +github.com/prometheus/procfs v0.15.0/go.mod h1:Y0RJ/Y5g5wJpkTisOtqwDSo4HwhGmLB4VQSw2sQJLHk= 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/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -64,34 +62,36 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.opentelemetry.io/collector v0.98.0 h1:O7bpARGWzNfFQEYevLl4iigDrpGTJY3vV/kKqNZzMOk= -go.opentelemetry.io/collector v0.98.0/go.mod h1:fvPM+tBML07uvAP1MV2msYPSYJ9U/lgE1jDb3AFBaMM= -go.opentelemetry.io/collector/component v0.98.0 h1:0TMaBOyCdABiVLFdGOgG8zd/1IeGldCinYonbY08xWk= -go.opentelemetry.io/collector/component v0.98.0/go.mod h1:F6zyQLsoExl6r2q6WWZm8rmSSALbwG2zwIHLrMzZVio= -go.opentelemetry.io/collector/config/configtelemetry v0.98.0 h1:f8RNZ1l/kYPPoxFmKKvTUli8iON7CMsm85KM38PVNts= -go.opentelemetry.io/collector/config/configtelemetry v0.98.0/go.mod h1:YV5PaOdtnU1xRomPcYqoHmyCr48tnaAREeGO96EZw8o= -go.opentelemetry.io/collector/confmap v0.98.0 h1:qQreBlrqio1y7uhrAvr+W86YbQ6fw7StgkbYpvJ2vVc= -go.opentelemetry.io/collector/confmap v0.98.0/go.mod h1:BWKPIpYeUzSG6ZgCJMjF7xsLvyrvJCfYURl57E5vhiQ= -go.opentelemetry.io/collector/consumer v0.98.0 h1:47zJ5HFKXVA0RciuwkZnPU5W8j0TYUxToB1/zzzgEhs= -go.opentelemetry.io/collector/consumer v0.98.0/go.mod h1:c2edTq38uVJET/NE6VV7/Qpyznnlz8b6VE7J6TXD57c= -go.opentelemetry.io/collector/pdata v1.5.0 h1:1fKTmUpr0xCOhP/B0VEvtz7bYPQ45luQ8XFyA07j8LE= -go.opentelemetry.io/collector/pdata v1.5.0/go.mod h1:TYj8aKRWZyT/KuKQXKyqSEvK/GV+slFaDMEI+Ke64Yw= -go.opentelemetry.io/collector/pdata/testdata v0.98.0 h1:8gohV+LFXqMzuDwfOOQy9GcZBOX0C9xGoQkoeXFTzmI= -go.opentelemetry.io/collector/pdata/testdata v0.98.0/go.mod h1:B/IaHcf6+RtxI292CZu9TjfYQdi1n4+v6b8rHEonpKs= -go.opentelemetry.io/collector/processor v0.98.0 h1:onrg8a99lToytbHF148Bg9a7DfNk31B+p6UHouiiVTw= -go.opentelemetry.io/collector/processor v0.98.0/go.mod h1:QxgzjmJI12DQWN0LIHmZBOR7HRzPuVWFW4oqTdrS1ho= -go.opentelemetry.io/otel v1.25.0 h1:gldB5FfhRl7OJQbUHt/8s0a7cE8fbsPAtdpRaApKy4k= -go.opentelemetry.io/otel v1.25.0/go.mod h1:Wa2ds5NOXEMkCmUou1WA7ZBfLTHWIsp034OVD7AO+Vg= -go.opentelemetry.io/otel/exporters/prometheus v0.47.0 h1:OL6yk1Z/pEGdDnrBbxSsH+t4FY1zXfBRGd7bjwhlMLU= -go.opentelemetry.io/otel/exporters/prometheus v0.47.0/go.mod h1:xF3N4OSICZDVbbYZydz9MHFro1RjmkPUKEvar2utG+Q= -go.opentelemetry.io/otel/metric v1.25.0 h1:LUKbS7ArpFL/I2jJHdJcqMGxkRdxpPHE0VU/D4NuEwA= -go.opentelemetry.io/otel/metric v1.25.0/go.mod h1:rkDLUSd2lC5lq2dFNrX9LGAbINP5B7WBkC78RXCpH5s= -go.opentelemetry.io/otel/sdk v1.25.0 h1:PDryEJPC8YJZQSyLY5eqLeafHtG+X7FWnf3aXMtxbqo= -go.opentelemetry.io/otel/sdk v1.25.0/go.mod h1:oFgzCM2zdsxKzz6zwpTZYLLQsFwc+K0daArPdIhuxkw= -go.opentelemetry.io/otel/sdk/metric v1.25.0 h1:7CiHOy08LbrxMAp4vWpbiPcklunUshVpAvGBrdDRlGw= -go.opentelemetry.io/otel/sdk/metric v1.25.0/go.mod h1:LzwoKptdbBBdYfvtGCzGwk6GWMA3aUzBOwtQpR6Nz7o= -go.opentelemetry.io/otel/trace v1.25.0 h1:tqukZGLwQYRIFtSQM2u2+yfMVTgGVeqRLPUYx1Dq6RM= -go.opentelemetry.io/otel/trace v1.25.0/go.mod h1:hCCs70XM/ljO+BeQkyFnbK28SBIJ/Emuha+ccrCRT7I= +go.opentelemetry.io/collector v0.103.0 h1:mssWo1y31p1F/SRsSBnVUX6YocgawCqM1blpE+hkWog= +go.opentelemetry.io/collector v0.103.0/go.mod h1:mgqdTFB7QCYiOeEdJSSEktovPqy+2fw4oTKJzyeSB0U= +go.opentelemetry.io/collector/component v0.103.0 h1:j52YAsp8EmqYUotVUwhovkqFZGuxArEkk65V4TI46NE= +go.opentelemetry.io/collector/component v0.103.0/go.mod h1:jKs19tGtCO8Hr5/YM0F+PoFcl8SVe/p4Ge30R6srkbc= +go.opentelemetry.io/collector/config/configtelemetry v0.103.0 h1:KLbhkFqdw9D31t0IhJ/rnhMRvz/s14eie0fKfm5xWns= +go.opentelemetry.io/collector/config/configtelemetry v0.103.0/go.mod h1:WxWKNVAQJg/Io1nA3xLgn/DWLE/W1QOB2+/Js3ACi40= +go.opentelemetry.io/collector/confmap v0.103.0 h1:qKKZyWzropSKfgtGv12JzADOXNgThqH1Vx6qzblBE24= +go.opentelemetry.io/collector/confmap v0.103.0/go.mod h1:TlOmqe/Km3K6WgxyhEAdCb/V1Yp6eSU76fCoiluEa88= +go.opentelemetry.io/collector/consumer v0.103.0 h1:L/7SA/U2ua5L4yTLChnI9I+IFGKYU5ufNQ76QKYcPYs= +go.opentelemetry.io/collector/consumer v0.103.0/go.mod h1:7jdYb9kSSOsu2R618VRX0VJ+Jt3OrDvvUsDToHTEOLI= +go.opentelemetry.io/collector/featuregate v1.10.0 h1:krSqokHTp7JthgmtewysqHuOAkcuuZl7G2n91s7HygE= +go.opentelemetry.io/collector/featuregate v1.10.0/go.mod h1:PsOINaGgTiFc+Tzu2K/X2jP+Ngmlp7YKGV1XrnBkH7U= +go.opentelemetry.io/collector/pdata v1.10.0 h1:oLyPLGvPTQrcRT64ZVruwvmH/u3SHTfNo01pteS4WOE= +go.opentelemetry.io/collector/pdata v1.10.0/go.mod h1:IHxHsp+Jq/xfjORQMDJjSH6jvedOSTOyu3nbxqhWSYE= +go.opentelemetry.io/collector/pdata/testdata v0.103.0 h1:iI6NOE0L2je/bxlWzAWHQ/yCtnGupgv42Hl9Al1q/g4= +go.opentelemetry.io/collector/pdata/testdata v0.103.0/go.mod h1:tLzRhb/h37/9wFRQVr+CxjKi5qmhSRpCAiOlhwRkeEk= +go.opentelemetry.io/collector/processor v0.103.0 h1:YZ+LRuHKtOam7SCeLkJAP6bS1d6XxeYP22OyMN3VP0s= +go.opentelemetry.io/collector/processor v0.103.0/go.mod h1:/mxyh0NpJgpZycm7iHDpM7i5PdtWvKKdCZf0cyADJfU= +go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= +go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= +go.opentelemetry.io/otel/exporters/prometheus v0.49.0 h1:Er5I1g/YhfYv9Affk9nJLfH/+qCCVVg1f2R9AbJfqDQ= +go.opentelemetry.io/otel/exporters/prometheus v0.49.0/go.mod h1:KfQ1wpjf3zsHjzP149P4LyAwWRupc6c7t1ZJ9eXpKQM= +go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= +go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= +go.opentelemetry.io/otel/sdk v1.27.0 h1:mlk+/Y1gLPLn84U4tI8d3GNJmGT/eXe3ZuOXN9kTWmI= +go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= +go.opentelemetry.io/otel/sdk/metric v1.27.0 h1:5uGNOlpXi+Hbo/DRoI31BSb1v+OGcpv2NemcCrOL8gI= +go.opentelemetry.io/otel/sdk/metric v1.27.0/go.mod h1:we7jJVrYN2kh3mVBlswtPU22K0SA+769l93J6bsyvqw= +go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= +go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -107,20 +107,20 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -129,14 +129,12 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 h1:AjyfHzEPEFp/NpvfN5g+KDla3EMojjhRVZc1i7cj+oM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= -google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= -google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240520151616-dc85e6b867a5 h1:Q2RxlXqh1cgzzUgV261vBO2jI5R/3DD1J2pM0nI4NhU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= +google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/src/processor/swmetricstransformprocessor/internal/metadata/generated_status.go b/src/processor/swmetricstransformprocessor/internal/metadata/generated_status.go index b866b1eb..57a6b164 100644 --- a/src/processor/swmetricstransformprocessor/internal/metadata/generated_status.go +++ b/src/processor/swmetricstransformprocessor/internal/metadata/generated_status.go @@ -4,8 +4,6 @@ package metadata import ( "go.opentelemetry.io/collector/component" - "go.opentelemetry.io/otel/metric" - "go.opentelemetry.io/otel/trace" ) var ( @@ -15,11 +13,3 @@ var ( const ( MetricsStability = component.StabilityLevelBeta ) - -func Meter(settings component.TelemetrySettings) metric.Meter { - return settings.MeterProvider.Meter("otelcol/metricstransform") -} - -func Tracer(settings component.TelemetrySettings) trace.Tracer { - return settings.TracerProvider.Tracer("otelcol/metricstransform") -} diff --git a/src/processor/swmetricstransformprocessor/internal/metadata/generated_telemetry.go b/src/processor/swmetricstransformprocessor/internal/metadata/generated_telemetry.go new file mode 100644 index 00000000..2909d045 --- /dev/null +++ b/src/processor/swmetricstransformprocessor/internal/metadata/generated_telemetry.go @@ -0,0 +1,17 @@ +// Code generated by mdatagen. DO NOT EDIT. + +package metadata + +import ( + "go.opentelemetry.io/collector/component" + "go.opentelemetry.io/otel/metric" + "go.opentelemetry.io/otel/trace" +) + +func Meter(settings component.TelemetrySettings) metric.Meter { + return settings.MeterProvider.Meter("otelcol/metricstransform") +} + +func Tracer(settings component.TelemetrySettings) trace.Tracer { + return settings.TracerProvider.Tracer("otelcol/metricstransform") +} diff --git a/src/processor/swmetricstransformprocessor/internal/metadata/generated_telemetry_test.go b/src/processor/swmetricstransformprocessor/internal/metadata/generated_telemetry_test.go new file mode 100644 index 00000000..3fcefc75 --- /dev/null +++ b/src/processor/swmetricstransformprocessor/internal/metadata/generated_telemetry_test.go @@ -0,0 +1,63 @@ +// Code generated by mdatagen. DO NOT EDIT. + +package metadata + +import ( + "testing" + + "github.com/stretchr/testify/require" + "go.opentelemetry.io/otel/metric" + embeddedmetric "go.opentelemetry.io/otel/metric/embedded" + noopmetric "go.opentelemetry.io/otel/metric/noop" + "go.opentelemetry.io/otel/trace" + embeddedtrace "go.opentelemetry.io/otel/trace/embedded" + nooptrace "go.opentelemetry.io/otel/trace/noop" + + "go.opentelemetry.io/collector/component" +) + +type mockMeter struct { + noopmetric.Meter + name string +} +type mockMeterProvider struct { + embeddedmetric.MeterProvider +} + +func (m mockMeterProvider) Meter(name string, opts ...metric.MeterOption) metric.Meter { + return mockMeter{name: name} +} + +type mockTracer struct { + nooptrace.Tracer + name string +} + +type mockTracerProvider struct { + embeddedtrace.TracerProvider +} + +func (m mockTracerProvider) Tracer(name string, opts ...trace.TracerOption) trace.Tracer { + return mockTracer{name: name} +} + +func TestProviders(t *testing.T) { + set := component.TelemetrySettings{ + MeterProvider: mockMeterProvider{}, + TracerProvider: mockTracerProvider{}, + } + + meter := Meter(set) + if m, ok := meter.(mockMeter); ok { + require.Equal(t, "otelcol/metricstransform", m.name) + } else { + require.Fail(t, "returned Meter not mockMeter") + } + + tracer := Tracer(set) + if m, ok := tracer.(mockTracer); ok { + require.Equal(t, "otelcol/metricstransform", m.name) + } else { + require.Fail(t, "returned Meter not mockTracer") + } +} diff --git a/src/processor/swmetricstransformprocessor/package_test.go b/src/processor/swmetricstransformprocessor/package_test.go index 84210c0f..794bfb69 100644 --- a/src/processor/swmetricstransformprocessor/package_test.go +++ b/src/processor/swmetricstransformprocessor/package_test.go @@ -1,5 +1,19 @@ -// Copyright The OpenTelemetry Authors -// SPDX-License-Identifier: Apache-2.0 +// Copyright 2022 SolarWinds Worldwide, LLC. 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. + +// Source: https://github.com/open-telemetry/opentelemetry-collector-contrib +// Changes customizing the original source code: see CHANGELOG.md in deploy/helm directory package swmetricstransformprocessor