From 8ef2cfd0592beb98e9b998f9538962664349d444 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 19 Nov 2025 11:37:53 +0000 Subject: [PATCH 1/4] Checkpoint before follow-up message Co-authored-by: piotr.gwizdala --- deps-update-2025-11-19.md | 38 +++++ go.mod | 302 +++++++++++++++++++------------------- 2 files changed, 189 insertions(+), 151 deletions(-) create mode 100644 deps-update-2025-11-19.md diff --git a/deps-update-2025-11-19.md b/deps-update-2025-11-19.md new file mode 100644 index 0000000000..b50cff60d7 --- /dev/null +++ b/deps-update-2025-11-19.md @@ -0,0 +1,38 @@ +# Major Dependency Update – 2025-11-19 + +## Step 2 – Version Snapshot +| Dependency | Current Version | Latest Release | Update? | +| --- | --- | --- | --- | +| OpenTelemetry Collector Core (`go.opentelemetry.io/collector/*`) | Mix of `v1.45.0` + `v0.139.0` | `v1.46.0` / `v0.140.0` | ⚠️ | +| OpenTelemetry Collector Contrib (`github.com/open-telemetry/opentelemetry-collector-contrib/...`) | `v0.139.0` (with a few stuck at `v0.138.0`/`v0.130.0`) | `v0.140.1` | ⚠️ | +| Prometheus Server (`github.com/prometheus/prometheus`) | `github.com/grafana/prometheus` `staleness_disabling_v3.7.3` (base `v3.7.3` / module `v0.307.3`) | Upstream `v3.7.3` (`v0.307.3`) | ✅ | +| Prometheus Common | `v0.67.1` | `v0.67.3` | ⚠️ | +| Prometheus Client Golang | `v1.23.2` | `v1.23.2` | ✅ | +| Prometheus Client Model | `v0.6.2` | `v0.6.2` | ✅ | +| Grafana Beyla (`github.com/grafana/beyla/v2`) | `v2.7.6` | `v2.7.6` | ✅ | +| Grafana Loki (`github.com/grafana/loki/v3`) | `v3.0.0-20251021174646-053429db2124` (main commit) | `v3.6.0` | ⚠️ | +| OBI (`go.opentelemetry.io/obi` ⇒ `grafana/opentelemetry-ebpf-instrumentation`) | `v1.3.7` | `v1.3.8` | ⚠️ | +| eBPF Profiler (`go.opentelemetry.io/ebpf-profiler` ⇒ `grafana/opentelemetry-ebpf-profiler`) | `v0.0.202546-0.20251106085643-a00a0ef2a84c` | Fork head `a00a0ef` (post-`v0.0.202545`, upstream `v0.0.202547`) | ✅ | + +## Step 3 – Fork Review + +### go.opentelemetry.io/collector/featuregate ⇒ grafana/opentelemetry-collector (`feature-gate-registration-error-handler`) — ✅ +- **Base / Deltas:** Branch diverges from upstream `main` at `116c1812` (Mar 2024, ~v1.45). Single commit `2fd1623` (“Allow for custom duplicate featuregates handling”) introduces a configurable duplicate registration handler (`SetAlreadyRegisteredErrHandler`) touching `featuregate/registry.go` and tests. +- **Why:** Alloy installs a handler via `internal/util/otelfeaturegatefix/featuregate_override.go` to prevent Prometheus scrape library from panicking when shared components register feature gates twice (see Grafana Alloy issue #249 referenced in Prom issue #14049). +- **Upstream status:** No upstream issue or PR adding this hook yet; diff vs `v1.46.0` still missing the handler, so the fork remains necessary. +- **Next step:** The existing branch can continue to satisfy Alloy while we update to OTel `v1.46.0`; once practical, cut a refreshed tag (e.g., `feature-gate-registration-error-handler-v1.46.0`) so the fork stays close to upstream. + +### github.com/prometheus/prometheus ⇒ grafana/prometheus (`staleness_disabling_v3.7.3`) — ✅ +- **Base / Deltas:** Branch tracks upstream `v3.7.3` (`v0.307.3`) with two extra commits: `d73e188` (“Add staleness disabling”) and `c9e0b31` (“Fix slicelabels corruption when used with proto decoding”). +- **Why:** Enables per-target disabling of end-of-run staleness markers for Alloy’s sharded scrape use case (fixes gaps described in upstream issue [#14049](https://github.com/prometheus/prometheus/issues/14049)). +- **Upstream status:** Upstream PR [#17431](https://github.com/prometheus/prometheus/pull/17431) merged on 2025-11-04 but is not yet part of a released tarball; we must keep the fork until a release ≥v3.7.4 ships with that patch. +- **Next step:** When upstream tags the next release containing #17431, cut `staleness_disabling_v` carrying only the slicelabel hotfix if still needed. + +### go.opentelemetry.io/obi ⇒ grafana/opentelemetry-ebpf-instrumentation — ✅ +- **Base / Deltas:** Grafana-maintained fork is ahead of upstream; latest tag `v1.3.8` adds commits `be9aeb6…92f3924` (PR [#29](https://github.com/grafana/opentelemetry-ebpf-instrumentation/pull/29)) that vendor the SDK name, sync missing metrics, and stabilize multi-node tests. +- **Status:** Latest fork release exists and should be consumed (`v1.3.8`); no upstream equivalent yet, so fork is ready once we bump. + +### go.opentelemetry.io/ebpf-profiler ⇒ grafana/opentelemetry-ebpf-profiler — ✅ +- **Base / Deltas:** Currently pinned to commit `a00a0ef` (post-tag pseudo-version) that merges Grafana PR [#36](https://github.com/grafana/opentelemetry-ebpf-profiler/pull/36), fixing a race in `processmanager`’s resource release logic. +- **Why:** Upstream PR [open-telemetry/opentelemetry-ebpf-profiler#899](https://github.com/open-telemetry/opentelemetry-ebpf-profiler/pull/899) carrying the same fix was closed (code being rewritten), so we need the fork for Alloy releases. +- **Status:** Alloy already consumes the fork head with the race fix, so we can proceed; for bookkeeping we should cut a tag (e.g., `v0.0.202546`) or rebase onto upstream `v0.0.202547` when available, but it is not blocking the dependency update. diff --git a/go.mod b/go.mod index 0da1f43ede..2f8aec4747 100644 --- a/go.mod +++ b/go.mod @@ -116,64 +116,64 @@ require ( github.com/oklog/run v1.2.0 github.com/olekukonko/tablewriter v0.0.5 github.com/oliver006/redis_exporter v1.74.0 - github.com/open-telemetry/opentelemetry-collector-contrib/connector/servicegraphconnector v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awss3exporter v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/faroexporter v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudpubsubexporter v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter v0.138.0 // bug with v139 https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43950 + github.com/open-telemetry/opentelemetry-collector-contrib/connector/servicegraphconnector v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awss3exporter v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/faroexporter v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudpubsubexporter v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter v0.140.1 // bug with v139 https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43950 github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.130.0 // TODO: Upgrade this when we can use a new version of otlptranslator - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/syslogexporter v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/jaegerremotesampling v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/kafka/configkafka v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.139.0 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/syslogexporter v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/jaegerremotesampling v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/kafka/configkafka v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.140.1 github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/loki v0.130.0 // TODO: Upgrade this when we can use a new version of otlptranslator - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/intervalprocessor v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscloudwatchreceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsecscontainermetricsreceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudflarereceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/datadogreceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/faroreceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filestatsreceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudpubsubreceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/influxdbreceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkareceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/opencensusreceiver v0.133.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/solacereceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/syslogreceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/tcplogreceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/vcenterreceiver v0.139.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.139.0 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/intervalprocessor v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscloudwatchreceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsecscontainermetricsreceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudflarereceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/datadogreceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/faroreceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filestatsreceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudpubsubreceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/influxdbreceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkareceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/opencensusreceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/solacereceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/syslogreceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/tcplogreceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/vcenterreceiver v0.140.1 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.140.1 github.com/oracle/oracle-db-appdev-monitoring v0.0.0-20250516154730-1d8025fde3b0 github.com/ory/dockertest/v3 v3.12.0 github.com/oschwald/geoip2-golang v1.13.0 @@ -227,49 +227,49 @@ require ( github.com/xdg-go/scram v1.1.2 github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2 // indirect github.com/zeebo/xxh3 v1.0.2 - go.opentelemetry.io/collector/client v1.45.0 - go.opentelemetry.io/collector/component v1.45.0 - go.opentelemetry.io/collector/component/componentstatus v0.139.0 - go.opentelemetry.io/collector/component/componenttest v0.139.0 - go.opentelemetry.io/collector/config/configauth v1.45.0 - go.opentelemetry.io/collector/config/configcompression v1.45.0 - go.opentelemetry.io/collector/config/configgrpc v0.139.0 - go.opentelemetry.io/collector/config/confighttp v0.139.0 - go.opentelemetry.io/collector/config/confignet v1.45.0 - go.opentelemetry.io/collector/config/configopaque v1.45.0 - go.opentelemetry.io/collector/config/configoptional v1.45.0 - go.opentelemetry.io/collector/config/configretry v1.45.0 - go.opentelemetry.io/collector/config/configtelemetry v0.139.0 - go.opentelemetry.io/collector/config/configtls v1.45.0 - go.opentelemetry.io/collector/confmap v1.45.0 - go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.45.0 - go.opentelemetry.io/collector/confmap/xconfmap v0.139.0 - go.opentelemetry.io/collector/connector v0.139.0 - go.opentelemetry.io/collector/connector/connectortest v0.139.0 - go.opentelemetry.io/collector/consumer v1.45.0 - go.opentelemetry.io/collector/consumer/consumertest v0.139.0 - go.opentelemetry.io/collector/exporter v1.45.0 - go.opentelemetry.io/collector/exporter/debugexporter v0.139.0 - go.opentelemetry.io/collector/exporter/exporterhelper v0.139.0 - go.opentelemetry.io/collector/exporter/otlpexporter v0.139.0 - go.opentelemetry.io/collector/exporter/otlphttpexporter v0.139.0 - go.opentelemetry.io/collector/extension v1.45.0 - go.opentelemetry.io/collector/extension/extensionauth v1.45.0 - go.opentelemetry.io/collector/extension/extensiontest v0.139.0 - go.opentelemetry.io/collector/extension/xextension v0.139.0 - go.opentelemetry.io/collector/featuregate v1.45.0 - go.opentelemetry.io/collector/otelcol v0.139.0 - go.opentelemetry.io/collector/pdata v1.45.0 - go.opentelemetry.io/collector/pipeline v1.45.0 - go.opentelemetry.io/collector/processor v1.45.0 - go.opentelemetry.io/collector/processor/batchprocessor v0.139.0 - go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.139.0 - go.opentelemetry.io/collector/receiver v1.45.0 - go.opentelemetry.io/collector/receiver/otlpreceiver v0.139.0 - go.opentelemetry.io/collector/receiver/receiverhelper v0.139.0 - go.opentelemetry.io/collector/receiver/receivertest v0.139.0 - go.opentelemetry.io/collector/scraper/scraperhelper v0.139.0 - go.opentelemetry.io/collector/service v0.139.0 + go.opentelemetry.io/collector/client v1.46.0 + go.opentelemetry.io/collector/component v1.46.0 + go.opentelemetry.io/collector/component/componentstatus v0.140.0 + go.opentelemetry.io/collector/component/componenttest v0.140.0 + go.opentelemetry.io/collector/config/configauth v1.46.0 + go.opentelemetry.io/collector/config/configcompression v1.46.0 + go.opentelemetry.io/collector/config/configgrpc v0.140.0 + go.opentelemetry.io/collector/config/confighttp v0.140.0 + go.opentelemetry.io/collector/config/confignet v1.46.0 + go.opentelemetry.io/collector/config/configopaque v1.46.0 + go.opentelemetry.io/collector/config/configoptional v1.46.0 + go.opentelemetry.io/collector/config/configretry v1.46.0 + go.opentelemetry.io/collector/config/configtelemetry v0.140.0 + go.opentelemetry.io/collector/config/configtls v1.46.0 + go.opentelemetry.io/collector/confmap v1.46.0 + go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.46.0 + go.opentelemetry.io/collector/confmap/xconfmap v0.140.0 + go.opentelemetry.io/collector/connector v0.140.0 + go.opentelemetry.io/collector/connector/connectortest v0.140.0 + go.opentelemetry.io/collector/consumer v1.46.0 + go.opentelemetry.io/collector/consumer/consumertest v0.140.0 + go.opentelemetry.io/collector/exporter v1.46.0 + go.opentelemetry.io/collector/exporter/debugexporter v0.140.0 + go.opentelemetry.io/collector/exporter/exporterhelper v0.140.0 + go.opentelemetry.io/collector/exporter/otlpexporter v0.140.0 + go.opentelemetry.io/collector/exporter/otlphttpexporter v0.140.0 + go.opentelemetry.io/collector/extension v1.46.0 + go.opentelemetry.io/collector/extension/extensionauth v1.46.0 + go.opentelemetry.io/collector/extension/extensiontest v0.140.0 + go.opentelemetry.io/collector/extension/xextension v0.140.0 + go.opentelemetry.io/collector/featuregate v1.46.0 + go.opentelemetry.io/collector/otelcol v0.140.0 + go.opentelemetry.io/collector/pdata v1.46.0 + go.opentelemetry.io/collector/pipeline v1.46.0 + go.opentelemetry.io/collector/processor v1.46.0 + go.opentelemetry.io/collector/processor/batchprocessor v0.140.0 + go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.140.0 + go.opentelemetry.io/collector/receiver v1.46.0 + go.opentelemetry.io/collector/receiver/otlpreceiver v0.140.0 + go.opentelemetry.io/collector/receiver/receiverhelper v0.140.0 + go.opentelemetry.io/collector/receiver/receivertest v0.140.0 + go.opentelemetry.io/collector/scraper/scraperhelper v0.140.0 + go.opentelemetry.io/collector/service v0.140.0 go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux v0.45.0 go.opentelemetry.io/ebpf-profiler v0.0.0-00010101000000-000000000000 go.opentelemetry.io/obi v1.2.2 @@ -756,31 +756,31 @@ require ( github.com/ohler55/ojg v1.26.8 // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/oklog/ulid/v2 v2.1.1 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/ackextension v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding v0.139.0 // indirect; indirect) - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/datadog v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/kafka v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchpersignal v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/core/xidutils v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/kafka/topic v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/azure v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/faro v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/opencensus v0.139.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.139.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/ackextension v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding v0.140.1 // indirect; indirect) + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/datadog v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/kafka v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchpersignal v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/core/xidutils v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/kafka/topic v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/azure v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/faro v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/opencensus v0.140.1 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.140.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.1 // indirect github.com/opencontainers/runc v1.3.3 // indirect @@ -894,34 +894,34 @@ require ( go.mongodb.org/mongo-driver/v2 v2.3.0 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect - go.opentelemetry.io/collector v0.139.0 // indirect - go.opentelemetry.io/collector/config/configmiddleware v1.45.0 // indirect - go.opentelemetry.io/collector/connector/xconnector v0.139.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.139.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.139.0 // indirect - go.opentelemetry.io/collector/consumer/xconsumer v0.139.0 // indirect - go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.139.0 // indirect - go.opentelemetry.io/collector/exporter/exportertest v0.139.0 // indirect - go.opentelemetry.io/collector/exporter/xexporter v0.139.0 // indirect - go.opentelemetry.io/collector/extension/extensioncapabilities v0.139.0 // indirect - go.opentelemetry.io/collector/extension/extensionmiddleware v0.139.0 // indirect - go.opentelemetry.io/collector/filter v0.139.0 // indirect - go.opentelemetry.io/collector/internal/fanoutconsumer v0.139.0 // indirect - go.opentelemetry.io/collector/internal/memorylimiter v0.139.0 // indirect - go.opentelemetry.io/collector/internal/sharedcomponent v0.139.0 // indirect - go.opentelemetry.io/collector/internal/telemetry v0.139.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.139.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.139.0 // indirect - go.opentelemetry.io/collector/pdata/xpdata v0.139.0 // indirect - go.opentelemetry.io/collector/pipeline/xpipeline v0.139.0 // indirect - go.opentelemetry.io/collector/processor/processorhelper v0.139.0 // indirect - go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.139.0 // indirect - go.opentelemetry.io/collector/processor/processortest v0.139.0 // indirect - go.opentelemetry.io/collector/processor/xprocessor v0.139.0 // indirect - go.opentelemetry.io/collector/receiver/xreceiver v0.139.0 // indirect - go.opentelemetry.io/collector/scraper v0.139.0 // indirect + go.opentelemetry.io/collector v0.140.0 // indirect + go.opentelemetry.io/collector/config/configmiddleware v1.46.0 // indirect + go.opentelemetry.io/collector/connector/xconnector v0.140.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.140.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.140.0 // indirect + go.opentelemetry.io/collector/consumer/xconsumer v0.140.0 // indirect + go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.140.0 // indirect + go.opentelemetry.io/collector/exporter/exportertest v0.140.0 // indirect + go.opentelemetry.io/collector/exporter/xexporter v0.140.0 // indirect + go.opentelemetry.io/collector/extension/extensioncapabilities v0.140.0 // indirect + go.opentelemetry.io/collector/extension/extensionmiddleware v0.140.0 // indirect + go.opentelemetry.io/collector/filter v0.140.0 // indirect + go.opentelemetry.io/collector/internal/fanoutconsumer v0.140.0 // indirect + go.opentelemetry.io/collector/internal/memorylimiter v0.140.0 // indirect + go.opentelemetry.io/collector/internal/sharedcomponent v0.140.0 // indirect + go.opentelemetry.io/collector/internal/telemetry v0.140.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.140.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.140.0 // indirect + go.opentelemetry.io/collector/pdata/xpdata v0.140.0 // indirect + go.opentelemetry.io/collector/pipeline/xpipeline v0.140.0 // indirect + go.opentelemetry.io/collector/processor/processorhelper v0.140.0 // indirect + go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.140.0 // indirect + go.opentelemetry.io/collector/processor/processortest v0.140.0 // indirect + go.opentelemetry.io/collector/processor/xprocessor v0.140.0 // indirect + go.opentelemetry.io/collector/receiver/xreceiver v0.140.0 // indirect + go.opentelemetry.io/collector/scraper v0.140.0 // indirect go.opentelemetry.io/collector/semconv v0.128.1-0.20250610090210-188191247685 // indirect - go.opentelemetry.io/collector/service/hostcapabilities v0.139.0 // indirect + go.opentelemetry.io/collector/service/hostcapabilities v0.140.0 // indirect go.opentelemetry.io/contrib/bridges/otelzap v0.13.0 // indirect go.opentelemetry.io/contrib/bridges/prometheus v0.61.0 // indirect go.opentelemetry.io/contrib/detectors/aws/ec2/v2 v2.0.0 // indirect From 4fa5875bbf22449ccf4d52c074d13325a7417246 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 19 Nov 2025 12:04:40 +0000 Subject: [PATCH 2/4] feat: Update dependencies and refactor go.mod organization Co-authored-by: piotr.gwizdala --- deps-update-2025-11-19.md | 16 + go.mod | 322 +- go.sum | 1208 +-- .../.cargo/config.toml | 9 + .../.codespellignore | 4 + .../opentelemetry-ebpf-profiler/.codespellrc | 10 + .../opentelemetry-ebpf-profiler/.dockerignore | 5 + .../.github/CODEOWNERS | 17 + .../.github/renovate.json5 | 42 + .../.github/workflows/auto-tag.yml | 36 + .../.github/workflows/codeql.yml | 44 + .../.github/workflows/codespell.yml | 20 + .../.github/workflows/collector-tests.yml | 50 + .../.github/workflows/env/action.yml | 64 + .../.github/workflows/fossa.yml | 22 + .../.github/workflows/ossf-scorecard.yml | 47 + .../.github/workflows/push-docker-image.yml | 41 + .../workflows/unit-test-on-pull-request.yml | 236 + .../opentelemetry-ebpf-profiler/.gitignore | 11 + .../opentelemetry-ebpf-profiler/.golangci.yml | 147 + .../opentelemetry-ebpf-profiler/AUTHORS.md | 27 + .../CONTRIBUTING.md | 161 + .../opentelemetry-ebpf-profiler/Cargo.lock | 784 ++ .../opentelemetry-ebpf-profiler/Cargo.toml | 76 + .../opentelemetry-ebpf-profiler/Dockerfile | 71 + .../opentelemetry-ebpf-profiler/LICENSE | 201 + .../github.com/cespare/xxhash/v2/LICENSE.txt | 22 + .../LICENSES/github.com/cilium/ebpf/LICENSE | 23 + .../github.com/elastic/go-freelru/LICENSE | 201 + .../github.com/elastic/go-freelru/NOTICE | 2 + .../github.com/elastic/go-perf/LICENSE | 27 + .../LICENSES/github.com/gogo/protobuf/LICENSE | 35 + .../LICENSES/github.com/google/uuid/LICENSE | 27 + .../github.com/grafana/regexp/LICENSE | 27 + .../go-version/.github/dependabot.yml | 25 + .../go-version/.github/workflows/go-tests.yml | 74 + .../hashicorp/go-version/CHANGELOG.md | 64 + .../github.com/hashicorp/go-version/LICENSE | 356 + .../github.com/hashicorp/go-version/README.md | 66 + .../hashicorp/go-version/constraint.go | 298 + .../hashicorp/go-version/constraint_test.go | 258 + .../github.com/hashicorp/go-version/go.mod | 1 + .../hashicorp/go-version/version.go | 441 ++ .../go-version/version_collection.go | 20 + .../go-version/version_collection_test.go | 49 + .../hashicorp/go-version/version_test.go | 730 ++ .../github.com/josharian/native/license | 7 + .../github.com/json-iterator/go/LICENSE | 21 + .../github.com/klauspost/cpuid/v2/LICENSE | 22 + .../github.com/mdlayher/kobject/LICENSE.md | 10 + .../github.com/mdlayher/netlink/LICENSE.md | 9 + .../github.com/mdlayher/socket/LICENSE.md | 9 + .../github.com/minio/sha256-simd/LICENSE | 202 + .../github.com/modern-go/concurrent/LICENSE | 201 + .../github.com/modern-go/reflect2/LICENSE | 201 + .../github.com/peterbourgon/ff/v3/LICENSE | 201 + .../prometheus/client_model/go/LICENSE | 201 + .../prometheus/client_model/go/NOTICE | 5 + .../prometheus/common/model/LICENSE | 201 + .../github.com/prometheus/common/model/NOTICE | 5 + .../prometheus/model/labels/LICENSE | 201 + .../prometheus/prometheus/model/labels/NOTICE | 108 + .../github.com/sirupsen/logrus/LICENSE | 21 + .../LICENSES/github.com/zeebo/xxh3/LICENSE | 25 + .../collector/consumer/LICENSE | 202 + .../collector/consumer/xconsumer/LICENSE | 202 + .../collector/featuregate/LICENSE | 202 + .../collector/pdata/LICENSE | 202 + .../collector/pdata/pprofile/LICENSE | 202 + .../LICENSES/go.opentelemetry.io/otel/LICENSE | 231 + .../go.opentelemetry.io/otel/metric/LICENSE | 231 + .../LICENSES/go.uber.org/multierr/LICENSE.txt | 19 + .../LICENSES/golang.org/x/arch/LICENSE | 27 + .../golang.org/x/exp/constraints/LICENSE | 27 + .../LICENSES/golang.org/x/net/LICENSE | 27 + .../golang.org/x/sync/errgroup/LICENSE | 27 + .../LICENSES/golang.org/x/sys/unix/LICENSE | 27 + .../LICENSES/golang.org/x/text/LICENSE | 27 + .../genproto/googleapis/rpc/status/LICENSE | 202 + .../LICENSES/google.golang.org/grpc/LICENSE | 202 + .../google.golang.org/grpc/NOTICE.txt | 13 + .../google.golang.org/protobuf/LICENSE | 27 + .../opentelemetry-ebpf-profiler/Makefile | 160 + .../opentelemetry-ebpf-profiler/README.md | 106 + .../opentelemetry-ebpf-profiler/VERSIONING.md | 22 + .../armhelpers/arm_helpers.go | 182 + .../asm/amd/.gitignore | 1 + .../asm/amd/insn.go | 89 + .../asm/amd/insn_test.go | 19 + .../asm/amd/interpreter.go | 179 + .../asm/amd/interpreter_test.go | 171 + .../asm/amd/regs_state.go | 235 + .../asm/expression/add.go | 36 + .../asm/expression/capture.go | 29 + .../asm/expression/expression.go | 72 + .../asm/expression/expression_test.go | 116 + .../asm/expression/extend.go | 84 + .../asm/expression/imm.go | 43 + .../asm/expression/mem.go | 57 + .../asm/expression/mul.go | 43 + .../asm/expression/named.go | 24 + .../asm/expression/op.go | 56 + .../asm/variable/add.go | 52 + .../asm/variable/extend.go | 86 + .../asm/variable/imm.go | 43 + .../asm/variable/mem.go | 56 + .../asm/variable/mul.go | 51 + .../asm/variable/op.go | 68 + .../asm/variable/u64.go | 83 + .../asm/variable/variable.go | 80 + .../asm/variable/variable_test.go | 262 + .../opentelemetry-ebpf-profiler/cli_flags.go | 157 + .../collector/config/config.go | 28 + .../collector/controller_options.go | 48 + .../collector/controller_options_test.go | 44 + .../collector/factory.go | 74 + .../collector/factory_test.go | 49 + .../collector/internal/controller.go | 81 + .../README.md | 475 ++ .../04359-remove-bpf-hashing/README.md | 736 ++ .../known-trace-metrics.png | Bin 0 -> 214909 bytes .../04359-remove-bpf-hashing/memcpy-cost.png | Bin 0 -> 52975 bytes .../option2-ghidra-workload.png | Bin 0 -> 36131 bytes .../option2-idle-workload.png | Bin 0 -> 50694 bytes .../trace-pipe-reworked.drawio.svg | 4 + .../trace-pipe.drawio.svg | 4 + .../design-docs/00000-example-docs/README.md | 3 + .../long-form-design-doc-template.md | 163 + .../short-form-design-doc-template.md | 50 + .../00001-off-cpu-profiling/README.md | 213 + .../design-docs/00002-custom-labels/README.md | 40 + .../design-docs/159-collector-api/README.md | 86 + .../design-docs/README.md | 58 + .../doc/KNOWN_KERNEL_LIMITATIONS.md | 41 + .../doc/bpf-trace.drawio.svg | 4 + .../doc/gopclntab.md | 471 ++ .../doc/internals.md | 385 + .../doc/network-trace.drawio.svg | 4 + .../doc/trace-pipe.drawio.svg | 4 + .../opentelemetry-ebpf-profiler/go.mod | 105 + .../opentelemetry-ebpf-profiler/go.sum | 261 + .../opentelemetry-ebpf-profiler/host/host.go | 67 + .../internal/controller/config.go | 123 + .../internal/controller/controller.go | 187 + .../interpreter/apmint/apmint.go | 252 + .../interpreter/apmint/socket.go | 172 + .../interpreter/dotnet/cachingreader.go | 81 + .../interpreter/dotnet/data.go | 263 + .../interpreter/dotnet/dotnet.go | 176 + .../interpreter/dotnet/instance.go | 777 ++ .../interpreter/dotnet/method.go | 234 + .../interpreter/dotnet/nativereader.go | 125 + .../interpreter/dotnet/nativereader_test.go | 37 + .../interpreter/dotnet/nibblereader.go | 89 + .../interpreter/dotnet/nibblereader_test.go | 47 + .../interpreter/dotnet/pe.go | 1268 +++ .../interpreter/go/go.go | 121 + .../interpreter/go/go_test.go | 75 + .../interpreter/golabels/golabels.go | 81 + .../golabels/integrationtests/.gitignore | 1 + .../golabels_integration_test.go | 160 + .../integrationtests/pprof/busy_nocgo.go | 10 + .../integrationtests/pprof/busy_other.go | 11 + .../integrationtests/pprof/busy_withcgo.go | 23 + .../golabels/integrationtests/pprof/go.mod | 3 + .../integrationtests/pprof/pprof_test.go | 61 + .../interpreter/golabels/runtime_data.go | 55 + .../interpreter/golabels/tls_amd64.go | 78 + .../interpreter/golabels/tls_arm64.go | 92 + .../interpreter/hotspot/data.go | 698 ++ .../interpreter/hotspot/demangle.go | 102 + .../interpreter/hotspot/demangle_test.go | 36 + .../interpreter/hotspot/hotspot.go | 146 + .../interpreter/hotspot/instance.go | 903 +++ .../interpreter/hotspot/instance_test.go | 53 + .../interpreter/hotspot/method.go | 155 + .../interpreter/hotspot/recordingreader.go | 57 + .../hotspot/recordingreader_test.go | 24 + .../interpreter/hotspot/stubs.go | 267 + .../interpreter/hotspot/unsigned5.go | 104 + .../interpreter/hotspot/unsigned5_test.go | 52 + .../interpreter/instancestubs.go | 39 + .../interpreter/loaderinfo.go | 81 + .../interpreter/multi.go | 154 + .../interpreter/nodev8/v8.go | 2180 ++++++ .../interpreter/nodev8/v8_test.go | 43 + .../interpreter/perl/data.go | 290 + .../interpreter/perl/instance.go | 423 + .../interpreter/perl/perl.go | 109 + .../interpreter/php/decode_aarch64.go | 200 + .../interpreter/php/decode_test.go | 272 + .../interpreter/php/decode_x86.go | 77 + .../interpreter/php/instance.go | 208 + .../interpreter/php/opcache.go | 382 + .../interpreter/php/php.go | 366 + .../interpreter/php/php_test.go | 60 + .../interpreter/python/amd64_decode.go | 65 + .../interpreter/python/arm64_decode.go | 102 + .../interpreter/python/decode_test.go | 289 + .../interpreter/python/pyroscope.go | 13 + .../interpreter/python/python.go | 891 +++ .../interpreter/python/python_test.go | 92 + .../interpreter/ruby/ruby.go | 870 +++ .../interpreter/types.go | 160 + .../kallsyms/kallsyms.go | 645 ++ .../kallsyms/kallsyms_test.go | 105 + .../libpf/address.go | 20 + .../opentelemetry-ebpf-profiler/libpf/apm.go | 10 + .../libpf/basehash/basehash.go | 98 + .../libpf/basehash/hash128.go | 245 + .../libpf/basehash/hash128_test.go | 182 + .../libpf/convenience.go | 21 + .../libpf/convenience_test.go | 40 + .../libpf/fileid.go | 194 + .../libpf/fileid_test.go | 150 + .../libpf/frametype.go | 103 + .../libpf/frametype_test.go | 23 + .../libpf/generics.go | 45 + .../libpf/hash/hash.go | 28 + .../libpf/hash/hash_test.go | 50 + .../libpf/interpretertype.go | 102 + .../libpf/libpf.go | 56 + .../libpf/libpf_test.go | 44 + .../libpf/pfelf/addressmapper.go | 69 + .../libpf/pfelf/addressmapper_test.go | 32 + .../libpf/pfelf/elfopener.go | 23 + .../libpf/pfelf/file.go | 1197 +++ .../libpf/pfelf/file_test.go | 113 + .../libpf/pfelf/internal/mmap/mmap.go | 138 + .../libpf/pfelf/internal/mmap/mmap_linux.go | 15 + .../libpf/pfelf/internal/mmap/mmap_others.go | 13 + .../libpf/pfelf/internal/mmap/mmap_test.go | 42 + .../libpf/pfelf/machine_amd64.go | 10 + .../libpf/pfelf/machine_arm64.go | 10 + .../libpf/pfelf/pfelf.go | 355 + .../libpf/pfelf/pfelf_test.go | 210 + .../libpf/pfelf/reference.go | 47 + .../libpf/pfelf/testdata/.gitignore | 7 + .../libpf/pfelf/testdata/Makefile | 49 + .../libpf/pfelf/testdata/fixed-address.c | 11 + .../libpf/pfelf/testdata/fixed-address.ld | 5 + .../libpf/pfelf/testdata/gotest.go | 4 + .../libpf/pfelf/testdata/test.c | 9 + .../libpf/pfunsafe/slices.go | 30 + .../libpf/pfunsafe/slices_test.go | 46 + .../opentelemetry-ebpf-profiler/libpf/pid.go | 27 + .../libpf/readatbuf/readatbuf.go | 179 + .../libpf/readatbuf/readatbuf_test.go | 43 + .../libpf/string.go | 31 + .../libpf/symbol.go | 153 + .../libpf/trace.go | 80 + .../libpf/tracehash.go | 60 + .../libpf/tracehash_test.go | 83 + .../libpf/xsync/doc.go | 6 + .../libpf/xsync/once.go | 65 + .../libpf/xsync/once_test.go | 59 + .../libpf/xsync/rwlock.go | 159 + .../libpf/xsync/rwlock_test.go | 75 + .../opentelemetry-ebpf-profiler/lpm/lpm.go | 102 + .../lpm/lpm_test.go | 68 + .../maccess/maccess.go | 12 + .../maccess/maccess_amd64.go | 55 + .../maccess/maccess_amd64_test.go | 116 + .../maccess/maccess_arm64.go | 147 + .../maccess/maccess_arm64_test.go | 118 + .../opentelemetry-ebpf-profiler/main.go | 147 + .../metrics/doc.go | 21 + .../metrics/genids/main.go | 70 + .../metrics/ids.go | 640 ++ .../metrics/metrics.go | 214 + .../metrics/metrics.json | 2023 +++++ .../metrics/metrics_test.go | 50 + .../metrics/types.go | 40 + .../nativeunwind/elfunwindinfo/README.md | 50 + .../nativeunwind/elfunwindinfo/elfehframe.go | 1253 +++ .../elfunwindinfo/elfehframe_aarch64.go | 200 + .../elfunwindinfo/elfehframe_test.go | 180 + .../elfunwindinfo/elfehframe_x86.go | 200 + .../elfunwindinfo/elfehframetable.go | 157 + .../elfunwindinfo/elfehframetable_test.go | 70 + .../elfunwindinfo/elfgopclntab.go | 791 ++ .../elfunwindinfo/elfgopclntab_test.go | 98 + .../elfunwindinfo/stackdeltaextraction.go | 277 + .../stackdeltaextraction_test.go | 299 + .../elfunwindinfo/stackdeltaprovider.go | 53 + .../elfunwindinfo/testdata/.gitignore | 4 + .../elfunwindinfo/testdata/Makefile | 26 + .../elfunwindinfo/testdata/helloworld.go | 14 + .../testdata/schrodinger-libpython3.8.so.1.0 | Bin 0 -> 3426280 bytes .../elfunwindinfo/testdata/test.so | Bin 0 -> 284000 bytes .../nativeunwind/stackdeltaprovider.go | 29 + .../stackdeltatypes/stackdeltatypes.go | 137 + .../nopanicslicereader/nopanicslicereader.go | 70 + .../nopanicslicereader_test.go | 24 + .../pacmask/pacmask_arm64.go | 64 + .../pacmask/pacmask_arm64.s | 36 + .../pacmask/pacmask_other.go | 11 + .../periodiccaller/periodiccaller.go | 78 + .../periodiccaller/periodiccaller_test.go | 248 + .../process/coredump.go | 575 ++ .../process/debug_amd64.go | 24 + .../process/debug_arm64.go | 39 + .../process/debug_linux.go | 130 + .../process/debug_other.go | 19 + .../process/process.go | 468 ++ .../process/process_test.go | 171 + .../process/pyroscope.go | 40 + .../process/types.go | 156 + .../processmanager/ebpf/asyncupdate.go | 129 + .../ebpf/asyncupdate_integration_test.go | 83 + .../processmanager/ebpf/ebpf.go | 694 ++ .../ebpf/ebpf_integration_test.go | 87 + .../processmanager/ebpf/ebpf_test.go | 41 + .../processmanager/ebpfapi/ebpf.go | 95 + .../processmanager/ebpfapi/types.go | 12 + .../processmanager/execinfomanager/manager.go | 533 ++ .../execinfomanager/synthdeltas.go | 121 + .../execinfomanager/synthdeltas_test.go | 46 + .../testdata/vdso.arch64.withframe | Bin 0 -> 4096 bytes .../processmanager/helpers.go | 90 + .../processmanager/manager.go | 442 ++ .../processmanager/manager_test.go | 592 ++ .../processmanager/processinfo.go | 780 ++ .../processmanager/types.go | 202 + .../pyroscope/discovery/k8s.go | 15 + .../pyroscope/discovery/target.go | 220 + .../pyroscope/discovery/target_test.go | 91 + .../pyroscope/dynamicprofiling/policy.go | 28 + .../internalshim/controller/cli_flags.go | 158 + .../internalshim/controller/controller.go | 29 + .../pyroscope/symb/irsymcache/cache.go | 336 + .../pyroscope/symb/irsymcache/cache_test.go | 367 + .../symb/irsymcache/dummy_process_test.go | 71 + .../symb/irsymcache/native_frame_symbols.go | 39 + .../irsymcache/native_frame_symbols_test.go | 36 + .../pyroscope/symb/irsymcache/table.go | 60 + ...b17fbac799e68da7ebd9985ddf9b5cb375e6.debug | Bin 0 -> 4118776 bytes .../pyroscope/symb/testdata/libc.gtbl | Bin 0 -> 1347180 bytes .../symb/testdata/libc_readelf_funcs.txt | 6821 +++++++++++++++++ .../remotememory/remotememory.go | 131 + .../remotememory/remotememory_linux.go | 29 + .../remotememory/remotememory_other.go | 17 + .../remotememory/remotememory_test.go | 46 + .../reporter/base_reporter.go | 98 + .../reporter/collector_reporter.go | 99 + .../reporter/collector_reporter_test.go | 62 + .../reporter/config.go | 50 + .../reporter/iface.go | 58 + .../internal/orderedset/ordered_set.go | 31 + .../internal/orderedset/ordered_set_test.go | 54 + .../reporter/internal/pdata/generate.go | 291 + .../reporter/internal/pdata/generate_test.go | 624 ++ .../reporter/internal/pdata/helper.go | 22 + .../reporter/internal/pdata/pdata.go | 30 + .../reporter/otlp_reporter.go | 199 + .../reporter/runloop.go | 44 + .../reporter/samples/attrmgr.go | 99 + .../reporter/samples/attrmgr_test.go | 118 + .../reporter/samples/samples.go | 63 + .../reporter/testdata/.gitignore | 1 + .../reporter/testdata/Makefile | 12 + .../reporter/testdata/test.c | 9 + .../reporter/times.go | 22 + .../rlimit/rlimit.go | 32 + .../rust-crates/README.md | 69 + .../rust-crates/symb-proto/README.md | 96 + .../rust-crates/symb-proto/symbfile.proto | 249 + .../rust-crates/symblib-capi/.gitignore | 2 + .../rust-crates/symblib-capi/Cargo.toml | 20 + .../rust-crates/symblib-capi/README.md | 4 + .../rust-crates/symblib-capi/build.rs | 72 + .../rust-crates/symblib-capi/c/Makefile | 19 + .../rust-crates/symblib-capi/c/demo.c | 96 + .../rust-crates/symblib-capi/c/symblib.h | 183 + .../rust-crates/symblib-capi/cbindgen.toml | 165 + .../rust-crates/symblib-capi/go/Makefile | 13 + .../rust-crates/symblib-capi/go/main.go | 96 + .../rust-crates/symblib-capi/src/ffislice.rs | 62 + .../rust-crates/symblib-capi/src/ffistr.rs | 48 + .../rust-crates/symblib-capi/src/gosym.rs | 67 + .../rust-crates/symblib-capi/src/lib.rs | 18 + .../symblib-capi/src/pointresolver.rs | 66 + .../rust-crates/symblib-capi/src/rangeextr.rs | 217 + .../rust-crates/symblib-capi/src/status.rs | 128 + .../rust-crates/symblib/Cargo.toml | 28 + .../rust-crates/symblib/README.md | 162 + .../rust-crates/symblib/build.rs | 12 + .../rust-crates/symblib/src/covmap.rs | 267 + .../rust-crates/symblib/src/dbglog.rs | 28 + .../rust-crates/symblib/src/demangle.rs | 271 + .../rust-crates/symblib/src/disas.rs | 242 + .../rust-crates/symblib/src/dwarf.rs | 1416 ++++ .../rust-crates/symblib/src/fileid.rs | 143 + .../rust-crates/symblib/src/gosym/errors.rs | 61 + .../rust-crates/symblib/src/gosym/mod.rs | 588 ++ .../rust-crates/symblib/src/gosym/raw/mod.rs | 18 + .../symblib/src/gosym/raw/reader.rs | 266 + .../symblib/src/gosym/raw/regions.rs | 244 + .../symblib/src/gosym/raw/structs.rs | 411 + .../symblib/src/gosym/raw/types.rs | 81 + .../rust-crates/symblib/src/lib.rs | 76 + .../rust-crates/symblib/src/objfile.rs | 771 ++ .../rust-crates/symblib/src/retpads.rs | 367 + .../symblib/src/symbconv/dwarf/mod.rs | 503 ++ .../symblib/src/symbconv/dwarf/rangetree.rs | 267 + .../rust-crates/symblib/src/symbconv/go.rs | 190 + .../rust-crates/symblib/src/symbconv/mod.rs | 108 + .../rust-crates/symblib/src/symbconv/multi.rs | 329 + .../rust-crates/symblib/src/symbconv/obj.rs | 45 + .../rust-crates/symblib/src/symbfile/mod.rs | 191 + .../rust-crates/symblib/src/symbfile/proto.rs | 9 + .../rust-crates/symblib/src/symbfile/read.rs | 315 + .../symblib/src/symbfile/records.rs | 190 + .../symblib/src/symbfile/strdedup.rs | 168 + .../rust-crates/symblib/src/symbfile/write.rs | 266 + .../rust-crates/symblib/testdata/Makefile | 36 + .../rust-crates/symblib/testdata/README.md | 2 + .../rust-crates/symblib/testdata/go-1.20.14 | Bin 0 -> 1860776 bytes .../rust-crates/symblib/testdata/go-1.22.12 | Bin 0 -> 1906548 bytes .../rust-crates/symblib/testdata/go-1.24.0 | Bin 0 -> 2225596 bytes .../rust-crates/symblib/testdata/go.mod | 3 + .../rust-crates/symblib/testdata/inline | Bin 0 -> 72600 bytes .../testdata/inline-big-fake-compressed-dwarf | Bin 0 -> 137208 bytes .../symblib/testdata/inline-compressed-dwarf | Bin 0 -> 72240 bytes .../testdata/inline-compressed-dwarf-zstd | Bin 0 -> 72280 bytes .../symblib/testdata/inline-no-tco | Bin 0 -> 72680 bytes .../testdata/inline-no-tco.ranges.symbfile | Bin 0 -> 297 bytes .../symblib/testdata/inline-split-dwarf | Bin 0 -> 72232 bytes .../symblib/testdata/inline-split-dwarf.dwp | Bin 0 -> 1159 bytes .../rust-crates/symblib/testdata/inline.c | 44 + .../rust-crates/symblib/testdata/main.go | 7 + .../stringutil/stringutil.go | 78 + .../stringutil/stringutil_test.go | 64 + .../successfailurecounter.go | 59 + .../successfailurecounter_test.go | 83 + .../support/.gitignore | 3 + .../support/PYTHON_LINENO_RECOVERY_README.md | 101 + .../support/README.md | 62 + .../support/ebpf/.clang-format | 17 + .../support/ebpf/LICENSE | 341 + .../support/ebpf/Makefile | 91 + .../support/ebpf/bloat-o-meter | 118 + .../support/ebpf/bpfdefs.h | 201 + .../support/ebpf/dotnet_tracer.ebpf.c | 328 + .../support/ebpf/errors.h | 168 + .../support/ebpf/extmaps.h | 54 + .../support/ebpf/frametypes.h | 49 + .../support/ebpf/go_labels.ebpf.c | 191 + .../support/ebpf/hotspot_tracer.ebpf.c | 962 +++ .../support/ebpf/integration_test.ebpf.c | 97 + .../ebpf/interpreter_dispatcher.ebpf.c | 316 + .../support/ebpf/kernel.h | 427 ++ .../support/ebpf/native_stack_trace.ebpf.c | 670 ++ .../support/ebpf/off_cpu.ebpf.c | 89 + .../support/ebpf/perl_tracer.ebpf.c | 437 ++ .../support/ebpf/php_tracer.ebpf.c | 257 + .../support/ebpf/print_instruction_count.sh | 26 + .../support/ebpf/python_tracer.ebpf.c | 338 + .../support/ebpf/ruby_tracer.ebpf.c | 287 + .../support/ebpf/sched_monitor.ebpf.c | 54 + .../support/ebpf/stackdeltatypes.h | 44 + .../support/ebpf/system_config.ebpf.c | 89 + .../support/ebpf/tracemgmt.h | 774 ++ .../support/ebpf/tracer.ebpf.amd64 | Bin 0 -> 3138712 bytes .../support/ebpf/tracer.ebpf.arm64 | Bin 0 -> 3105176 bytes .../support/ebpf/tsd.h | 60 + .../support/ebpf/types.h | 931 +++ .../support/ebpf/uprobe.ebpf.c | 20 + .../support/ebpf/v8_tracer.ebpf.c | 351 + .../support/ebpf/v8_tracer.h | 31 + .../support/generate.sh | 27 + .../support/helper.go | 27 + .../support/local-collector.sh | 19 + .../support/run-tests.sh | 96 + .../support/support.go | 17 + .../support/support_amd64.go | 13 + .../support/support_arm64.go | 13 + .../support/support_others.go | 11 + .../support/support_test.go | 32 + .../support/tests/main_thread_exit.c | 108 + .../support/types.go | 455 ++ .../support/types_def.go | 286 + .../testsupport/io.go | 64 + .../testsupport/testfiles.go | 902 +++ .../times/ktime.go | 31 + .../times/times.go | 160 + .../tools/coredump/.gitignore | 6 + .../tools/coredump/README.md | 298 + .../tools/coredump/analyze.go | 126 + .../tools/coredump/clean.go | 150 + .../tools/coredump/cloudstore/cloudstore.go | 52 + .../tools/coredump/coredump.go | 200 + .../tools/coredump/coredump_test.go | 43 + .../tools/coredump/ebpfcode.go | 26 + .../tools/coredump/ebpfcode.h | 103 + .../tools/coredump/ebpfcontext.go | 134 + .../tools/coredump/ebpfhelpers.go | 135 + .../tools/coredump/ebpfmaps.go | 257 + .../tools/coredump/export.go | 72 + .../tools/coredump/exportmodule.go | 54 + .../tools/coredump/gdb.go | 201 + .../tools/coredump/json.go | 106 + .../tools/coredump/main.go | 60 + .../tools/coredump/modulestore/id.go | 88 + .../tools/coredump/modulestore/public.go | 43 + .../tools/coredump/modulestore/reader.go | 24 + .../tools/coredump/modulestore/store.go | 564 ++ .../tools/coredump/modulestore/util.go | 47 + .../tools/coredump/new.go | 267 + .../tools/coredump/rebase.go | 76 + .../tools/coredump/storecoredump.go | 120 + .../tools/coredump/testdata/amd64/.gitkeep | 0 .../coredump/testdata/amd64/brokenstack.json | 28 + .../amd64/dotnet7-helloworld-alpine.json | 281 + ..._sdk_502.0.0_slim_3.11.9_clang_18.1.8.json | 76 + .../testdata/amd64/glibc-signalframe.json | 36 + .../testdata/amd64/go-1.24.1-hello.json.json | 63 + .../testdata/amd64/graalvm-native.json | 39 + ...ines.sha256_implCompressMB.sha256msg2.json | 371 + .../coredump/testdata/amd64/java11.25812.json | 340 + .../coredump/testdata/amd64/java12.20153.json | 364 + .../coredump/testdata/amd64/java13.11581.json | 417 + .../coredump/testdata/amd64/java14.3576.json | 398 + .../coredump/testdata/amd64/java16.43723.json | 344 + .../coredump/testdata/amd64/java16.43768.json | 337 + .../testdata/amd64/java20-helloworld.json | 386 + .../testdata/amd64/java23-helloworld.json | 385 + .../testdata/amd64/java25-helloworld.json | 412 + .../coredump/testdata/amd64/java7.10958.json | 358 + .../coredump/testdata/amd64/java8.10171.json | 384 + .../testdata/amd64/musl-signalframe.json | 39 + .../testdata/amd64/node1610.26681.json | 127 + .../testdata/amd64/node1617-inlining.json | 191 + .../testdata/amd64/node1815-baseline.json | 197 + .../testdata/amd64/node1816-async.json | 200 + .../testdata/amd64/node189-inlining.json | 198 + .../coredump/testdata/amd64/node211.json | 232 + .../coredump/testdata/amd64/openssl-gcm.json | 45 + .../testdata/amd64/openssl.14327.json | 23 + .../coredump/testdata/amd64/perl528.14.json | 25 + .../coredump/testdata/amd64/perl528.151.json | 32 + .../coredump/testdata/amd64/perl528.206.json | 31 + .../testdata/amd64/perl534.220234.json | 21 + .../coredump/testdata/amd64/perl536-a.json | 33 + .../testdata/amd64/perl536-helloWorld.json | 26 + .../coredump/testdata/amd64/perl542.json | 52 + .../testdata/amd64/php-8.2.10-prime.json | 196 + .../testdata/amd64/php-8.3.6-prime.json | 88 + .../coredump/testdata/amd64/php74.7893.json | 22 + .../coredump/testdata/amd64/php8.103871.json | 26 + .../amd64/pyenv_3.12.9_gcc_13.3.0.json | 66 + .../amd64/pyenv_3.13.2_clang_21.0.0.json | 62 + .../python3.12-expat-debian-unstable.json | 64 + .../amd64/python310.stringbench.20086.json | 20 + .../amd64/python310.stringbench.2576.json | 58 + .../testdata/amd64/python311-expat.json | 67 + .../testdata/amd64/python311.50282.json | 57 + .../amd64/python312-alpine320-nobuildid.json | 86 + .../testdata/amd64/python312-alpine320.json | 84 + .../testdata/amd64/python37.26320.json | 21 + .../testdata/amd64/ruby-2.7.8p225-loop.json | 108 + .../testdata/amd64/ruby-3.0.4p208-loop.json | 105 + .../testdata/amd64/ruby-3.0.6p216-loop.json | 107 + .../testdata/amd64/ruby-3.1.0p0-loop.json | 105 + .../testdata/amd64/ruby-3.1.4p223-loop.json | 106 + .../testdata/amd64/ruby-3.2.2-loop.json | 98 + .../coredump/testdata/amd64/ruby25.20836.json | 50 + .../ruby25.benchmark-serialization.10811.json | 104 + .../coredump/testdata/amd64/ruby27.2186.json | 42 + .../testdata/amd64/ruby30.253432.json | 44 + .../testdata/amd64/stackalign.4040.json | 19 + .../testdata/amd64/stackdeltas.11629.json | 216 + .../tools/coredump/testdata/arm64/.gitkeep | 0 .../coredump/testdata/arm64/brokenstack.json | 28 + .../testdata/arm64/glibc-signal-arm.json | 36 + .../arm64/go.symbhack.readheader.json | 166 + .../hello.3345.hello3.body.stp-after-bl.json | 72 + .../arm64/hello.3345.hello4.epi.add.json | 73 + .../arm64/hello.3345.hello4.epi.ret.json | 73 + .../arm64/hello.3345.hello5.body.adrp.json | 74 + .../arm64/hello.3345.hello5.epi.add.json | 87 + .../arm64/hello.3345.hello5.epi.ret.json | 87 + .../arm64/hello.3345.hello5.pro.add.json | 74 + .../arm64/hello.3345.hello5.pro.stp.json | 74 + .../arm64/hello.3345.hello5.pro.str.json | 74 + .../arm64/hello.3345.hello5.pro.stur.json | 74 + .../arm64/hello.3345.hello5.pro.sub.json | 74 + .../testdata/arm64/hello.3345.leaf.ret.json | 75 + .../arm64/hello.345.hello5.body.add.json | 61 + ...outines.sha256_implCompressMB.sha256h.json | 357 + ...utines.sha256_implCompressMB.sha256h2.json | 359 + ...PrologueEpilogue.epi.add-sp-sp.377026.json | 295 + ...ologueEpilogue.epi.ldp-x29-x30.376761.json | 295 + .../java.PrologueEpilogue.epi.ret.377192.json | 295 + .../java.PrologueEpilogue.stp-fp-lr.json | 296 + .../java.PrologueEpilogue.sub-sp-sp.json | 296 + ...a.VdsoPressure.osJavaTimeNanos.649996.json | 310 + .../testdata/arm64/node1600-inlining.json | 173 + .../testdata/arm64/node16110-inlining.json | 171 + .../testdata/arm64/node1640-inlining.json | 173 + .../testdata/arm64/node1660-inlining.json | 173 + .../testdata/arm64/node1890-inlining.json | 172 + .../testdata/arm64/node2010-inlining.json | 173 + .../testdata/arm64/node2110-inlining.json | 191 + .../testdata/arm64/perl-5.38-debian.json | 41 + .../testdata/arm64/php-8.2.10-prime.json | 196 + .../testdata/arm64/php-8.2.7-prime.json | 195 + .../coredump/testdata/arm64/php81.571415.json | 23 + .../arm64/python-3.10.12-nix-fib.json | 78 + .../arm64/python37.stringbench.10656.json | 19 + .../testdata/arm64/ruby-2.7.8p225-loop.json | 102 + .../testdata/arm64/ruby-3.0.4p208-loop.json | 107 + .../testdata/arm64/ruby-3.0.6p216-loop.json | 105 + .../testdata/arm64/ruby-3.1.0p0-loop.json | 102 + .../testdata/arm64/ruby-3.1.4p223-loop.json | 109 + .../testdata/arm64/ruby-3.2.2-loop.json | 98 + .../testdata/arm64/stackalign.19272.json | 15 + .../testdata/arm64/stackalign.67475.json | 32 + .../testdata/arm64/stackalign.7265.json | 19 + .../coredump/testdata/arm64/vdso-frame.json | 31 + .../coredump/testsources/c/brokenstack.c | 35 + .../tools/coredump/testsources/c/cpuhog.c | 10 + .../tools/coredump/testsources/c/sig.c | 25 + .../tools/coredump/testsources/c/stackalign.c | 36 + .../testsources/dotnet/helloworld/Program.cs | 15 + .../dotnet/helloworld/helloworld.csproj | 10 + .../tools/coredump/testsources/go/hello.go | 50 + .../coredump/testsources/graalvm/.gitignore | 3 + .../testsources/graalvm/HelloGraal.java | 23 + .../coredump/testsources/graalvm/Makefile | 8 + .../coredump/testsources/graalvm/README.md | 17 + .../coredump/testsources/java/Deopt.java | 34 + .../coredump/testsources/java/DeoptFoo.java | 6 + .../coredump/testsources/java/HelloWorld.java | 8 + .../coredump/testsources/java/Lambda1.java | 23 + .../coredump/testsources/java/Prof1.java | 12 + .../coredump/testsources/java/Prof2.java | 19 + .../testsources/java/PrologueEpilogue.java | 31 + .../testsources/java/ShaShenanigans.java | 38 + .../testsources/java/VdsoPressure.java | 12 + .../coredump/testsources/java/javagdbinit | 3 + .../tools/coredump/testsources/node/async.js | 50 + .../tools/coredump/testsources/node/hello.js | 15 + .../tools/coredump/testsources/node/hello2.js | 21 + .../coredump/testsources/node/inlining.js | 27 + .../tools/coredump/testsources/node/test.js | 27 + .../tools/coredump/testsources/perl/a.pl | 32 + .../testsources/perl/gdb-dump-offsets.py | 77 + .../tools/coredump/testsources/perl/hi.pl | 20 + .../testsources/php/gdb-dump-offsets.py | 50 + .../coredump/testsources/php/php_forever.php | 23 + .../tools/coredump/testsources/php/prime.php | 41 + .../coredump/testsources/python/expat.py | 28 + .../tools/coredump/testsources/python/fib.py | 10 + .../testsources/python/gdb-dump-offsets.py | 77 + .../testsources/ruby/gdb-dump-offsets.py | 81 + .../tools/coredump/testsources/ruby/loop.rb | 33 + .../tools/coredump/upload.go | 90 + .../tools/errors-codegen/bpf.h.template | 14 + .../tools/errors-codegen/errors.json | 268 + .../tools/errors-codegen/main.go | 122 + .../tools/fake-apm-agent/.gitignore | 3 + .../tools/fake-apm-agent/Makefile | 24 + .../tools/fake-apm-agent/README.md | 7 + .../tools/fake-apm-agent/fake-apm-agent-lib.c | 195 + .../tools/fake-apm-agent/fake-apm-agent.c | 22 + .../tools/file_id.sh | 17 + .../tools/gooffsets/info.go | 116 + .../tools/gooffsets/main.go | 167 + .../tools/probe-ctrl/.gitignore | 1 + .../tools/probe-ctrl/Makefile | 17 + .../tools/probe-ctrl/README.md | 4 + .../tools/probe-ctrl/go.mod | 22 + .../tools/probe-ctrl/go.sum | 44 + .../tools/stackdeltas/.gitignore | 1 + .../tools/stackdeltas/stackdeltas.go | 173 + .../tools/zstpak/.gitignore | 1 + .../tools/zstpak/lib/zstpak.go | 266 + .../tools/zstpak/lib/zstpak_test.go | 50 + .../tools/zstpak/main.go | 77 + .../tpbase/assembly_decode_aarch64.go | 90 + .../tpbase/assembly_decode_test.go | 276 + .../tpbase/assembly_decode_x86.go | 82 + .../tpbase/libc.go | 113 + .../tpbase/libc_aarch64.go | 270 + .../tpbase/libc_test.go | 265 + .../tpbase/libc_x86.go | 82 + .../tpbase/tpbase.go | 34 + .../tracer/ebpf_integration_test.go | 247 + .../tracer/events.go | 293 + .../tracer/helper.go | 86 + .../tracer/helper_test.go | 31 + .../tracer/maccess.go | 39 + .../tracer/probe_linux.go | 35 + .../tracer/probe_other.go | 23 + .../tracer/systemconfig.go | 340 + .../tracer/tpbase.go | 75 + .../tracer/tracepoints.go | 42 + .../tracer/tracer.go | 1190 +++ .../tracer/tracer_test.go | 13 + .../tracer/types/parse.go | 165 + .../tracer/types/parse_test.go | 85 + .../traceutil/traceutil.go | 33 + .../traceutil/traceutil_test.go | 63 + .../opentelemetry-ebpf-profiler/util/util.go | 81 + .../util/util_test.go | 30 + .../opentelemetry-ebpf-profiler/vc/vc.go | 32 + 707 files changed, 105168 insertions(+), 767 deletions(-) create mode 100644 third_party/opentelemetry-ebpf-profiler/.cargo/config.toml create mode 100644 third_party/opentelemetry-ebpf-profiler/.codespellignore create mode 100644 third_party/opentelemetry-ebpf-profiler/.codespellrc create mode 100644 third_party/opentelemetry-ebpf-profiler/.dockerignore create mode 100644 third_party/opentelemetry-ebpf-profiler/.github/CODEOWNERS create mode 100644 third_party/opentelemetry-ebpf-profiler/.github/renovate.json5 create mode 100644 third_party/opentelemetry-ebpf-profiler/.github/workflows/auto-tag.yml create mode 100644 third_party/opentelemetry-ebpf-profiler/.github/workflows/codeql.yml create mode 100644 third_party/opentelemetry-ebpf-profiler/.github/workflows/codespell.yml create mode 100644 third_party/opentelemetry-ebpf-profiler/.github/workflows/collector-tests.yml create mode 100644 third_party/opentelemetry-ebpf-profiler/.github/workflows/env/action.yml create mode 100644 third_party/opentelemetry-ebpf-profiler/.github/workflows/fossa.yml create mode 100644 third_party/opentelemetry-ebpf-profiler/.github/workflows/ossf-scorecard.yml create mode 100644 third_party/opentelemetry-ebpf-profiler/.github/workflows/push-docker-image.yml create mode 100644 third_party/opentelemetry-ebpf-profiler/.github/workflows/unit-test-on-pull-request.yml create mode 100644 third_party/opentelemetry-ebpf-profiler/.gitignore create mode 100644 third_party/opentelemetry-ebpf-profiler/.golangci.yml create mode 100644 third_party/opentelemetry-ebpf-profiler/AUTHORS.md create mode 100644 third_party/opentelemetry-ebpf-profiler/CONTRIBUTING.md create mode 100644 third_party/opentelemetry-ebpf-profiler/Cargo.lock create mode 100644 third_party/opentelemetry-ebpf-profiler/Cargo.toml create mode 100644 third_party/opentelemetry-ebpf-profiler/Dockerfile create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/cespare/xxhash/v2/LICENSE.txt create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/cilium/ebpf/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/elastic/go-freelru/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/elastic/go-freelru/NOTICE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/elastic/go-perf/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/gogo/protobuf/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/google/uuid/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/grafana/regexp/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/.github/dependabot.yml create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/.github/workflows/go-tests.yml create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/CHANGELOG.md create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/constraint.go create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/constraint_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/go.mod create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/version.go create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/version_collection.go create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/version_collection_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/version_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/josharian/native/license create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/json-iterator/go/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/klauspost/cpuid/v2/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/mdlayher/kobject/LICENSE.md create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/mdlayher/netlink/LICENSE.md create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/mdlayher/socket/LICENSE.md create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/minio/sha256-simd/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/modern-go/concurrent/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/modern-go/reflect2/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/peterbourgon/ff/v3/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/client_model/go/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/client_model/go/NOTICE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/common/model/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/common/model/NOTICE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/prometheus/model/labels/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/prometheus/model/labels/NOTICE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/sirupsen/logrus/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/zeebo/xxh3/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/consumer/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/consumer/xconsumer/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/featuregate/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/pdata/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/pdata/pprofile/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/otel/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/otel/metric/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/go.uber.org/multierr/LICENSE.txt create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/arch/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/exp/constraints/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/net/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/sync/errgroup/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/sys/unix/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/text/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/google.golang.org/genproto/googleapis/rpc/status/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/google.golang.org/grpc/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/google.golang.org/grpc/NOTICE.txt create mode 100644 third_party/opentelemetry-ebpf-profiler/LICENSES/google.golang.org/protobuf/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/Makefile create mode 100644 third_party/opentelemetry-ebpf-profiler/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/VERSIONING.md create mode 100644 third_party/opentelemetry-ebpf-profiler/armhelpers/arm_helpers.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/amd/.gitignore create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/amd/insn.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/amd/insn_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/amd/interpreter.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/amd/interpreter_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/amd/regs_state.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/expression/add.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/expression/capture.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/expression/expression.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/expression/expression_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/expression/extend.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/expression/imm.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/expression/mem.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/expression/mul.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/expression/named.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/expression/op.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/variable/add.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/variable/extend.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/variable/imm.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/variable/mem.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/variable/mul.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/variable/op.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/variable/u64.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/variable/variable.go create mode 100644 third_party/opentelemetry-ebpf-profiler/asm/variable/variable_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/cli_flags.go create mode 100644 third_party/opentelemetry-ebpf-profiler/collector/config/config.go create mode 100644 third_party/opentelemetry-ebpf-profiler/collector/controller_options.go create mode 100644 third_party/opentelemetry-ebpf-profiler/collector/controller_options_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/collector/factory.go create mode 100644 third_party/opentelemetry-ebpf-profiler/collector/factory_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/collector/internal/controller.go create mode 100644 third_party/opentelemetry-ebpf-profiler/design-docs/00000-example-docs/02612-process-manager-fileid-pid-split/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/design-docs/00000-example-docs/04359-remove-bpf-hashing/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/design-docs/00000-example-docs/04359-remove-bpf-hashing/known-trace-metrics.png create mode 100644 third_party/opentelemetry-ebpf-profiler/design-docs/00000-example-docs/04359-remove-bpf-hashing/memcpy-cost.png create mode 100644 third_party/opentelemetry-ebpf-profiler/design-docs/00000-example-docs/04359-remove-bpf-hashing/option2-ghidra-workload.png create mode 100644 third_party/opentelemetry-ebpf-profiler/design-docs/00000-example-docs/04359-remove-bpf-hashing/option2-idle-workload.png create mode 100644 third_party/opentelemetry-ebpf-profiler/design-docs/00000-example-docs/04359-remove-bpf-hashing/trace-pipe-reworked.drawio.svg create mode 100644 third_party/opentelemetry-ebpf-profiler/design-docs/00000-example-docs/04359-remove-bpf-hashing/trace-pipe.drawio.svg create mode 100644 third_party/opentelemetry-ebpf-profiler/design-docs/00000-example-docs/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/design-docs/00000-templates/long-form-design-doc-template.md create mode 100644 third_party/opentelemetry-ebpf-profiler/design-docs/00000-templates/short-form-design-doc-template.md create mode 100644 third_party/opentelemetry-ebpf-profiler/design-docs/00001-off-cpu-profiling/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/design-docs/00002-custom-labels/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/design-docs/159-collector-api/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/design-docs/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/doc/KNOWN_KERNEL_LIMITATIONS.md create mode 100644 third_party/opentelemetry-ebpf-profiler/doc/bpf-trace.drawio.svg create mode 100644 third_party/opentelemetry-ebpf-profiler/doc/gopclntab.md create mode 100644 third_party/opentelemetry-ebpf-profiler/doc/internals.md create mode 100644 third_party/opentelemetry-ebpf-profiler/doc/network-trace.drawio.svg create mode 100644 third_party/opentelemetry-ebpf-profiler/doc/trace-pipe.drawio.svg create mode 100644 third_party/opentelemetry-ebpf-profiler/go.mod create mode 100644 third_party/opentelemetry-ebpf-profiler/go.sum create mode 100644 third_party/opentelemetry-ebpf-profiler/host/host.go create mode 100644 third_party/opentelemetry-ebpf-profiler/internal/controller/config.go create mode 100644 third_party/opentelemetry-ebpf-profiler/internal/controller/controller.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/apmint/apmint.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/apmint/socket.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/dotnet/cachingreader.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/dotnet/data.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/dotnet/dotnet.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/dotnet/instance.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/dotnet/method.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/dotnet/nativereader.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/dotnet/nativereader_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/dotnet/nibblereader.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/dotnet/nibblereader_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/dotnet/pe.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/go/go.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/go/go_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/golabels/golabels.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/golabels/integrationtests/.gitignore create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/golabels/integrationtests/golabels_integration_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/golabels/integrationtests/pprof/busy_nocgo.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/golabels/integrationtests/pprof/busy_other.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/golabels/integrationtests/pprof/busy_withcgo.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/golabels/integrationtests/pprof/go.mod create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/golabels/integrationtests/pprof/pprof_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/golabels/runtime_data.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/golabels/tls_amd64.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/golabels/tls_arm64.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/hotspot/data.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/hotspot/demangle.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/hotspot/demangle_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/hotspot/hotspot.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/hotspot/instance.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/hotspot/instance_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/hotspot/method.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/hotspot/recordingreader.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/hotspot/recordingreader_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/hotspot/stubs.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/hotspot/unsigned5.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/hotspot/unsigned5_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/instancestubs.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/loaderinfo.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/multi.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/nodev8/v8.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/nodev8/v8_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/perl/data.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/perl/instance.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/perl/perl.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/php/decode_aarch64.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/php/decode_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/php/decode_x86.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/php/instance.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/php/opcache.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/php/php.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/php/php_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/python/amd64_decode.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/python/arm64_decode.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/python/decode_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/python/pyroscope.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/python/python.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/python/python_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/ruby/ruby.go create mode 100644 third_party/opentelemetry-ebpf-profiler/interpreter/types.go create mode 100644 third_party/opentelemetry-ebpf-profiler/kallsyms/kallsyms.go create mode 100644 third_party/opentelemetry-ebpf-profiler/kallsyms/kallsyms_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/address.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/apm.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/basehash/basehash.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/basehash/hash128.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/basehash/hash128_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/convenience.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/convenience_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/fileid.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/fileid_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/frametype.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/frametype_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/generics.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/hash/hash.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/hash/hash_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/interpretertype.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/libpf.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/libpf_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/addressmapper.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/addressmapper_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/elfopener.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/file.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/file_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/internal/mmap/mmap.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/internal/mmap/mmap_linux.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/internal/mmap/mmap_others.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/internal/mmap/mmap_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/machine_amd64.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/machine_arm64.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/pfelf.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/pfelf_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/reference.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/testdata/.gitignore create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/testdata/Makefile create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/testdata/fixed-address.c create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/testdata/fixed-address.ld create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/testdata/gotest.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfelf/testdata/test.c create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfunsafe/slices.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pfunsafe/slices_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/pid.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/readatbuf/readatbuf.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/readatbuf/readatbuf_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/string.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/symbol.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/trace.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/tracehash.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/tracehash_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/xsync/doc.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/xsync/once.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/xsync/once_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/xsync/rwlock.go create mode 100644 third_party/opentelemetry-ebpf-profiler/libpf/xsync/rwlock_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/lpm/lpm.go create mode 100644 third_party/opentelemetry-ebpf-profiler/lpm/lpm_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/maccess/maccess.go create mode 100644 third_party/opentelemetry-ebpf-profiler/maccess/maccess_amd64.go create mode 100644 third_party/opentelemetry-ebpf-profiler/maccess/maccess_amd64_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/maccess/maccess_arm64.go create mode 100644 third_party/opentelemetry-ebpf-profiler/maccess/maccess_arm64_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/main.go create mode 100644 third_party/opentelemetry-ebpf-profiler/metrics/doc.go create mode 100644 third_party/opentelemetry-ebpf-profiler/metrics/genids/main.go create mode 100644 third_party/opentelemetry-ebpf-profiler/metrics/ids.go create mode 100644 third_party/opentelemetry-ebpf-profiler/metrics/metrics.go create mode 100644 third_party/opentelemetry-ebpf-profiler/metrics/metrics.json create mode 100644 third_party/opentelemetry-ebpf-profiler/metrics/metrics_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/metrics/types.go create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/elfehframe.go create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/elfehframe_aarch64.go create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/elfehframe_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/elfehframe_x86.go create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/elfehframetable.go create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/elfehframetable_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/elfgopclntab.go create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/elfgopclntab_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/stackdeltaextraction.go create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/stackdeltaextraction_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/stackdeltaprovider.go create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/testdata/.gitignore create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/testdata/Makefile create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/testdata/helloworld.go create mode 100755 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/testdata/schrodinger-libpython3.8.so.1.0 create mode 100755 third_party/opentelemetry-ebpf-profiler/nativeunwind/elfunwindinfo/testdata/test.so create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/stackdeltaprovider.go create mode 100644 third_party/opentelemetry-ebpf-profiler/nativeunwind/stackdeltatypes/stackdeltatypes.go create mode 100644 third_party/opentelemetry-ebpf-profiler/nopanicslicereader/nopanicslicereader.go create mode 100644 third_party/opentelemetry-ebpf-profiler/nopanicslicereader/nopanicslicereader_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/pacmask/pacmask_arm64.go create mode 100644 third_party/opentelemetry-ebpf-profiler/pacmask/pacmask_arm64.s create mode 100644 third_party/opentelemetry-ebpf-profiler/pacmask/pacmask_other.go create mode 100644 third_party/opentelemetry-ebpf-profiler/periodiccaller/periodiccaller.go create mode 100644 third_party/opentelemetry-ebpf-profiler/periodiccaller/periodiccaller_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/process/coredump.go create mode 100644 third_party/opentelemetry-ebpf-profiler/process/debug_amd64.go create mode 100644 third_party/opentelemetry-ebpf-profiler/process/debug_arm64.go create mode 100644 third_party/opentelemetry-ebpf-profiler/process/debug_linux.go create mode 100644 third_party/opentelemetry-ebpf-profiler/process/debug_other.go create mode 100644 third_party/opentelemetry-ebpf-profiler/process/process.go create mode 100644 third_party/opentelemetry-ebpf-profiler/process/process_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/process/pyroscope.go create mode 100644 third_party/opentelemetry-ebpf-profiler/process/types.go create mode 100644 third_party/opentelemetry-ebpf-profiler/processmanager/ebpf/asyncupdate.go create mode 100644 third_party/opentelemetry-ebpf-profiler/processmanager/ebpf/asyncupdate_integration_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/processmanager/ebpf/ebpf.go create mode 100644 third_party/opentelemetry-ebpf-profiler/processmanager/ebpf/ebpf_integration_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/processmanager/ebpf/ebpf_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/processmanager/ebpfapi/ebpf.go create mode 100644 third_party/opentelemetry-ebpf-profiler/processmanager/ebpfapi/types.go create mode 100644 third_party/opentelemetry-ebpf-profiler/processmanager/execinfomanager/manager.go create mode 100644 third_party/opentelemetry-ebpf-profiler/processmanager/execinfomanager/synthdeltas.go create mode 100644 third_party/opentelemetry-ebpf-profiler/processmanager/execinfomanager/synthdeltas_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/processmanager/execinfomanager/testdata/vdso.arch64.withframe create mode 100644 third_party/opentelemetry-ebpf-profiler/processmanager/helpers.go create mode 100644 third_party/opentelemetry-ebpf-profiler/processmanager/manager.go create mode 100644 third_party/opentelemetry-ebpf-profiler/processmanager/manager_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/processmanager/processinfo.go create mode 100644 third_party/opentelemetry-ebpf-profiler/processmanager/types.go create mode 100644 third_party/opentelemetry-ebpf-profiler/pyroscope/discovery/k8s.go create mode 100644 third_party/opentelemetry-ebpf-profiler/pyroscope/discovery/target.go create mode 100644 third_party/opentelemetry-ebpf-profiler/pyroscope/discovery/target_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/pyroscope/dynamicprofiling/policy.go create mode 100644 third_party/opentelemetry-ebpf-profiler/pyroscope/internalshim/controller/cli_flags.go create mode 100644 third_party/opentelemetry-ebpf-profiler/pyroscope/internalshim/controller/controller.go create mode 100644 third_party/opentelemetry-ebpf-profiler/pyroscope/symb/irsymcache/cache.go create mode 100644 third_party/opentelemetry-ebpf-profiler/pyroscope/symb/irsymcache/cache_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/pyroscope/symb/irsymcache/dummy_process_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/pyroscope/symb/irsymcache/native_frame_symbols.go create mode 100644 third_party/opentelemetry-ebpf-profiler/pyroscope/symb/irsymcache/native_frame_symbols_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/pyroscope/symb/irsymcache/table.go create mode 100644 third_party/opentelemetry-ebpf-profiler/pyroscope/symb/testdata/64b17fbac799e68da7ebd9985ddf9b5cb375e6.debug create mode 100644 third_party/opentelemetry-ebpf-profiler/pyroscope/symb/testdata/libc.gtbl create mode 100644 third_party/opentelemetry-ebpf-profiler/pyroscope/symb/testdata/libc_readelf_funcs.txt create mode 100644 third_party/opentelemetry-ebpf-profiler/remotememory/remotememory.go create mode 100644 third_party/opentelemetry-ebpf-profiler/remotememory/remotememory_linux.go create mode 100644 third_party/opentelemetry-ebpf-profiler/remotememory/remotememory_other.go create mode 100644 third_party/opentelemetry-ebpf-profiler/remotememory/remotememory_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/base_reporter.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/collector_reporter.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/collector_reporter_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/config.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/iface.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/internal/orderedset/ordered_set.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/internal/orderedset/ordered_set_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/internal/pdata/generate.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/internal/pdata/generate_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/internal/pdata/helper.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/internal/pdata/pdata.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/otlp_reporter.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/runloop.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/samples/attrmgr.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/samples/attrmgr_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/samples/samples.go create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/testdata/.gitignore create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/testdata/Makefile create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/testdata/test.c create mode 100644 third_party/opentelemetry-ebpf-profiler/reporter/times.go create mode 100644 third_party/opentelemetry-ebpf-profiler/rlimit/rlimit.go create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symb-proto/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symb-proto/symbfile.proto create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/.gitignore create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/Cargo.toml create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/build.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/c/Makefile create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/c/demo.c create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/c/symblib.h create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/cbindgen.toml create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/go/Makefile create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/go/main.go create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/src/ffislice.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/src/ffistr.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/src/gosym.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/src/lib.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/src/pointresolver.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/src/rangeextr.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib-capi/src/status.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/Cargo.toml create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/build.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/covmap.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/dbglog.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/demangle.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/disas.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/dwarf.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/fileid.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/gosym/errors.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/gosym/mod.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/gosym/raw/mod.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/gosym/raw/reader.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/gosym/raw/regions.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/gosym/raw/structs.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/gosym/raw/types.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/lib.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/objfile.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/retpads.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/symbconv/dwarf/mod.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/symbconv/dwarf/rangetree.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/symbconv/go.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/symbconv/mod.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/symbconv/multi.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/symbconv/obj.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/symbfile/mod.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/symbfile/proto.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/symbfile/read.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/symbfile/records.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/symbfile/strdedup.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/src/symbfile/write.rs create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/testdata/Makefile create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/testdata/README.md create mode 100755 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/testdata/go-1.20.14 create mode 100755 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/testdata/go-1.22.12 create mode 100755 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/testdata/go-1.24.0 create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/testdata/go.mod create mode 100755 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/testdata/inline create mode 100755 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/testdata/inline-big-fake-compressed-dwarf create mode 100755 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/testdata/inline-compressed-dwarf create mode 100755 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/testdata/inline-compressed-dwarf-zstd create mode 100755 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/testdata/inline-no-tco create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/testdata/inline-no-tco.ranges.symbfile create mode 100755 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/testdata/inline-split-dwarf create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/testdata/inline-split-dwarf.dwp create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/testdata/inline.c create mode 100644 third_party/opentelemetry-ebpf-profiler/rust-crates/symblib/testdata/main.go create mode 100644 third_party/opentelemetry-ebpf-profiler/stringutil/stringutil.go create mode 100644 third_party/opentelemetry-ebpf-profiler/stringutil/stringutil_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/successfailurecounter/successfailurecounter.go create mode 100644 third_party/opentelemetry-ebpf-profiler/successfailurecounter/successfailurecounter_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/support/.gitignore create mode 100644 third_party/opentelemetry-ebpf-profiler/support/PYTHON_LINENO_RECOVERY_README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/support/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/.clang-format create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/LICENSE create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/Makefile create mode 100755 third_party/opentelemetry-ebpf-profiler/support/ebpf/bloat-o-meter create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/bpfdefs.h create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/dotnet_tracer.ebpf.c create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/errors.h create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/extmaps.h create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/frametypes.h create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/go_labels.ebpf.c create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/hotspot_tracer.ebpf.c create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/integration_test.ebpf.c create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/interpreter_dispatcher.ebpf.c create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/kernel.h create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/native_stack_trace.ebpf.c create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/off_cpu.ebpf.c create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/perl_tracer.ebpf.c create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/php_tracer.ebpf.c create mode 100755 third_party/opentelemetry-ebpf-profiler/support/ebpf/print_instruction_count.sh create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/python_tracer.ebpf.c create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/ruby_tracer.ebpf.c create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/sched_monitor.ebpf.c create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/stackdeltatypes.h create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/system_config.ebpf.c create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/tracemgmt.h create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/tracer.ebpf.amd64 create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/tracer.ebpf.arm64 create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/tsd.h create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/types.h create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/uprobe.ebpf.c create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/v8_tracer.ebpf.c create mode 100644 third_party/opentelemetry-ebpf-profiler/support/ebpf/v8_tracer.h create mode 100755 third_party/opentelemetry-ebpf-profiler/support/generate.sh create mode 100644 third_party/opentelemetry-ebpf-profiler/support/helper.go create mode 100755 third_party/opentelemetry-ebpf-profiler/support/local-collector.sh create mode 100755 third_party/opentelemetry-ebpf-profiler/support/run-tests.sh create mode 100644 third_party/opentelemetry-ebpf-profiler/support/support.go create mode 100644 third_party/opentelemetry-ebpf-profiler/support/support_amd64.go create mode 100644 third_party/opentelemetry-ebpf-profiler/support/support_arm64.go create mode 100644 third_party/opentelemetry-ebpf-profiler/support/support_others.go create mode 100644 third_party/opentelemetry-ebpf-profiler/support/support_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/support/tests/main_thread_exit.c create mode 100644 third_party/opentelemetry-ebpf-profiler/support/types.go create mode 100644 third_party/opentelemetry-ebpf-profiler/support/types_def.go create mode 100644 third_party/opentelemetry-ebpf-profiler/testsupport/io.go create mode 100644 third_party/opentelemetry-ebpf-profiler/testsupport/testfiles.go create mode 100644 third_party/opentelemetry-ebpf-profiler/times/ktime.go create mode 100644 third_party/opentelemetry-ebpf-profiler/times/times.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/.gitignore create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/analyze.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/clean.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/cloudstore/cloudstore.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/coredump.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/coredump_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/ebpfcode.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/ebpfcode.h create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/ebpfcontext.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/ebpfhelpers.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/ebpfmaps.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/export.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/exportmodule.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/gdb.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/json.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/main.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/modulestore/id.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/modulestore/public.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/modulestore/reader.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/modulestore/store.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/modulestore/util.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/new.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/rebase.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/storecoredump.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/.gitkeep create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/brokenstack.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/dotnet7-helloworld-alpine.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/gcloud_sdk_502.0.0_slim_3.11.9_clang_18.1.8.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/glibc-signalframe.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/go-1.24.1-hello.json.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/graalvm-native.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/java-17.ShaShenanigans.StubRoutines.sha256_implCompressMB.sha256msg2.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/java11.25812.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/java12.20153.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/java13.11581.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/java14.3576.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/java16.43723.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/java16.43768.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/java20-helloworld.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/java23-helloworld.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/java25-helloworld.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/java7.10958.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/java8.10171.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/musl-signalframe.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/node1610.26681.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/node1617-inlining.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/node1815-baseline.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/node1816-async.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/node189-inlining.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/node211.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/openssl-gcm.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/openssl.14327.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/perl528.14.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/perl528.151.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/perl528.206.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/perl534.220234.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/perl536-a.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/perl536-helloWorld.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/perl542.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/php-8.2.10-prime.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/php-8.3.6-prime.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/php74.7893.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/php8.103871.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/pyenv_3.12.9_gcc_13.3.0.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/pyenv_3.13.2_clang_21.0.0.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/python3.12-expat-debian-unstable.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/python310.stringbench.20086.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/python310.stringbench.2576.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/python311-expat.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/python311.50282.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/python312-alpine320-nobuildid.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/python312-alpine320.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/python37.26320.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/ruby-2.7.8p225-loop.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/ruby-3.0.4p208-loop.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/ruby-3.0.6p216-loop.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/ruby-3.1.0p0-loop.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/ruby-3.1.4p223-loop.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/ruby-3.2.2-loop.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/ruby25.20836.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/ruby25.benchmark-serialization.10811.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/ruby27.2186.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/ruby30.253432.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/stackalign.4040.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/amd64/stackdeltas.11629.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/.gitkeep create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/brokenstack.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/glibc-signal-arm.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/go.symbhack.readheader.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/hello.3345.hello3.body.stp-after-bl.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/hello.3345.hello4.epi.add.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/hello.3345.hello4.epi.ret.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/hello.3345.hello5.body.adrp.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/hello.3345.hello5.epi.add.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/hello.3345.hello5.epi.ret.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/hello.3345.hello5.pro.add.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/hello.3345.hello5.pro.stp.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/hello.3345.hello5.pro.str.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/hello.3345.hello5.pro.stur.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/hello.3345.hello5.pro.sub.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/hello.3345.leaf.ret.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/hello.345.hello5.body.add.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/java-17.ShaShenanigans.StubRoutines.sha256_implCompressMB.sha256h.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/java-21.ShaShenanigans.StubRoutines.sha256_implCompressMB.sha256h2.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/java.PrologueEpilogue.epi.add-sp-sp.377026.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/java.PrologueEpilogue.epi.ldp-x29-x30.376761.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/java.PrologueEpilogue.epi.ret.377192.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/java.PrologueEpilogue.stp-fp-lr.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/java.PrologueEpilogue.sub-sp-sp.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/java.VdsoPressure.osJavaTimeNanos.649996.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/node1600-inlining.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/node16110-inlining.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/node1640-inlining.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/node1660-inlining.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/node1890-inlining.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/node2010-inlining.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/node2110-inlining.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/perl-5.38-debian.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/php-8.2.10-prime.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/php-8.2.7-prime.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/php81.571415.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/python-3.10.12-nix-fib.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/python37.stringbench.10656.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/ruby-2.7.8p225-loop.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/ruby-3.0.4p208-loop.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/ruby-3.0.6p216-loop.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/ruby-3.1.0p0-loop.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/ruby-3.1.4p223-loop.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/ruby-3.2.2-loop.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/stackalign.19272.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/stackalign.67475.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/stackalign.7265.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testdata/arm64/vdso-frame.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/c/brokenstack.c create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/c/cpuhog.c create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/c/sig.c create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/c/stackalign.c create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/dotnet/helloworld/Program.cs create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/dotnet/helloworld/helloworld.csproj create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/go/hello.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/graalvm/.gitignore create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/graalvm/HelloGraal.java create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/graalvm/Makefile create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/graalvm/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/java/Deopt.java create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/java/DeoptFoo.java create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/java/HelloWorld.java create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/java/Lambda1.java create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/java/Prof1.java create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/java/Prof2.java create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/java/PrologueEpilogue.java create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/java/ShaShenanigans.java create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/java/VdsoPressure.java create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/java/javagdbinit create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/node/async.js create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/node/hello.js create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/node/hello2.js create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/node/inlining.js create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/node/test.js create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/perl/a.pl create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/perl/gdb-dump-offsets.py create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/perl/hi.pl create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/php/gdb-dump-offsets.py create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/php/php_forever.php create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/php/prime.php create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/python/expat.py create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/python/fib.py create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/python/gdb-dump-offsets.py create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/ruby/gdb-dump-offsets.py create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/testsources/ruby/loop.rb create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/coredump/upload.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/errors-codegen/bpf.h.template create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/errors-codegen/errors.json create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/errors-codegen/main.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/fake-apm-agent/.gitignore create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/fake-apm-agent/Makefile create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/fake-apm-agent/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/fake-apm-agent/fake-apm-agent-lib.c create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/fake-apm-agent/fake-apm-agent.c create mode 100755 third_party/opentelemetry-ebpf-profiler/tools/file_id.sh create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/gooffsets/info.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/gooffsets/main.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/probe-ctrl/.gitignore create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/probe-ctrl/Makefile create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/probe-ctrl/README.md create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/probe-ctrl/go.mod create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/probe-ctrl/go.sum create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/stackdeltas/.gitignore create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/stackdeltas/stackdeltas.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/zstpak/.gitignore create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/zstpak/lib/zstpak.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/zstpak/lib/zstpak_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tools/zstpak/main.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tpbase/assembly_decode_aarch64.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tpbase/assembly_decode_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tpbase/assembly_decode_x86.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tpbase/libc.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tpbase/libc_aarch64.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tpbase/libc_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tpbase/libc_x86.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tpbase/tpbase.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tracer/ebpf_integration_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tracer/events.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tracer/helper.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tracer/helper_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tracer/maccess.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tracer/probe_linux.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tracer/probe_other.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tracer/systemconfig.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tracer/tpbase.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tracer/tracepoints.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tracer/tracer.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tracer/tracer_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tracer/types/parse.go create mode 100644 third_party/opentelemetry-ebpf-profiler/tracer/types/parse_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/traceutil/traceutil.go create mode 100644 third_party/opentelemetry-ebpf-profiler/traceutil/traceutil_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/util/util.go create mode 100644 third_party/opentelemetry-ebpf-profiler/util/util_test.go create mode 100644 third_party/opentelemetry-ebpf-profiler/vc/vc.go diff --git a/deps-update-2025-11-19.md b/deps-update-2025-11-19.md index b50cff60d7..7c83e78e67 100644 --- a/deps-update-2025-11-19.md +++ b/deps-update-2025-11-19.md @@ -36,3 +36,19 @@ - **Base / Deltas:** Currently pinned to commit `a00a0ef` (post-tag pseudo-version) that merges Grafana PR [#36](https://github.com/grafana/opentelemetry-ebpf-profiler/pull/36), fixing a race in `processmanager`’s resource release logic. - **Why:** Upstream PR [open-telemetry/opentelemetry-ebpf-profiler#899](https://github.com/open-telemetry/opentelemetry-ebpf-profiler/pull/899) carrying the same fix was closed (code being rewritten), so we need the fork for Alloy releases. - **Status:** Alloy already consumes the fork head with the race fix, so we can proceed; for bookkeeping we should cut a tag (e.g., `v0.0.202546`) or rebase onto upstream `v0.0.202547` when available, but it is not blocking the dependency update. + +## Step 4 – Go Module Updates +- Bumped the OpenTelemetry Collector core modules from `v1.45.0/v0.139.0` to `v1.46.0/v0.140.0`, and the contrib components to `v0.140.1`. The legacy `opencensusreceiver` no longer ships after `v0.133.0`, so it remains pinned with an inline note. +- Upgraded Prometheus core dependency to `v0.307.3` (release `v3.7.3`) while continuing to route it through the `staleness_disabling_v3.7.3` Grafana fork. +- Prometheus common moved to `v0.67.3`; client_golang/client_model were already current. +- Updated `go.opentelemetry.io/obi` replace to the latest fork tag `v1.3.8`. +- Patched the Grafana eBPF profiler fork to support the new `pprofile` API introduced in Collector `v0.140.x`. To keep the race fix while adapting to the new APIs, the fork now lives under `third_party/opentelemetry-ebpf-profiler` and exposes updated `Samples()` / `Lines()` usage plus refreshed tests. The module replace points to this local copy. +- Tidied modules (`go mod tidy`) after the upgrades; go.mod now carries only two `require` blocks (direct and indirect), with the former reorganized alphabetically during the update. + +## Step 5 – go.mod Organization +- Collapsed the third indirect `require` block into the main indirect block so that go.mod now follows the requested structure: one direct block, one indirect block, followed by replace/exclude sections. +- Documented special cases inline (e.g., opencensusreceiver removal, new local profiler fork) to make future upgrades easier. + +## Step 6 – Build & Validation +- `make alloy` initially failed because the Grafana eBPF profiler fork still relied on the pre-`v0.140` `pprofile` API (`Profile.Sample`, `Location.Line`). The local fork now mirrors upstream’s `Samples()` / `Lines()` helpers, resolving those build breaks. +- After the patch, `make alloy` completes successfully with the new dependency graph. No additional compilation issues surfaced in the prioritized subsystems. diff --git a/go.mod b/go.mod index 2f8aec4747..b6432bb647 100644 --- a/go.mod +++ b/go.mod @@ -21,24 +21,25 @@ require ( github.com/PuerkitoBio/rehttp v1.4.0 github.com/alecthomas/kingpin/v2 v2.4.0 github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b - github.com/aws/aws-sdk-go-v2 v1.39.4 - github.com/aws/aws-sdk-go-v2/config v1.31.15 - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.11 - github.com/aws/aws-sdk-go-v2/service/s3 v1.89.0 - github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.39.12 + github.com/aws/aws-sdk-go-v2 v1.39.6 + github.com/aws/aws-sdk-go-v2/config v1.31.19 + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13 + github.com/aws/aws-sdk-go-v2/service/s3 v1.90.1 + github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.39.15 github.com/blang/semver/v4 v4.0.0 github.com/bmatcuk/doublestar v1.3.4 github.com/boynux/squid-exporter v1.10.5-0.20230618153315-c1fae094e18e github.com/buger/jsonparser v1.1.1 github.com/burningalchemist/sql_exporter v0.0.0-20240103092044-466b38b6abc4 github.com/c2h5oh/datasize v0.0.0-20231215233829-aa82cc1e6500 + github.com/caarlos0/env/v9 v9.0.0 github.com/cespare/xxhash/v2 v2.3.0 + github.com/channelmeter/iso8601duration v0.0.0-20150204201828-8da3af7a2a61 github.com/coreos/go-systemd/v22 v22.6.0 github.com/dimchansky/utfbom v1.1.1 - github.com/docker/docker v28.5.1+incompatible + github.com/docker/docker v28.5.2+incompatible github.com/docker/go-connections v0.6.0 github.com/drone/envsubst/v2 v2.0.0-20210730161058-179042472c46 - github.com/elastic/go-freelru v0.16.0 // indirect github.com/fatih/color v1.18.0 github.com/fortytw2/leaktest v1.3.0 github.com/fsnotify/fsnotify v1.9.0 @@ -96,6 +97,7 @@ require ( github.com/hashicorp/vault/api/auth/ldap v0.2.0 github.com/hashicorp/vault/api/auth/userpass v0.9.0 github.com/heroku/x v0.5.2 + github.com/ianlancetaylor/demangle v0.0.0-20250628045327-2d64ad6b7ec5 github.com/influxdata/influxdb-client-go/v2 v2.14.0 github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c github.com/influxdata/telegraf v1.35.2 @@ -167,7 +169,8 @@ require ( github.com/open-telemetry/opentelemetry-collector-contrib/receiver/influxdbreceiver v0.140.1 github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.140.1 github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkareceiver v0.140.1 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/opencensusreceiver v0.140.1 + // Stuck at the final published version; module removed upstream after v0.133.0. + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/opencensusreceiver v0.133.0 github.com/open-telemetry/opentelemetry-collector-contrib/receiver/solacereceiver v0.140.1 github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver v0.140.1 github.com/open-telemetry/opentelemetry-collector-contrib/receiver/syslogreceiver v0.140.1 @@ -195,13 +198,13 @@ require ( github.com/prometheus/blackbox_exporter v0.24.1-0.20230623125439-bd22efa1c900 github.com/prometheus/client_golang v1.23.2 github.com/prometheus/client_model v0.6.2 - github.com/prometheus/common v0.67.1 + github.com/prometheus/common v0.67.3 github.com/prometheus/consul_exporter v0.8.0 github.com/prometheus/memcached_exporter v0.13.0 github.com/prometheus/mysqld_exporter v0.17.2 github.com/prometheus/node_exporter v1.9.1 github.com/prometheus/procfs v0.17.0 - github.com/prometheus/prometheus v0.305.1-0.20250818080900-0a40df33fb4e // replaced by a fork of v3.7.1 further down this file + github.com/prometheus/prometheus v0.307.3 github.com/prometheus/sigv4 v0.2.1 github.com/prometheus/snmp_exporter v0.29.0 // if you update the snmp_exporter version, make sure to update the SNMP_VERSION in _index github.com/prometheus/statsd_exporter v0.28.0 @@ -217,7 +220,7 @@ require ( github.com/spf13/cobra v1.10.1 github.com/spf13/pflag v1.0.10 github.com/stretchr/testify v1.11.1 - github.com/testcontainers/testcontainers-go v0.39.0 + github.com/testcontainers/testcontainers-go v0.40.0 github.com/tilinna/clock v1.1.0 github.com/uber/jaeger-client-go v2.30.0+incompatible github.com/vincent-petithory/dataurl v1.0.0 @@ -225,7 +228,6 @@ require ( github.com/webdevops/go-common v0.0.0-20250617214056-2620f947754f github.com/wk8/go-ordered-map v0.2.0 github.com/xdg-go/scram v1.1.2 - github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2 // indirect github.com/zeebo/xxh3 v1.0.2 go.opentelemetry.io/collector/client v1.46.0 go.opentelemetry.io/collector/component v1.46.0 @@ -271,6 +273,8 @@ require ( go.opentelemetry.io/collector/scraper/scraperhelper v0.140.0 go.opentelemetry.io/collector/service v0.140.0 go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux v0.45.0 + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 + go.opentelemetry.io/contrib/propagators/jaeger v1.35.0 go.opentelemetry.io/ebpf-profiler v0.0.0-00010101000000-000000000000 go.opentelemetry.io/obi v1.2.2 go.opentelemetry.io/otel v1.38.0 @@ -291,13 +295,13 @@ require ( golang.org/x/crypto/x509roots/fallback v0.0.0-20240208163226-62c9f1799c91 golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 golang.org/x/net v0.46.0 - golang.org/x/oauth2 v0.32.0 - golang.org/x/sync v0.17.0 + golang.org/x/oauth2 v0.33.0 + golang.org/x/sync v0.18.0 golang.org/x/sys v0.37.0 golang.org/x/text v0.30.0 golang.org/x/time v0.14.0 golang.org/x/tools v0.38.0 - google.golang.org/api v0.254.0 + google.golang.org/api v0.256.0 google.golang.org/grpc v1.76.0 google.golang.org/protobuf v1.36.10 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 @@ -310,7 +314,7 @@ require ( k8s.io/component-base v0.34.1 k8s.io/klog/v2 v2.130.1 k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 - sigs.k8s.io/controller-runtime v0.22.2 + sigs.k8s.io/controller-runtime v0.22.4 sigs.k8s.io/yaml v1.6.0 ) @@ -324,6 +328,7 @@ require ( cloud.google.com/go/longrunning v0.6.7 // indirect cloud.google.com/go/monitoring v1.24.2 // indirect cloud.google.com/go/trace v1.11.6 // indirect + cyphar.com/go-pathrs v0.2.1 // indirect dario.cat/mergo v1.0.2 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect @@ -355,89 +360,102 @@ require ( github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 // indirect github.com/ClickHouse/clickhouse-go v1.5.4 // indirect github.com/Code-Hex/go-generics-cache v1.5.1 // indirect - github.com/DataDog/agent-payload/v5 v5.0.171 // indirect - github.com/DataDog/datadog-agent/comp/core/config v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/core/flare/builder v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/core/flare/types v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/core/log/def v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/core/status v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/core/telemetry v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/def v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/logs/agent/config v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/serializer/metricscompression v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/trace/compression/def v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/api v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/config/create v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/config/env v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/config/mock v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/config/model v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/config/setup v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/config/structure v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/config/utils v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/config/viperconfig v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/fips v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/logs/client v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/logs/message v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/logs/metrics v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/logs/processor v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/logs/sender v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/logs/sources v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/metrics v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/obfuscate v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/orchestrator/model v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/process/util/api v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/proto v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/serializer v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/status/health v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/tagger/types v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/tagset v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/telemetry v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/template v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/trace v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/backoff v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/buf v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/cgroups v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/common v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/compression v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/executable v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/fxutil v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/http v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/json v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/option v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/otel v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/sort v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/startstop v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/statstracker v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/system v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/system/socket v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-api-client-go/v2 v2.48.0 // indirect + github.com/DataDog/agent-payload/v5 v5.0.175 // indirect + github.com/DataDog/datadog-agent/comp/api/api/def v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/core/config v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/core/flare/builder v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/core/flare/types v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/core/log/def v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets/def v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/core/status v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/core/tagger/def v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/core/tagger/types v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/core/telemetry v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/def v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/logs/agent/config v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/serializer/metricscompression v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/trace/compression/def v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/api v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/config/create v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/config/env v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/config/mock v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/config/model v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/config/setup v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/config/structure v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/config/utils v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/config/viperconfig v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/fips v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/logs/client v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/logs/message v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/logs/metrics v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/logs/processor v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/logs/sender v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/logs/sources v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/logs/types v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/metrics v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/obfuscate v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/logs v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/metrics v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/rum v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/orchestrator/model v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/process/util/api v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/proto v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/serializer v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/status/health v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/tagger/types v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/tagset v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/telemetry v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/template v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/trace v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/backoff v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/buf v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/cgroups v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/common v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/compression v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/executable v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/filesystem v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/fxutil v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/http v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/json v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/option v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/otel v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/quantile v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/sort v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/startstop v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/statstracker v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/system v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/system/socket v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-api-client-go/v2 v2.49.0 // indirect github.com/DataDog/datadog-go/v5 v5.8.1 // indirect github.com/DataDog/go-tuf v1.1.1-0.5.2 // indirect github.com/DataDog/gohai v0.0.0-20230524154621-4316413895ee // indirect @@ -469,36 +487,36 @@ require ( github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/aws/aws-msk-iam-sasl-signer-go v1.0.4 // indirect github.com/aws/aws-sdk-go v1.55.7 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.2 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.18.19 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.20.1 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.11 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.11 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.18.23 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.20.6 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.11 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.13 // indirect github.com/aws/aws-sdk-go-v2/service/amp v1.30.5 // indirect github.com/aws/aws-sdk-go-v2/service/apigateway v1.28.2 // indirect github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.24.8 // indirect github.com/aws/aws-sdk-go-v2/service/autoscaling v1.51.2 // indirect github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.45.3 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.58.5 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.58.8 // indirect github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.45.1 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.259.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.266.0 // indirect github.com/aws/aws-sdk-go-v2/service/ecs v1.53.8 // indirect github.com/aws/aws-sdk-go-v2/service/iam v1.38.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.11 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.11 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.13 // indirect github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1 // indirect github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.25.8 // indirect github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.27.0 // indirect github.com/aws/aws-sdk-go-v2/service/shield v1.29.8 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.29.8 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.30.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.6 // indirect github.com/aws/aws-sdk-go-v2/service/storagegateway v1.34.8 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.38.9 // indirect - github.com/aws/smithy-go v1.23.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.40.1 // indirect + github.com/aws/smithy-go v1.23.2 // indirect github.com/axiomhq/hyperloglog v0.2.5 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // indirect @@ -508,11 +526,9 @@ require ( github.com/bits-and-blooms/bitset v1.22.0 // indirect github.com/bits-and-blooms/bloom/v3 v3.7.0 // indirect github.com/bmatcuk/doublestar/v4 v4.9.1 // indirect - github.com/caarlos0/env/v9 v9.0.0 github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect - github.com/channelmeter/iso8601duration v0.0.0-20150204201828-8da3af7a2a61 github.com/checkpoint-restore/go-criu/v6 v6.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/cilium/ebpf v0.19.0 // indirect @@ -541,6 +557,7 @@ require ( github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba // indirect github.com/dgryski/go-metro v0.0.0-20180109044635-280f6062b5bc // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect + github.com/digitalocean/go-metadata v0.0.0-20250129100319-e3650a3df44b // indirect github.com/digitalocean/godo v1.165.1 // indirect github.com/distribution/reference v0.6.0 // indirect github.com/docker/cli v28.1.1+incompatible // indirect @@ -553,6 +570,7 @@ require ( github.com/ebitengine/purego v0.9.0 // indirect github.com/edsrzf/mmap-go v1.2.0 // indirect github.com/efficientgo/core v1.0.0-rc.3 // indirect + github.com/elastic/go-freelru v0.16.0 // indirect github.com/elastic/go-grok v0.3.1 // indirect github.com/elastic/go-perf v0.0.0-20241029065020-30bec95324b8 // indirect github.com/elastic/go-sysinfo v1.8.1 // indirect @@ -587,6 +605,17 @@ require ( github.com/go-openapi/spec v0.22.0 // indirect github.com/go-openapi/strfmt v0.24.0 // indirect github.com/go-openapi/swag v0.25.1 // indirect + github.com/go-openapi/swag/cmdutils v0.25.1 // indirect + github.com/go-openapi/swag/conv v0.25.1 // indirect + github.com/go-openapi/swag/fileutils v0.25.1 // indirect + github.com/go-openapi/swag/jsonname v0.25.1 // indirect + github.com/go-openapi/swag/jsonutils v0.25.1 // indirect + github.com/go-openapi/swag/loading v0.25.1 // indirect + github.com/go-openapi/swag/mangling v0.25.1 // indirect + github.com/go-openapi/swag/netutils v0.25.1 // indirect + github.com/go-openapi/swag/stringutils v0.25.1 // indirect + github.com/go-openapi/swag/typeutils v0.25.1 // indirect + github.com/go-openapi/swag/yamlutils v0.25.1 // indirect github.com/go-openapi/validate v0.25.0 // indirect github.com/go-resty/resty/v2 v2.16.5 // indirect github.com/go-viper/mapstructure/v2 v2.4.0 // indirect @@ -611,10 +640,10 @@ require ( github.com/google/flatbuffers v25.2.10+incompatible // indirect github.com/google/gnostic-models v0.7.0 // indirect github.com/google/go-querystring v1.1.0 // indirect - github.com/google/go-tpm v0.9.6 // indirect + github.com/google/go-tpm v0.9.7 // indirect github.com/google/s2a-go v0.1.9 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.7 // indirect github.com/googleapis/gax-go/v2 v2.15.0 // indirect github.com/gophercloud/gophercloud v1.14.1 // indirect github.com/gophercloud/gophercloud/v2 v2.8.0 // indirect @@ -654,11 +683,10 @@ require ( github.com/hashicorp/serf v0.10.2 // indirect github.com/hashicorp/vic v1.5.1-0.20190403131502-bbfe86ec9443 // indirect github.com/hectane/go-acl v0.0.0-20230122075934-ca0b05cb1adb // indirect - github.com/hetznercloud/hcloud-go/v2 v2.28.0 // indirect + github.com/hetznercloud/hcloud-go/v2 v2.30.0 // indirect github.com/hodgesds/perf-utils v0.7.0 // indirect github.com/huandu/xstrings v1.5.0 // indirect github.com/iancoleman/strcase v0.3.0 // indirect - github.com/ianlancetaylor/demangle v0.0.0-20250628045327-2d64ad6b7ec5 github.com/illumos/go-kstat v0.0.0-20210513183136-173c9b0a9973 // indirect github.com/imdario/mergo v0.3.16 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect @@ -705,6 +733,7 @@ require ( github.com/kylelemons/godebug v1.1.0 // indirect github.com/leodido/ragel-machinery v0.0.0-20190525184631-5f46317e436b // indirect github.com/lightstep/go-expohisto v1.0.0 // indirect + github.com/linode/go-metadata v0.2.2 // indirect github.com/linode/linodego v1.59.0 // indirect github.com/lufia/iostat v1.2.1 // indirect github.com/lufia/plan9stats v0.0.0-20250827001030-24949be3fa54 // indirect @@ -730,6 +759,7 @@ require ( github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/mitchellh/hashstructure v1.1.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/mna/redisc v1.4.0 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect @@ -831,7 +861,7 @@ require ( github.com/secure-systems-lab/go-securesystemslib v0.9.0 // indirect github.com/sercand/kuberesolver/v6 v6.0.0 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect - github.com/shirou/gopsutil/v4 v4.25.9 // indirect + github.com/shirou/gopsutil/v4 v4.25.10 // indirect github.com/shoenig/go-m1cpu v0.1.7 // indirect github.com/shopspring/decimal v1.4.0 // indirect github.com/skeema/knownhosts v1.3.1 // indirect @@ -858,7 +888,8 @@ require ( github.com/tklauser/go-sysconf v0.3.15 // indirect github.com/tklauser/numcpus v0.10.0 // indirect github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80 // indirect - github.com/twmb/franz-go v1.20.2 // indirect + github.com/twmb/franz-go v1.20.4 // indirect + github.com/twmb/franz-go/pkg/kadm v1.17.1 // indirect github.com/twmb/franz-go/pkg/kmsg v1.12.0 // indirect github.com/twmb/franz-go/pkg/sasl/kerberos v1.1.0 // indirect github.com/twmb/franz-go/plugin/kzap v1.1.2 // indirect @@ -883,6 +914,7 @@ require ( github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/xhit/go-str2duration/v2 v2.1.0 // indirect github.com/xo/dburl v0.20.0 // indirect + github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2 // indirect github.com/yl2chen/cidranger v1.0.2 // indirect github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect @@ -931,10 +963,8 @@ require ( go.opentelemetry.io/contrib/exporters/autoexport v0.61.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 go.opentelemetry.io/contrib/otelconf v0.18.0 // indirect go.opentelemetry.io/contrib/propagators/b3 v1.38.0 // indirect - go.opentelemetry.io/contrib/propagators/jaeger v1.35.0 go.opentelemetry.io/contrib/samplers/jaegerremote v0.30.0 // indirect go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.14.0 // indirect @@ -954,13 +984,14 @@ require ( golang.design/x/chann v0.1.2 // indirect golang.org/x/arch v0.22.0 // indirect golang.org/x/mod v0.29.0 // indirect + golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8 // indirect golang.org/x/term v0.36.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect gonum.org/v1/gonum v0.16.0 // indirect google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250929231259-57b25ae835d4 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20251103181224-f26f9409b101 // indirect gopkg.in/alecthomas/kingpin.v2 v2.2.6 // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect @@ -975,40 +1006,6 @@ require ( sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect ) -require ( - cyphar.com/go-pathrs v0.2.1 // indirect - github.com/DataDog/datadog-agent/comp/api/api/def v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/core/secrets/def v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.0.0-20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/core/tagger/def v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/core/tagger/types v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/logs/types v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/logs v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/metrics v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/rum v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.69.3 // indirect - github.com/DataDog/datadog-agent/pkg/util/quantile v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect - github.com/digitalocean/go-metadata v0.0.0-20250129100319-e3650a3df44b // indirect - github.com/go-openapi/swag/cmdutils v0.25.1 // indirect - github.com/go-openapi/swag/conv v0.25.1 // indirect - github.com/go-openapi/swag/fileutils v0.25.1 // indirect - github.com/go-openapi/swag/jsonname v0.25.1 // indirect - github.com/go-openapi/swag/jsonutils v0.25.1 // indirect - github.com/go-openapi/swag/loading v0.25.1 // indirect - github.com/go-openapi/swag/mangling v0.25.1 // indirect - github.com/go-openapi/swag/netutils v0.25.1 // indirect - github.com/go-openapi/swag/stringutils v0.25.1 // indirect - github.com/go-openapi/swag/typeutils v0.25.1 // indirect - github.com/go-openapi/swag/yamlutils v0.25.1 // indirect - github.com/linode/go-metadata v0.2.2 // indirect - github.com/mitchellh/hashstructure v1.1.0 // indirect - github.com/twmb/franz-go/pkg/kadm v1.17.1 // indirect - golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8 // indirect -) - // NOTE: replace directives below must always be *temporary*. // // Adding a replace directive to change a module to a fork of a module will @@ -1082,10 +1079,9 @@ exclude ( k8s.io/client-go v12.0.0+incompatible ) -// replace go.opentelemetry.io/obi => github.com/grafana/opentelemetry-ebpf-instrumentation v1.3.7 -replace go.opentelemetry.io/obi => github.com/grafana/opentelemetry-ebpf-instrumentation v1.3.7 +replace go.opentelemetry.io/obi => github.com/grafana/opentelemetry-ebpf-instrumentation v1.3.8 -replace go.opentelemetry.io/ebpf-profiler => github.com/grafana/opentelemetry-ebpf-profiler v0.0.202546-0.20251106085643-a00a0ef2a84c +replace go.opentelemetry.io/ebpf-profiler => ./third_party/opentelemetry-ebpf-profiler // Update openshift/client-go to a version compatible with structured-merge-diff v6 replace github.com/openshift/client-go => github.com/openshift/client-go v0.0.0-20251015124057-db0dee36e235 diff --git a/go.sum b/go.sum index 824fb67b9e..5ff1c40059 100644 --- a/go.sum +++ b/go.sum @@ -158,218 +158,218 @@ github.com/Code-Hex/go-generics-cache v1.5.1/go.mod h1:qxcC9kRVrct9rHeiYpFWSoW1v github.com/DATA-DOG/go-sqlmock v1.4.1/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= -github.com/DataDog/agent-payload/v5 v5.0.171 h1:o9vSLDPNeg5PSpVUciSVnGOvfzQ3Uw7ucp0TPv60oN4= -github.com/DataDog/agent-payload/v5 v5.0.171/go.mod h1:9PtvPKsgZVTTvqgYtcwB4bjXAkxYzC2wzSXSadPRHv8= -github.com/DataDog/datadog-agent/comp/api/api/def v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:9u/NSru6Cbs1X0UwY+BX5Z70zGSloGRc/7VsZc43oeI= -github.com/DataDog/datadog-agent/comp/api/api/def v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:Y8NNf3UfsAWmmeMuRGlz9u3OXQMFgIWeB+xl72fpOTQ= -github.com/DataDog/datadog-agent/comp/core/config v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:wNTDdJa4RNoxOIC289IdSrSbX2AH26I1Abu0/mnbFFI= -github.com/DataDog/datadog-agent/comp/core/config v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:YZBDQTm46e8/jEBKCqaal4958Vm4vKnqdttksFq4zh0= -github.com/DataDog/datadog-agent/comp/core/flare/builder v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:EOZ4iL1nIVZ2K09T09MDb3mrp1e9U5YDXGd+BAIjcWI= -github.com/DataDog/datadog-agent/comp/core/flare/builder v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:2raT+Z3CnaYU3UddSZGVu27L8pD/2Vc2bxX6R6itypM= -github.com/DataDog/datadog-agent/comp/core/flare/types v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:MConG6yN1556zVNzFUxlxU7p251gSKC0XRK721ks+jY= -github.com/DataDog/datadog-agent/comp/core/flare/types v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:JYobfWVxlRhOPNuASiwY3gMFV/GusRkfyGGUMsXcfJQ= -github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:3TCM7shDELZ3VrT8z+cPuN8WYJkWHoaXpqTNYgWQj68= -github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:lAWJnNDq0w4PEUmsKQ7HJiCl/7a6M4DGs3x4fkRBNBg= -github.com/DataDog/datadog-agent/comp/core/log/def v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:3NZ2ZrqixNwUs03/BhLCliXEgKAVC5QwGQX6Tq4DVeU= -github.com/DataDog/datadog-agent/comp/core/log/def v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:6tIzQxSMJq5w/8PaEWGc2WHMRolJBK2oE+izqUVdZN4= -github.com/DataDog/datadog-agent/comp/core/log/mock v0.64.0-devel h1:x1/H6+u1wW9jFaGMQ76065uo2S8rCIsK9eaEHnWwtyY= -github.com/DataDog/datadog-agent/comp/core/log/mock v0.64.0-devel/go.mod h1:LBFg7mnbvtMLLTf6nF2Ml0uaq91h2ywPkVVtLRPo5pM= -github.com/DataDog/datadog-agent/comp/core/secrets/def v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:hMbdd/fv72FE2T1xMRUYp8uzqhbxJ5CfQqShox1js30= -github.com/DataDog/datadog-agent/comp/core/secrets/def v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:mV7hPUjpP86cntCTF3J7BsL1aXnwNGrmIhWTUCuXtUw= -github.com/DataDog/datadog-agent/comp/core/secrets/mock v0.70.0 h1:4qqGLbfJU6xBml/ErQ/pqamFWFHQG57MwQRCcxhBJ7Y= -github.com/DataDog/datadog-agent/comp/core/secrets/mock v0.70.0/go.mod h1:oZhWOObGSvWooOnq+WJrdkx77wb1uRGeA/+fhzHDnn4= -github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.0.0-20251030121902-cd89eab046d6 h1:KYnknUSJVPlKr8e9UWmKXmrpdGS8dW0f35wBpWvH5gM= -github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.0.0-20251030121902-cd89eab046d6/go.mod h1:Hot/gkdKQA4OzlaAB9au1Vrb0Dw+bgxnJ2tAnKfGbvw= -github.com/DataDog/datadog-agent/comp/core/secrets/utils v0.70.0 h1:i7y3at4X4TSdaCpZU7JoRerIbezD+LudVsB2rDd4Leo= -github.com/DataDog/datadog-agent/comp/core/secrets/utils v0.70.0/go.mod h1:ALBDP+QHSmtWZEHhWL1CvfNa/IW7Kv47MU5QBzEX4ss= -github.com/DataDog/datadog-agent/comp/core/status v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:evFLa/ScC0i3nOPmOuGGrdK0xIMeNyGM12SZ5Kpf4z0= -github.com/DataDog/datadog-agent/comp/core/status v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:lmn5CWkA+o/+7HBlaTATcs/Xg5Pg9BzYwANFiG8WWHw= -github.com/DataDog/datadog-agent/comp/core/tagger/def v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:KDwTZFzGiWlqpp/BoPZCY5B06RkGh+LzF+xth7a6mps= -github.com/DataDog/datadog-agent/comp/core/tagger/def v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:i3r2EmNkhZlcp66TGasK/eRlJnkq/Fbi9zmeMQGuIw8= -github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:ffqtU7d1Lo67vsGyo1xY/G+5exPBeKG7hwsi9ClceSo= -github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:/Pbx7d3ZcatpCazPG0tEpUUTAZ30oMT/jAKF3C0peQ8= -github.com/DataDog/datadog-agent/comp/core/tagger/types v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:fYixucvEuKrwIyoaYUF8n4nVZQeUnqsrDALDLQvasqc= -github.com/DataDog/datadog-agent/comp/core/tagger/types v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:r2CaTBAI+cyeCvwfDCxpy6v5mLwyDSBBUe0sgZUykgs= -github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:FVmg8lCiqC135imRyWlnCwBP+Sg+phcxuLmXjkoVhzc= -github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:JjAbv1aybOV8qZZNOMi9HuJfqXtayOH7jk3v4hYDO+I= -github.com/DataDog/datadog-agent/comp/core/telemetry v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:uLvulmk7uNgk/l0C4sf/e/jXElSYv5K2CXQk1q1olpg= -github.com/DataDog/datadog-agent/comp/core/telemetry v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:TLc/Lj7m/urrFNXczB9CGwKUIPzK4P1qKaNPKvKxyIM= -github.com/DataDog/datadog-agent/comp/def v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:6PlhVEzZqJyBAH+GH/f2+gqXlcv6qMFoP+keVxSy6D0= -github.com/DataDog/datadog-agent/comp/def v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:FkG02WVkGN7R4hYZwiQluMRyqxwZWRpdqOFZTn0NVgg= -github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:fi/xkPT3g5AV1+fhmchcvLMGoXKUVSzhBftUDYC2HVE= -github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:CHhJj+eZr5je4yQUE6mTJrr4H6mtFgzsDzkHBcvimG0= -github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:iRjQJS3YHv3nBwAyWmxAP0/p4rMGoF4B6ROK71waoa0= -github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:nZe//QUuCRYSfZvxdTsXC8CeQColK5d72rhfxQucmWE= -github.com/DataDog/datadog-agent/comp/logs/agent/config v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:8LTxkJdRLdcZKeMk96Hpu5X1qR6h7maoiopNUzGxbd8= -github.com/DataDog/datadog-agent/comp/logs/agent/config v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:IVuf9cLGibnYuHnthQNcYoJk18tHUw/eL2d/IWcilR0= -github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:DOBBZrTz9zeJ2h7+CLZld7lh8E6qJb6+2dMCf9PzNR0= -github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:am19xMsRbvdfV3Kvaspwlpjq3igo2+9BEQwd6Sn/VO0= -github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:QXdPmlK5azsG3jWiid9Y7q02sjDAMlH8ha/pSYX2gck= -github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:colMsa5vf2Z+ma983ef0cijif7/tiMTBZ1ciwHRhY7Q= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:56/8z6rqrHsq19qHUZ7aYULJG/dvpxUA2rIitXlapaw= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:2nzw1nvy5aZcaixtSQwbOrZOrUr7TBpeTFRsC8Pfazw= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:rZSXpd8TMnzP82AkkMSYOUxmLc3nQ2alZvQQSliO7n4= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:ufNBoNrJHzbbY6rElnuPuY4UIXQe42FfcBdxoxfYuLU= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:nQzAWDLhbJceJF3ew3kHJG4cNJRkwg66Y54XYMr334k= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:3sL1rB1u+jPCJ/TWYKINx6AjXiNGN4OmWe0sAPUGTLU= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:AsPMAzhnhjXcIV/4ftafqXvlCazLoxmF1FrADo+jzYU= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:1Jr9Y6LW0OwvwmmUt8SZyDFs1ZBSJPlAN+8VUjdb8to= -github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:AY81jffH2ATac7T+uFCMb5tps7Odi01TidWSckaC9u4= -github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:i1LFYHP/h9wAARvLgW7d5nv4AJ/HSAVGAkdpgkczPCg= -github.com/DataDog/datadog-agent/comp/serializer/metricscompression v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:ESypUYSgVmcTemcSEL7LfK39h0wH2otBT4QZ1Ih25QE= -github.com/DataDog/datadog-agent/comp/serializer/metricscompression v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:ofGkzKe3Hm7WZy5BfJByokKcAd4ZvGbOytkh9Z6w0Sc= -github.com/DataDog/datadog-agent/comp/trace/compression/def v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:d+TEObGn8XYSZ39PW73w0DTaWSKpsCt2Fp7nvUqd0eE= -github.com/DataDog/datadog-agent/comp/trace/compression/def v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:uJgbuMQHwkpc4Zv81LUuTnn0+fiS8zflo6v586l9kig= -github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:w5BEViY6OaIVjk2hqKw+szbUYdkhPrL6wLUKZK/tNGI= -github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:trNWMcnfzlIfrsO70dAwWcWGKMaEj391EBOiOAKVbvA= -github.com/DataDog/datadog-agent/comp/trace/compression/impl-zstd v0.56.0-rc.3 h1:Hq2tQTaFcEJy9o1QFb9Ql/gm0uRzrYQkFEZGPVKLMHI= -github.com/DataDog/datadog-agent/comp/trace/compression/impl-zstd v0.56.0-rc.3/go.mod h1:TOlu5v8b46+aW9h3KLZdOiwz3gJkoQerT3+F3st6ZRA= -github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:lFx+RIxtBgmnMjUspdaECH2vtiNTZoQxMZkbISmkJMc= -github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:U7cObQ9LSJaCoWW7WtkMsS12pnW4gvs61bXDEcZLcng= -github.com/DataDog/datadog-agent/pkg/api v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:lKuc5G8kJNYh8sDOM+FEspxrgq1+xlQK4F2+nP/+2zI= -github.com/DataDog/datadog-agent/pkg/api v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:V/nDUuZ0nT03iKQw96Chy5la6ryXrO972kcgN/qalQI= -github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:bWA+H+m9lmITSIvV2O/ZL1Gigchm0jPsCFj/TlvvZI0= -github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:SCfYKcsAYmO61gnDIiouXg9VJVDBeM2rMjIl4XWEAQ8= -github.com/DataDog/datadog-agent/pkg/config/create v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:2f+T/z4D4cgnhF2KdGJ+EhkYmimAC4sYC9bNu/NMqIY= -github.com/DataDog/datadog-agent/pkg/config/create v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:+x7oqxkj73X3rzsa2zUwVWlKD2/R58spTbbPQ5Y3r/Y= -github.com/DataDog/datadog-agent/pkg/config/env v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:lqYOgE2IVUQWp4yaZPD9B+scDLD9odwYTyGYdBxmelo= -github.com/DataDog/datadog-agent/pkg/config/env v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:8f/HPLNwpUrQ/n7LcSTdiJPARV2E9Q1jsJ8DLuFlKAA= -github.com/DataDog/datadog-agent/pkg/config/mock v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:06HVd5XIn5a7Jst48i2/lfpVwL7F+7H0v3fGnU9Hq2Q= -github.com/DataDog/datadog-agent/pkg/config/mock v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:v0K6eonAOcJb/4oKtSu//EbeuGApKFV6uYecObz0RtE= -github.com/DataDog/datadog-agent/pkg/config/model v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:1nIOAr475VJNvf9C+uROmM11fow4gEmIxYVLQS9nb+Q= -github.com/DataDog/datadog-agent/pkg/config/model v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:f0QA7v2C4RsLmTbh0D38GCJX1FtNvjbXidwui0fcVjg= -github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:lHgciErr2r+Ahma3VPrCMOOLx4zrtOu8pbK3KOrV1Oc= -github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:U5DBsueALVFTBmxRlSQ2rw+h2/Jb0O4nhD1B1QfRBsA= -github.com/DataDog/datadog-agent/pkg/config/setup v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:utSW1G7hlgJL2WQXO1zY+Mf9sjuHNlpywfvx7IKEXaA= -github.com/DataDog/datadog-agent/pkg/config/setup v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:l9WJzJVI8XYDBg1KnFO8xyjpCK3BzKfgr26ZYbVJoh8= -github.com/DataDog/datadog-agent/pkg/config/structure v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:HtHWQp39HRusnJm3GcKChPMmbWcCyaKomml0D1UyoeM= -github.com/DataDog/datadog-agent/pkg/config/structure v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:Agv9qApVxn27hHEbvkEaO3xA/Tbeiwm7yeul3r762Co= -github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:zethR83QKT/MS3Mc+XweefSNt5UTKxJLWY3u0H2Z3zM= -github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:LeZF2GYjG89v4mgMBlPJyZTHgWAkV924dtGatyLllOM= -github.com/DataDog/datadog-agent/pkg/config/utils v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:78vy/tcrFJv84H4k3ER+VXfOXO9jzcD+TBSEBo1sEmw= -github.com/DataDog/datadog-agent/pkg/config/utils v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:YilkuIwOJP4LNTGcTdPdyMdyBJ9/twaDbkyfVXLgRDY= -github.com/DataDog/datadog-agent/pkg/config/viperconfig v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:4+wzIC9OQAAm27bhiYDMRda6T/VeI0FdrXXONEgtD18= -github.com/DataDog/datadog-agent/pkg/config/viperconfig v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:i6MNhdPpOVI22DPZLn4YxDWnPR1X1AIqy3CtwnLs69Q= -github.com/DataDog/datadog-agent/pkg/fips v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:z56cgrxKNawRrXpc23jl/GpN7SGfFqZmekK1XBTaSRY= -github.com/DataDog/datadog-agent/pkg/fips v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:KcTRjrQlX1oI7bKqvDk2bPBYKTzlU1k6OgnBizL4vYs= -github.com/DataDog/datadog-agent/pkg/logs/client v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:hYkH4umEcQ3Q1W/JpcF1ahcR6lcPoA5o7iQbtxSdfTk= -github.com/DataDog/datadog-agent/pkg/logs/client v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:+Zhgk0PXO+RdQ9BOm5BzGdDyqbBt2NxuUzpFlxbpjBQ= -github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:wGM3s6BX9VRL35p1aRN8iYrLFOyMjNHGw4o2y0/xVlY= -github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:gjd1zi6YzFxlEGOTmP7gX5IPkzYIAivxxk0hEBmHZ1I= -github.com/DataDog/datadog-agent/pkg/logs/message v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:itwS6lT64SoVyBya6x971dDNOt0Hg3fyJzjTtzABqmc= -github.com/DataDog/datadog-agent/pkg/logs/message v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:Ww5ucvDm5ZZBDZqXDE4neDPEK0hh9rqeNCuhbEkZ+6o= -github.com/DataDog/datadog-agent/pkg/logs/metrics v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:U7//uCu5oe62gYSn0pc+eWf3ipq22caTCrjgxbfVmSU= -github.com/DataDog/datadog-agent/pkg/logs/metrics v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:ep+K2uWGqWjhN7CKmcqjKW60CiUss/1X3U/zcwUBCuE= -github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:58xeH8bTwB5OQu5q5WM1F1Ew9LNGFa6A/mYV0TznT/0= -github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:xBUuhYPpP9RS4w3ZimJqMjD5Nx/cbJ2t50SBwOdurm4= -github.com/DataDog/datadog-agent/pkg/logs/processor v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:JwJJ5+dmbBBUztCQhKq/dXQP29GaQ2430uZEgEQEbtk= -github.com/DataDog/datadog-agent/pkg/logs/processor v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:5nQEOsLMcn8I2vu94HUHC66lNf68sB+94b5aKB7WX1s= -github.com/DataDog/datadog-agent/pkg/logs/sender v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:3Xjnh5dsAzfgt19nFmxOI8Ov4FYuXurXXRtZ73z0NlY= -github.com/DataDog/datadog-agent/pkg/logs/sender v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:ihTBjWnLneNJMxOoXwmH8WuGnEqxsFkdWlV3Q27Ug10= -github.com/DataDog/datadog-agent/pkg/logs/sources v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:wNOER73LypndtX2bbiH8202rS9JS91NMHYn/zs9eUPk= -github.com/DataDog/datadog-agent/pkg/logs/sources v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:oKnkCHj0fLhh0+Pa77rI8RaQVx+WEJJL48H16uuFd04= -github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:t9EB5FV56aW9Fcdm/K9sXTxvKYEMCdW95liBTzIzg/o= -github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:cDG5DAmN/VsYn+Iqf5/qhmTnfYyKFS8sjVI1fZEqgEE= -github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:JSFkd8Rgu08vdQorpMxqkz6LhGbYY5Pgswvf4Cbc19U= -github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:AkSRyY9xLJ+emhyKH04+U3g4wwCDSoX0K9jWZBblxpM= -github.com/DataDog/datadog-agent/pkg/logs/types v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:6gd+88prB4hxkl8LENjMui/XAU9UWPaNF8MDpBPjOHE= -github.com/DataDog/datadog-agent/pkg/logs/types v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:UT1HsY9t9Ub5/RZwyOFA+2kxb6m4SkI8qa6LSzONA1g= -github.com/DataDog/datadog-agent/pkg/logs/util/testutils v0.56.0-rc.3 h1:DIOAGjWuW2D2KPE1FP1uPWKHYU0IGyOTgqZpbdMEcKs= -github.com/DataDog/datadog-agent/pkg/logs/util/testutils v0.56.0-rc.3/go.mod h1:KWcoiX3GnnxE2vhYVa6yFOWUCV5aZYNpNEmQsv5jzBI= -github.com/DataDog/datadog-agent/pkg/metrics v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:qq+xs8PBjH1LTMOI78CLoX+w5nmLXdbwxDZWgebfQaE= -github.com/DataDog/datadog-agent/pkg/metrics v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:fsOhq3wZMQ8SxxNYa+64zRrSAiKnUolSgPApYRdPTEM= -github.com/DataDog/datadog-agent/pkg/obfuscate v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:lVdqTOHNsDhVTTUjKglrS1n6Wp+lKXEd5jj3Pj6KBJE= -github.com/DataDog/datadog-agent/pkg/obfuscate v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:d6Jykhk4uM3rDjZln647gRnwK9Z2qYthQbshrfG77Og= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:rpMW51djUaiq8N02zY75YNBKjQ4KA96oX+rrxAHb3E0= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:oyyHjWDo6wfc0PiaEediJ8BYA8W+YSduCC1TpVdn+K0= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:+qmCp1YMYJ+B38qLhpMPcZUFihhKBQfzVZEXCJFRl0Q= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:5kNoOJtWXvzfMrH9TjOj7NxvIC5bAItkOFH1QvdTh98= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/logs v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:p3naGdjzeTSkrC3er4VNkCN6GYsWQapHRozYJyaJ9Rw= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/logs v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:vvFqauGIn2fxfsNIe+XQdjkscbnFbaWFY8msdpTAZL0= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/metrics v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:r/Av1H4ptAo9Nzdm9liQtxr1wQeh5W/dVNlmWoR3hls= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/metrics v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:p4/bNuEbrmYmKwtaN9d17+Ufdayf+C51pblHGITDTX8= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/rum v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:YhcMezQlh0lcYWkWplUs94SBoNDBP/EzUF6SPFxzBGM= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/rum v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:cR+tJ/bf8vMvlI5yvcb672WkKHkRW9sM8arcCJz9Z9k= -github.com/DataDog/datadog-agent/pkg/orchestrator/model v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:ZGFoo1tqhW4zjxy3JQl/MmIWru+7j7bla5z+ew94DOw= -github.com/DataDog/datadog-agent/pkg/orchestrator/model v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:WrhXXakx3/N29l7VWEvdTLprTcY7MpET4NmbvisgMuE= -github.com/DataDog/datadog-agent/pkg/process/util/api v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:PhU1C3pmln16h4im6pYWYGtwA+Z5/u1H0kzhYQwWXpw= -github.com/DataDog/datadog-agent/pkg/process/util/api v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:uLyDsRW/Ey10/Ms2yuOEw08IxYwhuRNT5ZHxg7QRu40= -github.com/DataDog/datadog-agent/pkg/proto v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:t8WVAhpeYBJNASrx4vVnY6gWjczesth7S9pqyFr7d/o= -github.com/DataDog/datadog-agent/pkg/proto v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:6WCQqA1LCqJ0m1h9KGJlOyGjriF68/OPAO3Z5Ow0ITM= -github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:/NuM/dHvcse1zk3175N4v/RpE4mSrPqV4qD3YhHcqPw= -github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:lwkSvCXABHXyqy6mG9WBU6MTK9/E0i0R8JVApUtT+XA= -github.com/DataDog/datadog-agent/pkg/serializer v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:Z3EHXY7p2L5dlwUPPLlaWNH7/8qhLaHmOGf66eSGSkE= -github.com/DataDog/datadog-agent/pkg/serializer v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:NDo3uUDZTm7lsv0T6sd5Qqzil65XU0kHzfLCj8XTUKA= -github.com/DataDog/datadog-agent/pkg/status/health v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:wiF2g7THz4Y88fPk5CPkEFqdoZDB8hy7qE6D+0xtUBQ= -github.com/DataDog/datadog-agent/pkg/status/health v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:JjYAPfmlrBeBEgyp7AG8kWp5+JMMfDR1LP+CabJI8Rg= -github.com/DataDog/datadog-agent/pkg/tagger/types v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:RiV7JPczzNTac6R2CPUuQxUsL6TyhIDSMnJ25OxYIJw= -github.com/DataDog/datadog-agent/pkg/tagger/types v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:9n7Vvr5XAUNfIPUz2m8otE6F2fA9mBI33IiITQTj49A= -github.com/DataDog/datadog-agent/pkg/tagset v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:xaa+mIghgkh7UUIS0Z46mysx1OWJ4AqvM9iUa7bgMsI= -github.com/DataDog/datadog-agent/pkg/tagset v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:NWmrkRchVhnnWgPjOV/swQMIXN5T7MJQ1NTtx3soWpM= -github.com/DataDog/datadog-agent/pkg/telemetry v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:PYtDkRqXuajNSrfMXaR0okhX9o5KQXBwUjVFmIfshk4= -github.com/DataDog/datadog-agent/pkg/telemetry v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:zpcr9wOInDlyxWdB5el9BJWbY1HyJ9DI4SbgsuHaidM= -github.com/DataDog/datadog-agent/pkg/template v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:uYQV+uGzbWIkfPKf4oXgct5VeDrwV3X5JwDpELUODsA= -github.com/DataDog/datadog-agent/pkg/template v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:mpV3MbF/us0LdM3tvVHDztjApy3VWGeu5RuS/MpGVHQ= -github.com/DataDog/datadog-agent/pkg/trace v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:+SbQI832kEI1IMaCZzjjHbGPi6xoWjRt5/wARLL5ufk= -github.com/DataDog/datadog-agent/pkg/trace v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:3ZknnEramPTS0GuQ/4+67TX4PC9FRwFsgx5IgNjiz78= -github.com/DataDog/datadog-agent/pkg/util/backoff v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:Zo76dpDC/UJUUJLmmkvW+cEw4Ne8Di1rn0wKrH+N0pQ= -github.com/DataDog/datadog-agent/pkg/util/backoff v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:wcA2xDXXGiYx/zRCf9LCq6DrWU/538Vymi6NDlnTui4= -github.com/DataDog/datadog-agent/pkg/util/buf v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:N93xEjym+PkV6rVE5kWHGLPtSEfRHBNOL0AyrhBYfrg= -github.com/DataDog/datadog-agent/pkg/util/buf v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:GUuvogIJxiybqgvxbhJJASskiyMZYHKhT29e7VoNO44= -github.com/DataDog/datadog-agent/pkg/util/cgroups v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:/MuSl1PEL9mV7fG73XAAL0pkCVXVfLtRAYUoCpf/GEg= -github.com/DataDog/datadog-agent/pkg/util/cgroups v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:NI8kPqco3q+lVWeEMCaKv8x6eaCdn3qB9wNMwPdNV4s= -github.com/DataDog/datadog-agent/pkg/util/common v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:dHCjmCBVf9ZwHtb2u0htxPJm40kQ3+bH+lExi0hMjI0= -github.com/DataDog/datadog-agent/pkg/util/common v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:TJCueqQTAgHPY86VRttJBoUF3xjpA7avYRT43QysEkM= -github.com/DataDog/datadog-agent/pkg/util/compression v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:MgNl+k2HDJzYwJuKwuYZp0QkkZkL70RE5PdSkI1uyVE= -github.com/DataDog/datadog-agent/pkg/util/compression v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:3T+V9kC7uszMUpwgT9Z1ZAt0ejN8RoEf2M+47dnwjSg= -github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.69.3 h1:QtQvF++ulP9d6Rhfl2yqiOc6lYjjRaO9Iz4ai2/EKQk= -github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.69.3/go.mod h1:2ak5dz/IYg1vIx0ruCbJWHnFDCyyHtUgVts0CfBCe4Q= -github.com/DataDog/datadog-agent/pkg/util/executable v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:q1uX5FArlRRKAGc2XjmZ+aDgIKikboXIPd/LQXCya3Q= -github.com/DataDog/datadog-agent/pkg/util/executable v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:to4LKz+kwyw+n19I2ex0YJJlZ/+KHbvYmqETFi8QyAk= -github.com/DataDog/datadog-agent/pkg/util/filesystem v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:qId02RZcvKQ1S76Czd49GC4mktrk2JEyWu5cKNkwX9M= -github.com/DataDog/datadog-agent/pkg/util/filesystem v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:lEK8+t8sgY1c0FFwNgXPG0izQG+LSGTa3Pkti5NILjc= -github.com/DataDog/datadog-agent/pkg/util/fxutil v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:7ZEeTPjtQe32juH/+qJwTtbg6BVhUcQ7GcPEOOAHnww= -github.com/DataDog/datadog-agent/pkg/util/fxutil v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:BcgaBTMsA5y6fHkpn5zOltgmazRxF8rZGDtWGztolq0= -github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:forc7jgnzw6A7APMABpm4kDMsUhlzd/Ycmrfauk6W9U= -github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:ia3II2lL+ru/hkxneOLUBviJttVCPY7pW8nPR2U4qF4= -github.com/DataDog/datadog-agent/pkg/util/http v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:jWvGk9OLIXSrJXwAa8TLZ2PQy1A2c/Hj0dAi5l+jjEc= -github.com/DataDog/datadog-agent/pkg/util/http v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:Hb767QsYVJIP3x0VxNwyPjGgwQOtrHk70fo10xzhLLk= -github.com/DataDog/datadog-agent/pkg/util/json v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:BuyPSOLFjm2a160uHr1KabcIp6qBoOphd/O7c3TBvzo= -github.com/DataDog/datadog-agent/pkg/util/json v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:CZ7zIVxX7Iy1mqXcZzMOEIM7j9GjDvTPYM3+f+zdTDs= -github.com/DataDog/datadog-agent/pkg/util/log v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:NSa38vidKozOO4JeBr/G+FQeiLBma52USyd8ofgL9s8= -github.com/DataDog/datadog-agent/pkg/util/log v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:aUXyAIs3FeAQFDaajLkoS4747y6GQRhJ0vBusfVguVI= -github.com/DataDog/datadog-agent/pkg/util/log/setup v0.62.2 h1:GTclOngVdHqPb6si+n4CLjAy3l4Rz7iuPIdd2msdlNk= -github.com/DataDog/datadog-agent/pkg/util/log/setup v0.62.2/go.mod h1:b2kVyvTYqDbDyciy6agafD+X+d/GXqMaI2RrSCivxJI= -github.com/DataDog/datadog-agent/pkg/util/option v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:d6697mO2lRzeSbnaYKsZE4yVEL6vC9dupeB6CvnlXN8= -github.com/DataDog/datadog-agent/pkg/util/option v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:vQMaVWnXCKEcop91wAHGQb1DnzMUwu66s4APxx0LO1Y= -github.com/DataDog/datadog-agent/pkg/util/otel v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:XVLNnzbLETmmXO5cMwCsARsGL3Ij1HHmEnlY+mVwyiQ= -github.com/DataDog/datadog-agent/pkg/util/otel v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:Ox9Bbori7yi4jKB0BwCf/mI2Qas/CU+NdX5O3TYKB8g= -github.com/DataDog/datadog-agent/pkg/util/pointer v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:MCbil9pTA0950dbYVkh85tYs+x9sFrvEvsIUL/5ldpI= -github.com/DataDog/datadog-agent/pkg/util/pointer v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:JTZx35q+iKcUSRepCLSQZqgpE729292udiWwICsEVJ0= -github.com/DataDog/datadog-agent/pkg/util/quantile v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:KZa5t7HkSFYP4BQWn3lLv6zCGrjDjgIevhoio5OEDeU= -github.com/DataDog/datadog-agent/pkg/util/quantile v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:EVKRDNH+sdi9kGHc9mkKEKaHhGCdNvhIEp7fexg2Q40= -github.com/DataDog/datadog-agent/pkg/util/quantile/sketchtest v0.70.0 h1:SSHZ57LTgLQ99kvnbnHlXecPcb6AmxW/UtA7FZw3NFQ= -github.com/DataDog/datadog-agent/pkg/util/quantile/sketchtest v0.70.0/go.mod h1:lPU+UeDu2rtZb85l08/kPL6Sr/PiD5NuYOl/YQjOAvY= -github.com/DataDog/datadog-agent/pkg/util/scrubber v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:iwdmqW1QMeeDH9aCsswtFdoLL7MgggAwcdMwAkV+QsU= -github.com/DataDog/datadog-agent/pkg/util/scrubber v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:snLH/x9kuOvE3pwOgE9HPFBOGbNDt2PjkYFqEbMswwg= -github.com/DataDog/datadog-agent/pkg/util/sort v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:3hWPL2VzghLRpxYvCLiC+Y+HA0KUVeffwAxiE+ppseo= -github.com/DataDog/datadog-agent/pkg/util/sort v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:meVtdZ7b1vI/DsNCM9A5oN+OJswZjx/nAPA/WfpUk7w= -github.com/DataDog/datadog-agent/pkg/util/startstop v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:RkteppEDJLH7hK7AbQR9X67/MyTpsg/wZHrd8ORqaz0= -github.com/DataDog/datadog-agent/pkg/util/startstop v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:OgQqokgViXP1DpTABpAfTZ+pCpPY27qMnAsn0lk+2eE= -github.com/DataDog/datadog-agent/pkg/util/statstracker v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:NLseowTBe4zlBUJszMp0/rqunk7Ysrw3aWAe93MoqLQ= -github.com/DataDog/datadog-agent/pkg/util/statstracker v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:1z7fb316EWmOF/19oEolgwppKhuf7/z/JKT+xw9oVqM= -github.com/DataDog/datadog-agent/pkg/util/system v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:5DB2Zqqrw0evW08PxEQibh+7Y39ijdm2iL1n8qwJmm0= -github.com/DataDog/datadog-agent/pkg/util/system v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:dJ+4LzthK8iSHU8+cVr7zMCzhFFt/uvr4YDK2MKuk44= -github.com/DataDog/datadog-agent/pkg/util/system/socket v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:a2MOfw+2EWM0b7amoxB6tjl7Rmajd1CS8f4lU6ryhLc= -github.com/DataDog/datadog-agent/pkg/util/system/socket v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:TBBi/7lQe1kR0nxG0Q2iWp6JNvXw0v/U6dDjlhaHFEg= -github.com/DataDog/datadog-agent/pkg/util/testutil v0.59.0 h1:f6EtElJXr8UN6FftNEeqIyT2jzvAtldQI+eb7qaYvrA= -github.com/DataDog/datadog-agent/pkg/util/testutil v0.59.0/go.mod h1:m/uWLdpGEi3x/5gybZFeYNEnIdKhGtWW8kFZuM+GSFA= -github.com/DataDog/datadog-agent/pkg/util/winutil v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:5lI0ipOTbyjP72pEK6lUhstl+mLlRH6je0FnDdf1p+g= -github.com/DataDog/datadog-agent/pkg/util/winutil v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:sVLDTbgf5SUiDUwXYDbdrMw//E5L5XXa+p6sbh+Y6R4= -github.com/DataDog/datadog-agent/pkg/version v0.73.0-devel.0.20251030121902-cd89eab046d6 h1:CA0UezdSmKT/CHu8ehd2S8d6dT39UnARytlJBYhu/1c= -github.com/DataDog/datadog-agent/pkg/version v0.73.0-devel.0.20251030121902-cd89eab046d6/go.mod h1:6NoHdUrJ/ttav4SSas6XiDLfYbF4Ulx0D0cBpbk4vvI= -github.com/DataDog/datadog-api-client-go/v2 v2.48.0 h1:OcVkuSh1+R2BK38pXWHZsKlzAglgJwlS600zTwkwvbs= -github.com/DataDog/datadog-api-client-go/v2 v2.48.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= +github.com/DataDog/agent-payload/v5 v5.0.175 h1:iyzhnBKD8tTFCmOyA6Gllja2irXy+d+wEMvwDd5m4uc= +github.com/DataDog/agent-payload/v5 v5.0.175/go.mod h1:9PtvPKsgZVTTvqgYtcwB4bjXAkxYzC2wzSXSadPRHv8= +github.com/DataDog/datadog-agent/comp/api/api/def v0.73.0-rc.5 h1:lFk7SHSh26pqbhtfhRITIhxoC5MdWVgOv0l2YB21rWg= +github.com/DataDog/datadog-agent/comp/api/api/def v0.73.0-rc.5/go.mod h1:Y8NNf3UfsAWmmeMuRGlz9u3OXQMFgIWeB+xl72fpOTQ= +github.com/DataDog/datadog-agent/comp/core/config v0.73.0-rc.5 h1:qzM1neIk0/C5WW7bRzF18Jd4n91hdTxqdtjmyLmKqug= +github.com/DataDog/datadog-agent/comp/core/config v0.73.0-rc.5/go.mod h1:K8eLhXoX4drKgz2UivrqzEA394S419/aERBgNfHfvcQ= +github.com/DataDog/datadog-agent/comp/core/flare/builder v0.73.0-rc.5 h1:799eqxQuWLQSYE5P4jUzq8ZKUxinfhurrAUfTCJhUqc= +github.com/DataDog/datadog-agent/comp/core/flare/builder v0.73.0-rc.5/go.mod h1:2raT+Z3CnaYU3UddSZGVu27L8pD/2Vc2bxX6R6itypM= +github.com/DataDog/datadog-agent/comp/core/flare/types v0.73.0-rc.5 h1:F5CVyu5hmPHpX+ZxQM/a8TPZjV0kACAixt+Wgz5mWDc= +github.com/DataDog/datadog-agent/comp/core/flare/types v0.73.0-rc.5/go.mod h1:txiLvqCHatQxQhIbNSuDqoY1Vwqm3YbFmDOZ9JQfRKQ= +github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.73.0-rc.5 h1:rcqDgBcT92ewuqEQuqUko/sJX3rOPIPNQ0wa1NL4zVE= +github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.73.0-rc.5/go.mod h1:dDy8Seu+XivRyaxnrGy/tri1UPpUHsV0ki4PUwi4Uyc= +github.com/DataDog/datadog-agent/comp/core/log/def v0.73.0-rc.5 h1:nWi0f2lvAXmghk5amHC5o4QuL1LMbLgAJ9NiZjtHJ6k= +github.com/DataDog/datadog-agent/comp/core/log/def v0.73.0-rc.5/go.mod h1:6tIzQxSMJq5w/8PaEWGc2WHMRolJBK2oE+izqUVdZN4= +github.com/DataDog/datadog-agent/comp/core/log/mock v0.73.0-rc.5 h1:LPCUrGJYMCCLCAGgYO8DuG7UoRm/lBcwyDSY2nujI4w= +github.com/DataDog/datadog-agent/comp/core/log/mock v0.73.0-rc.5/go.mod h1:iF1kzl3ePGkrlOaNankVHmTvy1/PYI8YQ/b3Mhy3nfc= +github.com/DataDog/datadog-agent/comp/core/secrets/def v0.73.0-rc.5 h1:ohfsADQT01ljUyPHBEXMRRhG+cHFKX1t1iQpCZs2eIM= +github.com/DataDog/datadog-agent/comp/core/secrets/def v0.73.0-rc.5/go.mod h1:mV7hPUjpP86cntCTF3J7BsL1aXnwNGrmIhWTUCuXtUw= +github.com/DataDog/datadog-agent/comp/core/secrets/mock v0.73.0-rc.5 h1:M656jxe2chgsIhUU3S4q63l5aibyBUyUJlbsgMbii/U= +github.com/DataDog/datadog-agent/comp/core/secrets/mock v0.73.0-rc.5/go.mod h1:evOZIPqMXgWFYrOeHfD62wBF0LNYNDmNuAE2M3eAUJU= +github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.73.0-rc.5 h1:UPiI62LUotCtfJzGCDw/TSEA21jlcbV5NBW0+Xy2ZME= +github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.73.0-rc.5/go.mod h1:Kj5LtZiTMJiAXyc1UkugtXrXZDDome/9MUPSx8S+tTs= +github.com/DataDog/datadog-agent/comp/core/secrets/utils v0.73.0-rc.5 h1:TSOLRNdrLjIWbJcdM4hljph2v58ty17k8qmXbwn0ZxM= +github.com/DataDog/datadog-agent/comp/core/secrets/utils v0.73.0-rc.5/go.mod h1:Aet6m+bRiBtcByHbHesBtiys4+z+HcX2skizcIy047w= +github.com/DataDog/datadog-agent/comp/core/status v0.73.0-rc.5 h1:ktewZaaM6udzfd2fe9ahP2fI/hQ9vS63fuKuXay3D50= +github.com/DataDog/datadog-agent/comp/core/status v0.73.0-rc.5/go.mod h1:KlfMlV38sxNrJeTvtzd5b0Hoo2rtSt3a+onKCLUVZPY= +github.com/DataDog/datadog-agent/comp/core/tagger/def v0.73.0-rc.5 h1:QRFh/etnKI7+1zHjvoyUz8vhUYA9Ffi5vg8K2SrvWqU= +github.com/DataDog/datadog-agent/comp/core/tagger/def v0.73.0-rc.5/go.mod h1:kfqLQQFnymlfg87AVxY88Cs/Ht/0Mshp+Uyj6NV8wSk= +github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.73.0-rc.5 h1:UbOajh4u6C2/K9bTN/zCpmFSWAUIw/PEMO377fb1KAg= +github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.73.0-rc.5/go.mod h1:/Pbx7d3ZcatpCazPG0tEpUUTAZ30oMT/jAKF3C0peQ8= +github.com/DataDog/datadog-agent/comp/core/tagger/types v0.73.0-rc.5 h1:B/rHtkTTRlsYL9vU84sE5IUymH4OdRfOSsssvcUjS7k= +github.com/DataDog/datadog-agent/comp/core/tagger/types v0.73.0-rc.5/go.mod h1:+aJqqMImyc6OlvgjNqHwaOTLFEA6l8Nv+ieMYeiwiY0= +github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.73.0-rc.5 h1:hcNeYHuBpleIBN+tHBOb4J9aJaKop+u9FO1AG0WdqCU= +github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.73.0-rc.5/go.mod h1:JjAbv1aybOV8qZZNOMi9HuJfqXtayOH7jk3v4hYDO+I= +github.com/DataDog/datadog-agent/comp/core/telemetry v0.73.0-rc.5 h1:ALBgnwaM9LHinvc0eB2LWMd4EHQrWpDg1ikrjrkAHsg= +github.com/DataDog/datadog-agent/comp/core/telemetry v0.73.0-rc.5/go.mod h1:JOqOIJvzrNqs0GSJpwI3n0ZnvVSedzZmaGWWSBtohp0= +github.com/DataDog/datadog-agent/comp/def v0.73.0-rc.5 h1:pJlUZ30YujRP0yseK/MOpPrhH1avjyKrQDmLfzHJBOQ= +github.com/DataDog/datadog-agent/comp/def v0.73.0-rc.5/go.mod h1:FkG02WVkGN7R4hYZwiQluMRyqxwZWRpdqOFZTn0NVgg= +github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.73.0-rc.5 h1:MVq6QNhK/gRjMu6wfVkOFgf9DaR8kYn+K61IXoYSiUA= +github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.73.0-rc.5/go.mod h1:vbsxUu0O1+wOTQOa6hPaEoLFYGY+Ct/u+0J+0nEz+ZE= +github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.73.0-rc.5 h1:8KEMZCpJzogDyERgAMnU5uTXv2MJDXlpTzd7AU3uGXA= +github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.73.0-rc.5/go.mod h1:oDuaoxC6JB7ExnB1qUOL+wOcsLrYh+a5fkAR2wUR7fg= +github.com/DataDog/datadog-agent/comp/logs/agent/config v0.73.0-rc.5 h1:TFdqjuiBlpjtll1R9Aq3mxFMyBrDgv4oHlLe/lud+vc= +github.com/DataDog/datadog-agent/comp/logs/agent/config v0.73.0-rc.5/go.mod h1:yg8A++cmQWqFNSmC0RAx8BFFxQtfy2WAn/lMNMsef64= +github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.73.0-rc.5 h1:A55KxF5DUHFKy8oGbwjnzSB9b34ky5sePxqqQhJb9iI= +github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.73.0-rc.5/go.mod h1:oT94ugBQ15ZOr1/vVk4NYdRmUAo96wALMYlTEQ2YSZw= +github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.73.0-rc.5 h1:ln3OAb6wNRr2cOznsKq+gaejqFkLGfubvzEReFi5V1s= +github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.73.0-rc.5/go.mod h1:20Or8X2xcqU7fk0y8CY2eTz3U69h1bMVFPInkRui8Cc= +github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.73.0-rc.5 h1:OXJtdaorMLNO+ACJTHp250K6YhLfyiKOujtzBdo2VtU= +github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.73.0-rc.5/go.mod h1:WkDqxQRwSF9DOWoYn2Vg7KItg4K5XuXp6I1HifVN05A= +github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.73.0-rc.5 h1:oIPddVd0CGDl2TCRMI1qhGR3G28jMbcRQJ7ZGkT9wMQ= +github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.73.0-rc.5/go.mod h1:xZONyh9XsIagmCNw+Sk6gn6uJrVyZvHutUEVG65D1aQ= +github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.73.0-rc.5 h1:UMmwahAeF+PRrh58hDvpxE644C5bJeyNPnUqsq1QQKU= +github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.73.0-rc.5/go.mod h1:GIcnmuLf/SEqjUP0EBQmuEWro9llrcXJHbdwsloxUd8= +github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.73.0-rc.5 h1:G/bAXsi0aCbCh46CN0soeOVqTaSGUgVtq35Vmv4gpEo= +github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.73.0-rc.5/go.mod h1:bxL1BpbhATP1gbExvq2fp6IrUeO9dyXIqqJtb41uaXg= +github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.73.0-rc.5 h1:CPoOjgRnHLFZD6jYusWAKK+4auIsN7h1lo36g4uukao= +github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.73.0-rc.5/go.mod h1:EC6QEqohqlydZzJJiS16TsvjS3SIUNsTGsnDP8kB6jY= +github.com/DataDog/datadog-agent/comp/serializer/metricscompression v0.73.0-rc.5 h1:XcOW0oqAWxgQj5G3SIGuNejciJm6iC/cVOU0CDCkxLU= +github.com/DataDog/datadog-agent/comp/serializer/metricscompression v0.73.0-rc.5/go.mod h1:GZW9voVnYqODnulRvC7VSDqSeuepVL+FQtBorNRz/Gg= +github.com/DataDog/datadog-agent/comp/trace/compression/def v0.73.0-rc.5 h1:+/KWWDXZcfO+S9Tk5vJo/9hrg5PU+9Ev0zYQ/B7loDI= +github.com/DataDog/datadog-agent/comp/trace/compression/def v0.73.0-rc.5/go.mod h1:uJgbuMQHwkpc4Zv81LUuTnn0+fiS8zflo6v586l9kig= +github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.73.0-rc.5 h1:97r3lzePxn87tWhNvBPvGpgFTapQZgIYyduVkIU5S5Q= +github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.73.0-rc.5/go.mod h1:eS8ME1x4tkp0YjlqcsEq3OCmGtvSREBJiF16w0mhihU= +github.com/DataDog/datadog-agent/comp/trace/compression/impl-zstd v0.73.0-rc.5 h1:YpJWLjbNZTzA3xc8AYVbO7519vSEGXn5p7HlE0+IAQ8= +github.com/DataDog/datadog-agent/comp/trace/compression/impl-zstd v0.73.0-rc.5/go.mod h1:+YAd3nez24p28/DcbzLmH82+KTo+O8Kx4mdxWwCg0qo= +github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.73.0-rc.5 h1:nbRJXRVbBhNWBzvKy52mtMzH4u5vekOgXoT9NFJJDzI= +github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.73.0-rc.5/go.mod h1:Yjoqf/ame/g39BoewvpO2WSdqx5PoyD9TfPzG8Rcwtc= +github.com/DataDog/datadog-agent/pkg/api v0.73.0-rc.5 h1:ywKnrGsATMH5pTv9TXFUdaaUsMuqs18WJkFBcNUi4P8= +github.com/DataDog/datadog-agent/pkg/api v0.73.0-rc.5/go.mod h1:Knai5BJLS5A5owpON7BUtI3LE03apgBfV4TJTVj9JkU= +github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.73.0-rc.5 h1:fGuuzS7Xsq0WXH8S6/EhVGvhEealFun/Kwve9A7cIPU= +github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.73.0-rc.5/go.mod h1:SCfYKcsAYmO61gnDIiouXg9VJVDBeM2rMjIl4XWEAQ8= +github.com/DataDog/datadog-agent/pkg/config/create v0.73.0-rc.5 h1:pMunOsDcREDDivc71BZgk2/CQ3jaMRIpEBoRGj3DiE0= +github.com/DataDog/datadog-agent/pkg/config/create v0.73.0-rc.5/go.mod h1:U4IbeVd6i2/4ySlX7T1HAIthADAAhf8WlEmo7PaRXLw= +github.com/DataDog/datadog-agent/pkg/config/env v0.73.0-rc.5 h1:DNCTm9c7xwunBzfD5RxtUNzsABBr8xgdj1me1ciGiuA= +github.com/DataDog/datadog-agent/pkg/config/env v0.73.0-rc.5/go.mod h1:nsFpmmISmuGULgkJW/xcimSpOtQRwmHmnpAod7ckcXA= +github.com/DataDog/datadog-agent/pkg/config/mock v0.73.0-rc.5 h1:AKz/a4Yt2YUgyGVcSRIWsEsFZ8mfhCw1658E5VQdbkA= +github.com/DataDog/datadog-agent/pkg/config/mock v0.73.0-rc.5/go.mod h1:TE6os5O94ZjVXGTfJiLi0yeT1M4kaWmeXG023FMaoLY= +github.com/DataDog/datadog-agent/pkg/config/model v0.73.0-rc.5 h1:7iHJs6bdsgDTONae3CfMdEew3kY1sWoCIb036MKwQps= +github.com/DataDog/datadog-agent/pkg/config/model v0.73.0-rc.5/go.mod h1:f0QA7v2C4RsLmTbh0D38GCJX1FtNvjbXidwui0fcVjg= +github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.73.0-rc.5 h1:leWUSY9MkTy/W/k2bcSBwU04gQxs6pVMyJV3gbebcHQ= +github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.73.0-rc.5/go.mod h1:FdJf24TzskoXtBr+ePRQknvJpCPFhzzZEJ3PZX1lmUo= +github.com/DataDog/datadog-agent/pkg/config/setup v0.73.0-rc.5 h1:dQHKa/Ltnau5qpfBZdKmys42n8QMAHCaMR/92iUNgTg= +github.com/DataDog/datadog-agent/pkg/config/setup v0.73.0-rc.5/go.mod h1:K6OCGm2le3sy2OB4Butha/PrtlRnahfxxu21YnMuAnE= +github.com/DataDog/datadog-agent/pkg/config/structure v0.73.0-rc.5 h1:GPZihVxH6OxYmkq0jKs+ntufPzlKTAOUHgUW4O8lunQ= +github.com/DataDog/datadog-agent/pkg/config/structure v0.73.0-rc.5/go.mod h1:hkOk1ZVF2EM541hXuaKz5iib0fmaAKBMaR1n8UrCqwc= +github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.73.0-rc.5 h1:xKkVB8OhCYhQprA0W5gukGZo1OPjPApFvS/M4JYxN6U= +github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.73.0-rc.5/go.mod h1:Jh7ob2B3YmiA7weSuyBlFmkfLnU1uxFZz64E+0o2uU8= +github.com/DataDog/datadog-agent/pkg/config/utils v0.73.0-rc.5 h1:MJABTjxcl6xmVt6+2XpDDXtXeLMH0q9AmvTkUqgJIc8= +github.com/DataDog/datadog-agent/pkg/config/utils v0.73.0-rc.5/go.mod h1:hWcR9OtYjI27A7WiAcE5fUI5j9qSMLXk9lB4gVoYVvo= +github.com/DataDog/datadog-agent/pkg/config/viperconfig v0.73.0-rc.5 h1:CR25YXrBwJfkQiyU2cEVDJ9hP7ySqKSvhYFZJsVGff8= +github.com/DataDog/datadog-agent/pkg/config/viperconfig v0.73.0-rc.5/go.mod h1:I0rNR+3uzJOJaBqhZ/6657Nz5HX2ochMh9MV8u9q9Bk= +github.com/DataDog/datadog-agent/pkg/fips v0.73.0-rc.5 h1:/nlSEzLmx6q/CznpINf8FbVGoMMi7jFVWZLk3pCZr88= +github.com/DataDog/datadog-agent/pkg/fips v0.73.0-rc.5/go.mod h1:KcTRjrQlX1oI7bKqvDk2bPBYKTzlU1k6OgnBizL4vYs= +github.com/DataDog/datadog-agent/pkg/logs/client v0.73.0-rc.5 h1:NyW3bY2ve0Uo+33GNhbbvJRAj3pGlgWUsCIr9EGXeXY= +github.com/DataDog/datadog-agent/pkg/logs/client v0.73.0-rc.5/go.mod h1:ayVAqFee5FoQ1UPs9HxndjrMHtRnmQew0LANE3g/HAc= +github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.73.0-rc.5 h1:klnDaYmoYEWt9tkqvY95V068cgjXsSoQyipB2yLG/wo= +github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.73.0-rc.5/go.mod h1:Fx2GhaJ7zRB9SdgFt0t1xhaPLpSAUbGejnYKOZTQuko= +github.com/DataDog/datadog-agent/pkg/logs/message v0.73.0-rc.5 h1:N5YJIL4uXnk0VyQoKj2ddAEONc5W69CvWjrdGRQnjqQ= +github.com/DataDog/datadog-agent/pkg/logs/message v0.73.0-rc.5/go.mod h1:FNx/HhuElY9pn4nksxmNLxBxc3PE/exFkmxNpMHiQzY= +github.com/DataDog/datadog-agent/pkg/logs/metrics v0.73.0-rc.5 h1:N/Qr3Du2hV0zs0dDL8Ry5eaUHEP5qZwIupIa7rHpd7g= +github.com/DataDog/datadog-agent/pkg/logs/metrics v0.73.0-rc.5/go.mod h1:tiAGMGmr2kyR4LGiA3Y9Bcc5adMifya1B8VWzrS9f2c= +github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.73.0-rc.5 h1:3w+OrOPgbCtygc+0mSf2lXaykQ6EYRGTZfwfy/GI95g= +github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.73.0-rc.5/go.mod h1:52tkjHJrqRu9kvo8y5VejN1TroORXN8tkmRW95BmFkQ= +github.com/DataDog/datadog-agent/pkg/logs/processor v0.73.0-rc.5 h1:ix6JV5YZuHHzz3MFYL7HfX8bP1kPP418QnRSJ6LHqL0= +github.com/DataDog/datadog-agent/pkg/logs/processor v0.73.0-rc.5/go.mod h1:Yz+AQDqTQPEhHinMwmk/ScNqowMw4RbFwITbWZu01EQ= +github.com/DataDog/datadog-agent/pkg/logs/sender v0.73.0-rc.5 h1:KHmekqhwYyuOnO0ucirp7pBb/eD8zUeVpJtxUQGixag= +github.com/DataDog/datadog-agent/pkg/logs/sender v0.73.0-rc.5/go.mod h1:yZCcbWYGAw/4vYoIJYddrqiwXHweJ2J3mbmUQJPYebo= +github.com/DataDog/datadog-agent/pkg/logs/sources v0.73.0-rc.5 h1:jVdCevxJh05QVArpzOV9/l7eiS4DcKYDqOg3SgIeOxc= +github.com/DataDog/datadog-agent/pkg/logs/sources v0.73.0-rc.5/go.mod h1:RQMnJ5st1UX7PiCWEEqGVFcBRHE1iUohSQOUcMnKp4A= +github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.73.0-rc.5 h1:+L5IBBwRPfrZFJIkAdWI45R3eWx90utw1pKrbQYg/MY= +github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.73.0-rc.5/go.mod h1:cDG5DAmN/VsYn+Iqf5/qhmTnfYyKFS8sjVI1fZEqgEE= +github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.73.0-rc.5 h1:5j2fomxKsm5Sv8fOfmbhyyXngwQkERV8XBL9tgKuSrk= +github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.73.0-rc.5/go.mod h1:AkSRyY9xLJ+emhyKH04+U3g4wwCDSoX0K9jWZBblxpM= +github.com/DataDog/datadog-agent/pkg/logs/types v0.73.0-rc.5 h1:wsTfy5J1C7FYvEIdaaU3ivjlzp2HGBH3Otf+SC4/yv4= +github.com/DataDog/datadog-agent/pkg/logs/types v0.73.0-rc.5/go.mod h1:UT1HsY9t9Ub5/RZwyOFA+2kxb6m4SkI8qa6LSzONA1g= +github.com/DataDog/datadog-agent/pkg/logs/util/testutils v0.73.0-rc.5 h1:B9bHA+jyGAlICEIZ4nlPjIGpMltG66DLCkL4vg1I404= +github.com/DataDog/datadog-agent/pkg/logs/util/testutils v0.73.0-rc.5/go.mod h1:Ct72j1AIeRRopKWo2uwlaJNpNpV4UPi0woWmwes187o= +github.com/DataDog/datadog-agent/pkg/metrics v0.73.0-rc.5 h1:O29/GlZq/brRypoOEdHvAVaczKs4UqAsk0caQcK0wd8= +github.com/DataDog/datadog-agent/pkg/metrics v0.73.0-rc.5/go.mod h1:8Vb7vAQLv3AGb6VGhxvAXKvufis+QtwBdrnM3WpUXQI= +github.com/DataDog/datadog-agent/pkg/obfuscate v0.73.0-rc.5 h1:H59GV/BNYtlAzyGBmXhbA63IaA6MmQ3nMAXw2HeLeC0= +github.com/DataDog/datadog-agent/pkg/obfuscate v0.73.0-rc.5/go.mod h1:d6Jykhk4uM3rDjZln647gRnwK9Z2qYthQbshrfG77Og= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata v0.73.0-rc.5 h1:s/vuZrJFxELQqiL7mY+8/qXajf/So7wZifYXXShCNuI= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata v0.73.0-rc.5/go.mod h1:lc2o8RLWcZaf33om7DczZXLuVnx99QpXM1O/MhPXh8k= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.73.0-rc.5 h1:XQ+Z1UwT3P9BbQLF/JMHHPJ0NpxBkOhxzqPjJfjKdS4= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.73.0-rc.5/go.mod h1:5kNoOJtWXvzfMrH9TjOj7NxvIC5bAItkOFH1QvdTh98= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/logs v0.73.0-rc.5 h1:osFDxijOS/2jVoZFcc0xjZWlaGm30tiPfnwkEnVXxTo= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/logs v0.73.0-rc.5/go.mod h1:galGxv1EgqCyS5s987HaONCeISJA6YQw8lk7M825amw= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/metrics v0.73.0-rc.5 h1:h3x3AY6rh+xUUSOjAC+rp+u9hwpHEUHmzeWzyRFA+B0= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/metrics v0.73.0-rc.5/go.mod h1:6+DMj4VTyD2mwIckFqfS9i0DheMZGTxlwTTKHiQXkG8= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/rum v0.73.0-rc.5 h1:dKTJn4ztUnFOwKM1Vzw62KhfFVnPhW5ujiml1iCMM6Q= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/rum v0.73.0-rc.5/go.mod h1:cR+tJ/bf8vMvlI5yvcb672WkKHkRW9sM8arcCJz9Z9k= +github.com/DataDog/datadog-agent/pkg/orchestrator/model v0.73.0-rc.5 h1:MzDMj6phUDuDgHjs5tiNtBrwxhnANleDRhx4fJ61oKM= +github.com/DataDog/datadog-agent/pkg/orchestrator/model v0.73.0-rc.5/go.mod h1:uct30m0pN3TrbUTIcopQh28xIJdB0HseCuHQ+seLX5g= +github.com/DataDog/datadog-agent/pkg/process/util/api v0.73.0-rc.5 h1:VqrfWUCoJvkAen/BhRfBfN90E55Hkzdp3QFa1t7zRGg= +github.com/DataDog/datadog-agent/pkg/process/util/api v0.73.0-rc.5/go.mod h1:VIFFHLNqffkWM0TYjnB8g2+Zve/ZM610zZ4inQkqWk4= +github.com/DataDog/datadog-agent/pkg/proto v0.73.0-rc.5 h1:Dz/9FVZvmZu4gbmrlHChkCZ2WQHF6vzRk5cWuGhIIl4= +github.com/DataDog/datadog-agent/pkg/proto v0.73.0-rc.5/go.mod h1:6WCQqA1LCqJ0m1h9KGJlOyGjriF68/OPAO3Z5Ow0ITM= +github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.73.0-rc.5 h1:exc5GvPrvi8T0x1/m7qp6fDHV9mSwX1EKxvPCq4BFHo= +github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.73.0-rc.5/go.mod h1:lwkSvCXABHXyqy6mG9WBU6MTK9/E0i0R8JVApUtT+XA= +github.com/DataDog/datadog-agent/pkg/serializer v0.73.0-rc.5 h1:3wxRqSIRJGpHLiuYVbSJXRhmGedyPY9T1CSLOcNBg/w= +github.com/DataDog/datadog-agent/pkg/serializer v0.73.0-rc.5/go.mod h1:kyaXcI5Jj4DVMMWYIQ9U3QGQyDzGgFaCnn7u4My3KFM= +github.com/DataDog/datadog-agent/pkg/status/health v0.73.0-rc.5 h1:VnINUggFWXLahu+JLPNKRbcf7dyAchG2ciPOvdSn+3g= +github.com/DataDog/datadog-agent/pkg/status/health v0.73.0-rc.5/go.mod h1:JjYAPfmlrBeBEgyp7AG8kWp5+JMMfDR1LP+CabJI8Rg= +github.com/DataDog/datadog-agent/pkg/tagger/types v0.73.0-rc.5 h1:IVT66EomNNml/tkG5anXis2pyekDpnhK03MKAd2EJq8= +github.com/DataDog/datadog-agent/pkg/tagger/types v0.73.0-rc.5/go.mod h1:SWyCLXCABVvJ6dZyYoiDVt+Vnfk+5FEZ35sYnM6X1Dw= +github.com/DataDog/datadog-agent/pkg/tagset v0.73.0-rc.5 h1:Tf5h1d3VuTZyzqlDNPECRzreMbQBDqmdSs8lYQ46Ht4= +github.com/DataDog/datadog-agent/pkg/tagset v0.73.0-rc.5/go.mod h1:PMs2lYqswr0W7vYNbSkSqK6DgST+6x0gNe6Bg4K7gio= +github.com/DataDog/datadog-agent/pkg/telemetry v0.73.0-rc.5 h1:C5yxIrRU1kVfp3bJR7hU9S7lX6ldbUtnnCVk0R9i/qA= +github.com/DataDog/datadog-agent/pkg/telemetry v0.73.0-rc.5/go.mod h1:fgC6hM/P+GmdnFAFBbBgd5hubXHQVfF6ann8JmdnPSo= +github.com/DataDog/datadog-agent/pkg/template v0.73.0-rc.5 h1:HpJ+KudC5gbNPzJqEUfUOMGViEZ34kVFYI7kHArus0c= +github.com/DataDog/datadog-agent/pkg/template v0.73.0-rc.5/go.mod h1:mpV3MbF/us0LdM3tvVHDztjApy3VWGeu5RuS/MpGVHQ= +github.com/DataDog/datadog-agent/pkg/trace v0.73.0-rc.5 h1:cB+fh4Tan6V8xb0qHU7P7KfcJ7YOw/qvBO/9kN5ZZF8= +github.com/DataDog/datadog-agent/pkg/trace v0.73.0-rc.5/go.mod h1:7aGbzhPzjVbmNthLDecvotxadJzGsARoXqnqi33fCdY= +github.com/DataDog/datadog-agent/pkg/util/backoff v0.73.0-rc.5 h1:DA9gGROZ+uvhXleXa083qr6LpO0ngvBOsR7VM0K5rgE= +github.com/DataDog/datadog-agent/pkg/util/backoff v0.73.0-rc.5/go.mod h1:wcA2xDXXGiYx/zRCf9LCq6DrWU/538Vymi6NDlnTui4= +github.com/DataDog/datadog-agent/pkg/util/buf v0.73.0-rc.5 h1:WEiwuLbD3avaNea4bidIi+x4SHivNBQ2EShb7AYj6jI= +github.com/DataDog/datadog-agent/pkg/util/buf v0.73.0-rc.5/go.mod h1:GUuvogIJxiybqgvxbhJJASskiyMZYHKhT29e7VoNO44= +github.com/DataDog/datadog-agent/pkg/util/cgroups v0.73.0-rc.5 h1:5PEyupdJHB6z8BkyunYuiPTo7V3FPjBefvq/on7VwR8= +github.com/DataDog/datadog-agent/pkg/util/cgroups v0.73.0-rc.5/go.mod h1:uhZLEzbk5lmeBkwkIvjFDcpwJlmdYg0ZlRvMbj9kL68= +github.com/DataDog/datadog-agent/pkg/util/common v0.73.0-rc.5 h1:4SjK2PHxd5oqsoGyzjugA0IUcNO2N7dQQbpOCzcW8Xw= +github.com/DataDog/datadog-agent/pkg/util/common v0.73.0-rc.5/go.mod h1:TJCueqQTAgHPY86VRttJBoUF3xjpA7avYRT43QysEkM= +github.com/DataDog/datadog-agent/pkg/util/compression v0.73.0-rc.5 h1:vUdmShIwfJarHGuTb0aLfcVFGXoTrtRGa2aLp9CLgLM= +github.com/DataDog/datadog-agent/pkg/util/compression v0.73.0-rc.5/go.mod h1:ZsIlefsp3mTLG6pByk0uuaZpJEWfx53fwSkBvimxofA= +github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.73.0-rc.5 h1:P7W0akWvcD71OGzb6SMNldKBMaO8U2b7xC7u+VCMRHI= +github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.73.0-rc.5/go.mod h1:MIdQO1QycSm7grCigOYXloobstyowSOyiyDk2T1e1i0= +github.com/DataDog/datadog-agent/pkg/util/executable v0.73.0-rc.5 h1:jQjwaka34cPOLAy5k38ToH1XCNiN22peusRYDMQUvH0= +github.com/DataDog/datadog-agent/pkg/util/executable v0.73.0-rc.5/go.mod h1:to4LKz+kwyw+n19I2ex0YJJlZ/+KHbvYmqETFi8QyAk= +github.com/DataDog/datadog-agent/pkg/util/filesystem v0.73.0-rc.5 h1:vcOXSrr7ZkvKoOKCrB7yzF8863S5xn9tMOBddHdck9c= +github.com/DataDog/datadog-agent/pkg/util/filesystem v0.73.0-rc.5/go.mod h1:jgY8comXfzpoipMpe+uyq2ymKqYGUoNDpmAw8MhFvo8= +github.com/DataDog/datadog-agent/pkg/util/fxutil v0.73.0-rc.5 h1:Mi3wEeJ1im77pLeB0pqfWhv3a9iTCis2I4L3pMQqrcs= +github.com/DataDog/datadog-agent/pkg/util/fxutil v0.73.0-rc.5/go.mod h1:M6Z1vZGzgTVfNADaNBCyArKPePY0KacroynpABzXrB8= +github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.73.0-rc.5 h1:3lNw9WK9QuqOIi8HsYb2fm59iuPSJXN3GF7O13sYkT8= +github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.73.0-rc.5/go.mod h1:pXgXd4cvsvi5dZFg9NA96QYirl3zX+/shOtwXzQyIeg= +github.com/DataDog/datadog-agent/pkg/util/http v0.73.0-rc.5 h1:4vz/fmq1d23gQKzifJmIchidaKVF6+aqFTXsEK+eL10= +github.com/DataDog/datadog-agent/pkg/util/http v0.73.0-rc.5/go.mod h1:T0WgJFO/bCMJzBePkk62G9xottu/ZQnUlMaCcvEyvZ4= +github.com/DataDog/datadog-agent/pkg/util/json v0.73.0-rc.5 h1:vaH75NEPLENPp/474JF8XE9AbdgoPw0hsDE6a8B2GvM= +github.com/DataDog/datadog-agent/pkg/util/json v0.73.0-rc.5/go.mod h1:CZ7zIVxX7Iy1mqXcZzMOEIM7j9GjDvTPYM3+f+zdTDs= +github.com/DataDog/datadog-agent/pkg/util/log v0.73.0-rc.5 h1:citHo9VmenbVMkicGtWBDs1SsSrD53GjfnqTk0Ow3aw= +github.com/DataDog/datadog-agent/pkg/util/log v0.73.0-rc.5/go.mod h1:XdadZzj5CxYHyCDlwxfhVfba5M/hykFTgzFRZOgCIYo= +github.com/DataDog/datadog-agent/pkg/util/log/setup v0.73.0-rc.5 h1:yGWH/XKsE1BaP3MY2PDqx5g5wVAsn0QzID3S7T9G9Hc= +github.com/DataDog/datadog-agent/pkg/util/log/setup v0.73.0-rc.5/go.mod h1:E1ckzrQ61YkzTrS9tosKu1trSbJmxn7V76rxR4GEzwY= +github.com/DataDog/datadog-agent/pkg/util/option v0.73.0-rc.5 h1:wACWUQJN8AOdY026v+ZqJEOLxHPvvyc7BRL0804QPu0= +github.com/DataDog/datadog-agent/pkg/util/option v0.73.0-rc.5/go.mod h1:vQMaVWnXCKEcop91wAHGQb1DnzMUwu66s4APxx0LO1Y= +github.com/DataDog/datadog-agent/pkg/util/otel v0.73.0-rc.5 h1:spt2pvhpedsq3hcktQjkevPA/eKyzph92mhpgJuqROY= +github.com/DataDog/datadog-agent/pkg/util/otel v0.73.0-rc.5/go.mod h1:Cx7MqRK9HVU6stbMqjp5BVKo4Utm85++I0xKepGS4Nw= +github.com/DataDog/datadog-agent/pkg/util/pointer v0.73.0-rc.5 h1:4NO1GENKqOirxKr+KX5HdYo270iudPmLtMPkT9WwsCA= +github.com/DataDog/datadog-agent/pkg/util/pointer v0.73.0-rc.5/go.mod h1:JTZx35q+iKcUSRepCLSQZqgpE729292udiWwICsEVJ0= +github.com/DataDog/datadog-agent/pkg/util/quantile v0.73.0-rc.5 h1:SuL95AM7tnSTILP3PhR5ai4RBqE8fBqQF0mPRPfcTw0= +github.com/DataDog/datadog-agent/pkg/util/quantile v0.73.0-rc.5/go.mod h1:6iKV1Mga+Cs4o84IaTbH4+Q96XIYSnhHLj7WFntSHK0= +github.com/DataDog/datadog-agent/pkg/util/quantile/sketchtest v0.73.0-rc.5 h1:ml6OsgmvnBNfapWjbzf5BoVpayEKgU7sO8H4qRZmCuc= +github.com/DataDog/datadog-agent/pkg/util/quantile/sketchtest v0.73.0-rc.5/go.mod h1:nMvI2+DUMWKyusEsYl1tdbKQ8SdZb58Wv8Pa0/Y3cao= +github.com/DataDog/datadog-agent/pkg/util/scrubber v0.73.0-rc.5 h1:0M8F8hictODVVJQoVCE0X4luZ8UScpJPKVN3F7ArsxM= +github.com/DataDog/datadog-agent/pkg/util/scrubber v0.73.0-rc.5/go.mod h1:pGZntqTj4bBKNY06JBzu1zsHxr5WLyQh3O81mL6viKc= +github.com/DataDog/datadog-agent/pkg/util/sort v0.73.0-rc.5 h1:fIyoIybmvY+uKfUwLwFCAnIm5z4w8U+RyKWobzmUXkY= +github.com/DataDog/datadog-agent/pkg/util/sort v0.73.0-rc.5/go.mod h1:meVtdZ7b1vI/DsNCM9A5oN+OJswZjx/nAPA/WfpUk7w= +github.com/DataDog/datadog-agent/pkg/util/startstop v0.73.0-rc.5 h1:TEBTLfu4I+3CrabaMRUg3sZFKaPntXopAULX8ybWNDE= +github.com/DataDog/datadog-agent/pkg/util/startstop v0.73.0-rc.5/go.mod h1:OgQqokgViXP1DpTABpAfTZ+pCpPY27qMnAsn0lk+2eE= +github.com/DataDog/datadog-agent/pkg/util/statstracker v0.73.0-rc.5 h1:QqF2JuX4jvFrSAOjwfHowhLSiiWlZhNz9qcDHCMhTXI= +github.com/DataDog/datadog-agent/pkg/util/statstracker v0.73.0-rc.5/go.mod h1:1z7fb316EWmOF/19oEolgwppKhuf7/z/JKT+xw9oVqM= +github.com/DataDog/datadog-agent/pkg/util/system v0.73.0-rc.5 h1:T3q66FlB480wzaS3pngGYSXLYh/0qGcOsrVa76SJ7vg= +github.com/DataDog/datadog-agent/pkg/util/system v0.73.0-rc.5/go.mod h1:cW8CEdDwBwsD5hiCnLxWYdH711d2NUc65gh1RRnX9zs= +github.com/DataDog/datadog-agent/pkg/util/system/socket v0.73.0-rc.5 h1:ptwWRfTY7BGcGqgN4Dp34qPwvYKWzBrRcaWRcbsKuHY= +github.com/DataDog/datadog-agent/pkg/util/system/socket v0.73.0-rc.5/go.mod h1:TBBi/7lQe1kR0nxG0Q2iWp6JNvXw0v/U6dDjlhaHFEg= +github.com/DataDog/datadog-agent/pkg/util/testutil v0.73.0-rc.5 h1:GrzgeYW+0kTPwhdhnjeH5+TNbrdDBET8i5Nj5vC0bO0= +github.com/DataDog/datadog-agent/pkg/util/testutil v0.73.0-rc.5/go.mod h1:lHsfhBt6U15zJIEas9vi12TY5SM+/dRgRKtA0LuWDsE= +github.com/DataDog/datadog-agent/pkg/util/winutil v0.73.0-rc.5 h1:fvoOuIrFPNI3IppRjpU9m3O/LouLSPXaiaTYx6y9lL0= +github.com/DataDog/datadog-agent/pkg/util/winutil v0.73.0-rc.5/go.mod h1:6s8R0N6E3X0q+UUy7tnNNk6K+BwJtPAzQx80u7xc3vE= +github.com/DataDog/datadog-agent/pkg/version v0.73.0-rc.5 h1:MJa3vacKhqL+bSuMzRAb9Z1XyVENe4ZM/aLeIjot21M= +github.com/DataDog/datadog-agent/pkg/version v0.73.0-rc.5/go.mod h1:6NoHdUrJ/ttav4SSas6XiDLfYbF4Ulx0D0cBpbk4vvI= +github.com/DataDog/datadog-api-client-go/v2 v2.49.0 h1:44ltl4mpJCtUdBLvOvXcCcvNewB+beDesZaoQYZqjCc= +github.com/DataDog/datadog-api-client-go/v2 v2.49.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/datadog-go/v5 v5.8.1 h1:+GOES5W9zpKlhwHptZVW2C0NLVf7ilr7pHkDcbNvpIc= github.com/DataDog/datadog-go/v5 v5.8.1/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= @@ -494,30 +494,30 @@ github.com/aws/aws-sdk-go v1.34.0/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU github.com/aws/aws-sdk-go v1.55.7 h1:UJrkFq7es5CShfBwlWAC8DA077vp8PyVbQd3lqLiztE= github.com/aws/aws-sdk-go v1.55.7/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aws/aws-sdk-go-v2 v1.9.2/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= -github.com/aws/aws-sdk-go-v2 v1.39.4 h1:qTsQKcdQPHnfGYBBs+Btl8QwxJeoWcOcPcixK90mRhg= -github.com/aws/aws-sdk-go-v2 v1.39.4/go.mod h1:yWSxrnioGUZ4WVv9TgMrNUeLV3PFESn/v+6T/Su8gnM= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.2 h1:t9yYsydLYNBk9cJ73rgPhPWqOh/52fcWDQB5b1JsKSY= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.2/go.mod h1:IusfVNTmiSN3t4rhxWFaBAqn+mcNdwKtPcV16eYdgko= +github.com/aws/aws-sdk-go-v2 v1.39.6 h1:2JrPCVgWJm7bm83BDwY5z8ietmeJUbh3O2ACnn+Xsqk= +github.com/aws/aws-sdk-go-v2 v1.39.6/go.mod h1:c9pm7VwuW0UPxAEYGyTmyurVcNrbF6Rt/wixFqDhcjE= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3 h1:DHctwEM8P8iTXFxC/QK0MRjwEpWQeM9yzidCRjldUz0= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3/go.mod h1:xdCzcZEtnSTKVDOmUZs4l/j3pSV6rpo1WXl5ugNsL8Y= github.com/aws/aws-sdk-go-v2/config v1.8.3/go.mod h1:4AEiLtAb8kLs7vgw2ZV3p2VZ1+hBavOc84hqxVNpCyw= -github.com/aws/aws-sdk-go-v2/config v1.31.15 h1:gE3M4xuNXfC/9bG4hyowGm/35uQTi7bUKeYs5e/6uvU= -github.com/aws/aws-sdk-go-v2/config v1.31.15/go.mod h1:HvnvGJoE2I95KAIW8kkWVPJ4XhdrlvwJpV6pEzFQa8o= +github.com/aws/aws-sdk-go-v2/config v1.31.19 h1:qdUtOw4JhZr2YcKO3g0ho/IcFXfXrrb8xlX05Y6EvSw= +github.com/aws/aws-sdk-go-v2/config v1.31.19/go.mod h1:tMJ8bur01t8eEm0atLadkIIFA154OJ4JCKZeQ+o+R7k= github.com/aws/aws-sdk-go-v2/credentials v1.4.3/go.mod h1:FNNC6nQZQUuyhq5aE5c7ata8o9e4ECGmS4lAXC7o1mQ= -github.com/aws/aws-sdk-go-v2/credentials v1.18.19 h1:Jc1zzwkSY1QbkEcLujwqRTXOdvW8ppND3jRBb/VhBQc= -github.com/aws/aws-sdk-go-v2/credentials v1.18.19/go.mod h1:DIfQ9fAk5H0pGtnqfqkbSIzky82qYnGvh06ASQXXg6A= +github.com/aws/aws-sdk-go-v2/credentials v1.18.23 h1:IQILcxVgMO2BVLaJ2aAv21dKWvE1MduNrbvuK43XL2Q= +github.com/aws/aws-sdk-go-v2/credentials v1.18.23/go.mod h1:JRodHszhVdh5TPUknxDzJzrMiznG+M+FfR3WSWKgCI8= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.6.0/go.mod h1:gqlclDEZp4aqJOancXK6TN24aKhT0W0Ae9MHk3wzTMM= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.11 h1:X7X4YKb+c0rkI6d4uJ5tEMxXgCZ+jZ/D6mvkno8c8Uw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.11/go.mod h1:EqM6vPZQsZHYvC4Cai35UDg/f5NCEU+vp0WfbVqVcZc= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.20.1 h1:EfS+tBgFwzrR/skkhKdyClU0pCx/VgSKSo8OIzMEiQM= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.20.1/go.mod h1:U/PKebSFFMhuRPG10ot6Xfc2LKyCf3+sQfesRHZnzVU= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.11 h1:7AANQZkF3ihM8fbdftpjhken0TP9sBzFbV/Ze/Y4HXA= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.11/go.mod h1:NTF4QCGkm6fzVwncpkFQqoquQyOolcyXfbpC98urj+c= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.11 h1:ShdtWUZT37LCAA4Mw2kJAJtzaszfSHFb5n25sdcv4YE= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.11/go.mod h1:7bUb2sSr2MZ3M/N+VyETLTQtInemHXb/Fl3s8CLzm0Y= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13 h1:T1brd5dR3/fzNFAQch/iBKeX07/ffu/cLu+q+RuzEWk= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13/go.mod h1:Peg/GBAQ6JDt+RoBf4meB1wylmAipb7Kg2ZFakZTlwk= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.20.6 h1:ZzA0XhuftrrWhOb1POxvgJ3pb5IBo9+lSRn2DsM5FTM= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.20.6/go.mod h1:fNCXmb1171YzKE5TyQ88AkJZBLfqhFHKzls36eEv8Vk= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13 h1:a+8/MLcWlIxo1lF9xaGt3J/u3yOZx+CdSveSNwjhD40= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13/go.mod h1:oGnKwIYZ4XttyU2JWxFrwvhF6YKiK/9/wmE3v3Iu9K8= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13 h1:HBSI2kDkMdWz4ZM7FjwE7e/pWDEZ+nR95x8Ztet1ooY= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13/go.mod h1:YE94ZoDArI7awZqJzBAZ3PDD2zSfuP7w6P2knOzIn8M= github.com/aws/aws-sdk-go-v2/internal/ini v1.2.4/go.mod h1:ZcBrrI3zBKlhGFNYWvju0I3TR93I7YIgAfy82Fh4lcQ= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 h1:WKuaxf++XKWlHWu9ECbMlha8WOEGm0OUEZqm4K/Gcfk= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4/go.mod h1:ZWy7j6v1vWGmPReu0iSGvRiise4YI5SkR3OHKTZ6Wuc= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.11 h1:bKgSxk1TW//00PGQqYmrq83c+2myGidEclp+t9pPqVI= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.11/go.mod h1:vrPYCQ6rFHL8jzQA8ppu3gWX18zxjLIDGTeqDxkBmSI= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.13 h1:eg/WYAa12vqTphzIdWMzqYRVKKnCboVPRlvaybNCqPA= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.13/go.mod h1:/FDdxWhz1486obGrKKC1HONd7krpk38LBt+dutLcN9k= github.com/aws/aws-sdk-go-v2/service/amp v1.30.5 h1:48aYtRq69X/u0RvaE16oT8Kc98H15ZIcAx02qNcjw+w= github.com/aws/aws-sdk-go-v2/service/amp v1.30.5/go.mod h1:69KPh+vGRGqDSylU36r8FYjlkHbhwbFMKzTXi8dCCYU= github.com/aws/aws-sdk-go-v2/service/apigateway v1.28.2 h1:V1eDOuhYYZ0JvH66GEzEBTCQ88YoKwcKUcplNPWw1H8= @@ -529,50 +529,50 @@ github.com/aws/aws-sdk-go-v2/service/autoscaling v1.51.2 h1:MSSstL6YXAw2K68L1kph github.com/aws/aws-sdk-go-v2/service/autoscaling v1.51.2/go.mod h1:t5bdAowh8MWq51TuDmltU+wtxMl/VaegNwSBaznkUYc= github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.45.3 h1:Nn3qce+OHZuMj/edx4its32uxedAmquCDxtZkrdeiD4= github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.45.3/go.mod h1:aqsLGsPs+rJfwDBwWHLcIV8F7AFcikFTPLwUD4RwORQ= -github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.58.5 h1:qAKJI7sjzA7ZzpC4POLro/9EL7EPPMFnvhYz0QTeI3o= -github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.58.5/go.mod h1:BQIQPqkXQUxUJ9BwkwkFTNSxXG5wx7BN/8mYQs2aAOg= +github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.58.8 h1:mFNod70XE9Q8ex+G74R/baYan5s/++WJBBgB10aK1oE= +github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.58.8/go.mod h1:9/Q0/HtqBTLMksFse42wZjUq0jJrUuo4XlnXy/uSoeg= github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.45.1 h1:O1tX03VY5JIsssTG2GMxwRaKa9PRgdXr7n11a45xK0I= github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.45.1/go.mod h1:bquWddnSuIbQ4g5Q+DVSLa28hVAPhUYXYPuHVzY8sqE= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.259.0 h1:0BwB+z9JX7fleVvaZaUuzIHvGWiWn2BQLJIW2riEzDQ= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.259.0/go.mod h1:DT0XByGaNaOff3CtLVmj3jKcMeVDfOj5DkLD39UPJY0= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.266.0 h1:C4Xbp6qFXeWOKb1sSxzz+53tbbJKYIjlgXEWXk5dfqo= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.266.0/go.mod h1:NDdDLLW5PtLLXN661gKcvJvqAH5OBXsfhMlmKVu1/pY= github.com/aws/aws-sdk-go-v2/service/ecs v1.53.8 h1:v1OectQdV/L+KSFSiqK00fXGN8FbaljRfNFysmWB8D0= github.com/aws/aws-sdk-go-v2/service/ecs v1.53.8/go.mod h1:F0DbgxpvuSvtYun5poG67EHLvci4SgzsMVO6SsPUqKk= github.com/aws/aws-sdk-go-v2/service/iam v1.38.3 h1:2sFIoFzU1IEL9epJWubJm9Dhrn45aTNEJuwsesaCGnk= github.com/aws/aws-sdk-go-v2/service/iam v1.38.3/go.mod h1:KzlNINwfr/47tKkEhgk0r10/OZq3rjtyWy0txL3lM+I= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2 h1:xtuxji5CS0JknaXoACOunXOYOQzgfTvGAc9s2QdCJA4= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2/go.mod h1:zxwi0DIR0rcRcgdbl7E2MSOvxDyyXGBlScvBkARFaLQ= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.2 h1:DGFpGybmutVsCuF6vSuLZ25Vh55E3VmsnJmFfjeBx4M= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.2/go.mod h1:hm/wU1HDvXCFEDzOLorQnZZ/CVvPXvWEmHMSmqgQRuA= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 h1:x2Ibm/Af8Fi+BH+Hsn9TXGdT+hKbDd5XOTZxTMxDk7o= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3/go.mod h1:IW1jwyrQgMdhisceG8fQLmQIydcT/jWY21rFhzgaKwo= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.4 h1:NvMjwvv8hpGUILarKw7Z4Q0w1H9anXKsesMxtw++MA4= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.4/go.mod h1:455WPHSwaGj2waRSpQp7TsnpOnBfw8iDfPfbwl7KPJE= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.3.2/go.mod h1:72HRZDLMtmVQiLG2tLfQcaWLCssELvGl+Zf2WVxMmR8= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.11 h1:GpMf3z2KJa4RnJ0ew3Hac+hRFYLZ9DDjfgXjuW+pB54= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.11/go.mod h1:6MZP3ZI4QQsgUCFTwMZA2V0sEriNQ8k2hmoHF3qjimQ= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.11 h1:weapBOuuFIBEQ9OX/NVW3tFQCvSutyjZYk/ga5jDLPo= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.11/go.mod h1:3C1gN4FmIVLwYSh8etngUS+f1viY6nLCDVtZmrFbDy0= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13 h1:kDqdFvMY4AtKoACfzIGD8A0+hbT41KTKF//gq7jITfM= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13/go.mod h1:lmKuogqSU3HzQCwZ9ZtcqOc5XGMqtDK7OIc2+DxiUEg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.13 h1:zhBJXdhWIFZ1acfDYIhu4+LCzdUS2Vbcum7D01dXlHQ= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.13/go.mod h1:JaaOeCE368qn2Hzi3sEzY6FgAZVCIYcC2nwbro2QCh8= github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1 h1:J1A0VJlt5HgUX6s11Obe9zrBDECeE2uhQc7Dwhdei9o= github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1/go.mod h1:WEOSRNyfIfvgrD9MuSIGrogKyuFahaVMziVq1pHI0NQ= github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.25.8 h1:AbzcSvp0w09y85Mwj5AxSAQosqbce+/wOEiS+tZk/w8= github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.25.8/go.mod h1:+34YBpm8pl2Zzg9ZB5z0Ix/FIcR06yUoJSr2sEOi+wI= -github.com/aws/aws-sdk-go-v2/service/s3 v1.89.0 h1:JbCUlVDEjmhpvpIgXP9QN+/jW61WWWj99cGmxMC49hM= -github.com/aws/aws-sdk-go-v2/service/s3 v1.89.0/go.mod h1:UHKgcRSx8PVtvsc1Poxb/Co3PD3wL7P+f49P0+cWtuY= +github.com/aws/aws-sdk-go-v2/service/s3 v1.90.1 h1:kKJk9r6iLMfCGy8RL9GWg3n9gUE1IpSwqYP3/5bdL1s= +github.com/aws/aws-sdk-go-v2/service/s3 v1.90.1/go.mod h1:+wArOOrcHUevqdto9k1tKOF5++YTe9JEcPSc9Tx2ZSw= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.27.0 h1:64jRTsqBcIqlA4N7ZFYy+ysGPE7Rz/nJgU2fwv2cymk= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.27.0/go.mod h1:JsJDZFHwLGZu6dxhV9EV1gJrMnCeE4GEXubSZA59xdA= -github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.39.12 h1:Rw32TILqdeSIfKFQch4I4JtJLiOjVBUGg4lQ2aZzSng= -github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.39.12/go.mod h1:A6p6Pb5x8Xwl69rskqHOr3fGBENGNBFHCvAjGIvkqOw= +github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.39.15 h1:f4rrodaG1r72h7qF2b1245nzcLUfN4OdgyQF2nw5+Jw= +github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.39.15/go.mod h1:lYyuDbeQ6vtjRP4gb9h2MReluEb0US5u+07X84akGKg= github.com/aws/aws-sdk-go-v2/service/shield v1.29.8 h1:H5urm641txrisNK7AOXVVR3FdG/dGg+CpekseU5BgZk= github.com/aws/aws-sdk-go-v2/service/shield v1.29.8/go.mod h1:fl0FdAKddek5SfmZAINtCgq0IQohtrQMpAIszgQIVjs= github.com/aws/aws-sdk-go-v2/service/sso v1.4.2/go.mod h1:NBvT9R1MEF+Ud6ApJKM0G+IkPchKS7p7c2YPKwHmBOk= -github.com/aws/aws-sdk-go-v2/service/sso v1.29.8 h1:M5nimZmugcZUO9wG7iVtROxPhiqyZX6ejS1lxlDPbTU= -github.com/aws/aws-sdk-go-v2/service/sso v1.29.8/go.mod h1:mbef/pgKhtKRwrigPPs7SSSKZgytzP8PQ6P6JAAdqyM= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.3 h1:S5GuJZpYxE0lKeMHKn+BRTz6PTFpgThyJ+5mYfux7BM= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.3/go.mod h1:X4OF+BTd7HIb3L+tc4UlWHVrpgwZZIVENU15pRDVTI0= +github.com/aws/aws-sdk-go-v2/service/sso v1.30.2 h1:/p6MxkbQoCzaGQT3WO0JwG0FlQyG9RD8VmdmoKc5xqU= +github.com/aws/aws-sdk-go-v2/service/sso v1.30.2/go.mod h1:fKvyjJcz63iL/ftA6RaM8sRCtN4r4zl4tjL3qw5ec7k= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.6 h1:0dES42T2dhICCbVB3JSTTn7+Bz93wfJEK1b7jksZIyQ= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.6/go.mod h1:klO+ejMvYsB4QATfEOIXk8WAEwN4N0aBfJpvC+5SZBo= github.com/aws/aws-sdk-go-v2/service/storagegateway v1.34.8 h1:iGmu7HMw6AkqBHV9i5ROzn9otDr5S5PuLP+Ymd20gaE= github.com/aws/aws-sdk-go-v2/service/storagegateway v1.34.8/go.mod h1:JEB0wcdNUtXNIXPBHoTTpcP4ImHRnxjxtIW0JQmHPnQ= github.com/aws/aws-sdk-go-v2/service/sts v1.7.2/go.mod h1:8EzeIqfWt2wWT4rJVu3f21TfrhJ8AEMzVybRNSb/b4g= -github.com/aws/aws-sdk-go-v2/service/sts v1.38.9 h1:Ekml5vGg6sHSZLZJQJagefnVe6PmqC2oiRkBq4F7fU0= -github.com/aws/aws-sdk-go-v2/service/sts v1.38.9/go.mod h1:/e15V+o1zFHWdH3u7lpI3rVBcxszktIKuHKCY2/py+k= +github.com/aws/aws-sdk-go-v2/service/sts v1.40.1 h1:5sbIM57lHLaEaNWdIx23JH30LNBsSDkjN/QXGcRLAFc= +github.com/aws/aws-sdk-go-v2/service/sts v1.40.1/go.mod h1:E19xDjpzPZC7LS2knI9E6BaRFDK43Eul7vd6rSq2HWk= github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= -github.com/aws/smithy-go v1.23.1 h1:sLvcH6dfAFwGkHLZ7dGiYF7aK6mg4CgKA/iDKjLDt9M= -github.com/aws/smithy-go v1.23.1/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= +github.com/aws/smithy-go v1.23.2 h1:Crv0eatJUQhaManss33hS5r40CG3ZFH+21XSkqMrIUM= +github.com/aws/smithy-go v1.23.2/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= github.com/axiomhq/hyperloglog v0.2.5 h1:Hefy3i8nAs8zAI/tDp+wE7N+Ltr8JnwiW3875pvl0N8= github.com/axiomhq/hyperloglog v0.2.5/go.mod h1:DLUK9yIzpU5B6YFLjxTIcbHu1g4Y1WQb1m5RH3radaM= github.com/aybabtme/iocontrol v0.0.0-20150809002002-ad15bcfc95a0 h1:0NmehRCgyk5rljDQLKUO+cRJCnduDyn11+zGZIc9Z48= @@ -744,8 +744,8 @@ github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/docker/cli v28.1.1+incompatible h1:eyUemzeI45DY7eDPuwUcmDyDj1pM98oD5MdSpiItp8k= github.com/docker/cli v28.1.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/docker v28.5.1+incompatible h1:Bm8DchhSD2J6PsFzxC35TZo4TLGR2PdW/E69rU45NhM= -github.com/docker/docker v28.5.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v28.5.2+incompatible h1:DBX0Y0zAjZbSrm1uzOkdr1onVghKaftjlSWt4AFexzM= +github.com/docker/docker v28.5.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.6.0 h1:LlMG9azAe1TqfR7sO+NJttz1gy6KO7VJBh+pMmjSD94= github.com/docker/go-connections v0.6.0/go.mod h1:AahvXYshr6JgfUJGdDCs2b5EZG/vmaMAntpSFH5BFKE= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -1077,8 +1077,8 @@ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= -github.com/google/go-tpm v0.9.6 h1:Ku42PT4LmjDu1H5C5ISWLlpI1mj+Zq7sPGKoRw2XROA= -github.com/google/go-tpm v0.9.6/go.mod h1:h9jEsEECg7gtLis0upRBQU+GhYVH6jMjrFxI8u6bVUY= +github.com/google/go-tpm v0.9.7 h1:u89J4tUUeDTlH8xxC3CTW7OHZjbjKoHdQ9W7gCUhtxA= +github.com/google/go-tpm v0.9.7/go.mod h1:h9jEsEECg7gtLis0upRBQU+GhYVH6jMjrFxI8u6bVUY= github.com/google/go-tpm-tools v0.4.4 h1:oiQfAIkc6xTy9Fl5NKTeTJkBTlXdHsxAofmQyxBKY98= github.com/google/go-tpm-tools v0.4.4/go.mod h1:T8jXkp2s+eltnCDIsXR84/MTcVU9Ja7bh3Mit0pa4AY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -1106,8 +1106,8 @@ github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 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/googleapis/enterprise-certificate-proxy v0.3.6 h1:GW/XbdyBFQ8Qe+YAmFU9uHLo7OnF5tL52HFAgMmyrf4= -github.com/googleapis/enterprise-certificate-proxy v0.3.6/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= +github.com/googleapis/enterprise-certificate-proxy v0.3.7 h1:zrn2Ee/nWmHulBx5sAVrGgAa0f2/R35S4DJwfFaUPFQ= +github.com/googleapis/enterprise-certificate-proxy v0.3.7/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.15.0 h1:SyjDc1mGgZU5LncH8gimWo9lW1DtIfPibOG81vgd/bo= @@ -1173,10 +1173,8 @@ github.com/grafana/opentelemetry-collector-contrib/processor/k8sattributesproces github.com/grafana/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.0.0-20251021125353-73458b01ab23/go.mod h1:7+xyIHr2PJNE9kic/D91c9SMxACdGIGCJykzTcqsYv0= github.com/grafana/opentelemetry-collector/featuregate v0.0.0-20240325174506-2fd1623b2ca0 h1:i/Ne0XwoRokYj52ZcSmnvuyID3h/uA91n0Ycg/grHU8= github.com/grafana/opentelemetry-collector/featuregate v0.0.0-20240325174506-2fd1623b2ca0/go.mod h1:mm8+xyQfgDmqhyegZRNIQmoKsNnDTwWKFLsdMoXAb7A= -github.com/grafana/opentelemetry-ebpf-instrumentation v1.3.7 h1:1BIaJoHYtFNCCxW/JCOCAnWR+HyR5ISGkYwtzRb1d8I= -github.com/grafana/opentelemetry-ebpf-instrumentation v1.3.7/go.mod h1:/O9nceaQ+yhwDdosHsQrs1AilAJWAZf2Laa2DssrjJk= -github.com/grafana/opentelemetry-ebpf-profiler v0.0.202546-0.20251106085643-a00a0ef2a84c h1:I9KB024eev8z9NRJZTcmTw0V0+txKLC6RqPUX3ADO2s= -github.com/grafana/opentelemetry-ebpf-profiler v0.0.202546-0.20251106085643-a00a0ef2a84c/go.mod h1:eXOwk9x2rmJZ9+Ov5ot7NitRWNmF0jynNEeuIDRnK/Q= +github.com/grafana/opentelemetry-ebpf-instrumentation v1.3.8 h1:yQAdbWisIEPjS1eOA6FmM2SWREm4o4XqtDJTaXYnN1k= +github.com/grafana/opentelemetry-ebpf-instrumentation v1.3.8/go.mod h1:/O9nceaQ+yhwDdosHsQrs1AilAJWAZf2Laa2DssrjJk= github.com/grafana/otel-profiling-go v0.5.1 h1:stVPKAFZSa7eGiqbYuG25VcqYksR6iWvF3YH66t4qL8= github.com/grafana/otel-profiling-go v0.5.1/go.mod h1:ftN/t5A/4gQI19/8MoWurBEtC6gFw8Dns1sJZ9W4Tls= github.com/grafana/postgres_exporter v0.0.0-20250930111128-c8f6a9f4d363 h1:/vCopugIegPx9brm+E9+4bMQ6uIsZujCoE7su3bLLbk= @@ -1343,8 +1341,8 @@ github.com/hectane/go-acl v0.0.0-20230122075934-ca0b05cb1adb h1:PGufWXXDq9yaev6x github.com/hectane/go-acl v0.0.0-20230122075934-ca0b05cb1adb/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/heroku/x v0.5.2 h1:B3g+m78yQk70Mhe1MsrHICgDJwJMZNVDkaQtLhsSA/U= github.com/heroku/x v0.5.2/go.mod h1:B025iaZU9I0gPJSsBYmipizkS5TKgX9NWEx8IQQYTuI= -github.com/hetznercloud/hcloud-go/v2 v2.28.0 h1:xX8Wq39MdZ5B9Cgvd8nKLbS+UVDpQoaYAVUeN4gCUxk= -github.com/hetznercloud/hcloud-go/v2 v2.28.0/go.mod h1:XBU4+EDH2KVqu2KU7Ws0+ciZcX4ygukQl/J0L5GS8P8= +github.com/hetznercloud/hcloud-go/v2 v2.30.0 h1:fgAUtCCw4PbJNSs9XPLHVu0//dTNMbPq8P/48ovmdG8= +github.com/hetznercloud/hcloud-go/v2 v2.30.0/go.mod h1:zv7x2kM7xyJ5mW/+y4HbfxQYhk8TE57ypTa1hofsYdw= github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/hjson/hjson-go/v4 v4.0.0/go.mod h1:KaYt3bTw3zhBjYqnXkYywcYctk0A2nxeEFTse3rH13E= @@ -1755,178 +1753,178 @@ github.com/onsi/ginkgo/v2 v2.23.4 h1:ktYTpKJAVZnDT4VjxSbiBenUjmlL/5QkBEocaWXiQus github.com/onsi/ginkgo/v2 v2.23.4/go.mod h1:Bt66ApGPBFzHyR+JO10Zbt0Gsp4uWxu5mIOTusL46e8= github.com/onsi/gomega v1.37.0 h1:CdEG8g0S133B4OswTDC/5XPSzE1OeP29QOioj2PID2Y= github.com/onsi/gomega v1.37.0/go.mod h1:8D9+Txp43QWKhM24yyOBEdpkzN8FvJyAwecBgsU4KU0= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/servicegraphconnector v0.139.0 h1:wsylHna5nuu6Jl+ow9uv3WJ0qKGJxg2aRORFUDa8SAs= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/servicegraphconnector v0.139.0/go.mod h1:LIR7KA0MIoHFQN/mO3zLEeK7piZL3cR6Ig10GfpS5UU= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.139.0 h1:USQU4VEL4Vi1rDm1am6LFjIvRGSOWhb+huw1OLIo3Eo= -github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.139.0/go.mod h1:dIu3yknF9oLuYm4OpSgx50bcrktF/MOYifQ7DlFJVnw= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awss3exporter v0.139.0 h1:eFzpWUJHfubGeNA2PZPtorpAcX466+kyOSBBUAPGcxA= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awss3exporter v0.139.0/go.mod h1:Uv6yVQcBpQwK2u2jovlTAOf8KgpTXZXjj4ynkdyVDf4= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.139.0 h1:+PCy8N4oGAj7bdb+dycglLgTQK752+FeJZq7uFiCtFs= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.139.0/go.mod h1:9NnMIHYfX/puYksPAqlevBN15Lb6TioPQJtNxUUVJZY= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/faroexporter v0.139.0 h1:pwNl0a3FoDcCtXfEUiiCypl8L+eUgKfBnaghZ4pVSgA= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/faroexporter v0.139.0/go.mod h1:b/T0K7kht0LE7MK1nUqW7Q1PxPF4NLApgtjWiNZh67A= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter v0.139.0 h1:KSgaZjjYYJtN2bUklE5LiRwp5VR/77U/0h831IXSfkk= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter v0.139.0/go.mod h1:yZxz+KdnBYFzZ2VksYoKpmQ2pYqslYVCiVT6WDXjQ1s= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudpubsubexporter v0.139.0 h1:sGyXfDvxUtCESxoO8uBVu2Hd7yC0Vop8WN4+WmJFKkE= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudpubsubexporter v0.139.0/go.mod h1:9jenjTifEpGka6PQw2jAvpEcp/fhh1WripcfR3+fEac= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter v0.139.0 h1:uY48pjpi97vlqJU9sRc37dKCWmVcvNwVJLWfPjKiph8= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter v0.139.0/go.mod h1:5F1q7AY20A5t0K/npgTCbLMKUISpqG2DRVQMoE4Hb5s= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter v0.138.0 h1:C0fsnGSo7uVB4GEsADW1P0Yl04KrQcCnGnQf5V3nTaA= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter v0.138.0/go.mod h1:8b+5kIk92O+ezzsR25VXYU68m6d0LNS75wdbaSmTMZ8= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/servicegraphconnector v0.140.1 h1:LtXoW38rv7AGAUpWcUlPGt4++kwKvHmFypBAjYE5g/E= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/servicegraphconnector v0.140.1/go.mod h1:6RhlJP0q8RRopOSOHgISJUg4Q4/I5+rUsOByRymr/sA= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.140.1 h1:YifxNBywlQNYkh69oMDlYgCKOuVBRU0/MOmtiRjclPQ= +github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.140.1/go.mod h1:s64EkxxWteuKaLhwpZKQLfMhgXonAGx3aVtyFNcOSJo= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awss3exporter v0.140.1 h1:qrmO+mxGbiWgLG343gE2UjT51nU65Rn1cJD/VRtmsYg= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awss3exporter v0.140.1/go.mod h1:isDvy60e6j3D6jzSifBSlhXsnl1I5bTBEzI7bGbA0KE= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.140.1 h1:2dW/dwWLuXCDqJXVZ1xC/qCMT2gAFzItt8cvAiMAqeI= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.140.1/go.mod h1:iRVmfDtf2vQ4dn23b7/jisdwDZEQiMqvMpj5ttEbur4= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/faroexporter v0.140.1 h1:V0dRFjEvqWsitOwPHw49QD0TZ7Ld4NmNbKHuS/mIHMo= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/faroexporter v0.140.1/go.mod h1:6KYg98ggfyr3u8AeznokL+j7uiOoxnZfKXS2m3gc7vY= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter v0.140.1 h1:s7aKuOa46liZpQnrkEKKbUQbpkH3TKjUwjLE6+IXglc= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter v0.140.1/go.mod h1:RnyPcE9ohhA5s29KIrM81s+VzGjVUoN0xifGnmBS68M= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudpubsubexporter v0.140.1 h1:p89shlSX+mZ/ss/ERIkDIgHt2QuL5vZ+G1U+pXCIYPE= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudpubsubexporter v0.140.1/go.mod h1:Z5vPVAYn8UAglM7lZVmufA38NJ72rc1h6xYhywDmXxc= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter v0.140.1 h1:hAWfXRKRRuGcAC5RSmYysvVNqhfEBWb56Jw1wNfloi0= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter v0.140.1/go.mod h1:5CRygV6KQkeadcF4b1SZdY0YX9/X9diF7hm9cfdsBCs= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter v0.140.1 h1:jFD3pG5NNP0OXAb/hM1msShdmCh+z1DM8wy33+F8tS8= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter v0.140.1/go.mod h1:adKFSG5aylTB43EtxczT5rtfQxbNv926IgE5gzlDOqo= github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.130.0 h1:2Vu5fp72wN18qKX/s8HIZLSwrmOJLVlSyXynL0PnR3I= github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.130.0/go.mod h1:Oyxv2r1NHL/pdogUs1NT6SXOPckxVcX5I9LlZ30GzXo= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.139.0 h1:2wa0+KJbl0Q2YWT2EhRBu0ZQ1Co07LCFyVZhVpRH58M= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.139.0/go.mod h1:oQDGoH289a5XADpayJy4OyYYU/dHlqRIdvu4DyMVkF8= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/syslogexporter v0.139.0 h1:4MVJ5n299cbzJfLwRcnbzEx6yngd+gYRxF/fFOZcnlE= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/syslogexporter v0.139.0/go.mod h1:f0vfGR7MIo54LwTKPYOLw7CoZML90ySVZx0fhgnQWXc= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/ackextension v0.139.0 h1:GVguyEEURqZCPDqFTTwC0Dc6YFx3+ZCvTVW331wYBhI= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/ackextension v0.139.0/go.mod h1:My1I8+MOR8yzJlWN3gGS7priI7HdnKT9U1l5onR35p0= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.139.0 h1:dSPTcUYgYQ+qlPNiLyV0KnQScddomWhria0UKyhJLVg= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.139.0/go.mod h1:UAwcGPPRqMG/5v/+u6l2zg2k8QJEIEpY4zMfcHyU37g= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.139.0 h1:4ka52tK64fzTrbXU7haOwt2mKBAN3TRAY/WEHkaNqj0= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.139.0/go.mod h1:SpIy4uzTAvb2py2eh2Xg/yDRFX0AZDykAHiT4WzPQHo= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding v0.139.0 h1:1QFqedMedvZsRpmQaO5oWr5pJi7+3i5OwEM+IAP/Tkk= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding v0.139.0/go.mod h1:9mpukHt/0N6vy/8/gvI6+bg6I2dLd2LR1mT0kDVKPNs= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension v0.139.0 h1:xaZsP6s0TRQRgly/kBCJvputnLmE781MuWEXkBL+Wa8= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension v0.139.0/go.mod h1:UnK8tYeOy+bqYhBhx3n/fj1F2StDF53pAVemG6ksu7Y= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/jaegerremotesampling v0.139.0 h1:3xO0afygr8eAcAjmWHZ/1XZw7QVzuroHRnN53RshW/8= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/jaegerremotesampling v0.139.0/go.mod h1:70ZwjOdBJd/vphyHnow3SJg1CU5ZDPRkxwAoKQerjgU= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.139.0 h1:lGhsaspNdzFupSKKYij88cfca5T1D4IR18n70hyBXJ8= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.139.0/go.mod h1:M28yXdZYNKe/OG8O9pk4/+ZJU/2lch6RliXrDVJLLkE= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension v0.139.0 h1:1X2OrH3LPowYMPIqoQL3JxAi4DZ8qeW2yiPTztNStt4= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension v0.139.0/go.mod h1:Jcvh4kIf/LZZh4fvPVVbUgstcMELMgKIncZLJk7bEIA= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.139.0 h1:3Hhr2s+h3nNiEkvv1G7/ETbvx+BU6z02IBB2ZbrmbNA= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.139.0/go.mod h1:AECEAulTQeHJrwqor6BQDN9r+XevIF9FVvtAel6yDL8= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.139.0 h1:t1mrHR5Fo8tzQw2lo4Sv2i+jziqmp8OfOvei3ZS9Llo= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.139.0/go.mod h1:maMSeFOLLuXHzEYnqJDv0Xf+0jaJ9sB153ujp/77HEg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.139.0 h1:+SpPbwzNQFdZiPf22NUy7Y4wh+qH3SPh7QlAT22vQdQ= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.139.0/go.mod h1:9Utc7RbUqrB+L256PyBGIIoCcQk9do3kXvTwuEKmctw= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.139.0 h1:/cGH6hlpnMCafSFpjfM7X4zJ8T+iv8SJyVpQQNLhLKY= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.139.0/go.mod h1:HCBxoefemKG0o5jyYGfE3Thn9JgMLlY9/90l7NukKvg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.139.0 h1:QYBItFA2AmQ+dJKBCUqcprYT+XyLp9YrKbdY0GsIG+4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.139.0/go.mod h1:UXbGxWUJ5Im+FQa4s6ICKY2Mx5AgYuJMWPcxfiQR7hg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/datadog v0.139.0 h1:stqfwpzt7cDv5dOaKsdJBUtHtcVBKAf3o/rxasvZNFo= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/datadog v0.139.0/go.mod h1:2zzJ8+0FnBmq5JZZJXnoFFFuJWGhlHpapUCjR3bleHU= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.139.0 h1:D5aGQCErSCb4sKIHoZhgR4El6AzgviTRYlHUpbSFqDo= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.139.0/go.mod h1:ZjeRsA5oaVk89fg5D+iXStx2QncmhAvtGbdSumT07H4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.139.0 h1:Hi/5+RuH3izUcDNVTunQia0ioa8IekDmOtnbiw/e8+4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.139.0/go.mod h1:7W28dWKFii85EjHlhLrqR60a06Rwf96kzvCoqdgS67w= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.139.0 h1:QXqwLIOlyZ4NKLcH/asxNcUafiP1SXaE09cE2c3ZW6Q= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.139.0/go.mod h1:B+wtD7PiKGmlr7Z/k2rd0WtIuttBOaeGm2OcnVieZI8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/kafka v0.139.0 h1:y2oqaQdhpaas+OzsgemM5kVaXQtRTKnT4sPpYvPCIl8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/kafka v0.139.0/go.mod h1:BPHUP0c7//065NDqZjD7zFPxHwtmoPp5FhyMY2MYQ7E= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.139.0 h1:0b1k8SyH96npz8nuCTirfKZF3ufV/XyQ483kDwQtfj0= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.139.0/go.mod h1:UnLrpA9niQXCnWXS8aBn3KOCDh2u6yFtwZthgMRnb5k= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.139.0 h1:rsUrF+uhDImXUKVxdUzy85jm1HtOa0aBLKojYnvIWyY= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.139.0/go.mod h1:fZvybCaVFQU0c12iaKmZKheC5z291WtYDmYh9vtUANo= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.139.0 h1:FOslvWsQFUrOwyA1demkHmpSO7AFw10gkWhGgsXiQI8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.139.0/go.mod h1:YuaOyL8klYkHL6tDwv45tz+wwgBFL2iuoUz8Vxzk89E= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.139.0 h1:rPdYcRJl2e1NDT36iRc+wjAbNYc+OzbXsBpyuhim5sI= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.139.0/go.mod h1:dVJ5hO+lp9RJw0mTuN4CUU/eP8nIRI36bsv3xxe4/+s= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.139.0 h1:0/Sejjt9KQbaTjvbiyTWNJOY1zKkIt1ejlL7SCEhckI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.139.0/go.mod h1:grzGLZ23sYDsfnHGxMas9hguCyC/BkZSiVeX+VtJ70g= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchpersignal v0.139.0 h1:+Fj+vZFuF0Nyt0OXDPF3AlE5cUp6jc30Z5epzAnP1ds= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchpersignal v0.139.0/go.mod h1:NpvyP/AwiuoIjPhX2IGVAThFygVJLhDtTaECwdZvIAU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/core/xidutils v0.139.0 h1:W1r+MVGZTODE0MiBxq3o45lO5hOQmFBqmpKoT1Fukcg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/core/xidutils v0.139.0/go.mod h1:sfIA81Km6pI4lIINLze5nEB2vcIaQeOgsDOM3MOT3E8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.139.0 h1:PF42UivUgtrED8GgbjJvckeZmVnMdwfcfKrOTfqAle0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.139.0/go.mod h1:1rQkBIzoji1g5j47NV1yyzyngw07R62E3yq2+7EtSbY= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.139.0 h1:6zX7qk0ezUU2ppqv1etVfPSXNFqbYD6nRMpnbG+WvSc= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.139.0/go.mod h1:VbWFekpyy8aUPSotz1/oHE4St65m3tO40BzqVY+345Y= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/kafka/configkafka v0.139.0 h1:0G2PPfWSZQtDySUOqLNVUfm0BinB4JrnUYYFr6xhg9M= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/kafka/configkafka v0.139.0/go.mod h1:3YKh9cfau37ybjhvhNa5eyOLXJpv0vRoIpb6oHns3wc= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/kafka/topic v0.139.0 h1:CZv4zllKVVjT6Ip2MqHcim0SGJUOVLpqCaImM00sfv8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/kafka/topic v0.139.0/go.mod h1:VV5wxeAH34HZdzBf0UJQ+bJlFaGcCmvFhzcIsZoC4vc= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.139.0 h1:tmxlADYBtsGAubJKDitTJh8s109HlheLAt1L1/+J0HU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.139.0/go.mod h1:0MQb9lOXDukCxHKoecLH6+PM5zZBUQaEBOyLleqR6xY= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.139.0 h1:kotsybOssXUqiQzH/n7nljAnhfmws4HhnMamLdJFDvc= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.139.0/go.mod h1:0v3C+DUgl/J/Q9g/xK5m0nsYnHgqzH5ICEtCzalO2uY= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.139.0 h1:6/j0Ta8ZJnmAFVEoC3aZ1Hs19RB4fHzlN6kOZhsBJqM= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.139.0/go.mod h1:VfA8xHz4xg7Fyj5bBsCDbOO3iVYzDn9wP/QFsjcAE5c= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.139.0 h1:16hfHWa1PBNDTD1iav9cCvxzeSKp+LUvHrg7tDkW8z8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.139.0/go.mod h1:X34iQ8LHOZDVH4Fm5Awogxll1eMLZp7hz8In+BwE0z4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.139.0 h1:P5Th1GLB/000etutmL3kdkDpi4irv+Ud/Yqf9Tb9Xy4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.139.0/go.mod h1:VvxfBHY48OowOKtYk+YUTNKki8J2y4P0csz7i9ZCbSo= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.139.0 h1:gnUrm1NRwl4nvdMVCvckkElBI7SrWZP/lWkiuL9Eqqg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.139.0/go.mod h1:kSBN12O3Yuuf5u2hbiZQqwas7bDzX1oCJyYmB4HOUiE= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/azure v0.139.0 h1:+5O3z/dcvY0RaSRS/cmu42FFlUTqMdwSTBMF/mjpYs8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/azure v0.139.0/go.mod h1:6IIdFX2x3KXNFPqrEwSqqy0BAgZlbyzpKDZny2GUBss= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/faro v0.139.0 h1:++55P4AXl859403lMIbH9X/GnxwYDACQwcadkA5uQq8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/faro v0.139.0/go.mod h1:PyTO6j39mOibd/th+76xYs+//Fs2+4449LnMmS3vp7o= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.139.0 h1:1pxRr09h69mgyNrfkGv88vlz7LA0boX8kuQerpItJx8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.139.0/go.mod h1:yVpjWz3DK4ZubmaTI4/hSu/0Gavp6xyEtNk4a4OhWF0= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.140.1 h1:6cYx1X55ZFYOzY3EmOjdMluvbPkS4jr3nBI1T9FeIug= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.140.1/go.mod h1:egP4eLaMD4+lSQH9yw7qLhv0kXxJmAMLEiERx4tYHAI= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/syslogexporter v0.140.1 h1:pMlselHktMHXSN83cXivFjTHusvlurB5VhF2qfU9gpM= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/syslogexporter v0.140.1/go.mod h1:iif9ttL/mdzKtd9oGIuvmYrrvFX3YunVqkEnwdQS94A= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/ackextension v0.140.1 h1:1UMITiEMteL7sr/Q+eTItSzLXZ+fI3gFKPc1hWPM5s0= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/ackextension v0.140.1/go.mod h1:5G/k38OEUoygaH71m+Yw9dVWVk9sXXOJnRZO6q02rPY= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.140.1 h1:Q5m8W/pUCSf9rvQdtKrzZ5VgeP5VB33pc4v8ZC1W6qY= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.140.1/go.mod h1:gs8hQH7z1M1HAxs6SCOXoxbvvPj3vtRtmzpsYWjtePI= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.140.1 h1:WrtHCt9ERp60pW1ntbAtho8ekwp5XvjG4hjLVYe0WGs= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.140.1/go.mod h1:OSgYoEA1m5qR+A1gLlPwXESaPSGbo8DhVwN8wbKn8LQ= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding v0.140.1 h1:uwxJdJWZXcR0Rx0e3TbB9Hp+rya5kKcglWf49BgGyyo= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding v0.140.1/go.mod h1:0Knf7Ka2tX5VkDcTe5gO0c5q1GaPg4DyH3n2sufIbxk= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension v0.140.1 h1:p85gdKaxeOBiWqE7iRXm6c0mQl7JQzuOwkzQ4GzMrsM= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension v0.140.1/go.mod h1:Slb1Gr/5nhZfFtyzm/fkK8GvNPVabZ69vmiy9dVYEMo= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/jaegerremotesampling v0.140.1 h1:sXov/XGQy28EuAegb1HGUBfx5dK2lDiGSZBNd8Z4fOw= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/jaegerremotesampling v0.140.1/go.mod h1:fdXiQBXILgRAtDt+mzXEnBm56Mon5lYWJtxTQWbSkjo= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.140.1 h1:QtlJh6zIY5uVaF5K23S9bsDuL1tN1d50VS7wb8YfpCc= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.140.1/go.mod h1:JNTcjg4IOXorF8bE/IKFtMzTN6XJiOU8yJUBYjVDmIA= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension v0.140.1 h1:2Ra9zt8XzLFGwBMgMTipZlOgIfuGQ1+EAwdSlK7iNGs= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension v0.140.1/go.mod h1:mDYd1aoe4wV7VUUDt2EWcqJ2OGM9S9zzMF7SAOYkk1A= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.140.1 h1:LkbDFYCgHGs0AD6o+dTe1wZgvtmBFx//ECD3A76LRKg= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.140.1/go.mod h1:VK4VmR4OBuLDbMTbC0lZI/7O5hm9RG0FtTC+m9850lc= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.140.1 h1:QHRx0kYVuYYLuei+nyp0b/kALrNlI/Sa1OWllnrUyHI= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.140.1/go.mod h1:kRKAWzDcG2w8EwoprBK+vecmLQWi/SV/5RAyvWdmXyw= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.140.1 h1:bKUZbYpIyXFcSfdwuLVeG4iRPCFCNi2bNdchQoalKBY= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.140.1/go.mod h1:pfXqmZ9Va0Idq2z2usLZQVE1Fm9pCDiCuFRdVUlZkdM= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.140.1 h1:M5Q/jel2J8/J3GpMGeOeYhbzBYUDcvyqxRYpC5JWfCw= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.140.1/go.mod h1:d+NJchV0bw7RDEapc3fzdj8XWCcd/AXlrxLH+fJkSmE= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.140.1 h1:FcBj6LEoHzw+33GccX1XPdTd025Ds8NumaPPqkN2uRc= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.140.1/go.mod h1:YpKft9elE3kVKvyXRbINGtBq4oghz1/68b3o7B7bGdM= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/datadog v0.140.1 h1:7Nt6CO3DXd9usQREbHUqy+hprhPo/KR7PMiygD/aQoY= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/datadog v0.140.1/go.mod h1:4ksLeDlVKzVJ2764nxco+zKUInQ/b9F3Nbu2/n3g3sA= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.140.1 h1:tZTXR/qNyBGw+P/fRCNw0PjjHJ+DtRjKmCYIvUleuIo= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.140.1/go.mod h1:gth/rlivyhMIz5cAZLWM1eWXFA3gpK411U4E8rQJvso= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.140.1 h1:AzWauI92GvU3cDBr3RPZvwpH61uO/9FBAml/kNjzfOM= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.140.1/go.mod h1:YRc7u9o6VFk1xVimpF6mNAPGqgvvDB5sJkGiiz5y/uk= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.140.1 h1:rmYMFyCTqbCYkIUacnq1w8d1Wq9dlpIIRQ8PtPkYWGk= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.140.1/go.mod h1:B+wtD7PiKGmlr7Z/k2rd0WtIuttBOaeGm2OcnVieZI8= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/kafka v0.140.1 h1:8uI0cMGTKNxpoLBr+yOCmlBjZ4hqNgJd3ZuXXbmmV+o= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/kafka v0.140.1/go.mod h1:J7/5Q6Om7Qwk58xcHWayKMdSEjopoijJlao+m7vaI8w= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.140.1 h1:Z8adoaEjyQQaWAnOB3LAVGsrElO+TPT3ptuv8BJMfvc= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.140.1/go.mod h1:FJwi7lm2OV9SFYBoneQVJV6Yk8alzjcYnCjiiajEGVE= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.140.1 h1:EF25SdT5dfj9+dL5F0EzyAlQVciEmm/FtSh2297BJso= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.140.1/go.mod h1:b4A38gSqNdEnNZBmqwXqtDMc0Eye0oIkPocACLn1jjQ= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.140.1 h1:G+Gej0z63wZ/amp71uCibmSA2QvOU2Hm4bWPBGXxr5U= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.140.1/go.mod h1:OUDTMVKES84GYLKgczzln0PcgimnyLY9WJCQzvfXBvk= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.140.1 h1:y572pQJZ+/DrXRuG4/qD4+yL1ZAWP4eW2K85n/H/Tq8= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.140.1/go.mod h1:t5eL7ipgdZLlNrwkck/YXHKjDUo0noU3amHvgl/0Miw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.140.1 h1:bZIPqYAwuYU6/Eng1JV+4aapUZB0vD0UecsrwrLJDgY= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.140.1/go.mod h1:4hbIqHZzCzDqUzI5qMWng+AcbJ6gQASYXDmJgRDsdDg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchpersignal v0.140.1 h1:j5Ure7EJY9S4o9Ov+fqZ3xTXn1tsk2jUNKh5l8OwwhM= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchpersignal v0.140.1/go.mod h1:iLHjkAlw4LmJAbKpw4m5jdO7U6+yb0H5ZsxFW1tD89E= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/core/xidutils v0.140.1 h1:3PoYAtq3lNIGu/khuOvk6dh4xZAnyq+ig2w+D0/olS8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/core/xidutils v0.140.1/go.mod h1:zRaAUker8GkthzBko/gyo78F5Mkk/kPKY3thsf3yxYc= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.140.1 h1:roc/wcUTCpnD1p7KyjkRATtEh+eATVw2Mgj9aMwOio4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.140.1/go.mod h1:TWXb+13fiM01BvjWdLo085MbEDLtJKKkK9WvYCGHFMQ= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.140.1 h1:OtLMmjUTjePSizBMxOsDONa0e9yFw32BEK+/LDONp/M= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.140.1/go.mod h1:DttyhquY4ngzSvyXEHd05Vitqs0A2SNcUS2aHTozfHc= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/kafka/configkafka v0.140.1 h1:38Roz8HZVJ6WC/RSQ6G6gglOHJyAQ0t5a2uouPDcpRg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/kafka/configkafka v0.140.1/go.mod h1:NZgheLzKUuXWVCHQVOm06P37T9CYjBElpn98L+1yl5M= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/kafka/topic v0.140.1 h1:cU8lnvQStyFnIBwgcO6gs6UM5yNusLN6wC5RABJzPng= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/kafka/topic v0.140.1/go.mod h1:VV5wxeAH34HZdzBf0UJQ+bJlFaGcCmvFhzcIsZoC4vc= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.140.1 h1:4yCJWqcd3b2jmrlK7IUXU/tUacFhvpttmtxeYMagDlc= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.140.1/go.mod h1:Fgm3QkGSJB0RYZHlvpoSyV+yI24C1wWDwnuubKrt5xM= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.140.1 h1:5zdlILo6x679XTKPvh9DWS8tEbl77dwGNXreHvsJsj8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.140.1/go.mod h1:4t2oYJvSFkEhcHYI7sW+p8jMloYe1DXEdGBrtAwDEYg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.140.1 h1:iGHaaWOHhW8CiPl6QeKL0xox2W/IxgEsqOgp8Riwvk4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.140.1/go.mod h1:dmTMbAeRerdQTEolwoGHdAuTY8K232AqPlOPLuNK5gA= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.140.1 h1:2hYrH0ow/DQrzuQ4F0PRyY6KDmw5LG6ameJv009iChE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.140.1/go.mod h1:FarkCYtTfeBULFTGXlrtHrt1n2ScW2MiqHsj4JkuTIY= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.140.1 h1:BV/wrsPL2T9piZ5lNs7BkQgGtqvUY94MuJeuRhkDOWU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.140.1/go.mod h1:tREn5ZfbO8DGbORpo4koZQQ3zd+Z0JweiQwoRJJqoGg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.140.1 h1:VHvDgcDEHQrzQp71iMfePYc0OUfnXyAsTq0JT277Ymw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.140.1/go.mod h1:2KkguNWjbTxFw37k/eCqUdhro6ZqkzLPz4aw8M1HDGI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/azure v0.140.1 h1:trR4rEiBdoMwI9A2Gkzmtc/FSbUxdvy/o6a2dJQkyKI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/azure v0.140.1/go.mod h1:10MHz3t39dmUMtlx9o0xfv2O6NOiJdauwxDeqguziqE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/faro v0.140.1 h1:oi9B7hQb4cU8abU4gX40/G8KMVRrRaKs2imB4b7Tdm0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/faro v0.140.1/go.mod h1:OhD+cviXM1Mtm/oPrz3zQ3u4xqwJkM+RV+ePa/b+vdQ= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.140.1 h1:pYMbVLAVNBoMXtGdkK1hj6ghpMdk/+CAR3DFtoDCG6I= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.140.1/go.mod h1:fbWY0beKLHs8hEYpIKu0UndD5Fc2EEDHL+gwkk7sJ4c= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/loki v0.130.0 h1:rn5WmEOpFh+UO/n2kqPvQMzThar8FuOMxLx9EU5xujY= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/loki v0.130.0/go.mod h1:8dopNWO5mdJUK2R4PBOkhjrs7BXyzE5RFG1kDN+uj+k= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/opencensus v0.139.0 h1:lwhyV0a+S6IBMyh33nM5Xm+d5NskzwVa8xW8JVSRGKI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/opencensus v0.139.0/go.mod h1:56AGqfnkJIkT04mInP/dDGpyucN+Ne4BQbkFpsrGsX0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.139.0 h1:Pj303TPLuZ8Q8+ZhPlbbQqEoiYiiVxu/UQTRCr0vc3Y= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.139.0/go.mod h1:/NDwJwHP4yBFL4B+vDah49ROKH1cro8BS7ThezFZinA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.139.0 h1:ctfs8S1cQuhbXJVqSlAx8SxPmgFq2eOcllc7Pdpr9RE= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.139.0/go.mod h1:BduGmN98+nV2KObW0woovcuNwkSvSVLiPG6+Ww95uSk= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/opencensus v0.140.1 h1:5FLvhMG6FHV1Sp3oAckVhfJzgt45FJKnw+r2Ostsc1Q= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/opencensus v0.140.1/go.mod h1:rNW7BmmSHs4KnrNqBCw1lIcP9szJ4U8Pk2LwHYGmCLw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.140.1 h1:Xbwyp+Q5bWKSXb6lWIG2ILbYoRN7w8gt7HWghseNt9o= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.140.1/go.mod h1:dYzmFwbAvaXBs+SW5oxSgMBQZWnXMTo7Tk55LST2eno= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.140.1 h1:SLeT+eFg9veChCxonnvw5ZAHJQZ+n3vH9sK3GN6ige0= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.140.1/go.mod h1:ogI0x1etfqRJZZanV0sr7+UXdsIp8IQfHE3JoUVm6r0= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/xk8stest v0.138.0 h1:Fec1dyH3wRPjrvGN5qYLwkuXCAk4cAUcS5qGgDmT5OM= github.com/open-telemetry/opentelemetry-collector-contrib/pkg/xk8stest v0.138.0/go.mod h1:o6eRn8JV22jyCPJcZ/NS3IeSB90E+0xBaL9Y/4NtPmY= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.139.0 h1:dhXq+slRSV2xt3sXA43jQgltM5qYF3vsOJkYyIir8Ws= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.139.0/go.mod h1:zFDjfoufAQFSxDP4FqY5HJv0xUVIV1sZm0mmfcCkUzY= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.139.0 h1:Wt1OMsFL4Ts1VoYNKISPsNeTlKsCD2//Fnhbm0oG/tY= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.139.0/go.mod h1:d4ChUjCuFvlt+ak1oUcjETvhXw4nHAqveaMudujDWeQ= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.139.0 h1:iRNX/ueuad1psOVgnNkxuQmXxvF3ze5ZZCP66xKFk/w= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.139.0/go.mod h1:bW09lo3WgHsPsZ1mgsJvby9wCefT5o13patM5phdfIU= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.139.0 h1:uiS+kscxUAly8DvkWMFbZ/R79ZB8ygFdhGk+DApEyRE= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.139.0/go.mod h1:9WndZ2/ih2zOiwczuIvi8oYiF8rZErUTCDA+ARg4/0o= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.139.0 h1:35N2d6UGo7BJEr8/Y8JOZW/sCbzuAfuZtps/HSX4Ado= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.139.0/go.mod h1:G3WduXLMn48lLkO6fNuBPhO3xPkEDJOJXGRcdGDewVM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/intervalprocessor v0.139.0 h1:upeoL/u8sNMv2wILr0tJjS8D10PFbIZXhtmSvcTRzdU= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/intervalprocessor v0.139.0/go.mod h1:/YGA2DC8VSLBFAsycUPul9dkL5n8CcGXJ2rkKEyvNVg= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.139.0 h1:yMINTAhwrAFBg+4dmR2241egJAdOjD3x9BSnyMkwNiM= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.139.0/go.mod h1:rZJSbBQCdMjBmxTwTwaXpStHOyB0lWa5nP8JKqD0ME0= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.139.0 h1:ODYstgINw1NuHiUdUPJOSkRfaJTvRvyqEzCF4m2XGLg= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.139.0/go.mod h1:VOqj+yaeo+Hr0sau8r74q61RpRnZIdXs8NsKLnAapXg= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.139.0 h1:5JqD/Zor7RXeMS11EXcC7a3XpuZG93SHiqppd9s8dCA= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.139.0/go.mod h1:67fF79oXRHvHOL2G9yqp6kSscQupgPXWFQfn86gdZwg= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.139.0 h1:yfMNtTj9SdLVyXWTsylCrUShQrHsdBCxG1u0iQtmh70= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.139.0/go.mod h1:tWDTzmpqXRAi5vgu5Q8KJ2elKm7mTQBz5y6n2l6OqsE= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.139.0 h1:87/xEH3QHcSExq1kECCulTIWLqLCc+N8eDKuB2ksEJc= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.139.0/go.mod h1:QdO3iOH5kBOY/inXAqwvzZM90uDjgcOdy++i0IexHrk= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscloudwatchreceiver v0.139.0 h1:6EFflIKbLT93Q4Sk5mbdKJSPItq3BxDz073J0qto2OY= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscloudwatchreceiver v0.139.0/go.mod h1:RKHgTIuRIYeAXG+PfGGYeuNNHJmL568rhHAZT1F7ulI= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsecscontainermetricsreceiver v0.139.0 h1:6qdUPpYUyv9a7j6Onm8FQbJ+WzigJaZtHmPLTkuXkHg= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsecscontainermetricsreceiver v0.139.0/go.mod h1:WRXQ6QPLWLy2yvv83W0k+BK1jIQ45M++k3YAmt6Xy8A= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudflarereceiver v0.139.0 h1:RQj1FWnNvAkUi3+ZpznQ8AwEjv+ctZDWR0tQwen2yjU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudflarereceiver v0.139.0/go.mod h1:IdhQZGwKVhG/+OcMj0SWNLILHT3mx2IOOKh9uru4zhU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/datadogreceiver v0.139.0 h1:O/rzzvZUa+06SGyVWjOgYchprf5pFwLhDjTK33T3sCU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/datadogreceiver v0.139.0/go.mod h1:xnRG7nPwzlbkFNJsq1o8QnOyFB5pxJOSbALBxMPXcuk= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/faroreceiver v0.139.0 h1:sSHjDOhQpjiLSA8TXLDBuSYhWp2ETCsgHcGYEFUv2T8= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/faroreceiver v0.139.0/go.mod h1:nvB0RE2Rv1bbhis1Y69K4fRk7HcqPWG8EzBOVvWy1xU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.139.0 h1:kwfh3ik/GeTPWBLiBvXef6N0u91qiPmajv6ztHRLAnc= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.139.0/go.mod h1:L7yS5diwopnS+DZ6LFDP125awu9DiVni7O7X1q7xXoQ= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filestatsreceiver v0.139.0 h1:qTD4d0jnBuplLug7qoO9qhwxa040TaTDfXa2rfHGOEU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filestatsreceiver v0.139.0/go.mod h1:ygX4LsRLrfNtuFV0lZy5J8rAskHLmuWy5hbIiobHq6c= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.139.0 h1:LkBhII1P9mSIsAxLEZYDIZwEPXGoQduWEqqrVxEMsiw= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.139.0/go.mod h1:3n0cpchEKo89de+yLfh+3ov0VdgOL+aoWUExwty/pWE= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudpubsubreceiver v0.139.0 h1:V2yADZerJO6xG/0RNWH8Ut8zewDy5YaRZvvfE4xkt44= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudpubsubreceiver v0.139.0/go.mod h1:fPdFJPsKJvPtBHQDgnf+ooO1OnDTUuPjM6+w9uxI2CM= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/influxdbreceiver v0.139.0 h1:ovBv/QmMfmwDASLNKqQ6kFTK781WEgYfc501uFWT2os= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/influxdbreceiver v0.139.0/go.mod h1:y4xyzhxT6YocDwxIVecaJvbZqE2FYywNsas8y43SHK8= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.139.0 h1:00NJh0D76WiLZ4htl9IvjFcOF9jV9d+9cJ8eMGv3Nxk= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.139.0/go.mod h1:Mf5EjGtU6z6XVBHHlshPnxhVLFcH776yMo0EDnX1wq4= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkareceiver v0.139.0 h1:lSx0W87nKuqsXNeu9uqR011L9aru0lFYzBvGpHdpqgU= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkareceiver v0.139.0/go.mod h1:NZqYHdBDsGnmvva6KfUP36iQdGRhU2fCIeiiK1OUjuQ= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.140.1 h1:dmpPG4LEPNOTCA/VuFQxjnPcFPkloccL4dS4WgPxL8o= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.140.1/go.mod h1:LIjSkhwIR5TSxcVUJQBI2HnZnloBYZ9pZLmssPs9Z8E= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.140.1 h1:IR1fYVXEG2/0UYjUXgcuWpP1OusCGY2CEdVe+38xtD0= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.140.1/go.mod h1:leCrAsN/aLkRu6E6mORzLBUlU4OOPOQ4v5OVHJPTwwA= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.140.1 h1:mDIocC/jux5IzDcBqQdZX9/f4Gn0MmsJvfgIUwnPyKQ= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.140.1/go.mod h1:HRIaREk1wmELjjFqA17ALS0EpRudtmL85J+G5vGICpo= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.140.1 h1:9EZKrkcBYzJ64qSl5YUgVK/CzRxEDDO+VvoZnmN2gz4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.140.1/go.mod h1:5ea+NQM3w6Yj0vgeYH/Xt05DD09Uv7n3QU7zegMTJdY= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.140.1 h1:vOnijd8S+D0AhK/ILlEQEG6W661A/yXw/rahlw8Hmqw= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.140.1/go.mod h1:8tF+pk9bXXGpO8o8cwwMWHO6m9Nlt52boQD7GBJLJDI= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/intervalprocessor v0.140.1 h1:9BEIaU9SsOr9+rkx1tp2/s8ZNZi5HqS4BR5p1WLDa3c= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/intervalprocessor v0.140.1/go.mod h1:Koa9AVPq1Q1Fl2FV1tD76nGTySFFAw+L2+4rvN/SXpA= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.140.1 h1:eV+ogmxqGFfPDz7n0JLcEnJAqlRDAwRikGaM41Ho8Tw= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.140.1/go.mod h1:os51v799F5dj0YN1g/xUr/WrsYrwDbVbSlVL4sLGCmU= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.140.1 h1:iQccKl8TTLvsFWRhW1e2+8voT6NkcSp5L94H97MYWj8= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.140.1/go.mod h1:02mc3nVbcO4tL40VZY03nGZx/tCTUH79oEEBnu9gbBA= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.140.1 h1:MTV4vyK9dJIG1XxoapOWw6kQPLnt3Egnw82ElA3Lo3s= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.140.1/go.mod h1:BtnTLGh7CHRGLO/nviRsVQ88x/442nTzD38Z++f64WA= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.140.1 h1:zVIQm9UFqwZ6xQnZjdKXKmRMD3+iY8sy1eJ9kjJ27FY= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.140.1/go.mod h1:e/ZVSkLhZ8qQJC1oi/runS0zG0HzG1MmrYss2gJq9KM= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.140.1 h1:BfzDWrF6jIjSyiEYpO3U84FH7Pes+cepJy4jiKfk55Q= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.140.1/go.mod h1:dJWHfMFUzwWtdRVA91YvKyCexo7nM86UNEveCoF9ki0= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscloudwatchreceiver v0.140.1 h1:o5dCZaXNTmjAE1hfVyC3CmaSIg1/1gZIUoajDP9LL5Q= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscloudwatchreceiver v0.140.1/go.mod h1:zalu9fzD+gSmpaPuP0P2v5Ch3TTyU+3qBiGg2R0p57M= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsecscontainermetricsreceiver v0.140.1 h1:fNpOtYgiDIOMVSTrRAj89+mNoQjyMZ4ypHEiqn1y51o= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsecscontainermetricsreceiver v0.140.1/go.mod h1:zdsOwrqwEqF2g9vprDcGO4rK8us6mjFlU34uGtbRnxk= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudflarereceiver v0.140.1 h1:R80Gy/ryNdhVpumvcsvs1Kxxhw/jhY0uLOkab6DW+B4= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudflarereceiver v0.140.1/go.mod h1:71tZxwFJOxIxRkiE9e/F+opuPdgsbv0j5sTR19Ri1Ks= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/datadogreceiver v0.140.1 h1:g2sxxI1VoDpKMLZKr9660cMJJLp45p9EOBIw4Ezs4BU= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/datadogreceiver v0.140.1/go.mod h1:lx4VGfzuFzaqlXtKW4VaTJVSsiIXAr5w8bjiWycwMjM= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/faroreceiver v0.140.1 h1:wOEI0eU8KzaD4MbXpDf4RLqm4fasLfzYOHyRrLsBAtU= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/faroreceiver v0.140.1/go.mod h1:tAi/X2rllZUQHqO5/T1EzaKWiV4Jk+Ka2RdTiGgBW6s= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.140.1 h1:VA+ZnGA34CakwOtXGfZ/YvbpGIf+kELDbeJ4iOY/nFs= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.140.1/go.mod h1:Srx1NVWDRYPsugzYudv8dGZzLSPlHOeUQl6swW7yjEw= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filestatsreceiver v0.140.1 h1:/qMMsfohEP3GphHF1oZTwGM6pI7wGBM5Seq22R078HI= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filestatsreceiver v0.140.1/go.mod h1:36jWBYGBzts9TQkfZM/ZQ+cc1oscH9VoIBBnQLvhcIo= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.140.1 h1:NhQ7lCp+E1TN8ZW7OGiDTx6PiP3ULGLn0EgmHhHpjcs= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.140.1/go.mod h1:8JJcYAB9zwL1ZEOZh6KhWRH+69zoKMMaoI9Xo2gg4XI= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudpubsubreceiver v0.140.1 h1:eXlmB54niREwIBFvpO0rfN4Q0tqp7fXpO8Fmjb7fzo0= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudpubsubreceiver v0.140.1/go.mod h1:GLQue+De73/AXluqi9iOuM6N6epYpASdmfkhxVd7lLI= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/influxdbreceiver v0.140.1 h1:yrJKM0GAuXXO/hcHA1oYm+k0EHL9xpXfRngG4ze43sI= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/influxdbreceiver v0.140.1/go.mod h1:sr1O3HPfQlfFJJZ0KgGncrWyjr5n3DragD5I8TXGzlQ= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.140.1 h1:9U0vc8RN5a3TrzN21qU4S65Myxd3e6+sBrpOown19Ec= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.140.1/go.mod h1:8tYi78UFWZhvA8X9v2mZlCbR7chuXVnBtnpCrd1LO8E= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkareceiver v0.140.1 h1:WKsE3AvlFXUAP5ptkLut25iiXG/jKuszmVda5h/C5uI= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkareceiver v0.140.1/go.mod h1:y9oyJrw5vkElMOucqTxxeL3XkX8kbjbJ1E+MqQc5ceI= github.com/open-telemetry/opentelemetry-collector-contrib/receiver/opencensusreceiver v0.133.0 h1:04eEfhfTzTXPkQdPPei3HuBGulJYypj2LG2T6zNzKNs= github.com/open-telemetry/opentelemetry-collector-contrib/receiver/opencensusreceiver v0.133.0/go.mod h1:OCkhWl4FZD/ZfbVL4YVMEGbJMnWSOA9aqn98dDAAYZA= github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.130.0 h1:KE5HhK1BT3/RfLwHJPWA8T15BA/PadZ9FM0xbrhhfag= github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.130.0/go.mod h1:+s9H03sshgDFAPCar9Ef/oLzgtmiYuHqTiu1mq+XVwo= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/solacereceiver v0.139.0 h1:uV4j+IWZrcf05bDNUPe66cKCdNDcWg3lCPPQ2XBSU3Y= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/solacereceiver v0.139.0/go.mod h1:gZOSSCOCH79mfaypeq/r8wBc2nT+0sfaIkdyuLAKVB8= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver v0.139.0 h1:tOVkarujapWh0C9GviJsiHVNYiBAfWpIDAlcYlMzbhQ= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver v0.139.0/go.mod h1:uN4ms6dZuUcrQYdrjZZs5q35NG7PyeouClGxEtREBD4= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/syslogreceiver v0.139.0 h1:ZAnm2RGtpkOtJxVxJ5wi5Ugw6ZK2GK6tF/QJzgjHSCA= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/syslogreceiver v0.139.0/go.mod h1:Q1op1fuu81yP7wFEXHKQ5NV4jAEeDtlEaGCDK053vGk= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/tcplogreceiver v0.139.0 h1:pwtxdTfcI7jxeOO3TA0aLqiTSBjAP6r20rwaDVgj+G8= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/tcplogreceiver v0.139.0/go.mod h1:svCINmzdc4SBGZmDA6BYwkyDMHfsFg4Fj9TMOz3V7Nk= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/vcenterreceiver v0.139.0 h1:685ZcYz/0YrxctbHaA+W3RJ9gVEeFXslFURZj2hobdg= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/vcenterreceiver v0.139.0/go.mod h1:BtmTirvVoG2sVZLl7IGXvSkBMXFZ731R8/zAeQG2LPs= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.139.0 h1:uq3xrmeDzIfwXHB5BCC/BAOO/ZIrexi+hDbRcd3DrNg= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.139.0/go.mod h1:C89wYTePUCuLie/te7LW8KYuN07EVf9HLxiJEzjcQgY= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/solacereceiver v0.140.1 h1:8KKxIpUmtUDIacxn91FYfNk5Q1qF2PHZXUIaMNu+02M= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/solacereceiver v0.140.1/go.mod h1:LGIsDnybUWBh8ZDv1M/S+9sKATkxap+3GZppWy2FZoI= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver v0.140.1 h1:l9K7D3o8hAgQT4zgege/+0RQCBvmSg+fuEo4gEmWeaE= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver v0.140.1/go.mod h1:+BBGGBgDTp45mjmY9AJXf0Omgiv+d6xfVtmnDYfQb0Q= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/syslogreceiver v0.140.1 h1:4nmKpSCp6VpRfyCKcmSt83cUqViz6vI961LRcai3I9Q= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/syslogreceiver v0.140.1/go.mod h1:gWS7w7fq33UMBsgAF6BC46usXhPjk6F7U6mbwOMvAPg= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/tcplogreceiver v0.140.1 h1:eNDs+GedBHKl8Gvx6XQOIWgs438EvWdjIXVOjZGidrw= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/tcplogreceiver v0.140.1/go.mod h1:oAvM5tL7Fag3hSm5QS083qjs9fshIOI8ViW388k9PcU= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/vcenterreceiver v0.140.1 h1:SN01QnxBvXxkl5IpyuRPZrcSQkIM6rKzxzqyRK1grGU= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/vcenterreceiver v0.140.1/go.mod h1:D02djt/gxzvgmSL0mzW8qZEzFRJpZdYCUshz74ExHfc= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.140.1 h1:3vaBOYigegmVOMQLp1xxNc1F4KmGkIXqgNLR6ViSmOU= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.140.1/go.mod h1:OAbsDBd6WvfHRrn6BLMvFZ9OSfekapRiU+F9+ClOp4U= 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.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= @@ -2076,8 +2074,8 @@ github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9 github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.31.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.67.1 h1:OTSON1P4DNxzTg4hmKCc37o4ZAZDv0cfXLkOt0oEowI= -github.com/prometheus/common v0.67.1/go.mod h1:RpmT9v35q2Y+lsieQsdOh5sXZ6ajUGC8NjZAmr8vb0Q= +github.com/prometheus/common v0.67.3 h1:shd26MlnwTw5jksTDhC7rTQIteBxy+ZZDr3t7F2xN2Q= +github.com/prometheus/common v0.67.3/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI= github.com/prometheus/common/assets v0.2.0 h1:0P5OrzoHrYBOSM1OigWL3mY8ZvV2N4zIE/5AahrSrfM= github.com/prometheus/common/assets v0.2.0/go.mod h1:D17UVUE12bHbim7HzwUvtqm6gwBEaDQ0F+hIGbFbccI= github.com/prometheus/common/sigv4 v0.1.0 h1:qoVebwtwwEhS85Czm2dSROY5fTo2PAPEVdDeppTwGX4= @@ -2177,8 +2175,8 @@ github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG github.com/shirou/gopsutil/v3 v3.22.12/go.mod h1:Xd7P1kwZcp5VW52+9XsirIKd/BROzbb2wdX3Kqlz9uI= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shirou/gopsutil/v4 v4.25.9 h1:JImNpf6gCVhKgZhtaAHJ0serfFGtlfIlSC08eaKdTrU= -github.com/shirou/gopsutil/v4 v4.25.9/go.mod h1:gxIxoC+7nQRwUl/xNhutXlD8lq+jxTgpIkEf3rADHL8= +github.com/shirou/gopsutil/v4 v4.25.10 h1:at8lk/5T1OgtuCp+AwrDofFRjnvosn0nkN2OLQ6g8tA= +github.com/shirou/gopsutil/v4 v4.25.10/go.mod h1:+kSwyC8DRUD9XXEHCAFjK+0nuArFJM0lva+StQAcskM= github.com/shoenig/go-m1cpu v0.1.7 h1:C76Yd0ObKR82W4vhfjZiCp0HxcSZ8Nqd84v+HZ0qyI0= github.com/shoenig/go-m1cpu v0.1.7/go.mod h1:KkDOw6m3ZJQAPHbrzkZki4hnx+pDRR1Lo+ldA56wD5w= github.com/shoenig/test v1.12.2 h1:ZVT8NeIUwGWpZcKaepPmFMoNQ3sVpxvqUh/MAqwFiJI= @@ -2274,8 +2272,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.480 h1:Dwnf github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.480/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.480 h1:YEDZmv2ABU8QvwXEVTOQgVEQzDOByhz73vdjL6sERkE= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.480/go.mod h1:zaBIuDDs+rC74X8Aog+LSu91GFtHYRYDC196RGTm2jk= -github.com/testcontainers/testcontainers-go v0.39.0 h1:uCUJ5tA+fcxbFAB0uP3pIK3EJ2IjjDUHFSZ1H1UxAts= -github.com/testcontainers/testcontainers-go v0.39.0/go.mod h1:qmHpkG7H5uPf/EvOORKvS6EuDkBUPE3zpVGaH9NL7f8= +github.com/testcontainers/testcontainers-go v0.40.0 h1:pSdJYLOVgLE8YdUY2FHQ1Fxu+aMnb6JfVz1mxk7OeMU= +github.com/testcontainers/testcontainers-go v0.40.0/go.mod h1:FSXV5KQtX2HAMlm7U3APNyLkkap35zNLxukw9oBi/MY= github.com/testcontainers/testcontainers-go/modules/mongodb v0.34.0 h1:o3bgcECyBFfMwqexCH/6vIJ8XzbCffCP/Euesu33rgY= github.com/testcontainers/testcontainers-go/modules/mongodb v0.34.0/go.mod h1:ljLR42dN7k40CX0dp30R8BRIB3OOdvr7rBANEpfmMs4= github.com/tg123/go-htpasswd v1.2.4 h1:HgH8KKCjdmo7jjXWN9k1nefPBd7Be3tFCTjc2jPraPU= @@ -2313,8 +2311,8 @@ github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80/go.mod h1:iFy github.com/ttacon/chalk v0.0.0-20160626202418-22c06c80ed31/go.mod h1:onvgF043R+lC5RZ8IT9rBXDaEDnpnw/Cl+HFiw+v/7Q= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/twmb/franz-go v1.7.0/go.mod h1:PMze0jNfNghhih2XHbkmTFykbMF5sJqmNJB31DOOzro= -github.com/twmb/franz-go v1.20.2 h1:CiwhyKZHW6vqSHJkh+RTxFAJkio0jBjM/JQhx/HZ72A= -github.com/twmb/franz-go v1.20.2/go.mod h1:YCnepDd4gl6vdzG03I5Wa57RnCTIC6DVEyMpDX/J8UA= +github.com/twmb/franz-go v1.20.4 h1:1wTvyLTOxS0oJh5ro/DVt2JHVdx7/kGNtmtFhbcr0O0= +github.com/twmb/franz-go v1.20.4/go.mod h1:YCnepDd4gl6vdzG03I5Wa57RnCTIC6DVEyMpDX/J8UA= github.com/twmb/franz-go/pkg/kadm v1.17.1 h1:Bt02Y/RLgnFO2NP2HVP1kd2TFtGRiJZx+fSArjZDtpw= github.com/twmb/franz-go/pkg/kadm v1.17.1/go.mod h1:s4duQmrDbloVW9QTMXhs6mViTepze7JLG43xwPcAeTg= github.com/twmb/franz-go/pkg/kfake v0.0.0-20251021233722-4ca18825d8c0 h1:2ldj0Fktzd8IhnSZWyCnz/xulcW7zGvTLMOXTDqm7wA= @@ -2448,162 +2446,164 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/collector v0.139.0 h1:8vqRmynluY8m3tnDyTnsIQaeDGnXn9TMQGprK37POE0= -go.opentelemetry.io/collector v0.139.0/go.mod h1:ZQYYPMuh4cm/E1L1pG6h5lJeH+qSCOFAPKzRQfjeGwQ= -go.opentelemetry.io/collector/client v1.45.0 h1:uefdmpWBD6BeZ0/AHdpUTDd4/o7srui9ZEcDE79bIbo= -go.opentelemetry.io/collector/client v1.45.0/go.mod h1:FIUrRNGC718Vjr/r1+Lycgp/VSA0K82I2h3dmrovLWY= -go.opentelemetry.io/collector/component v1.45.0 h1:gGFfVdbQ+1YuyUkJjWo85I7euu3H/CiupuzCHv8OgHA= -go.opentelemetry.io/collector/component v1.45.0/go.mod h1:xoNFnRKE8Iv6gmlqAKgjayWraRnDcYLLgrPt9VgyO2g= -go.opentelemetry.io/collector/component/componentstatus v0.139.0 h1:bQmkv1t7xW7uIDireE0a2Am4IMOprXm6zQr/qDtGCIA= -go.opentelemetry.io/collector/component/componentstatus v0.139.0/go.mod h1:ibZOohpG0u081/NaT/jMCTsKwRbbwwxWrjZml+owpyM= -go.opentelemetry.io/collector/component/componenttest v0.139.0 h1:x9Yu2eYhrHxdZ7sFXWtAWVjQ3UIraje557LgNurDC2I= -go.opentelemetry.io/collector/component/componenttest v0.139.0/go.mod h1:S9cj+qkf9FgHMzjvlYsLwQKd9BiS7B7oLZvxvlENM/c= -go.opentelemetry.io/collector/config/configauth v1.45.0 h1:D4LVSdphWeKaQGYw5zQcAnrfmzcSfwKmk/P6R5tVKvw= -go.opentelemetry.io/collector/config/configauth v1.45.0/go.mod h1:Aji8w1apRMIi0ZcPrcuRi6DG+fzKAnU+CsoKWgtSsxE= -go.opentelemetry.io/collector/config/configcompression v1.45.0 h1:WU9LDLNJb53LmIcDeL6YqNnqpqo3SA8RlACtfoOnoH8= -go.opentelemetry.io/collector/config/configcompression v1.45.0/go.mod h1:ZlnKaXFYL3HVMUNWVAo/YOLYoxNZo7h8SrQp3l7GV00= -go.opentelemetry.io/collector/config/configgrpc v0.139.0 h1:Mq2sEtycRluP2TD9WN8vbM1liJLgWiJG6RhjJoAlljc= -go.opentelemetry.io/collector/config/configgrpc v0.139.0/go.mod h1:k4Z+mN54n703C97a9DNpJy4B9reTYQ1LBAuX1ATS7AY= -go.opentelemetry.io/collector/config/confighttp v0.139.0 h1:PkwHkXh5f60AzIpUOVSaAdg0UlDGqkweY2FDxsX8XCE= -go.opentelemetry.io/collector/config/confighttp v0.139.0/go.mod h1:abTWDxMfr9D3t40zmrFlu4wuFb0Nu96005xk23XoaD0= -go.opentelemetry.io/collector/config/configmiddleware v1.45.0 h1:PmByVUAWAXilCWcJD8cnbeCs0ZwB8q+6OKm15oRFrm4= -go.opentelemetry.io/collector/config/configmiddleware v1.45.0/go.mod h1:Vyuj87wIvjx6VqH8Q76mlGcqRLizGF50B4XQ6ArMAZ0= -go.opentelemetry.io/collector/config/confignet v1.45.0 h1:Xjqamt9+rEsdnGk5u6mXF779sTCGVpEvtXxrx7kuQsw= -go.opentelemetry.io/collector/config/confignet v1.45.0/go.mod h1:4jJWdoe1MmpqxMzxrIILcS5FK2JPocXYZGUvv5ZQVKE= -go.opentelemetry.io/collector/config/configopaque v1.45.0 h1:v8/vqS+yN40KaplsNOJSo04yWy4274NU+qOz5dgRJYc= -go.opentelemetry.io/collector/config/configopaque v1.45.0/go.mod h1:dgdglnRcHkm5w/7m5pJChOfvVoiiKODs7Yw3KXAgj+0= -go.opentelemetry.io/collector/config/configoptional v1.45.0 h1:Qi66oxdTfyep18Ce5n7kPzYRnLyk2lfCF+3sSf5eIiY= -go.opentelemetry.io/collector/config/configoptional v1.45.0/go.mod h1:OXpelwnNIsapqHz5/Ojk7NY9g5khdfJhnsqBWABqRQ4= -go.opentelemetry.io/collector/config/configretry v1.45.0 h1:mggULQOISDrdFhJ0fBJTj33ccpYZ/pQzNGOIR47pE9I= -go.opentelemetry.io/collector/config/configretry v1.45.0/go.mod h1:ZSTYqAJCq4qf+/4DGoIxCElDIl5yHt8XxEbcnpWBbMM= -go.opentelemetry.io/collector/config/configtelemetry v0.139.0 h1:RHzZhecU1VosHa2C/ogIJtEyDIDUpEPDtOmOPQ25BEI= -go.opentelemetry.io/collector/config/configtelemetry v0.139.0/go.mod h1:Xjw2+DpNLjYtx596EHSWBy0dNQRiJ2H+BlWU907lO40= -go.opentelemetry.io/collector/config/configtls v1.45.0 h1:VNHnT1KIBw5YaxRMLla6pxwxnWDebEosRKKd5uyBKS0= -go.opentelemetry.io/collector/config/configtls v1.45.0/go.mod h1:rwZ0MBOuRJH1nKICMAunH7F3Ien+6PA/fANRF6v7Kgc= -go.opentelemetry.io/collector/confmap v1.45.0 h1:7M7TTlpzX4r+mIzP/ARdxZBAvI4N+1V96phDane+akU= -go.opentelemetry.io/collector/confmap v1.45.0/go.mod h1:AE1dnkjv0T9gptsh5+mTX0XFGdXx0n7JS4b7CcPfJ6Q= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.45.0 h1:CZ3yhULmAhHVKCL3soovlZ4uv7pTJUYj38HShYdPE7o= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.45.0/go.mod h1:gJNhZgAqpuY0N81rMRm6+DQXXWYSeQ4FS22LTAPzJb0= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.45.0 h1:Q0QcNZ2bdTW1HfEPPN23vmdhs5EroCTbjQQN9ewiZHQ= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.45.0/go.mod h1:km4EomfOXyJnkF+FY5kP7LmWjNNrErimTO4/yBzZYgE= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.45.0 h1:J92NezBH0ZB1JUjyQfW1sFKVuMXmMtzDoJGO6SHBnGQ= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.45.0/go.mod h1:bRhQRVpNYWEuZhvc6wWiC70p10MMS42ItCBXQGA0lRk= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.45.0 h1:AB3+WBKQl/29JSFrRyCrgVL/JqKDLN4oY6qy8onHRtM= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.45.0/go.mod h1:6QZ5KB7jJ7iUf+AME6aGP7633cJASq6BvLu28xAXWeI= -go.opentelemetry.io/collector/confmap/xconfmap v0.139.0 h1:uQGpFuWnTCXqdMbI3gDSvkwU66/kF/aoC0kVMrit1EM= -go.opentelemetry.io/collector/confmap/xconfmap v0.139.0/go.mod h1:d0ucaeNq2rojFRSQsCHF/gkT3cgBx5H2bVkPQMj57ck= -go.opentelemetry.io/collector/connector v0.139.0 h1:tjQVDZ+BP3BM89JTFuJUkKqwGnNy1I9P7VODu7iVwio= -go.opentelemetry.io/collector/connector v0.139.0/go.mod h1:Vtj9GoZQSu9VQRaDmdawKQKUF7VUn08aPJGGH2e/9Yg= -go.opentelemetry.io/collector/connector/connectortest v0.139.0 h1:K61MEuC356tgaIN1xTE5IBAccUUwSGvL+EhftRuc0jM= -go.opentelemetry.io/collector/connector/connectortest v0.139.0/go.mod h1:9sX6X+RsWrvExwV5hx8wbWRV+m8NRY1i+h2plmN/eKo= -go.opentelemetry.io/collector/connector/xconnector v0.139.0 h1:GVsQTEzljCA5clMIDoL+sIjgmA0q+h3VrWnwdfjNQbo= -go.opentelemetry.io/collector/connector/xconnector v0.139.0/go.mod h1:TGftO3PSN5QvAmMWC+Bjtquh7+TsFKEn+W5ZXK9936M= -go.opentelemetry.io/collector/consumer v1.45.0 h1:TtqXxgW+1GSCwdoohq0fzqnfqrZBKbfo++1XRj8mrEA= -go.opentelemetry.io/collector/consumer v1.45.0/go.mod h1:pJzqTWBubwLt8mVou+G4/Hs23b3m425rVmld3LqOYpY= -go.opentelemetry.io/collector/consumer/consumererror v0.139.0 h1:vp4MQ6pKpnS242hE+tuvp0e2OEKhY1Enb0Dpk0fYLkY= -go.opentelemetry.io/collector/consumer/consumererror v0.139.0/go.mod h1:sYqANWzK8jC8L+QLcs68BDDd0TC6p7Ala0KXZTC1iAY= -go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.139.0 h1:qlB8t1fHzlXIW5GYxjWjjgc54ud95U44tbCsIzljAl4= -go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.139.0/go.mod h1:Dtsz5fc/t4hRzFU6WTyMK8KHdhkJGmV0SBAi1rzATY0= -go.opentelemetry.io/collector/consumer/consumertest v0.139.0 h1:06mu43mMO7l49ASJ/GEbKgTWcV3py5zE/pKhNBZ1b3k= -go.opentelemetry.io/collector/consumer/consumertest v0.139.0/go.mod h1:gaeCpRQGbCFYTeLzi+Z2cTDt40GiIa3hgIEgLEmiC78= -go.opentelemetry.io/collector/consumer/xconsumer v0.139.0 h1:FhzDv+idglnrfjqPvnUw3YAEOkXSNv/FuNsuMiXQwcY= -go.opentelemetry.io/collector/consumer/xconsumer v0.139.0/go.mod h1:yWrg/6FE/A4Q7eo/Mg++CzkBoSILHdeMnTlxV3serI0= -go.opentelemetry.io/collector/exporter v1.45.0 h1:1SATa4isZxhNLQrSsWwQzHlccfrToEbhQf9TYP8/hN0= -go.opentelemetry.io/collector/exporter v1.45.0/go.mod h1:5J2ajGJmoTEt30r1CvGTapJbnzd5DQhTACbJiCh+K2M= -go.opentelemetry.io/collector/exporter/debugexporter v0.139.0 h1:NDo6iRpvxcC8ZPD06XhjXWysU28C3UtuwN0Vk2269ss= -go.opentelemetry.io/collector/exporter/debugexporter v0.139.0/go.mod h1:Al5e8GXxuwAiW4rD/Lk2hGvamlmEdcNXOdvMunT+BhY= -go.opentelemetry.io/collector/exporter/exporterhelper v0.139.0 h1:4GXqsOWc3oZ+cdW5PoSLAO9QT442c6BbrYrcn6C9Kao= -go.opentelemetry.io/collector/exporter/exporterhelper v0.139.0/go.mod h1:5p/u05S/RhhtuVb8QZ7E82CBW+7Lom83TXRDaSJ7G0M= -go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.139.0 h1:RGMkBn2GFlp170R0EN/URjyz5jX9Wxgugx8hmD+XJ58= -go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.139.0/go.mod h1:MtJURshivqa+LsuEIMqwHjpqF9CzZcKOtVph7VFuPRo= -go.opentelemetry.io/collector/exporter/exportertest v0.139.0 h1:bhQVZ9GWEtcI2mBCGndYx1vQY8jOQZ4kzz3ZwU1O2Yo= -go.opentelemetry.io/collector/exporter/exportertest v0.139.0/go.mod h1:UG76w/zQ35Jchz90NUBZ47LJiQ0SSJ5vnSLjB8pLZms= -go.opentelemetry.io/collector/exporter/otlpexporter v0.139.0 h1:opYPLkYQ2o5C7ChtRVdjUsYMxuNEccl7e5wfv7Y4LUM= -go.opentelemetry.io/collector/exporter/otlpexporter v0.139.0/go.mod h1:XOwIss1oBTaWmCVIEqLJxb+k1dNl1pfvwOhle3jY7PQ= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.139.0 h1:B6R1DUAnS+JShBogkjYrwg2hnjrNgzDkCoV68LnZzNI= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.139.0/go.mod h1:DLPIj2hQhDaPrVXs77s3il8zkq80kZ19DqM3Z5M7g6M= -go.opentelemetry.io/collector/exporter/xexporter v0.139.0 h1:xoIyksMLFa7oFDU9i8EJ/KG7KIIWUbsxM0a6/gLumOk= -go.opentelemetry.io/collector/exporter/xexporter v0.139.0/go.mod h1:SVtq+SBu+AkYF/xPf4yPZA0g3SloC0MGlCpWkTRWJvc= -go.opentelemetry.io/collector/extension v1.45.0 h1:yZQwPkqeE4cq1VUOd/tsZQ1lXVaIyhqxKTlev1mEa+0= -go.opentelemetry.io/collector/extension v1.45.0/go.mod h1:8LDwM7it8T17zprOMx6scpU42dHNfKhtxueleHx1Bho= -go.opentelemetry.io/collector/extension/extensionauth v1.45.0 h1:pSbHJNglvhkdkUEWAl9YX1eRsKNrWRRxqYrLzcrkk4Q= -go.opentelemetry.io/collector/extension/extensionauth v1.45.0/go.mod h1:6Sh0hqPfPqpg0ErCoNPO/ky2NdfGmUX+G5wekPx7A7U= -go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.139.0 h1:wzF6Bm7Xw0dV0aWIsSFai1LouktHh0v/SkwGTSNTWlA= -go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.139.0/go.mod h1:q/l6XKmgi88Y9sPg60rCOH7xlYxw3L5OOrh9k4CmXkk= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.139.0 h1:z+buXvUCCH78iyR7NaG9+a5xBEZ5nx5G7sdDZw/i4Io= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.139.0/go.mod h1:mrsfSmuj3HxIeL8kmqUYp2Kc9Zzi3/FTzwAtjVPlt0I= -go.opentelemetry.io/collector/extension/extensionmiddleware v0.139.0 h1:Ki6ZXLxm5QrtE/X31K9V5eZgeRUQX34eNVvUapkPdtQ= -go.opentelemetry.io/collector/extension/extensionmiddleware v0.139.0/go.mod h1:/ub63cgY3YraiJJ3pBuxDnxEzeEXqniuRDQYf6NIBDE= -go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.139.0 h1:qJ/w1fpBl5gohz/aFEZmN7vVjvnPWh36QnnABwXDCFM= -go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.139.0/go.mod h1:3d2VgZf44t+NjZVBKp4nBgir7dxyfr4s8AJAoVOYS3w= -go.opentelemetry.io/collector/extension/extensiontest v0.139.0 h1:9dTgJoOw6HLFhRQ1DqgK2BC17qh52GjXrtF0xadyAU8= -go.opentelemetry.io/collector/extension/extensiontest v0.139.0/go.mod h1:4v7C7EGXQMN4j3RfPlGcvl2X4BmhZqsbX0OWUcb8+Zg= -go.opentelemetry.io/collector/extension/xextension v0.139.0 h1:PRryDG/tYukoE2KTCjffqMoBuVAdcgOQbwevvAbN6mc= -go.opentelemetry.io/collector/extension/xextension v0.139.0/go.mod h1:uBAqHW0OO35D2LM4j/k3E3H/g4sGd5bgedC7Jefg1sY= -go.opentelemetry.io/collector/extension/zpagesextension v0.139.0 h1:JycTcFQtOrM60bbYKpWnprghZolhXDRj8MC7Ae+yUCk= -go.opentelemetry.io/collector/extension/zpagesextension v0.139.0/go.mod h1:N/+vl3IM6/kBs21Zk5f47h/a1YUyZ8jvJIjMvzRXKlw= -go.opentelemetry.io/collector/filter v0.139.0 h1:KVvMzDvyFPZhjouPEjea2fYunbkueI3FWla8caMUmCI= -go.opentelemetry.io/collector/filter v0.139.0/go.mod h1:IVeDBEUR9YLqffxtOUItUM1xwTBAiHZU6bK+TjOXuss= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.139.0 h1:Dz/RpyAHXdjE+rrE4dIuLCbPYpLzoI+Sz3gSEBm8OwY= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.139.0/go.mod h1:5GHVCAWci2Wi6exp9qG3UiO2+xElEdnoh9V/ffVlh3c= -go.opentelemetry.io/collector/internal/memorylimiter v0.139.0 h1:6PD0TA3j7FfG+NsmG/nfh1zIiDfKAe2sL0h7wzdunfM= -go.opentelemetry.io/collector/internal/memorylimiter v0.139.0/go.mod h1:wJ65rRYUV8XJ4+lvDIQqgRZnUAc6mgDBqiiQuR8gxPk= -go.opentelemetry.io/collector/internal/sharedcomponent v0.139.0 h1:Q/itw3EDPYbJ+5gpxNUjFIALumDUkwFxtsEMYt/CgEI= -go.opentelemetry.io/collector/internal/sharedcomponent v0.139.0/go.mod h1:uhv3BC3B9n9OvWEKFTBE5GqNobWtJudbacgP6E9m4Z0= -go.opentelemetry.io/collector/internal/telemetry v0.139.0 h1:3Qm8ykiKWFFhJc5+CuJN5VztNaX+USTQK0Aq6CQdNEE= -go.opentelemetry.io/collector/internal/telemetry v0.139.0/go.mod h1:xS73oxZG40uyxvXr4Z4nrzSG3IOKdWFRJ0qRQxMjJLI= -go.opentelemetry.io/collector/otelcol v0.139.0 h1:wCP7BdmQr7Pv2bhNYMIIWjOgIO8FpXy18Lw9353YJHE= -go.opentelemetry.io/collector/otelcol v0.139.0/go.mod h1:v9v2okTpBXLEcrm3lDvesiveQI7o0SHjRagRuj6zTdU= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.139.0 h1:oxzyaYBw34832BdrjMBaXocysYTnlral9N70xTtC63Y= -go.opentelemetry.io/collector/otelcol/otelcoltest v0.139.0/go.mod h1:iMusmN7UFc90BpuKFsEiwcFKXFqIYi/KVMAJz+guWYk= -go.opentelemetry.io/collector/pdata v1.45.0 h1:q4XaISpeX640BcwXwb2mKOVw/gb67r22HjGWl8sbWsk= -go.opentelemetry.io/collector/pdata v1.45.0/go.mod h1:5q2f001YhwMQO8QvpFhCOa4Cq/vtwX9W4HRMsXkU/nE= -go.opentelemetry.io/collector/pdata/pprofile v0.139.0 h1:UA5TgFzYmRuJN3Wz0GR1efLUfjbs5rH0HTaxfASpTR8= -go.opentelemetry.io/collector/pdata/pprofile v0.139.0/go.mod h1:sI5qHt+zzE2fhOWFdJIaiDBR0yGGjD4A4ZvDFU0tiHk= -go.opentelemetry.io/collector/pdata/testdata v0.139.0 h1:n7O5bmLLhc3T6PePV4447fFcI/6QWcMhBsLtfCaD0do= -go.opentelemetry.io/collector/pdata/testdata v0.139.0/go.mod h1:fxZ2VrhYLYBLHYBHC1XQRKZ6IJXwy0I2rPaaRlebYaY= -go.opentelemetry.io/collector/pdata/xpdata v0.139.0 h1:gHCKjBKQ6y0fZ4Qedpo+kiEdCgc2RDb1iA4+XAchOoY= -go.opentelemetry.io/collector/pdata/xpdata v0.139.0/go.mod h1:dogx8oUWuXNNIZSFYJ4kn5cPGxp9eNUj+KV16yqdYi4= -go.opentelemetry.io/collector/pipeline v1.45.0 h1:sn9JJAEBe3XABTkWechMk0eH60QMBjjNe5V+ccBl+Uo= -go.opentelemetry.io/collector/pipeline v1.45.0/go.mod h1:xUrAqiebzYbrgxyoXSkk6/Y3oi5Sy3im2iCA51LwUAI= -go.opentelemetry.io/collector/pipeline/xpipeline v0.139.0 h1:nBxq0tP4NB5JIeVvelXAkO1HWc4MRaSJVSEz1wuwOXU= -go.opentelemetry.io/collector/pipeline/xpipeline v0.139.0/go.mod h1:QE+9A8Qo6BW83FPo6tN/ubV1V9RTi8eZYlMmwVpqHTk= -go.opentelemetry.io/collector/processor v1.45.0 h1:GH5km9BkDQOoz7MR0jzTnzB1Kb5vtKzPwa/wDmRg2dQ= -go.opentelemetry.io/collector/processor v1.45.0/go.mod h1:wdlaTTC3wqlZIJP9R9/SLc2q7h+MFGARsxfjgPtwbes= -go.opentelemetry.io/collector/processor/batchprocessor v0.139.0 h1:OotwDBXkKbS5wmg+ztHwmCMJ8sM22gVvxJc2QthFLMw= -go.opentelemetry.io/collector/processor/batchprocessor v0.139.0/go.mod h1:8UyU9X4EoeJ412G6Kd689LahwuCv0akezHoGOPrxh7k= -go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.139.0 h1:8HjRoR+myP6JxzUIEwm2widaidLaR8jO3oQVyNjNKro= -go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.139.0/go.mod h1:7eVCBpzMDeBTFbp6iMxRx2oNzf5ooGn4m/5F/CqtbjE= -go.opentelemetry.io/collector/processor/processorhelper v0.139.0 h1:RP62hCNzMasyrOHn3nMHqPJi9Bt4pTZN9gSEDDSAjV8= -go.opentelemetry.io/collector/processor/processorhelper v0.139.0/go.mod h1:DBmitO55B6ehmNvI5wo3Gx75RpOfrey4pkf41nj2Ie0= -go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.139.0 h1:mEg5not+LldOj40FQQjqmnDB0YfY3MYv8AbDrGXJIs8= -go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.139.0/go.mod h1:pYMIRjmnvVlUK/FIT/ZyX5fSNkZ8UsVafYV8CqX8wZ8= -go.opentelemetry.io/collector/processor/processortest v0.139.0 h1:30akUdruFNG7EDpayuBhXoX2lV+hcfxW9Gl3Z6MYHb0= -go.opentelemetry.io/collector/processor/processortest v0.139.0/go.mod h1:RTll3UKHrqj/VS6RGjTHtuGIJzyLEwFhbw8KuCL3pjo= -go.opentelemetry.io/collector/processor/xprocessor v0.139.0 h1:O9x9RF/OG8gZ+HrOcB4f6F1fjniby484xf2D8GBxgqU= -go.opentelemetry.io/collector/processor/xprocessor v0.139.0/go.mod h1:hqGhEZ1/PftD/QHaYna0o1xAqZUsb7GhqpOiaTTDJnQ= -go.opentelemetry.io/collector/receiver v1.45.0 h1:Gi1uEUQdtG9Ke36nH/4DXkO0uGBCRhlIvUOJ742o//o= -go.opentelemetry.io/collector/receiver v1.45.0/go.mod h1:SnPQfcIHdZYlP9JCsYv8YF+wXpvvYYPgEv4r/mqngj4= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.139.0 h1:Z5RHZ2xfg8uL4RGRwez9/fEjCCIX8t4MuqdUiN1tPFQ= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.139.0/go.mod h1:UGvk0mPQUWb2STPoX5/wA8mp0ZFuokUMxlzsaLOVf50= -go.opentelemetry.io/collector/receiver/receiverhelper v0.139.0 h1:280UgJw6g+JYTKhGNJNpaeTyKFRDZfG/uIvKt2o2XAM= -go.opentelemetry.io/collector/receiver/receiverhelper v0.139.0/go.mod h1:zUDK6ZWte/t2DxYaXegbRiK64WNzKsgmhkOhutuGeUI= -go.opentelemetry.io/collector/receiver/receivertest v0.139.0 h1:cOkQzpOH6m5ZQPYxk/mX96/ZQZvnRFrUk52U2rHn7zc= -go.opentelemetry.io/collector/receiver/receivertest v0.139.0/go.mod h1:+l9fy/aMAsTAzczUw6c/3gcwYDIa3FnzBjVxcj64//s= -go.opentelemetry.io/collector/receiver/xreceiver v0.139.0 h1:Q4ZGJMxILUz4sfsalzXIJNWgZ1+gVWpQCEZXwq8MC1k= -go.opentelemetry.io/collector/receiver/xreceiver v0.139.0/go.mod h1:C61I5Ndr9e+ME0YpxrSG5Kg1fpSZS81IFG8V3t61JHQ= -go.opentelemetry.io/collector/scraper v0.139.0 h1:mL5J+pO/xicmwDCc2SRBOn3VtTX5/chcrrKX0Jh1AJY= -go.opentelemetry.io/collector/scraper v0.139.0/go.mod h1:opTUjdLfnXWbTjCcdFC0xBkxFqM85KCcCM6MJ9C57pI= -go.opentelemetry.io/collector/scraper/scraperhelper v0.139.0 h1:BGvSoh5hLHATdPBT+rh/sSVPvjvMR76Lt/fi4CU4KD0= -go.opentelemetry.io/collector/scraper/scraperhelper v0.139.0/go.mod h1:QMu/w2VMHP7LYodulrNG0J8Ttk0Ivevj++cLYoP/2dA= +go.opentelemetry.io/collector v0.140.0 h1:6RI7/l3TtQj+93xk+gpNh6TpvevOsz9E5KB2s3h00j8= +go.opentelemetry.io/collector v0.140.0/go.mod h1:myrJeCdIuFeUGCUEgs4lWflywff9VANpuJEtdY1pKEk= +go.opentelemetry.io/collector/client v1.46.0 h1:nAEVyKIECez8P92RXa78mjRvaynkivYdukT07lzF7Gs= +go.opentelemetry.io/collector/client v1.46.0/go.mod h1:/Y2bm0RdD8LKIEQOX5YqqjglKNb8AYCdDuKb04/fURw= +go.opentelemetry.io/collector/component v1.46.0 h1:m+BF5sT4wQ3AiPcMBVgYPhxTZNGYGDkgMcKFivEznSo= +go.opentelemetry.io/collector/component v1.46.0/go.mod h1:Zp+JaUgGrPvt4JNzJU1MD7KcZhauab9W0pCykgGPSN0= +go.opentelemetry.io/collector/component/componentstatus v0.140.0 h1:y9U8P4o5WMSAwSaiMQNjfHdjwBorVEUn9/U4s73bZRE= +go.opentelemetry.io/collector/component/componentstatus v0.140.0/go.mod h1:8qrH5zfOrqZCPQbTmq5BDiYx6jzkLo0PtWlPWb2plGw= +go.opentelemetry.io/collector/component/componenttest v0.140.0 h1:/g7yETZ7Flq4v9qSmN9jux0LecMPJDwr8HtvhOgN6H4= +go.opentelemetry.io/collector/component/componenttest v0.140.0/go.mod h1:40PZd6rjqHH5UCqxB6nAvnHtDTwZaSWf1En1u1mbA8k= +go.opentelemetry.io/collector/config/configauth v1.46.0 h1:Aq90doQ7QuiqyiJxTX5Li0j/IwSPh2ioeKpPUwXbscM= +go.opentelemetry.io/collector/config/configauth v1.46.0/go.mod h1:Qe6QY+fwv8rZ5PnTSmfzwOHrtI5FxwH6IT5bMw7UibM= +go.opentelemetry.io/collector/config/configcompression v1.46.0 h1:ay0mghHaYrhmG/vbGthuiCbicA/qACa6ET/5dZWn20Q= +go.opentelemetry.io/collector/config/configcompression v1.46.0/go.mod h1:ZlnKaXFYL3HVMUNWVAo/YOLYoxNZo7h8SrQp3l7GV00= +go.opentelemetry.io/collector/config/configgrpc v0.140.0 h1:HezSlFrRA19XxY6URHy4hpnGKQhpmo1R4EpcDMtT/D8= +go.opentelemetry.io/collector/config/configgrpc v0.140.0/go.mod h1:pwpHpSL/lAFS+1xrM+gQtw62gUNdUjbcE3cayf3WbHM= +go.opentelemetry.io/collector/config/confighttp v0.140.0 h1:iCk+ROLrKCd0+k8uQSMN5MkDndL9Ob//jPZUaJpmXo0= +go.opentelemetry.io/collector/config/confighttp v0.140.0/go.mod h1:GWZ/czyKbmKZn38p0R+bbPbtlaUQSByrsUbLZpLS87I= +go.opentelemetry.io/collector/config/configmiddleware v1.46.0 h1:w5tFoDLwcDg90itp52NzUCwrBk+dAIT5b01ci36i914= +go.opentelemetry.io/collector/config/configmiddleware v1.46.0/go.mod h1:+JO/m4qRUd8QPiowkQkeYK+1mKnBJaEH+wm0Qbwe5eU= +go.opentelemetry.io/collector/config/confignet v1.46.0 h1:YYH4w/OloXWhXhpma0Tm5Y4ly28EPLnWk3G06BWimwM= +go.opentelemetry.io/collector/config/confignet v1.46.0/go.mod h1:4jJWdoe1MmpqxMzxrIILcS5FK2JPocXYZGUvv5ZQVKE= +go.opentelemetry.io/collector/config/configopaque v1.46.0 h1:lEh2VMyxOKJHa02Sj+O5INWTJZygYN2GKa5spWMGQQI= +go.opentelemetry.io/collector/config/configopaque v1.46.0/go.mod h1:OPmPZMkuks+mxK5Mtb0s20o0++BIBPq9oTEh2l4yPqk= +go.opentelemetry.io/collector/config/configoptional v1.46.0 h1:BZnFi2NUSEeP2ttr7bwGdo6a8UDcYEkfrq7SiP1jjac= +go.opentelemetry.io/collector/config/configoptional v1.46.0/go.mod h1:XgGvHiFtro2MpPWbo4ExQ7CLnSBqzWAANfBIPv4QSVg= +go.opentelemetry.io/collector/config/configretry v1.46.0 h1:+rriOyTxi0+3gNsqsZrU1hgA9Mf+ozqK25ovgZgeaBU= +go.opentelemetry.io/collector/config/configretry v1.46.0/go.mod h1:ZSTYqAJCq4qf+/4DGoIxCElDIl5yHt8XxEbcnpWBbMM= +go.opentelemetry.io/collector/config/configtelemetry v0.140.0 h1:bi8bCzmNXfHj+i1rbWVvI3VpHlAHykSnf3y2IbZ3XgE= +go.opentelemetry.io/collector/config/configtelemetry v0.140.0/go.mod h1:Xjw2+DpNLjYtx596EHSWBy0dNQRiJ2H+BlWU907lO40= +go.opentelemetry.io/collector/config/configtls v1.46.0 h1:vrUtOTOpS+oOne/8NpOYKZnOHHrK9GKCevwyoqjQNVs= +go.opentelemetry.io/collector/config/configtls v1.46.0/go.mod h1:WQcQCiltzLTkLB9VdckHnied7HeEPTNCnobMl+JFfYY= +go.opentelemetry.io/collector/confmap v1.46.0 h1:C/LfkYsKGWgGOvsUz70iUuxbSzSLaXZMSi3QVX6oJsw= +go.opentelemetry.io/collector/confmap v1.46.0/go.mod h1:uqrwOuf+1PeZ9Zo/IDV9hJlvFy2eRKYUajkM1Lsmyto= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.46.0 h1:w9QqQezjzs2EQkj18Dheg2cFxNJgM+kaHIcGbiHHWUw= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.46.0/go.mod h1:aRXi0txqasWqX6pWz/VLig+gEDpyDoK/lecFDoEOEUc= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.46.0 h1:jXm+vcIBmu63kMrFu1azMGzdbfE0JI5l/Z4Q4y0bMIk= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.46.0/go.mod h1:JOkAPxqnRA6DLbSvj4KZ7AJnP28iLURlPA0EsZr61x0= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.46.0 h1:bI2BLc6PI4YC3A/G7VgMkuy9jxU19tnvulJS4eudZGo= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.46.0/go.mod h1:u11FdiwLi/c5QcW7sz9RCjqPB9xAqCMoP8Iq/EDpBkY= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.46.0 h1:ialHCZR7XvTlt0Lc+59hi21uPmv9s0T7I4G+w91JqpA= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.46.0/go.mod h1:Lkmxo51bNzUfknRHZL1xdFzmjKyVVMwIs1OlMiM2L4A= +go.opentelemetry.io/collector/confmap/xconfmap v0.140.0 h1:rTHo7f3d4h00qCpb4hYnu/+n48sd5Hd4E9KT47QTgZA= +go.opentelemetry.io/collector/confmap/xconfmap v0.140.0/go.mod h1:KInqGVGClR7dDDJLkHsl3riO03et7TaBrGKVD5pD4i0= +go.opentelemetry.io/collector/connector v0.140.0 h1:ciMkEUr/7TcUMjI+KC2pjgSgDjzt07BNgioMl99xqVY= +go.opentelemetry.io/collector/connector v0.140.0/go.mod h1:GBNO5w3Flmj90QIgfXI62u27qSvliBCJ+BYBfFJK6vo= +go.opentelemetry.io/collector/connector/connectortest v0.140.0 h1:LTWV8bvKQ8XhYlOVka9JucNCU2WD+v0i3oAhMWOotL0= +go.opentelemetry.io/collector/connector/connectortest v0.140.0/go.mod h1:+IXVjAamh90j6kPv80pV2Q6U/v8r9N2+Dbe2v2W8tMs= +go.opentelemetry.io/collector/connector/xconnector v0.140.0 h1:SpwXFyUL397TublLGLgujVMMPlnC4yYK4Tc/FnYSzLk= +go.opentelemetry.io/collector/connector/xconnector v0.140.0/go.mod h1:Xp8czwtFGIDgYLurFMTz/rbt2vXJYcEFz9rDuraKSIo= +go.opentelemetry.io/collector/consumer v1.46.0 h1:yG5zCCgbB2d0KobuYNZWdg8fy/HV2cA/ls0fYzVKBQ4= +go.opentelemetry.io/collector/consumer v1.46.0/go.mod h1:3hjV46vdz8zExuTKlxRge3VdeVUr0PJETqIMewKThNc= +go.opentelemetry.io/collector/consumer/consumererror v0.140.0 h1:j1AxSrjGWB68bAqylPJk2GQ06Rl/R2WteUkL7N65LCw= +go.opentelemetry.io/collector/consumer/consumererror v0.140.0/go.mod h1:31ILHb7oLo7I2QYY1e5rKnjZMuT9jr5mMYE1PC+QKSM= +go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.140.0 h1:98XZBUlN0bdZYL3OTriQrS4LJ7+zV4bMuhdkOf7loW0= +go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.140.0/go.mod h1:fGQh2VltKSuxV0HXcHOfAQ3GkqsMUCnTotVY7mVeBhk= +go.opentelemetry.io/collector/consumer/consumertest v0.140.0 h1:t+XjKtQv37k/t/Tkj4D3ocgIHs40gPWl1CHClbBM+A8= +go.opentelemetry.io/collector/consumer/consumertest v0.140.0/go.mod h1:LvDaKM5A7hUg7LWZBqk69sE0q5GrdM8BmLqX6kCP3WQ= +go.opentelemetry.io/collector/consumer/xconsumer v0.140.0 h1:VTTybtJLbGN6aGw1bB7Wn8gS7vrbgnDu6JVvgztczj8= +go.opentelemetry.io/collector/consumer/xconsumer v0.140.0/go.mod h1:CtwSgAXVisCEJ+ElKeDa0yDo/Oie7l1vWAx1elFyWZc= +go.opentelemetry.io/collector/exporter v1.46.0 h1:wCNH6dyG/PFtN40Q4ZCPWXgPuoX44cT9U4TuNVcLUvw= +go.opentelemetry.io/collector/exporter v1.46.0/go.mod h1:EiNU4i+iG0n1FQBkWkwS7Nzd+vjlKsefy1bLHj913EU= +go.opentelemetry.io/collector/exporter/debugexporter v0.140.0 h1:HQKp5FoUIVAPMHGx42zYuVP8jN3ZWUeMIsGBXZrTlto= +go.opentelemetry.io/collector/exporter/debugexporter v0.140.0/go.mod h1:qlKig6kWTr0EvbcOKbe0ueeUxfNeTbNf2pCORzyJRVw= +go.opentelemetry.io/collector/exporter/exporterhelper v0.140.0 h1:Euh2mfLhZoPgccNY++PfX0H3aFwthVFjR38x4RllXcM= +go.opentelemetry.io/collector/exporter/exporterhelper v0.140.0/go.mod h1:0WQCcouhn/efm75++yuzhNj51Q+8kR3HrGDLGjoUrso= +go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.140.0 h1:jyw54m867IaPktvM5tU7T2vA3TY8/9M1de81mvJYa2A= +go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.140.0/go.mod h1:La5T7cyiinV4qxjD/l2MI2FDL30ArKaBp6Lji+RBzm8= +go.opentelemetry.io/collector/exporter/exportertest v0.140.0 h1:WdRm8xXdjMcNnsVQHHTbGxmsp+4MuNMKhS0dR++bKOY= +go.opentelemetry.io/collector/exporter/exportertest v0.140.0/go.mod h1:Bc3/wxba7fjtgjqrj8Axp73TCQ5W5reFb+96LTALWa4= +go.opentelemetry.io/collector/exporter/otlpexporter v0.140.0 h1:BrmgONdfgKTsH7dn9KnrWGmZU4W6GlK2HmzK+Wdht70= +go.opentelemetry.io/collector/exporter/otlpexporter v0.140.0/go.mod h1:zrRTRncS/z/bCYdwwL9yAzl+VGy+NtNKDVz04MDmi3g= +go.opentelemetry.io/collector/exporter/otlphttpexporter v0.140.0 h1:16FzFpiFQCjBxUo56BpWbTG9Li22BR/cSGig0/9Rc80= +go.opentelemetry.io/collector/exporter/otlphttpexporter v0.140.0/go.mod h1:S3Eur9QRIC65eH1XTD+HHw8UfngMxVWJRGX8bAfg64U= +go.opentelemetry.io/collector/exporter/xexporter v0.140.0 h1:snh7CMQy8QDCZMVQG2e3nDrsR5yEwbFc+zIbaFPc7aA= +go.opentelemetry.io/collector/exporter/xexporter v0.140.0/go.mod h1:KIn0RaW66ifb6tXKz5XU+icFBVpn2QDH5QqaKdZDEJA= +go.opentelemetry.io/collector/extension v1.46.0 h1:+ATT9ADkMUR0cRH8J53vU9MRJ9UspRC0B+BqDGW1aRE= +go.opentelemetry.io/collector/extension v1.46.0/go.mod h1:/NGiZQFF7hTyfRULTgtYw27cIW8i0hWUTp12lDftZS0= +go.opentelemetry.io/collector/extension/extensionauth v1.46.0 h1:JvGu9tp+PIPgvXUSSyKMqShtK44ooK6+FAtpBnvaPPc= +go.opentelemetry.io/collector/extension/extensionauth v1.46.0/go.mod h1:6Sh0hqPfPqpg0ErCoNPO/ky2NdfGmUX+G5wekPx7A7U= +go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.140.0 h1:ulNNHU2KJ0RqCIgNl9rMVaVhr25nQhJoF/2iL1G4ZGk= +go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.140.0/go.mod h1:YKsJ4qSu+aX3LyM27GF/A5JsnkjgRrRnduGGw8G7Ov4= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.140.0 h1:TX2w5PGNVTHDn6phZb6W897A9h/9gjtxlSF60C5wIYo= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.140.0/go.mod h1:CjrwUex7ImIBBTSB84XujWDdK/u+NTRsd4DTjbHGMck= +go.opentelemetry.io/collector/extension/extensionmiddleware v0.140.0 h1:L2xKxXWErYvir4k/yaGmz+NDCe7PGBM5ZNjbsOanYRI= +go.opentelemetry.io/collector/extension/extensionmiddleware v0.140.0/go.mod h1:/ub63cgY3YraiJJ3pBuxDnxEzeEXqniuRDQYf6NIBDE= +go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.140.0 h1:qDvDgU+nZrONS/Z2aS3HH8p12bYNzUxKM6eaX1XD7d8= +go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.140.0/go.mod h1:LZvOvHxC9zLkN9kCDMCn0uQrYYR3g3NwPvGTfr4es5k= +go.opentelemetry.io/collector/extension/extensiontest v0.140.0 h1:a4ggfsp73GA9oGCxBtmQJE827SRq36E+YQIZ0MGIKVQ= +go.opentelemetry.io/collector/extension/extensiontest v0.140.0/go.mod h1:TKR1zB0CtJ3tedNyUUaeCw5O2qPlFNjHKmh2ri53uTU= +go.opentelemetry.io/collector/extension/xextension v0.140.0 h1:LnqY52+vPcrp9Sj5wNbtm4FwultDBFuovPGf2Dnzltc= +go.opentelemetry.io/collector/extension/xextension v0.140.0/go.mod h1:avzOyx3eIOr/AYcfsaBF9iMZVJnnp/UsdtJUNemYgcs= +go.opentelemetry.io/collector/extension/zpagesextension v0.140.0 h1:njb8gYyNrskWf0+LlyVGKdKRwtPA2y3a84RFOdlP8cE= +go.opentelemetry.io/collector/extension/zpagesextension v0.140.0/go.mod h1:FnmNkWG8rlBcNU1i/4CjKeUgTBRhpD/jRKHPoENRSu4= +go.opentelemetry.io/collector/filter v0.140.0 h1:h8usn4A6pHZZYyJfPAfoIpHNExyGXgH6ymz9dn7kJYg= +go.opentelemetry.io/collector/filter v0.140.0/go.mod h1:DdKPCbGdwEglYty6XlDJ3bt4xfIbMioP2omKpwTNbDY= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.140.0 h1:lBCDONcWnO7ww1x5NzMUArdP0ovZHJ51X2nlaHqaGbc= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.140.0/go.mod h1:5tfglqCeQ3UguG02VIrp38YCjthhyIGnpaIY85eFCYA= +go.opentelemetry.io/collector/internal/memorylimiter v0.140.0 h1:AW5p72LHogLQUCnlNbV8kxha7rIh6DOKv6ZgmlYQeyQ= +go.opentelemetry.io/collector/internal/memorylimiter v0.140.0/go.mod h1:MX50w0Bq/9kVmO26xoQXm3H8yuldKnl993Iapsa1nvY= +go.opentelemetry.io/collector/internal/sharedcomponent v0.140.0 h1:mioB2WKvm0j94amawyRdANyrPkf9WT1eL0JkYLZTi2M= +go.opentelemetry.io/collector/internal/sharedcomponent v0.140.0/go.mod h1:M9NBHZUWMKOmhnSoPPoagcxDaokOF5hP5gQjTpDPtXg= +go.opentelemetry.io/collector/internal/telemetry v0.140.0 h1:z3vIHK+ZxhvvsqhUvfzVEhPIDt1oucqRbBHB1417rMk= +go.opentelemetry.io/collector/internal/telemetry v0.140.0/go.mod h1:GnSlWnUV+cKFLuF8Qfo2LzPCaxE23fu44BG49J0c9SA= +go.opentelemetry.io/collector/internal/testutil v0.140.0 h1:OgvGiltSMMzFg3I48quBl/cINMxbkSVOfeWUoslDZPU= +go.opentelemetry.io/collector/internal/testutil v0.140.0/go.mod h1:YAD9EAkwh/l5asZNbEBEUCqEjoL1OKMjAMoPjPqH76c= +go.opentelemetry.io/collector/otelcol v0.140.0 h1:vFrqrxA7MeGsc09WTZGzePwMh05dNKUmZkGH4lGYr/U= +go.opentelemetry.io/collector/otelcol v0.140.0/go.mod h1:2t7Nd4gau1WBLqgdDKvGwRxmGl5R0xDxKv8iPVXpLFg= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.140.0 h1:aqqx7oW6ZcBajSxYzuoiZ1gF96S5u8NxyGQOFbUNUG4= +go.opentelemetry.io/collector/otelcol/otelcoltest v0.140.0/go.mod h1:s+10HJ9sbdSKFgImN7iv2T4Wp5OhvaHSyFLHabJYeRs= +go.opentelemetry.io/collector/pdata v1.46.0 h1:XzhnIWNtc/gbOyFiewRvybR4s3phKHrWxL3yc/wVLDo= +go.opentelemetry.io/collector/pdata v1.46.0/go.mod h1:D2e3BWCUC/bUg29WNzCDVN7Ab0Gzk7hGXZL2pnrDOn0= +go.opentelemetry.io/collector/pdata/pprofile v0.140.0 h1:b9TZ6UnyzsT/ERQw2VKGi/NYLtKSmjG7cgQuc9wZt5s= +go.opentelemetry.io/collector/pdata/pprofile v0.140.0/go.mod h1:/2s/YBWGbu+r8MuKu5zas08iSqe+3P6xnbRpfE2DWAA= +go.opentelemetry.io/collector/pdata/testdata v0.140.0 h1:jMhHRS8HbiYwXeElnuTNT+17QGUF+5A5MPgdSOjpJrw= +go.opentelemetry.io/collector/pdata/testdata v0.140.0/go.mod h1:4BZo10Ua0sbxrqMOPzVU4J/EJdE3js472lskyPW4re8= +go.opentelemetry.io/collector/pdata/xpdata v0.140.0 h1:UtPkxKpYWvmLh41EDXPgwL8ZIYcGB9023DIbRR09K58= +go.opentelemetry.io/collector/pdata/xpdata v0.140.0/go.mod h1:yKJQ+zPe6c9teCbRwJ+1kK3Fw+pgtKgDXPLCKleZLJI= +go.opentelemetry.io/collector/pipeline v1.46.0 h1:VFID9aOmX5eeZSj29lgMdX7qg5nLKiXnkKOJXIAu47c= +go.opentelemetry.io/collector/pipeline v1.46.0/go.mod h1:xUrAqiebzYbrgxyoXSkk6/Y3oi5Sy3im2iCA51LwUAI= +go.opentelemetry.io/collector/pipeline/xpipeline v0.140.0 h1:CFX1B6Zj4tVGSPVVxQYa0OtRBCP3QoyDgRd4jC5vRf4= +go.opentelemetry.io/collector/pipeline/xpipeline v0.140.0/go.mod h1:1WQEsQ/QxkXZW7QIR/c+afGIUYqyqb1bsZHyYlar15o= +go.opentelemetry.io/collector/processor v1.46.0 h1:NN4jCwm4lqRUlmR6/pPWp5ccH685+/sUuGevUxuCRMA= +go.opentelemetry.io/collector/processor v1.46.0/go.mod h1:0nNzkog8ctiXYQ6I7Qe+xzsQTQ/P4T4NVRCc3ZXiezg= +go.opentelemetry.io/collector/processor/batchprocessor v0.140.0 h1:4BR+45rKTawPmtC5uBKyEndSKvTH0W4RZRUZ+R5oDQk= +go.opentelemetry.io/collector/processor/batchprocessor v0.140.0/go.mod h1:b4Q+47MtxxbL8hef/Z5/v0z1BEITQTkriJf5Vo2Le4w= +go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.140.0 h1:T3Co7DjKzXRGpHRV0vCZChj1xD2f12Hi+fhY3EIroSY= +go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.140.0/go.mod h1:o8qwqEyjGTfhUSnBVaNRNbzWt2l/VZRyR0Fm7OpmYjc= +go.opentelemetry.io/collector/processor/processorhelper v0.140.0 h1:lS44K53oYJku0X8JLUeDxNBzn27PJGa4dOirMOSxUwA= +go.opentelemetry.io/collector/processor/processorhelper v0.140.0/go.mod h1:yyD4nLKEFkuoJRY10G0ILt1KXYa4/R9XwynJbsaG0Kk= +go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.140.0 h1:uT5RVBKTAakk486OACQyFTsho4DwbLscX5PYOSpl694= +go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.140.0/go.mod h1:/dW7QnRFn824xM4ub4gQLG5VJFnpX3i/vVR6/uoV+RU= +go.opentelemetry.io/collector/processor/processortest v0.140.0 h1:gqJ4lNT5V38vxnZ3OluEHLv/MyYEUZS1VtKXAct0NRg= +go.opentelemetry.io/collector/processor/processortest v0.140.0/go.mod h1:oFuiCdEpWqYcTk/xUDg4Yeo5bHGT2RlUFEv4Q2/MJ4A= +go.opentelemetry.io/collector/processor/xprocessor v0.140.0 h1:RXkf4MQ8+9fq9DFM/7jIOCK78PkwNJTsjY+wx0DFcNI= +go.opentelemetry.io/collector/processor/xprocessor v0.140.0/go.mod h1:IXw71qGZdDwVhdiqWPe7lAf6GGkh3aIXJUGuCfLCDJE= +go.opentelemetry.io/collector/receiver v1.46.0 h1:9bhOJVSlGsrqmBMzD5XPgoNr1lQwep/14jVTK8Cbizk= +go.opentelemetry.io/collector/receiver v1.46.0/go.mod h1:6AXBeYTN2iK2f8yNWPI7gz/3xpDLgF4L5DInhYeWBhE= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.140.0 h1:KDm6CkZFQ7bUGk9Yn3iMbkn9yN4EVNcxUsEa1T1rKEY= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.140.0/go.mod h1:R46912JxGiEVoYyHvpp8E8MFdmY0Yfe/Y6Ta2v51XbA= +go.opentelemetry.io/collector/receiver/receiverhelper v0.140.0 h1:9gtoilHIHQv1DN80kdPkBD5oXbvVz0tS1g2O+AXoRIo= +go.opentelemetry.io/collector/receiver/receiverhelper v0.140.0/go.mod h1:7Uy8O7CmwhEdSwz6eLIhBy45DSgotCTzgogoxARyJwg= +go.opentelemetry.io/collector/receiver/receivertest v0.140.0 h1:emEWENhK/F4REz2zXiHjP0D8ctwvIt6ODc89xZRAOO0= +go.opentelemetry.io/collector/receiver/receivertest v0.140.0/go.mod h1:FAzPSIp3mkKEfHzsrz5VoYEHvWAGRZ1dkkNpXa2K/qM= +go.opentelemetry.io/collector/receiver/xreceiver v0.140.0 h1:E2SUQixisUjzm1Xm5w2j99HOqv6DWe8Jna0OoR/NBWk= +go.opentelemetry.io/collector/receiver/xreceiver v0.140.0/go.mod h1:he6Lbg4S8T8dpwBTGwvRiR6SRMLB6iv0ZTWsOqGZ4iM= +go.opentelemetry.io/collector/scraper v0.140.0 h1:Cb+WLge53tKZsvWQX6+1V1qx5mLcjyIlnmxWCHfWQ8U= +go.opentelemetry.io/collector/scraper v0.140.0/go.mod h1:tmmWBoarWqUQ2LSj+7kArz8G4VJWZWddrbO9t7942Uk= +go.opentelemetry.io/collector/scraper/scraperhelper v0.140.0 h1:vCsno5miJKJt4l0wTKSsIfu3mxywAlnQu+JdHyCIsdE= +go.opentelemetry.io/collector/scraper/scraperhelper v0.140.0/go.mod h1:Xq93GOxVCLo0c5wWynPHM1oa7Q2zHDY8uEHAB5Ue5IA= go.opentelemetry.io/collector/semconv v0.128.1-0.20250610090210-188191247685 h1:XCN7qkZRNzRYfn6chsMZkbFZxoFcW6fZIsZs2aCzcbc= go.opentelemetry.io/collector/semconv v0.128.1-0.20250610090210-188191247685/go.mod h1:OPXer4l43X23cnjLXIZnRj/qQOjSuq4TgBLI76P9hns= -go.opentelemetry.io/collector/service v0.139.0 h1:yz6mAUv+VWES7MkO0Fyq7i6SEvw6haTVq3Wichd9mGc= -go.opentelemetry.io/collector/service v0.139.0/go.mod h1:HWMBdt9r3XIm/UrJEmlyvZ5LoNrZAvI5gIWP+TfRphc= -go.opentelemetry.io/collector/service/hostcapabilities v0.139.0 h1:4y/Pa7cq+pxhelNfUcNbvke/Al1IW4zvNt2E9LUnM7Y= -go.opentelemetry.io/collector/service/hostcapabilities v0.139.0/go.mod h1:pmX6lIpkk0WjwFcJdv8xf5gA0efFWPglk5uRSTSv+Wg= -go.opentelemetry.io/collector/service/telemetry/telemetrytest v0.139.0 h1:b+b0U1sfDzT4eu5wuLbxjg1Ot9qEszUmtM8NsV4yTos= -go.opentelemetry.io/collector/service/telemetry/telemetrytest v0.139.0/go.mod h1:fadcF+Cx45GEg+lNWGfpJNTVu4pAxIdq9+DbNrAs7T8= +go.opentelemetry.io/collector/service v0.140.0 h1:6jU9X9Ovus9kyjuu0kP6pvTBC2nSYZGZuwAuC4sZFkA= +go.opentelemetry.io/collector/service v0.140.0/go.mod h1:Q3wN4LhR0KcKIFYCcg9CI0hzWGi3xCB41Hh0g8HuT24= +go.opentelemetry.io/collector/service/hostcapabilities v0.140.0 h1:hbq0F9rWRnGP6u/Uj8q9VDHlIY4Lv7q9UuJEc7sUxoM= +go.opentelemetry.io/collector/service/hostcapabilities v0.140.0/go.mod h1:noNbrSeRPPSyLXkUs0I4tHzp88gqFMeavSmySdVMrTI= +go.opentelemetry.io/collector/service/telemetry/telemetrytest v0.140.0 h1:H2KL/cioHZHG0ZkaJcSK5qc26yzh1Zh+kwBjyWcORWM= +go.opentelemetry.io/collector/service/telemetry/telemetrytest v0.140.0/go.mod h1:vVqLU6xJes/4zIZuR4RZipb4MLRPr5nzc+KYWp4pkjQ= go.opentelemetry.io/contrib/bridges/otelzap v0.13.0 h1:aBKdhLVieqvwWe9A79UHI/0vgp2t/s2euY8X59pGRlw= go.opentelemetry.io/contrib/bridges/otelzap v0.13.0/go.mod h1:SYqtxLQE7iINgh6WFuVi2AI70148B8EI35DSk0Wr8m4= go.opentelemetry.io/contrib/bridges/prometheus v0.61.0 h1:RyrtJzu5MAmIcbRrwg75b+w3RlZCP0vJByDVzcpAe3M= @@ -2685,12 +2685,12 @@ go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42s go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v1.8.0 h1:fRAZQDcAFHySxpJ1TwlA1cJ4tvcrw7nXl9xWWC8N5CE= go.opentelemetry.io/proto/otlp v1.8.0/go.mod h1:tIeYOeNBU4cvmPqpaji1P+KbB4Oloai8wN4rWzRrFF0= -go.opentelemetry.io/proto/slim/otlp v1.8.0 h1:afcLwp2XOeCbGrjufT1qWyruFt+6C9g5SOuymrSPUXQ= -go.opentelemetry.io/proto/slim/otlp v1.8.0/go.mod h1:Yaa5fjYm1SMCq0hG0x/87wV1MP9H5xDuG/1+AhvBcsI= -go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.1.0 h1:Uc+elixz922LHx5colXGi1ORbsW8DTIGM+gg+D9V7HE= -go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.1.0/go.mod h1:VyU6dTWBWv6h9w/+DYgSZAPMabWbPTFTuxp25sM8+s0= -go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.1.0 h1:i8YpvWGm/Uq1koL//bnbJ/26eV3OrKWm09+rDYo7keU= -go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.1.0/go.mod h1:pQ70xHY/ZVxNUBPn+qUWPl8nwai87eWdqL3M37lNi9A= +go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= +go.opentelemetry.io/proto/slim/otlp v1.9.0/go.mod h1:xXdeJJ90Gqyll+orzUkY4bOd2HECo5JofeoLpymVqdI= +go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.2.0 h1:o13nadWDNkH/quoDomDUClnQBpdQQ2Qqv0lQBjIXjE8= +go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.2.0/go.mod h1:Gyb6Xe7FTi/6xBHwMmngGoHqL0w29Y4eW8TGFzpefGA= +go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.2.0 h1:EiUYvtwu6PMrMHVjcPfnsG3v+ajPkbUeH+IL93+QYyk= +go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.2.0/go.mod h1:mUUHKFiN2SST3AhJ8XhJxEoeVW12oqfXog0Bo8W3Ec4= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -2875,8 +2875,8 @@ golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4Iltr 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.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY= -golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo= +golang.org/x/oauth2 v0.33.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= 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= @@ -2894,8 +2894,8 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= -golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= 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= @@ -3123,8 +3123,8 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.254.0 h1:jl3XrGj7lRjnlUvZAbAdhINTLbsg5dbjmR90+pTQvt4= -google.golang.org/api v0.254.0/go.mod h1:5BkSURm3D9kAqjGvBNgf0EcbX6Rnrf6UArKkwBzAyqQ= +google.golang.org/api v0.256.0 h1:u6Khm8+F9sxbCTYNoBHg6/Hwv0N/i+V94MvkOSor6oI= +google.golang.org/api v0.256.0/go.mod h1:KIgPhksXADEKJlnEoRa9qAII4rXcy40vfI8HRqcU964= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -3171,8 +3171,8 @@ google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9 h1:LvZVVaPE0JSqL+Z google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9/go.mod h1:QFOrLhdAe2PsTp3vQY4quuLKTi9j3XG3r6JPPaw7MSc= google.golang.org/genproto/googleapis/api v0.0.0-20250929231259-57b25ae835d4 h1:8XJ4pajGwOlasW+L13MnEGA8W4115jJySQtVfS2/IBU= google.golang.org/genproto/googleapis/api v0.0.0-20250929231259-57b25ae835d4/go.mod h1:NnuHhy+bxcg30o7FnVAZbXsPHUDQ9qKWAQKCD7VxFtk= -google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 h1:M1rk8KBnUsBDg1oPGHNCxG4vc1f49epmTO7xscSajMk= -google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251103181224-f26f9409b101 h1:tRPGkdGHuewF4UisLzzHHr1spKw92qLM98nIzxbC0wY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251103181224-f26f9409b101/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= diff --git a/third_party/opentelemetry-ebpf-profiler/.cargo/config.toml b/third_party/opentelemetry-ebpf-profiler/.cargo/config.toml new file mode 100644 index 0000000000..62e22294e6 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.cargo/config.toml @@ -0,0 +1,9 @@ +[env] +CC_aarch64_unknown_linux_musl = "aarch64-linux-musl-gcc" +CC_x86_64_unknown_linux_musl = "x86_64-linux-musl-gcc" + +# Zydis CMake config requires a C++ compiler for the test cases but the musl +# toolchain doesn't have one. We simply force the compiler to `g++` here to +# trick CMake into passing the check for a C++ compiler: it isn't actually +# used anyway. +TARGET_CXX = "g++" diff --git a/third_party/opentelemetry-ebpf-profiler/.codespellignore b/third_party/opentelemetry-ebpf-profiler/.codespellignore new file mode 100644 index 0000000000..363ef0ccae --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.codespellignore @@ -0,0 +1,4 @@ +ba +fo +opne +optimyze diff --git a/third_party/opentelemetry-ebpf-profiler/.codespellrc b/third_party/opentelemetry-ebpf-profiler/.codespellrc new file mode 100644 index 0000000000..f7b2940d14 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.codespellrc @@ -0,0 +1,10 @@ +# https://github.com/codespell-project/codespell +[codespell] +builtin = clear,rare,informal +check-filenames = +check-hidden = +ignore-words = .codespellignore +interactive = 1 +skip = .git,AUTHORS.md,go.mod,go.sum,LICENSES,zydis +uri-ignore-words-list = * +write = diff --git a/third_party/opentelemetry-ebpf-profiler/.dockerignore b/third_party/opentelemetry-ebpf-profiler/.dockerignore new file mode 100644 index 0000000000..8ce85d0958 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.dockerignore @@ -0,0 +1,5 @@ +.cache +.git +go +tools/coredump/gdb-sysroot +tools/coredump/modulecache diff --git a/third_party/opentelemetry-ebpf-profiler/.github/CODEOWNERS b/third_party/opentelemetry-ebpf-profiler/.github/CODEOWNERS new file mode 100644 index 0000000000..d77c73df1f --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.github/CODEOWNERS @@ -0,0 +1,17 @@ +##################################################### +# +# List of approvers for this repository +# +##################################################### +# +# Learn about membership in OpenTelemetry community: +# https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md +# +# +# Learn about CODEOWNERS file format: +# https://help.github.com/en/articles/about-code-owners +# + +* @open-telemetry/ebpf-profiler-maintainers @open-telemetry/ebpf-profiler-approvers + +CODEOWNERS @open-telemetry/ebpf-profiler-maintainers diff --git a/third_party/opentelemetry-ebpf-profiler/.github/renovate.json5 b/third_party/opentelemetry-ebpf-profiler/.github/renovate.json5 new file mode 100644 index 0000000000..11fd3694f2 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.github/renovate.json5 @@ -0,0 +1,42 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:best-practices", + "helpers:pinGitHubActionDigestsToSemver" + ], + "postUpdateOptions" : [ + "gomodTidy" + ], + "ignorePaths": ["LICENSES/**"], + "packageRules": [ + { + "groupName": "Go dependencies", + "matchManagers": ["gomod"], + "schedule": ["before 8am every weekday"], + "automerge": true + }, + { + "groupName": "Docker related dependencies", + "matchManagers": ["buildpacks", "devcontainer", "docker-compose", "dockerfile"], + "schedule": ["before 8am every weekday"], + "automerge": true + }, + { + "groupName": "GitHub Actions", + "matchManagers": ["github-actions"], + "schedule": ["before 8am every weekday"], + "automerge": true + }, + { + "groupName": "Rust dependencies", + "matchManagers": ["cargo"], + "schedule": ["before 8am every weekday"] + } + ], + "ignoreDeps": [ + "golangci/golangci-lint-action" + ], + "labels": [ + "dependencies" + ] +} diff --git a/third_party/opentelemetry-ebpf-profiler/.github/workflows/auto-tag.yml b/third_party/opentelemetry-ebpf-profiler/.github/workflows/auto-tag.yml new file mode 100644 index 0000000000..0eda268c6c --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.github/workflows/auto-tag.yml @@ -0,0 +1,36 @@ +name: Monthly Tagging +on: + workflow_dispatch: # Allows manual triggering of the workflow + schedule: + # Run every month on the 3rd day at 08:15 AM. + - cron: '15 8 3 * *' + +permissions: + contents: read + +jobs: + create-monthly-tag: + permissions: + contents: write # required for pushing git tags + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + + - name: Configure Git + run: | + git config user.name "${GITHUB_ACTOR}" + git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" + + - name: Get current year and week number + id: date + run: | + echo "tag_name=v0.0.$(date +%G%V)" >> "$GITHUB_OUTPUT" + + - name: Create and push tag + run: | + TAG_NAME="${{ steps.date.outputs.tag_name }}" + # Create an annotated tag on the latest commit of the current branch (main) + git tag -a $TAG_NAME -m "$TAG_NAME" + # Push the newly created tag to the remote repository + git push origin $TAG_NAME diff --git a/third_party/opentelemetry-ebpf-profiler/.github/workflows/codeql.yml b/third_party/opentelemetry-ebpf-profiler/.github/workflows/codeql.yml new file mode 100644 index 0000000000..f21d650142 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.github/workflows/codeql.yml @@ -0,0 +1,44 @@ +name: "CodeQL" + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + schedule: + - cron: "21 6 * * 1" + +permissions: read-all + +jobs: + analyze: + permissions: + security-events: write # for github/codeql-action/analyze to upload SARIF results + name: Analyze Go (${{ matrix.target_arch }}) + if: ${{ github.actor != 'dependabot[bot]' && github.repository == 'open-telemetry/opentelemetry-ebpf-profiler' }} + runs-on: ubuntu-24.04 + strategy: + matrix: + target_arch: [amd64, arm64] + steps: + - name: Checkout repository + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: 'false' + - name: Set up environment + uses: ./.github/workflows/env + + - name: Initialize CodeQL + uses: github/codeql-action/init@16140ae1a102900babc80a33c44059580f687047 # v4.30.9 + with: + languages: go + + - name: Build Artifact + run: | + make TARGET_ARCH=${{ matrix.target_arch }} + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@16140ae1a102900babc80a33c44059580f687047 # v4.30.9 + with: + category: "/language:Go" + timeout-minutes: 10 diff --git a/third_party/opentelemetry-ebpf-profiler/.github/workflows/codespell.yml b/third_party/opentelemetry-ebpf-profiler/.github/workflows/codespell.yml new file mode 100644 index 0000000000..4c856a624d --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.github/workflows/codespell.yml @@ -0,0 +1,20 @@ +name: codespell +on: + push: + branches: + - main + pull_request: +permissions: + contents: read +jobs: + codespell: + runs-on: ubuntu-latest + steps: + - name: Install codespell + run: sudo apt-get install codespell + - name: Checkout Repo + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: 'false' + - name: Codespell + run: make codespell diff --git a/third_party/opentelemetry-ebpf-profiler/.github/workflows/collector-tests.yml b/third_party/opentelemetry-ebpf-profiler/.github/workflows/collector-tests.yml new file mode 100644 index 0000000000..be88f71cf1 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.github/workflows/collector-tests.yml @@ -0,0 +1,50 @@ +name: Collector Tests +on: + workflow_dispatch: + schedule: + # Run every day at 3:15 AM. + - cron: '15 3 * * *' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref_name }} + cancel-in-progress: true + +permissions: + contents: read + issues: write + +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - name: Set up environment + uses: ./.github/workflows/env + with: + skip_rust: true + - name: Cache coredump modules + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 + with: + path: tools/coredump/modulecache + key: coredumps-collector-${{ hashFiles('tools/coredump/testdata/*/*.json') }} + restore-keys: | + coredumps-collector + coredumps- + - name: Clone Collector + run: | + collector_path=/tmp/opentelemetry-collector + git clone --depth=1 https://github.com/open-telemetry/opentelemetry-collector.git $collector_path + - name: Setup replace statement + run: | + COLLECTOR_PATH=/tmp/opentelemetry-collector ./support/local-collector.sh + go mod tidy + - name: Tests + run: make test-junit + - name: Generate Issue + if: failure() + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + go install go.opentelemetry.io/build-tools/issuegenerator@latest + issuegenerator -path /tmp/testresults diff --git a/third_party/opentelemetry-ebpf-profiler/.github/workflows/env/action.yml b/third_party/opentelemetry-ebpf-profiler/.github/workflows/env/action.yml new file mode 100644 index 0000000000..62553951b6 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.github/workflows/env/action.yml @@ -0,0 +1,64 @@ +name: Common environment setup + +inputs: + skip_rust: + description: 'Set to true to skip installing Rust toolchains' + required: false + type: boolean + default: false + +runs: + using: composite + steps: + - name: Install dependencies + shell: bash + run: | + # Ubuntu has ARM64 packages in an entirely different repo, so we can't just + # `dpkg --add-architecture arm64` here: we have to add a custom sources.list first. + sudo tee /etc/apt/sources.list.d/ubuntu.sources < /dev/null + Types: deb + URIs: http://azure.archive.ubuntu.com/ubuntu/ + Suites: noble noble-updates noble-backports + Components: main universe restricted multiverse + Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg + Architectures: amd64 + + Types: deb + URIs: http://azure.ports.ubuntu.com/ubuntu-ports/ + Suites: noble noble-updates noble-backports + Components: main universe restricted multiverse + Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg + Architectures: arm64 + EOF + + sudo dpkg --add-architecture arm64 + sudo apt-get update -y + + sudo apt-get install -y curl unzip gcc-aarch64-linux-gnu \ + libc6-arm64-cross qemu-user-binfmt libc6:arm64 \ + musl-dev:amd64 musl-dev:arm64 musl-tools binutils-aarch64-linux-gnu + - name: Set up Go + uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0 + with: + go-version-file: go.mod + cache-dependency-path: go.sum + id: go + - name: Install Rust + if: ${{ inputs.skip_rust == false }} + uses: dtolnay/rust-toolchain@888c2e1ea69ab0d4330cbf0af1ecc7b68f368cc1 + with: + targets: x86_64-unknown-linux-musl,aarch64-unknown-linux-musl + toolchain: 1.77 + - name: Install protoc + shell: bash + env: + PB_URL: "https://github.com/protocolbuffers/protobuf/releases/download/v24.4/" + PB_FILE: "protoc-24.4-linux-x86_64.zip" + INSTALL_DIR: "/usr/local" + run: | + wget -nv "$PB_URL/$PB_FILE" + sudo unzip "$PB_FILE" -d "$INSTALL_DIR" 'bin/*' 'include/*' + sudo chmod +xr "$INSTALL_DIR/bin/protoc" + sudo find "$INSTALL_DIR/include" -type d -exec chmod +x {} \; + sudo find "$INSTALL_DIR/include" -type f -exec chmod +r {} \; + rm "$PB_FILE" diff --git a/third_party/opentelemetry-ebpf-profiler/.github/workflows/fossa.yml b/third_party/opentelemetry-ebpf-profiler/.github/workflows/fossa.yml new file mode 100644 index 0000000000..d7ce801358 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.github/workflows/fossa.yml @@ -0,0 +1,22 @@ +name: FOSSA scanning + +on: + push: + branches: + - main + +permissions: + contents: read + +jobs: + fossa: + runs-on: ubuntu-latest + if: github.repository == 'open-telemetry/opentelemetry-ebpf-profiler' + steps: + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: 'false' + - uses: fossas/fossa-action@3ebcea1862c6ffbd5cf1b4d0bd6b3fe7bd6f2cac # v1.7.0 + with: + api-key: ${{secrets.FOSSA_API_KEY}} + team: OpenTelemetry diff --git a/third_party/opentelemetry-ebpf-profiler/.github/workflows/ossf-scorecard.yml b/third_party/opentelemetry-ebpf-profiler/.github/workflows/ossf-scorecard.yml new file mode 100644 index 0000000000..c81f3e8306 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.github/workflows/ossf-scorecard.yml @@ -0,0 +1,47 @@ +name: OSSF Scorecard + +on: + push: + branches: + - main + schedule: + - cron: "31 6 * * 4" # once a week + workflow_dispatch: + +permissions: read-all + +jobs: + analysis: + runs-on: ubuntu-latest + permissions: + # Needed for Code scanning upload + security-events: write + # Needed for GitHub OIDC token if publish_results is true + id-token: write + steps: + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false + + - uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3 + with: + results_file: results.sarif + results_format: sarif + publish_results: true + + # Upload the results as artifacts (optional). Commenting out will disable + # uploads of run results in SARIF format to the repository Actions tab. + # https://docs.github.com/en/actions/advanced-guides/storing-workflow-data-as-artifacts + - name: "Upload artifact" + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: SARIF file + path: results.sarif + retention-days: 5 + + # Upload the results to GitHub's code scanning dashboard (optional). + # Commenting out will disable upload of results to your repo's Code Scanning dashboard + - name: "Upload to code-scanning" + uses: github/codeql-action/upload-sarif@16140ae1a102900babc80a33c44059580f687047 # v4.30.9 + with: + sarif_file: results.sarif diff --git a/third_party/opentelemetry-ebpf-profiler/.github/workflows/push-docker-image.yml b/third_party/opentelemetry-ebpf-profiler/.github/workflows/push-docker-image.yml new file mode 100644 index 0000000000..1d2584f0cf --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.github/workflows/push-docker-image.yml @@ -0,0 +1,41 @@ +name: "Update builder docker image" + +on: + workflow_dispatch: # Allows manual triggering of the workflow + push: + branches: ["main"] + paths: + - "Dockerfile" + +permissions: + contents: read + +jobs: + build-and-push: + runs-on: ubuntu-latest + if: github.repository == 'open-telemetry/opentelemetry-ebpf-profiler' + steps: + - name: Checkout code + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: 'false' + - name: Login to Docker Hub + uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Set up QEMU + uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 + - name: Set current timestamp tag + id: tag + run: | + echo "tag=$(date +%Y%m%d%H%M)" >> $GITHUB_OUTPUT + - name: Build and push + uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 + with: + push: true + file: Dockerfile + platforms: linux/amd64,linux/arm64 + tags: otel/opentelemetry-ebpf-profiler-dev:latest,otel/opentelemetry-ebpf-profiler-dev:${{ steps.tag.outputs.tag }} diff --git a/third_party/opentelemetry-ebpf-profiler/.github/workflows/unit-test-on-pull-request.yml b/third_party/opentelemetry-ebpf-profiler/.github/workflows/unit-test-on-pull-request.yml new file mode 100644 index 0000000000..cbf503edbb --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.github/workflows/unit-test-on-pull-request.yml @@ -0,0 +1,236 @@ +name: CI +on: + push: + branches: [main] + pull_request: + branches: ["**"] + +permissions: + contents: read + +jobs: + legal: + name: Check licenses of dependencies + runs-on: ubuntu-24.04 + steps: + - name: Clone code + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: 'false' + - name: Set up environment + uses: ./.github/workflows/env + - name: Check for changes in licenses of dependencies + run: | + make legal + if [ -n "$(git status --porcelain)" ]; then + echo "run \"make legal\"." + exit 1 + fi + lint: + name: Lint (${{ matrix.target_arch }}) + runs-on: ubuntu-24.04 + strategy: + matrix: + target_arch: [amd64, arm64] + steps: + - name: Clone code + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: 'false' + - name: Set up environment + uses: ./.github/workflows/env + - name: Get linter version + id: linter-version + run: (echo -n "version="; make linter-version) >> "$GITHUB_OUTPUT" + - name: linter + env: + GOARCH: ${{ matrix.target-arch }} + CGO_ENABLED: 1 + run: | + sudo apt update + sudo apt install -y clang-format-17 + make lint + + test: + name: Test (${{ matrix.target_arch }}) + runs-on: ubuntu-24.04 + strategy: + matrix: + target_arch: [amd64, arm64] + steps: + - name: Clone code + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: 'false' + - name: Set up environment + uses: ./.github/workflows/env + with: + skip_rust: true + - name: Cache coredump modules + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 + with: + path: tools/coredump/modulecache + key: coredumps-${{ matrix.target_arch }}-${{ hashFiles('tools/coredump/testdata/*/*.json') }} + restore-keys: | + coredumps-${{ matrix.target_arch }} + coredumps- + - name: Tests + run: make test TARGET_ARCH=${{ matrix.target_arch }} + + rust-test: + name: Rust Tests (${{ matrix.target_arch }}) + runs-on: ubuntu-24.04 + strategy: + matrix: + target_arch: [amd64, arm64] + steps: + - name: Clone code + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - name: Set up environment + uses: ./.github/workflows/env + - name: Tests + run: make rust-tests + + check-binary-blobs: + name: Check for differences in the eBPF binary blobs + runs-on: ubuntu-24.04 + container: otel/opentelemetry-ebpf-profiler-dev:latest@sha256:6ab9b5ff6c2a457be97a389887caf9f3cd5344f760fdab0101b9965236bbb2db + defaults: + run: + shell: bash --login {0} + steps: + - name: Clone code + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: 'false' + - name: Hash binary blobs + run: | + sha256sum support/ebpf/tracer.ebpf.* > binary-blobs.hash + - name: Rebuild eBPF blobs + run: | + rm support/ebpf/tracer.ebpf.* + make amd64 -C support/ebpf + make arm64 -C support/ebpf + - name: Check for differences + run: | + if ! sha256sum --check binary-blobs.hash; then + echo "Please rebuild and commit the updated binary blobs." + exit 1 + fi + - if: failure() + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: binary-blobs + path: support/ebpf/tracer.ebpf.* + + build-integration-test-binaries: + name: Build integration test binaries (${{ matrix.target_arch }}) + runs-on: ubuntu-24.04 + timeout-minutes: 10 + strategy: + matrix: + target_arch: [amd64, arm64] + steps: + - name: Clone code + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: 'false' + - name: Set up environment + uses: ./.github/workflows/env + - name: Prepare integration test binaries for qemu tests + run: make integration-test-binaries TARGET_ARCH=${{ matrix.target_arch }} + - run: ls -ltr support + - name: Upload integration test binaries + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: integration-test-binaries-${{ matrix.target_arch }} + path: support/*.test + + coredump-test-macos: + name: Coredump tests (macOS) + runs-on: macos-latest + steps: + - name: Clone code + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - name: Set up Go + uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0 + with: + go-version-file: go.mod + cache-dependency-path: go.sum + - name: Cache coredump modules + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 + with: + path: tools/coredump/modulecache + key: coredumps-arm64-${{ hashFiles('tools/coredump/testdata/*/*.json') }} + restore-keys: | + coredumps-arm64 + coredumps- + - name: Run coredump tests + run: GODEBUG=asyncpreemptoff=1 go test -v ./tools/coredump/ + + integration-tests: + name: Integration tests (v${{ matrix.kernel }} ${{ matrix.target_arch }}) + runs-on: ubuntu-24.04 + needs: build-integration-test-binaries + timeout-minutes: 10 + strategy: + matrix: + include: + # List of available kernels here: + # https://github.com/cilium/ci-kernels/pkgs/container/ci-kernels/versions?filters%5Bversion_type%5D=tagged + + # AMD64 + - { target_arch: amd64, kernel: 5.4.276 } + - { target_arch: amd64, kernel: 5.10.217 } + - { target_arch: amd64, kernel: 5.15.159 } + - { target_arch: amd64, kernel: 6.1.91 } + - { target_arch: amd64, kernel: 6.6.31 } + - { target_arch: amd64, kernel: 6.8.10 } + - { target_arch: amd64, kernel: 6.9.1 } + - { target_arch: amd64, kernel: 6.12.16 } + - { target_arch: amd64, kernel: 6.16 } + + # ARM64 (NOTE: older ARM64 kernels are not available in Cilium repos) + - { target_arch: arm64, kernel: 6.6.31 } + - { target_arch: arm64, kernel: 6.8.4 } + - { target_arch: arm64, kernel: 6.9.1 } + - { target_arch: arm64, kernel: 6.12.16 } + # qemu has a bug that prevents booting the following kernel on ARM, + # fixed in qemu 9.2 + #- { target_arch: arm64, kernel: 6.16 } + steps: + - name: Clone code + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: 'false' + - name: Install dependencies + run: | + sudo apt-get update -y && sudo apt-get -y install file + case "${{ matrix.target_arch }}" in + amd64) sudo apt-get -y install qemu-system-x86;; + arm64) sudo apt-get -y install qemu-system-arm;; + *) echo >&2 "bug: bad arch selected"; exit 1;; + esac + go install github.com/florianl/bluebox@v0.0.1 + sudo mv ~/go/bin/bluebox /usr/local/bin/. + - name: Fetch integration test binaries + uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 + with: { name: "integration-test-binaries-${{ matrix.target_arch }}" } + - name: Fetch precompiled kernel + run: | + install -d ci-kernels + echo "FROM ghcr.io/cilium/ci-kernels:${{ matrix.kernel }}" \ + | docker buildx build --platform linux/${{ matrix.target_arch }} \ + --quiet --pull --output="ci-kernels" - + mv ci-kernels/boot/ ci-kernels/${{ matrix.kernel }}/ + - name: Test on kernel ${{ matrix.kernel }} + run: | + ls -ltr *.test + file *test + chmod a+rx *.test + case "${{ matrix.target_arch }}" in + amd64) export QEMU_ARCH=x86_64;; + arm64) export QEMU_ARCH=aarch64;; + *) echo >&2 "bug: bad arch selected"; exit 1;; + esac + support/run-tests.sh ${{ matrix.kernel }} diff --git a/third_party/opentelemetry-ebpf-profiler/.gitignore b/third_party/opentelemetry-ebpf-profiler/.gitignore new file mode 100644 index 0000000000..69529cb61c --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.gitignore @@ -0,0 +1,11 @@ +.idea/ +*.o +*.d +*.pb.go +.cache +/.idea +/go +ebpf-profiler +ci-kernels +# Ignore target directory +target/* diff --git a/third_party/opentelemetry-ebpf-profiler/.golangci.yml b/third_party/opentelemetry-ebpf-profiler/.golangci.yml new file mode 100644 index 0000000000..37f3adee30 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/.golangci.yml @@ -0,0 +1,147 @@ +version: "2" + +formatters: + enable: + - gofmt + - goimports + settings: + gofmt: + # simplify code: gofmt with `-s` option, true by default + simplify: true + goimports: + # put imports beginning with prefix after 3rd-party packages; + # it's a comma-separated list of prefixes + local-prefixes: + - github.com/open-telemetry/opentelemetry-ebpf-profiler + +run: + timeout: 10m + build-tags: + - integration + - linux + +linters: + default: all + disable: + # Disabled because of + # - too many non-sensical warnings + # - not relevant for us + # - false positives + # + # "might be worth fixing" means we should investigate/fix in the mid term + - containedctx # might be worth fixing + - contextcheck # might be worth fixing + - cyclop + - depguard + - dupword + - durationcheck # might be worth fixing + - err113 + - errcheck + - errorlint # might be worth fixing + - exhaustive + - exhaustruct + - forbidigo + - forcetypeassert # might be worth fixing + - funlen + - funcorder + - gochecknoglobals + - gochecknoinits + - gocognit + - goconst + - gocyclo + - godot + - godox # complains about TODO etc + - gomoddirectives + - gosmopolitan + - inamedparam + - interfacebloat + - ireturn + - maintidx + - makezero + - mnd + - nestif + - nilerr # might be worth fixing + - nilnil + - nlreturn + - noctx # might be worth fixing + - nonamedreturns + - paralleltest + - protogetter + - sqlclosecheck # might be worth fixing + - staticcheck + - tagalign + - tagliatelle + - testableexamples # might be worth fixing + - testpackage + - tparallel # might be worth fixing + - thelper + - varnamelen + - wastedassign + - wsl + - wrapcheck + # we don't want to change code to Go 1.22+ yet + - intrange + - copyloopvar + + exclusions: + paths: + - design-docs + - doc + - LICENSES + - target + - go + + settings: + goconst: + min-len: 2 + min-occurrences: 2 + gocritic: + enabled-tags: + - diagnostic + - experimental + - opinionated + - performance + - style + disabled-checks: + - dupImport # https://github.com/go-critic/go-critic/issues/845 + - ifElseChain + - whyNoLint + - sloppyReassign + - uncheckedInlineErr # experimental rule with high false positive rate. + - importShadow # shadow of imported package + gocyclo: + min-complexity: 15 + gosec: + excludes: + - G103 # unsafe calls should be audited + - G115 # integer overflow + - G204 # subprocess launched with variable + - G301 # directory permissions + - G302 # file permissions + - G304 # potential file inclusion via variable + govet: + enable-all: true + disable: + - fieldalignment + - unsafeptr + settings: + printf: # analyzer name, run `go tool vet help` to see all analyzers + funcs: # run `go tool vet help printf` to see available settings for `printf` analyzer + - debug,debugf,debugln + - error,errorf,errorln + - fatal,fatalf,fataln + - info,infof,infoln + - log,logf,logln + - warn,warnf,warnln + - print,printf,println,sprint,sprintf,sprintln,fprint,fprintf,fprintln + lll: + line-length: 100 + tab-width: 4 + misspell: + locale: US + ignore-rules: + - rela + revive: + rules: + - name: unexported-naming + disabled: true diff --git a/third_party/opentelemetry-ebpf-profiler/AUTHORS.md b/third_party/opentelemetry-ebpf-profiler/AUTHORS.md new file mode 100644 index 0000000000..7d101c33a4 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/AUTHORS.md @@ -0,0 +1,27 @@ +## Open-Source contributors + +For contributors statistics that occurred after the profiling agent was open sourced, please refer to [the GitHub statistics](https://github.com/open-telemetry/opentelemetry-ebpf-profiler/graphs/contributors). + +## Pre-OSS Optimyze/Elastic contributors + +- [@amannocci](https://github.com/amannocci) +- [@athre0z](https://github.com/athre0z) +- [@cauemarcondes](https://github.com/cauemarcondes) +- [@christos68k](https://github.com/christos68k) +- [@danielmitterdorfer](https://github.com/danielmitterdorfer) +- [@dmathieu](https://github.com/dmathieu) +- [@fabled](https://github.com/fabled) +- [@florianl](https://github.com/florianl) +- [@inge4pres](https://github.com/inge4pres) +- [@iogbole](https://github.com/iogbole) +- [@jbcrail](https://github.com/jbcrail) +- [@joerowell](https://github.com/joerowell) +- [@kruskall](https://github.com/kruskall) +- [@mejofi](https://github.com/mejofi) +- [@reakaleek](https://github.com/reakaleek) +- [@rockdaboot](https://github.com/rockdaboot) +- [@sboomsma](https://github.com/sboomsma) +- [@SeanHeelan](https://github.com/SeanHeelan) +- [@thomasdullien](https://github.com/thomasdullien) +- [@v1v](https://github.com/v1v) +- [@vikmik](https://github.com/vikmik) diff --git a/third_party/opentelemetry-ebpf-profiler/CONTRIBUTING.md b/third_party/opentelemetry-ebpf-profiler/CONTRIBUTING.md new file mode 100644 index 0000000000..73b9cbcd46 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/CONTRIBUTING.md @@ -0,0 +1,161 @@ +# Contributing to opentelemetry-ebpf-profiler + +The Profiling special interest group (SIG) meets regularly. See the +OpenTelemetry +[community](https://github.com/open-telemetry/community) +repo for information on this and other SIGs. + +## Community + +See the [public meeting +notes](https://docs.google.com/document/d/19UqPPPlGE83N37MhS93uRlxsP1_wGxQ33Qv6CDHaEp0/edit#heading=h.4rdgawyis2hd) +for a summary description of past meetings. + +See the [calendar +group](https://groups.google.com/a/opentelemetry.io/g/calendar-profiling) to +get invited to meetings. + +See the [#otel-profiles](https://cloud-native.slack.com/archives/C03J794L0BV) +slack channel for discussions and questions. + +## Pre-requisites + +- Linux (5.4+ for x86-64, 5.5+ for ARM64) with eBPF enabled (the profiler currently only runs on Linux) +- Go as specified in [go.mod](https://github.com/open-telemetry/opentelemetry-ebpf-profiler/blob/main/go.mod) +- docker +- Rust as specified in [Cargo.toml](https://github.com/open-telemetry/opentelemetry-ebpf-profiler/blob/main/Cargo.toml) + +## Development + +You can view and edit the source code by cloning this repository: + +```sh +git clone https://github.com/open-telemetry/opentelemetry-ebpf-profiler +``` + +Run `make test` to run the tests instead of `go test`. + + +## Pull Requests + +### How to Send Pull Requests + +Everyone is welcome to contribute code to `opentelemetry-ebpf-profiler` via +GitHub pull requests (PRs). + +To create a new PR, fork the project in GitHub and clone the upstream +repo: + +```sh +git clone https://github.com/open-telemetry/opentelemetry-ebpf-profiler +``` + +This will put the project in `opentelemetry-ebpf-profiler` in +current working directory. + +Enter the newly created directory and add your fork as a new remote: + +```sh +git remote add git@github.com:/opentelemetry-ebpf-profiler +``` + +Check out a new branch, make modifications, run linters and tests, and push the +branch to your fork: + +```sh +git checkout -b +# edit files +# update changelog +git add -p +git commit +git push +``` + +Open a pull request against the main `opentelemetry-ebpf-profiler` repo. + +Avoid rebasing and force-pushing to your branch to facilitate reviewing the +pull request. +Rewriting Git history makes it difficult to keep track of iterations during +code review. +All pull requests are squashed to a single commit upon merge to `main`. + +### How to Receive Comments + +* If the PR is not ready for review, please put `[WIP]` in the title, + tag it as `work-in-progress`, or mark it as + [`draft`](https://github.blog/2019-02-14-introducing-draft-pull-requests/). +* Make sure CLA is signed and CI is clear. + +### How to Get PRs Merged + +A PR is considered **ready to merge** when: + +* It has received two qualified approvals[^1]. + + This is not enforced through automation, but needs to be validated by the + maintainer merging. + * PRs introducing changes that have already been discussed and consensus + reached only need one qualified approval. The discussion and resolution + needs to be linked to the PR. + +* All feedback has been addressed. + * All PR comments and suggestions are resolved. + * All GitHub Pull Request reviews with a status of "Request changes" have + been addressed. Another review by the objecting reviewer with a different + status can be submitted to clear the original review, or the review can be + dismissed by a [Maintainer] when the issues from the original review have + been addressed. + * Any comments or reviews that cannot be resolved between the PR author and + reviewers can be submitted to the community [Approver]s and [Maintainer]s + during the weekly SIG meeting. If consensus is reached among the + [Approver]s and [Maintainer]s during the SIG meeting the objections to the + PR may be dismissed or resolved or the PR closed by a [Maintainer]. + * Any substantive changes to the PR require existing Approval reviews be + cleared unless the approver explicitly states that their approval persists + across changes. This includes changes resulting from other feedback. + [Approver]s and [Maintainer]s can help in clearing reviews and they should + be consulted if there are any questions. + +* The PR branch is up to date with the base branch it is merging into. + * To ensure this does not block the PR, it should be configured to allow + maintainers to update it. + +* It has been open for review for at least one working day. This gives people + reasonable time to review. + +* All required GitHub workflows have succeeded. +* Urgent fix can take exception as long as it has been actively communicated + among [Maintainer]s. + +Any [Maintainer] can merge the PR once the above criteria have been met. + +[^1]: A qualified approval is a GitHub Pull Request review with "Approve" + status from an OpenTelemetry Profiler [Approver] or [Maintainer]. + +## Approvers and Maintainers + +### Maintainers + +- [Christos Kalkanis](https://github.com/christos68k), Elastic +- [Dmitry Filimonov](https://github.com/petethepig), Pyroscope/Grafana +- [Felix Geisendörfer](https://github.com/felixge), Datadog +- [Timo Teräs](https://github.com/fabled) + +For more information about the maintainer role, see the [community repository](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#maintainer). + +### Approvers + +- [Damien Mathieu](https://github.com/dmathieu), Elastic +- [Florian Lehner](https://github.com/florianl), Elastic +- [Joel Höner](https://github.com/athre0z) +- [Tim Rühsen](https://github.com/rockdaboot), Elastic + +For more information about the approver role, see the [community repository](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#approver). + +### Become an Approver or a Maintainer + +See the [community membership document in OpenTelemetry community +repo](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md). + +[Approver]: #approvers +[Maintainer]: #maintainers diff --git a/third_party/opentelemetry-ebpf-profiler/Cargo.lock b/third_party/opentelemetry-ebpf-profiler/Cargo.lock new file mode 100644 index 0000000000..705b9eec7e --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/Cargo.lock @@ -0,0 +1,784 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" + +[[package]] +name = "cc" +version = "1.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" +dependencies = [ + "jobserver", + "libc", + "once_cell", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cmake" +version = "0.1.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" +dependencies = [ + "cc", +] + +[[package]] +name = "cpp_demangle" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcc405d55da54ad965aff198909afdcc8aeefc8ac6ba26d6abd19aa8aeacb2a" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "either" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "fallible-iterator" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi", +] + +[[package]] +name = "gimli" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" +dependencies = [ + "fallible-iterator", + "stable_deref_trait", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "indexmap" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "intervaltree" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "270bc34e57047cab801a8c871c124d9dc7132f6473c6401f645524f4e6edd111" +dependencies = [ + "smallvec", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "jobserver" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +dependencies = [ + "libc", +] + +[[package]] +name = "libc" +version = "0.2.172" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" + +[[package]] +name = "linux-raw-sys" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" + +[[package]] +name = "lru" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96051b46fc183dc9cd4a223960ef37b9af631b55191852a8274bfef064cda20f" + +[[package]] +name = "memchr" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" + +[[package]] +name = "memmap2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" +dependencies = [ + "libc", +] + +[[package]] +name = "miniz_oxide" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "multimap" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" + +[[package]] +name = "object" +version = "0.37.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "prettyplease" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro2" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prost" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" +dependencies = [ + "heck", + "itertools", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "prost-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" +dependencies = [ + "prost", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + +[[package]] +name = "regex" +version = "1.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "rustc-demangle" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" + +[[package]] +name = "rustix" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "serde" +version = "1.0.223" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a505d71960adde88e293da5cb5eda57093379f64e61cf77bf0e6a63af07a7bac" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.223" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20f57cbd357666aa7b3ac84a90b4ea328f1d4ddb6772b430caa5d9e1309bb9e9" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.223" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d428d07faf17e306e699ec1e91996e5a165ba5d6bce5b5155173e91a8a01a56" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", + "serde_core", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "symblib" +version = "0.0.0" +dependencies = [ + "base64", + "cpp_demangle", + "fallible-iterator", + "flate2", + "gimli", + "intervaltree", + "lru", + "memmap2", + "object", + "prost", + "prost-build", + "rustc-demangle", + "sha2", + "smallvec", + "tempfile", + "thiserror", + "zstd", + "zydis", +] + +[[package]] +name = "symblib-capi" +version = "0.0.0" +dependencies = [ + "fallible-iterator", + "serde_json", + "symblib", + "tempfile", + "thiserror", +] + +[[package]] +name = "syn" +version = "2.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tempfile" +version = "3.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +dependencies = [ + "fastrand", + "getrandom", + "once_cell", + "rustix", + "windows-sys", +] + +[[package]] +name = "thiserror" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags", +] + +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd99b45c6bc03a018c8b8a86025678c87e55526064e38f9df301989dce7ec0a" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.10+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "zydis" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0395dcbec9d43ff14811624d4876db7a4a51d1ed73ce3f9e89d14a7e4eeb9ae1" +dependencies = [ + "bitflags", + "cmake", +] diff --git a/third_party/opentelemetry-ebpf-profiler/Cargo.toml b/third_party/opentelemetry-ebpf-profiler/Cargo.toml new file mode 100644 index 0000000000..d16debe5a1 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/Cargo.toml @@ -0,0 +1,76 @@ +# Rust workspace. Allows command like `cargo test` to work anywhere within the +# repo and ensures that all components use the same dependency versions +# (global Cargo.lock). + +[workspace] +members = [ + "rust-crates/symblib", + "rust-crates/symblib-capi", +] +resolver = "2" + +[workspace.package] +version = "0.0.0" +rust-version = "1.77" +license = "Apache-2.0" + +[profile.release] +lto = "thin" +codegen-units = 1 +panic = "abort" +opt-level = 3 +strip = "debuginfo" + +[profile.release-unstripped] +inherits = "release" +strip = false +debug = 1 + +[profile.release-with-asserts] +inherits = "release-unstripped" +overflow-checks = true +debug-assertions = true + +[profile.test] +opt-level = 1 # default of 0 is annoyingly slow + +[workspace.dependencies] +argh = "0.1" +base64 = "0.22.0" +cpp_demangle = "0.5" +fallible-iterator = "0.3" +flate2 = "1" +memmap2 = "0.9.0" +native-tls = "0.2" +prost = "0.14.0" +prost-build = "0.14.0" +rustc-demangle = "0.1" +serde_json = "1" +sha2 = "0.10" +tempfile = "3" +thiserror = "2" +zstd = "0.13.0" +zydis = "4.1.1" + +[workspace.dependencies.gimli] +version = "0.32.0" +default-features = false +features = ["std", "endian-reader", "fallible-iterator"] + +[workspace.dependencies.intervaltree] +version = "0.2" +default-features = false +features = ["std"] + +[workspace.dependencies.lru] +version = "0.16.0" +default-features = false + +[workspace.dependencies.object] +version = "0.37.0" +default-features = false +features = ["std", "read_core", "elf", "macho", "unaligned"] + +[workspace.dependencies.smallvec] +version = "1" +features = ["const_new", "union", "const_generics", "write"] diff --git a/third_party/opentelemetry-ebpf-profiler/Dockerfile b/third_party/opentelemetry-ebpf-profiler/Dockerfile new file mode 100644 index 0000000000..c16d66a7e8 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/Dockerfile @@ -0,0 +1,71 @@ +FROM debian:testing-20250721-slim@sha256:aaa28744f5b892a7ccc3e97c0e9b9cdd0fcc447227efaf9e54080801b990f973 + +WORKDIR /agent + +RUN dpkg --add-architecture amd64 && dpkg --add-architecture arm64 + +# cross_debian_arch: amd64 or arm64 +# cross_pkg_arch: x86-64 or aarch64 +RUN cross_debian_arch=$(uname -m | sed -e 's/aarch64/amd64/' -e 's/x86_64/arm64/'); \ + cross_pkg_arch=$(uname -m | sed -e 's/aarch64/x86-64/' -e 's/x86_64/aarch64/'); \ + apt-get update -y && \ + apt-get dist-upgrade -y && \ + apt-get install -y --no-install-recommends --no-install-suggests \ + curl wget make git cmake unzip libc6-dev g++ gcc pkgconf \ + llvm-17 clang-17 clang-format-17 ca-certificates \ + gcc-${cross_pkg_arch}-linux-gnu libc6-${cross_debian_arch}-cross \ + musl-dev:amd64 musl-dev:arm64 && \ + apt-get clean autoclean && \ + apt-get autoremove --yes + +COPY go.mod /tmp/go.mod +# Extract Go version from go.mod +RUN GO_VERSION=$(grep -oPm1 '^go \K([[:digit:].]+)' /tmp/go.mod) && \ + GOARCH=$(uname -m) && if [ "$GOARCH" = "x86_64" ]; then GOARCH=amd64; elif [ "$GOARCH" = "aarch64" ]; then GOARCH=arm64; fi && \ + wget -qO- https://golang.org/dl/go${GO_VERSION}.linux-${GOARCH}.tar.gz | tar -C /usr/local -xz + +# Set Go environment variables +ENV GOPATH="/agent/go" +ENV GOCACHE="/agent/.cache" +ENV PATH="/usr/local/go/bin:$PATH" + +# gRPC dependencies +RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.31.0 +RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0 + +RUN \ + PB_URL="https://github.com/protocolbuffers/protobuf/releases/download/v24.4/"; \ + PB_FILE="protoc-24.4-linux-x86_64.zip"; \ + INSTALL_DIR="/usr/local"; \ + \ + wget -nv "$PB_URL/$PB_FILE" \ + && unzip "$PB_FILE" -d "$INSTALL_DIR" 'bin/*' 'include/*' \ + && chmod +xr "$INSTALL_DIR/bin/protoc" \ + && find "$INSTALL_DIR/include" -type d -exec chmod +x {} \; \ + && find "$INSTALL_DIR/include" -type f -exec chmod +r {} \; \ + && rm "$PB_FILE" + +# Append to /etc/profile for login shells +RUN echo 'export PATH="/usr/local/go/bin:$PATH"' >> /etc/profile +RUN echo 'export PATH="/agent/go/bin:$PATH"' >> /etc/profile + +# Create rust related directories in /usr/local +RUN mkdir -p /usr/local/cargo /usr/local/rustup + +# Set environment variable before rustup installation +ENV CARGO_HOME=/usr/local/cargo +ENV RUSTUP_HOME=/usr/local/rustup + +# Install rustup and cargo +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.77 + +# Add rust related environment variables +RUN echo 'export PATH="/usr/local/cargo/bin:$PATH"' >> /etc/profile \ + && echo 'export CARGO_HOME="/usr/local/cargo"' >> /etc/profile \ + && echo 'export RUSTUP_HOME="/usr/local/rustup"' >> /etc/profile + +# Set mode bits +RUN chmod -R a+w /usr/local/rustup \ + && chmod -R a+w /usr/local/cargo + +ENTRYPOINT ["/bin/bash", "-l", "-c"] diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/cespare/xxhash/v2/LICENSE.txt b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/cespare/xxhash/v2/LICENSE.txt new file mode 100644 index 0000000000..24b53065f4 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/cespare/xxhash/v2/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright (c) 2016 Caleb Spare + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/cilium/ebpf/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/cilium/ebpf/LICENSE new file mode 100644 index 0000000000..c637ae99c2 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/cilium/ebpf/LICENSE @@ -0,0 +1,23 @@ +MIT License + +Copyright (c) 2017 Nathan Sweet +Copyright (c) 2018, 2019 Cloudflare +Copyright (c) 2019 Authors of Cilium + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/elastic/go-freelru/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/elastic/go-freelru/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/elastic/go-freelru/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/elastic/go-freelru/NOTICE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/elastic/go-freelru/NOTICE new file mode 100644 index 0000000000..9b1c8775c6 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/elastic/go-freelru/NOTICE @@ -0,0 +1,2 @@ +Go LRU Hashmap +Copyright 2022 Elasticsearch B.V. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/elastic/go-perf/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/elastic/go-perf/LICENSE new file mode 100644 index 0000000000..6a66aea5ea --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/elastic/go-perf/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/gogo/protobuf/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/gogo/protobuf/LICENSE new file mode 100644 index 0000000000..f57de90da8 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/gogo/protobuf/LICENSE @@ -0,0 +1,35 @@ +Copyright (c) 2013, The GoGo Authors. All rights reserved. + +Protocol Buffers for Go with Gadgets + +Go support for Protocol Buffers - Google's data interchange format + +Copyright 2010 The Go Authors. All rights reserved. +https://github.com/golang/protobuf + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/google/uuid/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/google/uuid/LICENSE new file mode 100644 index 0000000000..5dc68268d9 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/google/uuid/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009,2014 Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/grafana/regexp/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/grafana/regexp/LICENSE new file mode 100644 index 0000000000..6a66aea5ea --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/grafana/regexp/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/.github/dependabot.yml b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/.github/dependabot.yml new file mode 100644 index 0000000000..f401df1efc --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/.github/dependabot.yml @@ -0,0 +1,25 @@ +version: 2 +updates: + - package-ecosystem: "gomod" + directory: "/" + schedule: + interval: "daily" + labels: ["dependencies"] + + - package-ecosystem: github-actions + directory: / + schedule: + interval: monthly + labels: + - dependencies + # only update HashiCorp actions, external actions managed by TSCCR + allow: + - dependency-name: hashicorp/* + groups: + github-actions-breaking: + update-types: + - major + github-actions-backward-compatible: + update-types: + - minor + - patch diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/.github/workflows/go-tests.yml b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/.github/workflows/go-tests.yml new file mode 100644 index 0000000000..ca6882a70c --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/.github/workflows/go-tests.yml @@ -0,0 +1,74 @@ +name: go-tests + +on: [push] + +env: + TEST_RESULTS: /tmp/test-results + +jobs: + + go-tests: + runs-on: ubuntu-latest + strategy: + matrix: + go-version: [ 1.15.3, 1.19 ] + + steps: + - name: Setup go + uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568 # v3.5.0 + with: + go-version: ${{ matrix.go-version }} + + - name: Checkout code + uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 + + - name: Create test directory + run: | + mkdir -p ${{ env.TEST_RESULTS }} + + - name: Download go modules + run: go mod download + + - name: Cache / restore go modules + uses: actions/cache@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0 # v3.2.6 + with: + path: | + ~/go/pkg/mod + key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go- + + # Check go fmt output because it does not report non-zero when there are fmt changes + - name: Run gofmt + run: | + go fmt ./... + files=$(go fmt ./...) + if [ -n "$files" ]; then + echo "The following file(s) do not conform to go fmt:" + echo "$files" + exit 1 + fi + + # Install gotestsum with go get for 1.15.3; otherwise default to go install + - name: Install gotestsum + run: | + GTS="gotest.tools/gotestsum@v1.8.2" + # We use the same error message prefix in either failure case, so just define it once here. + ERROR="Failed to install $GTS" + # First try to 'go install', if that fails try 'go get'... + go install "$GTS" || go get "$GTS" || { echo "$ERROR: both 'go install' and 'go get' failed"; exit 1; } + # Check that the gotestsum command was actually installed in the path... + command -v gotestsum > /dev/null 2>&1 || { echo "$ERROR: gotestsum command not installed"; exit 1; } + echo "OK: Command 'gotestsum' installed ($GTS)" + + - name: Run go tests + run: | + PACKAGE_NAMES=$(go list ./...) + gotestsum --format=short-verbose --junitfile $TEST_RESULTS/gotestsum-report.xml -- $PACKAGE_NAMES + + # Save coverage report parts + - name: Upload and save artifacts + uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 + with: + name: Test Results + path: ${{ env.TEST_RESULTS }} \ No newline at end of file diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/CHANGELOG.md b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/CHANGELOG.md new file mode 100644 index 0000000000..6d48174bfb --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/CHANGELOG.md @@ -0,0 +1,64 @@ +# 1.7.0 (May 24, 2024) + +ENHANCEMENTS: + +- Remove `reflect` dependency ([#91](https://github.com/hashicorp/go-version/pull/91)) +- Implement the `database/sql.Scanner` and `database/sql/driver.Value` interfaces for `Version` ([#133](https://github.com/hashicorp/go-version/pull/133)) + +INTERNAL: + +- [COMPLIANCE] Add Copyright and License Headers ([#115](https://github.com/hashicorp/go-version/pull/115)) +- [COMPLIANCE] Update MPL-2.0 LICENSE ([#105](https://github.com/hashicorp/go-version/pull/105)) +- Bump actions/cache from 3.0.11 to 3.2.5 ([#116](https://github.com/hashicorp/go-version/pull/116)) +- Bump actions/checkout from 3.2.0 to 3.3.0 ([#111](https://github.com/hashicorp/go-version/pull/111)) +- Bump actions/upload-artifact from 3.1.1 to 3.1.2 ([#112](https://github.com/hashicorp/go-version/pull/112)) +- GHA Migration ([#103](https://github.com/hashicorp/go-version/pull/103)) +- github: Pin external GitHub Actions to hashes ([#107](https://github.com/hashicorp/go-version/pull/107)) +- SEC-090: Automated trusted workflow pinning (2023-04-05) ([#124](https://github.com/hashicorp/go-version/pull/124)) +- update readme ([#104](https://github.com/hashicorp/go-version/pull/104)) + +# 1.6.0 (June 28, 2022) + +FEATURES: + +- Add `Prerelease` function to `Constraint` to return true if the version includes a prerelease field ([#100](https://github.com/hashicorp/go-version/pull/100)) + +# 1.5.0 (May 18, 2022) + +FEATURES: + +- Use `encoding` `TextMarshaler` & `TextUnmarshaler` instead of JSON equivalents ([#95](https://github.com/hashicorp/go-version/pull/95)) +- Add JSON handlers to allow parsing from/to JSON ([#93](https://github.com/hashicorp/go-version/pull/93)) + +# 1.4.0 (January 5, 2022) + +FEATURES: + + - Introduce `MustConstraints()` ([#87](https://github.com/hashicorp/go-version/pull/87)) + - `Constraints`: Introduce `Equals()` and `sort.Interface` methods ([#88](https://github.com/hashicorp/go-version/pull/88)) + +# 1.3.0 (March 31, 2021) + +Please note that CHANGELOG.md does not exist in the source code prior to this release. + +FEATURES: + - Add `Core` function to return a version without prerelease or metadata ([#85](https://github.com/hashicorp/go-version/pull/85)) + +# 1.2.1 (June 17, 2020) + +BUG FIXES: + - Prevent `Version.Equal` method from panicking on `nil` encounter ([#73](https://github.com/hashicorp/go-version/pull/73)) + +# 1.2.0 (April 23, 2019) + +FEATURES: + - Add `GreaterThanOrEqual` and `LessThanOrEqual` helper methods ([#53](https://github.com/hashicorp/go-version/pull/53)) + +# 1.1.0 (Jan 07, 2019) + +FEATURES: + - Add `NewSemver` constructor ([#45](https://github.com/hashicorp/go-version/pull/45)) + +# 1.0.0 (August 24, 2018) + +Initial release. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/LICENSE new file mode 100644 index 0000000000..1409d6ab92 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/LICENSE @@ -0,0 +1,356 @@ +Copyright (c) 2014 HashiCorp, Inc. + +Mozilla Public License, version 2.0 + +1. Definitions + +1.1. “Contributor” + + means each individual or legal entity that creates, contributes to the + creation of, or owns Covered Software. + +1.2. “Contributor Version” + + means the combination of the Contributions of others (if any) used by a + Contributor and that particular Contributor’s Contribution. + +1.3. “Contribution” + + means Covered Software of a particular Contributor. + +1.4. “Covered Software” + + means Source Code Form to which the initial Contributor has attached the + notice in Exhibit A, the Executable Form of such Source Code Form, and + Modifications of such Source Code Form, in each case including portions + thereof. + +1.5. “Incompatible With Secondary Licenses” + means + + a. that the initial Contributor has attached the notice described in + Exhibit B to the Covered Software; or + + b. that the Covered Software was made available under the terms of version + 1.1 or earlier of the License, but not also under the terms of a + Secondary License. + +1.6. “Executable Form” + + means any form of the work other than Source Code Form. + +1.7. “Larger Work” + + means a work that combines Covered Software with other material, in a separate + file or files, that is not Covered Software. + +1.8. “License” + + means this document. + +1.9. “Licensable” + + means having the right to grant, to the maximum extent possible, whether at the + time of the initial grant or subsequently, any and all of the rights conveyed by + this License. + +1.10. “Modifications” + + means any of the following: + + a. any file in Source Code Form that results from an addition to, deletion + from, or modification of the contents of Covered Software; or + + b. any new file in Source Code Form that contains any Covered Software. + +1.11. “Patent Claims” of a Contributor + + means any patent claim(s), including without limitation, method, process, + and apparatus claims, in any patent Licensable by such Contributor that + would be infringed, but for the grant of the License, by the making, + using, selling, offering for sale, having made, import, or transfer of + either its Contributions or its Contributor Version. + +1.12. “Secondary License” + + means either the GNU General Public License, Version 2.0, the GNU Lesser + General Public License, Version 2.1, the GNU Affero General Public + License, Version 3.0, or any later versions of those licenses. + +1.13. “Source Code Form” + + means the form of the work preferred for making modifications. + +1.14. “You” (or “Your”) + + means an individual or a legal entity exercising rights under this + License. For legal entities, “You” includes any entity that controls, is + controlled by, or is under common control with You. For purposes of this + definition, “control” means (a) the power, direct or indirect, to cause + the direction or management of such entity, whether by contract or + otherwise, or (b) ownership of more than fifty percent (50%) of the + outstanding shares or beneficial ownership of such entity. + + +2. License Grants and Conditions + +2.1. Grants + + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + + a. under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or as + part of a Larger Work; and + + b. under Patent Claims of such Contributor to make, use, sell, offer for + sale, have made, import, and otherwise transfer either its Contributions + or its Contributor Version. + +2.2. Effective Date + + The licenses granted in Section 2.1 with respect to any Contribution become + effective for each Contribution on the date the Contributor first distributes + such Contribution. + +2.3. Limitations on Grant Scope + + The licenses granted in this Section 2 are the only rights granted under this + License. No additional rights or licenses will be implied from the distribution + or licensing of Covered Software under this License. Notwithstanding Section + 2.1(b) above, no patent license is granted by a Contributor: + + a. for any code that a Contributor has removed from Covered Software; or + + b. for infringements caused by: (i) Your and any other third party’s + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + + c. under Patent Claims infringed by Covered Software in the absence of its + Contributions. + + This License does not grant any rights in the trademarks, service marks, or + logos of any Contributor (except as may be necessary to comply with the + notice requirements in Section 3.4). + +2.4. Subsequent Licenses + + No Contributor makes additional grants as a result of Your choice to + distribute the Covered Software under a subsequent version of this License + (see Section 10.2) or under the terms of a Secondary License (if permitted + under the terms of Section 3.3). + +2.5. Representation + + Each Contributor represents that the Contributor believes its Contributions + are its original creation(s) or it has sufficient rights to grant the + rights to its Contributions conveyed by this License. + +2.6. Fair Use + + This License is not intended to limit any rights You have under applicable + copyright doctrines of fair use, fair dealing, or other equivalents. + +2.7. Conditions + + Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in + Section 2.1. + + +3. Responsibilities + +3.1. Distribution of Source Form + + All distribution of Covered Software in Source Code Form, including any + Modifications that You create or to which You contribute, must be under the + terms of this License. You must inform recipients that the Source Code Form + of the Covered Software is governed by the terms of this License, and how + they can obtain a copy of this License. You may not attempt to alter or + restrict the recipients’ rights in the Source Code Form. + +3.2. Distribution of Executable Form + + If You distribute Covered Software in Executable Form then: + + a. such Covered Software must also be made available in Source Code Form, + as described in Section 3.1, and You must inform recipients of the + Executable Form how they can obtain a copy of such Source Code Form by + reasonable means in a timely manner, at a charge no more than the cost + of distribution to the recipient; and + + b. You may distribute such Executable Form under the terms of this License, + or sublicense it under different terms, provided that the license for + the Executable Form does not attempt to limit or alter the recipients’ + rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + + You may create and distribute a Larger Work under terms of Your choice, + provided that You also comply with the requirements of this License for the + Covered Software. If the Larger Work is a combination of Covered Software + with a work governed by one or more Secondary Licenses, and the Covered + Software is not Incompatible With Secondary Licenses, this License permits + You to additionally distribute such Covered Software under the terms of + such Secondary License(s), so that the recipient of the Larger Work may, at + their option, further distribute the Covered Software under the terms of + either this License or such Secondary License(s). + +3.4. Notices + + You may not remove or alter the substance of any license notices (including + copyright notices, patent notices, disclaimers of warranty, or limitations + of liability) contained within the Source Code Form of the Covered + Software, except that You may alter any license notices to the extent + required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + + You may choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of Covered + Software. However, You may do so only on Your own behalf, and not on behalf + of any Contributor. You must make it absolutely clear that any such + warranty, support, indemnity, or liability obligation is offered by You + alone, and You hereby agree to indemnify every Contributor for any + liability incurred by such Contributor as a result of warranty, support, + indemnity or liability terms You offer. You may include additional + disclaimers of warranty and limitations of liability specific to any + jurisdiction. + +4. Inability to Comply Due to Statute or Regulation + + If it is impossible for You to comply with any of the terms of this License + with respect to some or all of the Covered Software due to statute, judicial + order, or regulation then You must: (a) comply with the terms of this License + to the maximum extent possible; and (b) describe the limitations and the code + they affect. Such description must be placed in a text file included with all + distributions of the Covered Software under this License. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Termination + +5.1. The rights granted under this License will terminate automatically if You + fail to comply with any of its terms. However, if You become compliant, + then the rights granted under this License from a particular Contributor + are reinstated (a) provisionally, unless and until such Contributor + explicitly and finally terminates Your grants, and (b) on an ongoing basis, + if such Contributor fails to notify You of the non-compliance by some + reasonable means prior to 60 days after You have come back into compliance. + Moreover, Your grants from a particular Contributor are reinstated on an + ongoing basis if such Contributor notifies You of the non-compliance by + some reasonable means, this is the first time You have received notice of + non-compliance with this License from such Contributor, and You become + compliant prior to 30 days after Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent + infringement claim (excluding declaratory judgment actions, counter-claims, + and cross-claims) alleging that a Contributor Version directly or + indirectly infringes any patent, then the rights granted to You by any and + all Contributors for the Covered Software under Section 2.1 of this License + shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user + license agreements (excluding distributors and resellers) which have been + validly granted by You or Your distributors under this License prior to + termination shall survive termination. + +6. Disclaimer of Warranty + + Covered Software is provided under this License on an “as is” basis, without + warranty of any kind, either expressed, implied, or statutory, including, + without limitation, warranties that the Covered Software is free of defects, + merchantable, fit for a particular purpose or non-infringing. The entire + risk as to the quality and performance of the Covered Software is with You. + Should any Covered Software prove defective in any respect, You (not any + Contributor) assume the cost of any necessary servicing, repair, or + correction. This disclaimer of warranty constitutes an essential part of this + License. No use of any Covered Software is authorized under this License + except under this disclaimer. + +7. Limitation of Liability + + Under no circumstances and under no legal theory, whether tort (including + negligence), contract, or otherwise, shall any Contributor, or anyone who + distributes Covered Software as permitted above, be liable to You for any + direct, indirect, special, incidental, or consequential damages of any + character including, without limitation, damages for lost profits, loss of + goodwill, work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses, even if such party shall have been + informed of the possibility of such damages. This limitation of liability + shall not apply to liability for death or personal injury resulting from such + party’s negligence to the extent applicable law prohibits such limitation. + Some jurisdictions do not allow the exclusion or limitation of incidental or + consequential damages, so this exclusion and limitation may not apply to You. + +8. Litigation + + Any litigation relating to this License may be brought only in the courts of + a jurisdiction where the defendant maintains its principal place of business + and such litigation shall be governed by laws of that jurisdiction, without + reference to its conflict-of-law provisions. Nothing in this Section shall + prevent a party’s ability to bring cross-claims or counter-claims. + +9. Miscellaneous + + This License represents the complete agreement concerning the subject matter + hereof. If any provision of this License is held to be unenforceable, such + provision shall be reformed only to the extent necessary to make it + enforceable. Any law or regulation which provides that the language of a + contract shall be construed against the drafter shall not be used to construe + this License against a Contributor. + + +10. Versions of the License + +10.1. New Versions + + Mozilla Foundation is the license steward. Except as provided in Section + 10.3, no one other than the license steward has the right to modify or + publish new versions of this License. Each version will be given a + distinguishing version number. + +10.2. Effect of New Versions + + You may distribute the Covered Software under the terms of the version of + the License under which You originally received the Covered Software, or + under the terms of any subsequent version published by the license + steward. + +10.3. Modified Versions + + If you create software not governed by this License, and you want to + create a new license for such software, you may create and use a modified + version of this License if you rename the license and remove any + references to the name of the license steward (except to note that such + modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses + If You choose to distribute Source Code Form that is Incompatible With + Secondary Licenses under the terms of this version of the License, the + notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the + terms of the Mozilla Public License, v. + 2.0. If a copy of the MPL was not + distributed with this file, You can + obtain one at + http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular file, then +You may include the notice in a location (such as a LICENSE file in a relevant +directory) where a recipient would be likely to look for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - “Incompatible With Secondary Licenses” Notice + + This Source Code Form is “Incompatible + With Secondary Licenses”, as defined by + the Mozilla Public License, v. 2.0. + diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/README.md b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/README.md new file mode 100644 index 0000000000..4b7806cd96 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/README.md @@ -0,0 +1,66 @@ +# Versioning Library for Go +![Build Status](https://github.com/hashicorp/go-version/actions/workflows/go-tests.yml/badge.svg) +[![GoDoc](https://godoc.org/github.com/hashicorp/go-version?status.svg)](https://godoc.org/github.com/hashicorp/go-version) + +go-version is a library for parsing versions and version constraints, +and verifying versions against a set of constraints. go-version +can sort a collection of versions properly, handles prerelease/beta +versions, can increment versions, etc. + +Versions used with go-version must follow [SemVer](http://semver.org/). + +## Installation and Usage + +Package documentation can be found on +[GoDoc](http://godoc.org/github.com/hashicorp/go-version). + +Installation can be done with a normal `go get`: + +``` +$ go get github.com/hashicorp/go-version +``` + +#### Version Parsing and Comparison + +```go +v1, err := version.NewVersion("1.2") +v2, err := version.NewVersion("1.5+metadata") + +// Comparison example. There is also GreaterThan, Equal, and just +// a simple Compare that returns an int allowing easy >=, <=, etc. +if v1.LessThan(v2) { + fmt.Printf("%s is less than %s", v1, v2) +} +``` + +#### Version Constraints + +```go +v1, err := version.NewVersion("1.2") + +// Constraints example. +constraints, err := version.NewConstraint(">= 1.0, < 1.4") +if constraints.Check(v1) { + fmt.Printf("%s satisfies constraints %s", v1, constraints) +} +``` + +#### Version Sorting + +```go +versionsRaw := []string{"1.1", "0.7.1", "1.4-beta", "1.4", "2"} +versions := make([]*version.Version, len(versionsRaw)) +for i, raw := range versionsRaw { + v, _ := version.NewVersion(raw) + versions[i] = v +} + +// After this, the versions are properly sorted +sort.Sort(version.Collection(versions)) +``` + +## Issues and Contributing + +If you find an issue with this library, please report an issue. If you'd +like, we welcome any contributions. Fork this library and submit a pull +request. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/constraint.go b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/constraint.go new file mode 100644 index 0000000000..29bdc4d2b5 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/constraint.go @@ -0,0 +1,298 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package version + +import ( + "fmt" + "regexp" + "sort" + "strings" +) + +// Constraint represents a single constraint for a version, such as +// ">= 1.0". +type Constraint struct { + f constraintFunc + op operator + check *Version + original string +} + +func (c *Constraint) Equals(con *Constraint) bool { + return c.op == con.op && c.check.Equal(con.check) +} + +// Constraints is a slice of constraints. We make a custom type so that +// we can add methods to it. +type Constraints []*Constraint + +type constraintFunc func(v, c *Version) bool + +var constraintOperators map[string]constraintOperation + +type constraintOperation struct { + op operator + f constraintFunc +} + +var constraintRegexp *regexp.Regexp + +func init() { + constraintOperators = map[string]constraintOperation{ + "": {op: equal, f: constraintEqual}, + "=": {op: equal, f: constraintEqual}, + "!=": {op: notEqual, f: constraintNotEqual}, + ">": {op: greaterThan, f: constraintGreaterThan}, + "<": {op: lessThan, f: constraintLessThan}, + ">=": {op: greaterThanEqual, f: constraintGreaterThanEqual}, + "<=": {op: lessThanEqual, f: constraintLessThanEqual}, + "~>": {op: pessimistic, f: constraintPessimistic}, + } + + ops := make([]string, 0, len(constraintOperators)) + for k := range constraintOperators { + ops = append(ops, regexp.QuoteMeta(k)) + } + + constraintRegexp = regexp.MustCompile(fmt.Sprintf( + `^\s*(%s)\s*(%s)\s*$`, + strings.Join(ops, "|"), + VersionRegexpRaw)) +} + +// NewConstraint will parse one or more constraints from the given +// constraint string. The string must be a comma-separated list of +// constraints. +func NewConstraint(v string) (Constraints, error) { + vs := strings.Split(v, ",") + result := make([]*Constraint, len(vs)) + for i, single := range vs { + c, err := parseSingle(single) + if err != nil { + return nil, err + } + + result[i] = c + } + + return Constraints(result), nil +} + +// MustConstraints is a helper that wraps a call to a function +// returning (Constraints, error) and panics if error is non-nil. +func MustConstraints(c Constraints, err error) Constraints { + if err != nil { + panic(err) + } + + return c +} + +// Check tests if a version satisfies all the constraints. +func (cs Constraints) Check(v *Version) bool { + for _, c := range cs { + if !c.Check(v) { + return false + } + } + + return true +} + +// Equals compares Constraints with other Constraints +// for equality. This may not represent logical equivalence +// of compared constraints. +// e.g. even though '>0.1,>0.2' is logically equivalent +// to '>0.2' it is *NOT* treated as equal. +// +// Missing operator is treated as equal to '=', whitespaces +// are ignored and constraints are sorted before comaparison. +func (cs Constraints) Equals(c Constraints) bool { + if len(cs) != len(c) { + return false + } + + // make copies to retain order of the original slices + left := make(Constraints, len(cs)) + copy(left, cs) + sort.Stable(left) + right := make(Constraints, len(c)) + copy(right, c) + sort.Stable(right) + + // compare sorted slices + for i, con := range left { + if !con.Equals(right[i]) { + return false + } + } + + return true +} + +func (cs Constraints) Len() int { + return len(cs) +} + +func (cs Constraints) Less(i, j int) bool { + if cs[i].op < cs[j].op { + return true + } + if cs[i].op > cs[j].op { + return false + } + + return cs[i].check.LessThan(cs[j].check) +} + +func (cs Constraints) Swap(i, j int) { + cs[i], cs[j] = cs[j], cs[i] +} + +// Returns the string format of the constraints +func (cs Constraints) String() string { + csStr := make([]string, len(cs)) + for i, c := range cs { + csStr[i] = c.String() + } + + return strings.Join(csStr, ",") +} + +// Check tests if a constraint is validated by the given version. +func (c *Constraint) Check(v *Version) bool { + return c.f(v, c.check) +} + +// Prerelease returns true if the version underlying this constraint +// contains a prerelease field. +func (c *Constraint) Prerelease() bool { + return len(c.check.Prerelease()) > 0 +} + +func (c *Constraint) String() string { + return c.original +} + +func parseSingle(v string) (*Constraint, error) { + matches := constraintRegexp.FindStringSubmatch(v) + if matches == nil { + return nil, fmt.Errorf("Malformed constraint: %s", v) + } + + check, err := NewVersion(matches[2]) + if err != nil { + return nil, err + } + + cop := constraintOperators[matches[1]] + + return &Constraint{ + f: cop.f, + op: cop.op, + check: check, + original: v, + }, nil +} + +func prereleaseCheck(v, c *Version) bool { + switch vPre, cPre := v.Prerelease() != "", c.Prerelease() != ""; { + case cPre && vPre: + // A constraint with a pre-release can only match a pre-release version + // with the same base segments. + return v.equalSegments(c) + + case !cPre && vPre: + // A constraint without a pre-release can only match a version without a + // pre-release. + return false + + case cPre && !vPre: + // OK, except with the pessimistic operator + case !cPre && !vPre: + // OK + } + return true +} + +//------------------------------------------------------------------- +// Constraint functions +//------------------------------------------------------------------- + +type operator rune + +const ( + equal operator = '=' + notEqual operator = '≠' + greaterThan operator = '>' + lessThan operator = '<' + greaterThanEqual operator = '≥' + lessThanEqual operator = '≤' + pessimistic operator = '~' +) + +func constraintEqual(v, c *Version) bool { + return v.Equal(c) +} + +func constraintNotEqual(v, c *Version) bool { + return !v.Equal(c) +} + +func constraintGreaterThan(v, c *Version) bool { + return prereleaseCheck(v, c) && v.Compare(c) == 1 +} + +func constraintLessThan(v, c *Version) bool { + return prereleaseCheck(v, c) && v.Compare(c) == -1 +} + +func constraintGreaterThanEqual(v, c *Version) bool { + return prereleaseCheck(v, c) && v.Compare(c) >= 0 +} + +func constraintLessThanEqual(v, c *Version) bool { + return prereleaseCheck(v, c) && v.Compare(c) <= 0 +} + +func constraintPessimistic(v, c *Version) bool { + // Using a pessimistic constraint with a pre-release, restricts versions to pre-releases + if !prereleaseCheck(v, c) || (c.Prerelease() != "" && v.Prerelease() == "") { + return false + } + + // If the version being checked is naturally less than the constraint, then there + // is no way for the version to be valid against the constraint + if v.LessThan(c) { + return false + } + // We'll use this more than once, so grab the length now so it's a little cleaner + // to write the later checks + cs := len(c.segments) + + // If the version being checked has less specificity than the constraint, then there + // is no way for the version to be valid against the constraint + if cs > len(v.segments) { + return false + } + + // Check the segments in the constraint against those in the version. If the version + // being checked, at any point, does not have the same values in each index of the + // constraints segments, then it cannot be valid against the constraint. + for i := 0; i < c.si-1; i++ { + if v.segments[i] != c.segments[i] { + return false + } + } + + // Check the last part of the segment in the constraint. If the version segment at + // this index is less than the constraints segment at this index, then it cannot + // be valid against the constraint + if c.segments[cs-1] > v.segments[cs-1] { + return false + } + + // If nothing has rejected the version by now, it's valid + return true +} diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/constraint_test.go b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/constraint_test.go new file mode 100644 index 0000000000..e76d3b0d5c --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/constraint_test.go @@ -0,0 +1,258 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package version + +import ( + "fmt" + "reflect" + "sort" + "testing" +) + +func TestNewConstraint(t *testing.T) { + cases := []struct { + input string + count int + err bool + }{ + {">= 1.2", 1, false}, + {"1.0", 1, false}, + {">= 1.x", 0, true}, + {">= 1.2, < 1.0", 2, false}, + + // Out of bounds + {"11387778780781445675529500000000000000000", 0, true}, + } + + for _, tc := range cases { + v, err := NewConstraint(tc.input) + if tc.err && err == nil { + t.Fatalf("expected error for input: %s", tc.input) + } else if !tc.err && err != nil { + t.Fatalf("error for input %s: %s", tc.input, err) + } + + if len(v) != tc.count { + t.Fatalf("input: %s\nexpected len: %d\nactual: %d", + tc.input, tc.count, len(v)) + } + } +} + +func TestConstraintCheck(t *testing.T) { + cases := []struct { + constraint string + version string + check bool + }{ + {">= 1.0, < 1.2", "1.1.5", true}, + {"< 1.0, < 1.2", "1.1.5", false}, + {"= 1.0", "1.1.5", false}, + {"= 1.0", "1.0.0", true}, + {"1.0", "1.0.0", true}, + {"~> 1.0", "2.0", false}, + {"~> 1.0", "1.1", true}, + {"~> 1.0", "1.2.3", true}, + {"~> 1.0.0", "1.2.3", false}, + {"~> 1.0.0", "1.0.7", true}, + {"~> 1.0.0", "1.1.0", false}, + {"~> 1.0.7", "1.0.4", false}, + {"~> 1.0.7", "1.0.7", true}, + {"~> 1.0.7", "1.0.8", true}, + {"~> 1.0.7", "1.0.7.5", true}, + {"~> 1.0.7", "1.0.6.99", false}, + {"~> 1.0.7", "1.0.8.0", true}, + {"~> 1.0.9.5", "1.0.9.5", true}, + {"~> 1.0.9.5", "1.0.9.4", false}, + {"~> 1.0.9.5", "1.0.9.6", true}, + {"~> 1.0.9.5", "1.0.9.5.0", true}, + {"~> 1.0.9.5", "1.0.9.5.1", true}, + {"~> 2.0", "2.1.0-beta", false}, + {"~> 2.1.0-a", "2.2.0", false}, + {"~> 2.1.0-a", "2.1.0", false}, + {"~> 2.1.0-a", "2.1.0-beta", true}, + {"~> 2.1.0-a", "2.2.0-alpha", false}, + {"> 2.0", "2.1.0-beta", false}, + {">= 2.1.0-a", "2.1.0-beta", true}, + {">= 2.1.0-a", "2.1.1-beta", false}, + {">= 2.0.0", "2.1.0-beta", false}, + {">= 2.1.0-a", "2.1.1", true}, + {">= 2.1.0-a", "2.1.1-beta", false}, + {">= 2.1.0-a", "2.1.0", true}, + {"<= 2.1.0-a", "2.0.0", true}, + } + + for _, tc := range cases { + c, err := NewConstraint(tc.constraint) + if err != nil { + t.Fatalf("err: %s", err) + } + + v, err := NewVersion(tc.version) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := c.Check(v) + expected := tc.check + if actual != expected { + t.Fatalf("Version: %s\nConstraint: %s\nExpected: %#v", + tc.version, tc.constraint, expected) + } + } +} + +func TestConstraintPrerelease(t *testing.T) { + cases := []struct { + constraint string + prerelease bool + }{ + {"= 1.0", false}, + {"= 1.0-beta", true}, + {"~> 2.1.0", false}, + {"~> 2.1.0-dev", true}, + {"> 2.0", false}, + {">= 2.1.0-a", true}, + } + + for _, tc := range cases { + c, err := parseSingle(tc.constraint) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := c.Prerelease() + expected := tc.prerelease + if actual != expected { + t.Fatalf("Constraint: %s\nExpected: %#v", + tc.constraint, expected) + } + } +} + +func TestConstraintEqual(t *testing.T) { + cases := []struct { + leftConstraint string + rightConstraint string + expectedEqual bool + }{ + { + "0.0.1", + "0.0.1", + true, + }, + { // whitespaces + " 0.0.1 ", + "0.0.1", + true, + }, + { // equal op implied + "=0.0.1 ", + "0.0.1", + true, + }, + { // version difference + "=0.0.1", + "=0.0.2", + false, + }, + { // operator difference + ">0.0.1", + "=0.0.1", + false, + }, + { // different order + ">0.1.0, <=1.0.0", + "<=1.0.0, >0.1.0", + true, + }, + } + + for _, tc := range cases { + leftCon, err := NewConstraint(tc.leftConstraint) + if err != nil { + t.Fatalf("err: %s", err) + } + rightCon, err := NewConstraint(tc.rightConstraint) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := leftCon.Equals(rightCon) + if actual != tc.expectedEqual { + t.Fatalf("Constraints: %s vs %s\nExpected: %t\nActual: %t", + tc.leftConstraint, tc.rightConstraint, tc.expectedEqual, actual) + } + } +} + +func TestConstraint_sort(t *testing.T) { + cases := []struct { + constraint string + expectedConstraints string + }{ + { + ">= 0.1.0,< 1.12", + "< 1.12,>= 0.1.0", + }, + { + "< 1.12,>= 0.1.0", + "< 1.12,>= 0.1.0", + }, + { + "< 1.12,>= 0.1.0,0.2.0", + "< 1.12,0.2.0,>= 0.1.0", + }, + { + ">1.0,>0.1.0,>0.3.0,>0.2.0", + ">0.1.0,>0.2.0,>0.3.0,>1.0", + }, + } + + for i, tc := range cases { + t.Run(fmt.Sprintf("%d", i), func(t *testing.T) { + c, err := NewConstraint(tc.constraint) + if err != nil { + t.Fatalf("err: %s", err) + } + + sort.Sort(c) + + actual := c.String() + + if !reflect.DeepEqual(actual, tc.expectedConstraints) { + t.Fatalf("unexpected order\nexpected: %#v\nactual: %#v", + tc.expectedConstraints, actual) + } + }) + } +} + +func TestConstraintsString(t *testing.T) { + cases := []struct { + constraint string + result string + }{ + {">= 1.0, < 1.2", ""}, + {"~> 1.0.7", ""}, + } + + for _, tc := range cases { + c, err := NewConstraint(tc.constraint) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := c.String() + expected := tc.result + if expected == "" { + expected = tc.constraint + } + + if actual != expected { + t.Fatalf("Constraint: %s\nExpected: %#v\nActual: %s", + tc.constraint, expected, actual) + } + } +} diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/go.mod b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/go.mod new file mode 100644 index 0000000000..f5285555fa --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/go.mod @@ -0,0 +1 @@ +module github.com/hashicorp/go-version diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/version.go b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/version.go new file mode 100644 index 0000000000..7c683c2813 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/version.go @@ -0,0 +1,441 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package version + +import ( + "bytes" + "database/sql/driver" + "fmt" + "regexp" + "strconv" + "strings" +) + +// The compiled regular expression used to test the validity of a version. +var ( + versionRegexp *regexp.Regexp + semverRegexp *regexp.Regexp +) + +// The raw regular expression string used for testing the validity +// of a version. +const ( + VersionRegexpRaw string = `v?([0-9]+(\.[0-9]+)*?)` + + `(-([0-9]+[0-9A-Za-z\-~]*(\.[0-9A-Za-z\-~]+)*)|(-?([A-Za-z\-~]+[0-9A-Za-z\-~]*(\.[0-9A-Za-z\-~]+)*)))?` + + `(\+([0-9A-Za-z\-~]+(\.[0-9A-Za-z\-~]+)*))?` + + `?` + + // SemverRegexpRaw requires a separator between version and prerelease + SemverRegexpRaw string = `v?([0-9]+(\.[0-9]+)*?)` + + `(-([0-9]+[0-9A-Za-z\-~]*(\.[0-9A-Za-z\-~]+)*)|(-([A-Za-z\-~]+[0-9A-Za-z\-~]*(\.[0-9A-Za-z\-~]+)*)))?` + + `(\+([0-9A-Za-z\-~]+(\.[0-9A-Za-z\-~]+)*))?` + + `?` +) + +// Version represents a single version. +type Version struct { + metadata string + pre string + segments []int64 + si int + original string +} + +func init() { + versionRegexp = regexp.MustCompile("^" + VersionRegexpRaw + "$") + semverRegexp = regexp.MustCompile("^" + SemverRegexpRaw + "$") +} + +// NewVersion parses the given version and returns a new +// Version. +func NewVersion(v string) (*Version, error) { + return newVersion(v, versionRegexp) +} + +// NewSemver parses the given version and returns a new +// Version that adheres strictly to SemVer specs +// https://semver.org/ +func NewSemver(v string) (*Version, error) { + return newVersion(v, semverRegexp) +} + +func newVersion(v string, pattern *regexp.Regexp) (*Version, error) { + matches := pattern.FindStringSubmatch(v) + if matches == nil { + return nil, fmt.Errorf("Malformed version: %s", v) + } + segmentsStr := strings.Split(matches[1], ".") + segments := make([]int64, len(segmentsStr)) + for i, str := range segmentsStr { + val, err := strconv.ParseInt(str, 10, 64) + if err != nil { + return nil, fmt.Errorf( + "Error parsing version: %s", err) + } + + segments[i] = val + } + + // Even though we could support more than three segments, if we + // got less than three, pad it with 0s. This is to cover the basic + // default usecase of semver, which is MAJOR.MINOR.PATCH at the minimum + for i := len(segments); i < 3; i++ { + segments = append(segments, 0) + } + + pre := matches[7] + if pre == "" { + pre = matches[4] + } + + return &Version{ + metadata: matches[10], + pre: pre, + segments: segments, + si: len(segmentsStr), + original: v, + }, nil +} + +// Must is a helper that wraps a call to a function returning (*Version, error) +// and panics if error is non-nil. +func Must(v *Version, err error) *Version { + if err != nil { + panic(err) + } + + return v +} + +// Compare compares this version to another version. This +// returns -1, 0, or 1 if this version is smaller, equal, +// or larger than the other version, respectively. +// +// If you want boolean results, use the LessThan, Equal, +// GreaterThan, GreaterThanOrEqual or LessThanOrEqual methods. +func (v *Version) Compare(other *Version) int { + // A quick, efficient equality check + if v.String() == other.String() { + return 0 + } + + // If the segments are the same, we must compare on prerelease info + if v.equalSegments(other) { + preSelf := v.Prerelease() + preOther := other.Prerelease() + if preSelf == "" && preOther == "" { + return 0 + } + if preSelf == "" { + return 1 + } + if preOther == "" { + return -1 + } + + return comparePrereleases(preSelf, preOther) + } + + segmentsSelf := v.Segments64() + segmentsOther := other.Segments64() + // Get the highest specificity (hS), or if they're equal, just use segmentSelf length + lenSelf := len(segmentsSelf) + lenOther := len(segmentsOther) + hS := lenSelf + if lenSelf < lenOther { + hS = lenOther + } + // Compare the segments + // Because a constraint could have more/less specificity than the version it's + // checking, we need to account for a lopsided or jagged comparison + for i := 0; i < hS; i++ { + if i > lenSelf-1 { + // This means Self had the lower specificity + // Check to see if the remaining segments in Other are all zeros + if !allZero(segmentsOther[i:]) { + // if not, it means that Other has to be greater than Self + return -1 + } + break + } else if i > lenOther-1 { + // this means Other had the lower specificity + // Check to see if the remaining segments in Self are all zeros - + if !allZero(segmentsSelf[i:]) { + // if not, it means that Self has to be greater than Other + return 1 + } + break + } + lhs := segmentsSelf[i] + rhs := segmentsOther[i] + if lhs == rhs { + continue + } else if lhs < rhs { + return -1 + } + // Otherwis, rhs was > lhs, they're not equal + return 1 + } + + // if we got this far, they're equal + return 0 +} + +func (v *Version) equalSegments(other *Version) bool { + segmentsSelf := v.Segments64() + segmentsOther := other.Segments64() + + if len(segmentsSelf) != len(segmentsOther) { + return false + } + for i, v := range segmentsSelf { + if v != segmentsOther[i] { + return false + } + } + return true +} + +func allZero(segs []int64) bool { + for _, s := range segs { + if s != 0 { + return false + } + } + return true +} + +func comparePart(preSelf string, preOther string) int { + if preSelf == preOther { + return 0 + } + + var selfInt int64 + selfNumeric := true + selfInt, err := strconv.ParseInt(preSelf, 10, 64) + if err != nil { + selfNumeric = false + } + + var otherInt int64 + otherNumeric := true + otherInt, err = strconv.ParseInt(preOther, 10, 64) + if err != nil { + otherNumeric = false + } + + // if a part is empty, we use the other to decide + if preSelf == "" { + if otherNumeric { + return -1 + } + return 1 + } + + if preOther == "" { + if selfNumeric { + return 1 + } + return -1 + } + + if selfNumeric && !otherNumeric { + return -1 + } else if !selfNumeric && otherNumeric { + return 1 + } else if !selfNumeric && !otherNumeric && preSelf > preOther { + return 1 + } else if selfInt > otherInt { + return 1 + } + + return -1 +} + +func comparePrereleases(v string, other string) int { + // the same pre release! + if v == other { + return 0 + } + + // split both pre releases for analyse their parts + selfPreReleaseMeta := strings.Split(v, ".") + otherPreReleaseMeta := strings.Split(other, ".") + + selfPreReleaseLen := len(selfPreReleaseMeta) + otherPreReleaseLen := len(otherPreReleaseMeta) + + biggestLen := otherPreReleaseLen + if selfPreReleaseLen > otherPreReleaseLen { + biggestLen = selfPreReleaseLen + } + + // loop for parts to find the first difference + for i := 0; i < biggestLen; i = i + 1 { + partSelfPre := "" + if i < selfPreReleaseLen { + partSelfPre = selfPreReleaseMeta[i] + } + + partOtherPre := "" + if i < otherPreReleaseLen { + partOtherPre = otherPreReleaseMeta[i] + } + + compare := comparePart(partSelfPre, partOtherPre) + // if parts are equals, continue the loop + if compare != 0 { + return compare + } + } + + return 0 +} + +// Core returns a new version constructed from only the MAJOR.MINOR.PATCH +// segments of the version, without prerelease or metadata. +func (v *Version) Core() *Version { + segments := v.Segments64() + segmentsOnly := fmt.Sprintf("%d.%d.%d", segments[0], segments[1], segments[2]) + return Must(NewVersion(segmentsOnly)) +} + +// Equal tests if two versions are equal. +func (v *Version) Equal(o *Version) bool { + if v == nil || o == nil { + return v == o + } + + return v.Compare(o) == 0 +} + +// GreaterThan tests if this version is greater than another version. +func (v *Version) GreaterThan(o *Version) bool { + return v.Compare(o) > 0 +} + +// GreaterThanOrEqual tests if this version is greater than or equal to another version. +func (v *Version) GreaterThanOrEqual(o *Version) bool { + return v.Compare(o) >= 0 +} + +// LessThan tests if this version is less than another version. +func (v *Version) LessThan(o *Version) bool { + return v.Compare(o) < 0 +} + +// LessThanOrEqual tests if this version is less than or equal to another version. +func (v *Version) LessThanOrEqual(o *Version) bool { + return v.Compare(o) <= 0 +} + +// Metadata returns any metadata that was part of the version +// string. +// +// Metadata is anything that comes after the "+" in the version. +// For example, with "1.2.3+beta", the metadata is "beta". +func (v *Version) Metadata() string { + return v.metadata +} + +// Prerelease returns any prerelease data that is part of the version, +// or blank if there is no prerelease data. +// +// Prerelease information is anything that comes after the "-" in the +// version (but before any metadata). For example, with "1.2.3-beta", +// the prerelease information is "beta". +func (v *Version) Prerelease() string { + return v.pre +} + +// Segments returns the numeric segments of the version as a slice of ints. +// +// This excludes any metadata or pre-release information. For example, +// for a version "1.2.3-beta", segments will return a slice of +// 1, 2, 3. +func (v *Version) Segments() []int { + segmentSlice := make([]int, len(v.segments)) + for i, v := range v.segments { + segmentSlice[i] = int(v) + } + return segmentSlice +} + +// Segments64 returns the numeric segments of the version as a slice of int64s. +// +// This excludes any metadata or pre-release information. For example, +// for a version "1.2.3-beta", segments will return a slice of +// 1, 2, 3. +func (v *Version) Segments64() []int64 { + result := make([]int64, len(v.segments)) + copy(result, v.segments) + return result +} + +// String returns the full version string included pre-release +// and metadata information. +// +// This value is rebuilt according to the parsed segments and other +// information. Therefore, ambiguities in the version string such as +// prefixed zeroes (1.04.0 => 1.4.0), `v` prefix (v1.0.0 => 1.0.0), and +// missing parts (1.0 => 1.0.0) will be made into a canonicalized form +// as shown in the parenthesized examples. +func (v *Version) String() string { + var buf bytes.Buffer + fmtParts := make([]string, len(v.segments)) + for i, s := range v.segments { + // We can ignore err here since we've pre-parsed the values in segments + str := strconv.FormatInt(s, 10) + fmtParts[i] = str + } + fmt.Fprintf(&buf, strings.Join(fmtParts, ".")) + if v.pre != "" { + fmt.Fprintf(&buf, "-%s", v.pre) + } + if v.metadata != "" { + fmt.Fprintf(&buf, "+%s", v.metadata) + } + + return buf.String() +} + +// Original returns the original parsed version as-is, including any +// potential whitespace, `v` prefix, etc. +func (v *Version) Original() string { + return v.original +} + +// UnmarshalText implements encoding.TextUnmarshaler interface. +func (v *Version) UnmarshalText(b []byte) error { + temp, err := NewVersion(string(b)) + if err != nil { + return err + } + + *v = *temp + + return nil +} + +// MarshalText implements encoding.TextMarshaler interface. +func (v *Version) MarshalText() ([]byte, error) { + return []byte(v.String()), nil +} + +// Scan implements the sql.Scanner interface. +func (v *Version) Scan(src interface{}) error { + switch src := src.(type) { + case string: + return v.UnmarshalText([]byte(src)) + case nil: + return nil + default: + return fmt.Errorf("cannot scan %T as Version", src) + } +} + +// Value implements the driver.Valuer interface. +func (v *Version) Value() (driver.Value, error) { + return v.String(), nil +} diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/version_collection.go b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/version_collection.go new file mode 100644 index 0000000000..83547fe13d --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/version_collection.go @@ -0,0 +1,20 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package version + +// Collection is a type that implements the sort.Interface interface +// so that versions can be sorted. +type Collection []*Version + +func (v Collection) Len() int { + return len(v) +} + +func (v Collection) Less(i, j int) bool { + return v[i].LessThan(v[j]) +} + +func (v Collection) Swap(i, j int) { + v[i], v[j] = v[j], v[i] +} diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/version_collection_test.go b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/version_collection_test.go new file mode 100644 index 0000000000..b6298a85f1 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/version_collection_test.go @@ -0,0 +1,49 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package version + +import ( + "reflect" + "sort" + "testing" +) + +func TestCollection(t *testing.T) { + versionsRaw := []string{ + "1.1.1", + "1.0", + "1.2", + "2", + "0.7.1", + } + + versions := make([]*Version, len(versionsRaw)) + for i, raw := range versionsRaw { + v, err := NewVersion(raw) + if err != nil { + t.Fatalf("err: %s", err) + } + + versions[i] = v + } + + sort.Sort(Collection(versions)) + + actual := make([]string, len(versions)) + for i, v := range versions { + actual[i] = v.String() + } + + expected := []string{ + "0.7.1", + "1.0.0", + "1.1.1", + "1.2.0", + "2.0.0", + } + + if !reflect.DeepEqual(actual, expected) { + t.Fatalf("bad: %#v", actual) + } +} diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/version_test.go b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/version_test.go new file mode 100644 index 0000000000..8256794f35 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/hashicorp/go-version/version_test.go @@ -0,0 +1,730 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package version + +import ( + "encoding/json" + "fmt" + "reflect" + "testing" +) + +func TestNewVersion(t *testing.T) { + cases := []struct { + version string + err bool + }{ + {"", true}, + {"1.2.3", false}, + {"1.0", false}, + {"1", false}, + {"1.2.beta", true}, + {"1.21.beta", true}, + {"foo", true}, + {"1.2-5", false}, + {"1.2-beta.5", false}, + {"\n1.2", true}, + {"1.2.0-x.Y.0+metadata", false}, + {"1.2.0-x.Y.0+metadata-width-hyphen", false}, + {"1.2.3-rc1-with-hyphen", false}, + {"1.2.3.4", false}, + {"1.2.0.4-x.Y.0+metadata", false}, + {"1.2.0.4-x.Y.0+metadata-width-hyphen", false}, + {"1.2.0-X-1.2.0+metadata~dist", false}, + {"1.2.3.4-rc1-with-hyphen", false}, + {"1.2.3.4", false}, + {"v1.2.3", false}, + {"foo1.2.3", true}, + {"1.7rc2", false}, + {"v1.7rc2", false}, + {"1.0-", false}, + } + + for _, tc := range cases { + _, err := NewVersion(tc.version) + if tc.err && err == nil { + t.Fatalf("expected error for version: %q", tc.version) + } else if !tc.err && err != nil { + t.Fatalf("error for version %q: %s", tc.version, err) + } + } +} + +func TestNewSemver(t *testing.T) { + cases := []struct { + version string + err bool + }{ + {"", true}, + {"1.2.3", false}, + {"1.0", false}, + {"1", false}, + {"1.2.beta", true}, + {"1.21.beta", true}, + {"foo", true}, + {"1.2-5", false}, + {"1.2-beta.5", false}, + {"\n1.2", true}, + {"1.2.0-x.Y.0+metadata", false}, + {"1.2.0-x.Y.0+metadata-width-hyphen", false}, + {"1.2.3-rc1-with-hyphen", false}, + {"1.2.3.4", false}, + {"1.2.0.4-x.Y.0+metadata", false}, + {"1.2.0.4-x.Y.0+metadata-width-hyphen", false}, + {"1.2.0-X-1.2.0+metadata~dist", false}, + {"1.2.3.4-rc1-with-hyphen", false}, + {"1.2.3.4", false}, + {"v1.2.3", false}, + {"foo1.2.3", true}, + {"1.7rc2", true}, + {"v1.7rc2", true}, + {"1.0-", true}, + } + + for _, tc := range cases { + _, err := NewSemver(tc.version) + if tc.err && err == nil { + t.Fatalf("expected error for version: %q", tc.version) + } else if !tc.err && err != nil { + t.Fatalf("error for version %q: %s", tc.version, err) + } + } +} + +func TestCore(t *testing.T) { + cases := []struct { + v1 string + v2 string + }{ + {"1.2.3", "1.2.3"}, + {"2.3.4-alpha1", "2.3.4"}, + {"3.4.5alpha1", "3.4.5"}, + {"1.2.3-2", "1.2.3"}, + {"4.5.6-beta1+meta", "4.5.6"}, + {"5.6.7.1.2.3", "5.6.7"}, + } + + for _, tc := range cases { + v1, err := NewVersion(tc.v1) + if err != nil { + t.Fatalf("error for version %q: %s", tc.v1, err) + } + v2, err := NewVersion(tc.v2) + if err != nil { + t.Fatalf("error for version %q: %s", tc.v2, err) + } + + actual := v1.Core() + expected := v2 + + if !reflect.DeepEqual(actual, expected) { + t.Fatalf("expected: %s\nactual: %s", expected, actual) + } + } +} + +func TestVersionCompare(t *testing.T) { + cases := []struct { + v1 string + v2 string + expected int + }{ + {"1.2.3", "1.4.5", -1}, + {"1.2-beta", "1.2-beta", 0}, + {"1.2", "1.1.4", 1}, + {"1.2", "1.2-beta", 1}, + {"1.2+foo", "1.2+beta", 0}, + {"v1.2", "v1.2-beta", 1}, + {"v1.2+foo", "v1.2+beta", 0}, + {"v1.2.3.4", "v1.2.3.4", 0}, + {"v1.2.0.0", "v1.2", 0}, + {"v1.2.0.0.1", "v1.2", 1}, + {"v1.2", "v1.2.0.0", 0}, + {"v1.2", "v1.2.0.0.1", -1}, + {"v1.2.0.0", "v1.2.0.0.1", -1}, + {"v1.2.3.0", "v1.2.3.4", -1}, + {"1.7rc2", "1.7rc1", 1}, + {"1.7rc2", "1.7", -1}, + {"1.2.0", "1.2.0-X-1.2.0+metadata~dist", 1}, + } + + for _, tc := range cases { + v1, err := NewVersion(tc.v1) + if err != nil { + t.Fatalf("err: %s", err) + } + + v2, err := NewVersion(tc.v2) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := v1.Compare(v2) + expected := tc.expected + if actual != expected { + t.Fatalf( + "%s <=> %s\nexpected: %d\nactual: %d", + tc.v1, tc.v2, + expected, actual) + } + } +} + +func TestVersionCompare_versionAndSemver(t *testing.T) { + cases := []struct { + versionRaw string + semverRaw string + expected int + }{ + {"0.0.2", "0.0.2", 0}, + {"1.0.2alpha", "1.0.2-alpha", 0}, + {"v1.2+foo", "v1.2+beta", 0}, + {"v1.2", "v1.2+meta", 0}, + {"1.2", "1.2-beta", 1}, + {"v1.2", "v1.2-beta", 1}, + {"1.2.3", "1.4.5", -1}, + {"v1.2", "v1.2.0.0.1", -1}, + {"v1.0.3-", "v1.0.3", -1}, + } + + for _, tc := range cases { + ver, err := NewVersion(tc.versionRaw) + if err != nil { + t.Fatalf("err: %s", err) + } + + semver, err := NewSemver(tc.semverRaw) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := ver.Compare(semver) + if actual != tc.expected { + t.Fatalf( + "%s <=> %s\nexpected: %d\n actual: %d", + tc.versionRaw, tc.semverRaw, tc.expected, actual, + ) + } + } +} + +func TestVersionEqual_nil(t *testing.T) { + mustVersion := func(v string) *Version { + ver, err := NewVersion(v) + if err != nil { + t.Fatal(err) + } + return ver + } + cases := []struct { + leftVersion *Version + rightVersion *Version + expected bool + }{ + {mustVersion("1.0.0"), nil, false}, + {nil, mustVersion("1.0.0"), false}, + {nil, nil, true}, + } + + for _, tc := range cases { + given := tc.leftVersion.Equal(tc.rightVersion) + if given != tc.expected { + t.Fatalf("expected Equal to nil to be %t", tc.expected) + } + } +} + +func TestComparePreReleases(t *testing.T) { + cases := []struct { + v1 string + v2 string + expected int + }{ + {"1.2-beta.2", "1.2-beta.2", 0}, + {"1.2-beta.1", "1.2-beta.2", -1}, + {"1.2-beta.2", "1.2-beta.11", -1}, + {"3.2-alpha.1", "3.2-alpha", 1}, + {"1.2-beta.2", "1.2-beta.1", 1}, + {"1.2-beta.11", "1.2-beta.2", 1}, + {"1.2-beta", "1.2-beta.3", -1}, + {"1.2-alpha", "1.2-beta.3", -1}, + {"1.2-beta", "1.2-alpha.3", 1}, + {"3.0-alpha.3", "3.0-rc.1", -1}, + {"3.0-alpha3", "3.0-rc1", -1}, + {"3.0-alpha.1", "3.0-alpha.beta", -1}, + {"5.4-alpha", "5.4-alpha.beta", 1}, + {"v1.2-beta.2", "v1.2-beta.2", 0}, + {"v1.2-beta.1", "v1.2-beta.2", -1}, + {"v3.2-alpha.1", "v3.2-alpha", 1}, + {"v3.2-rc.1-1-g123", "v3.2-rc.2", 1}, + } + + for _, tc := range cases { + v1, err := NewVersion(tc.v1) + if err != nil { + t.Fatalf("err: %s", err) + } + + v2, err := NewVersion(tc.v2) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := v1.Compare(v2) + expected := tc.expected + if actual != expected { + t.Fatalf( + "%s <=> %s\nexpected: %d\nactual: %d", + tc.v1, tc.v2, + expected, actual) + } + } +} + +func TestVersionMetadata(t *testing.T) { + cases := []struct { + version string + expected string + }{ + {"1.2.3", ""}, + {"1.2-beta", ""}, + {"1.2.0-x.Y.0", ""}, + {"1.2.0-x.Y.0+metadata", "metadata"}, + {"1.2.0-metadata-1.2.0+metadata~dist", "metadata~dist"}, + } + + for _, tc := range cases { + v, err := NewVersion(tc.version) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := v.Metadata() + expected := tc.expected + if actual != expected { + t.Fatalf("expected: %s\nactual: %s", expected, actual) + } + } +} + +func TestVersionPrerelease(t *testing.T) { + cases := []struct { + version string + expected string + }{ + {"1.2.3", ""}, + {"1.2-beta", "beta"}, + {"1.2.0-x.Y.0", "x.Y.0"}, + {"1.2.0-7.Y.0", "7.Y.0"}, + {"1.2.0-x.Y.0+metadata", "x.Y.0"}, + {"1.2.0-metadata-1.2.0+metadata~dist", "metadata-1.2.0"}, + {"17.03.0-ce", "ce"}, // zero-padded fields + } + + for _, tc := range cases { + v, err := NewVersion(tc.version) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := v.Prerelease() + expected := tc.expected + if actual != expected { + t.Fatalf("expected: %s\nactual: %s", expected, actual) + } + } +} + +func TestVersionSegments(t *testing.T) { + cases := []struct { + version string + expected []int + }{ + {"1.2.3", []int{1, 2, 3}}, + {"1.2-beta", []int{1, 2, 0}}, + {"1-x.Y.0", []int{1, 0, 0}}, + {"1.2.0-x.Y.0+metadata", []int{1, 2, 0}}, + {"1.2.0-metadata-1.2.0+metadata~dist", []int{1, 2, 0}}, + {"17.03.0-ce", []int{17, 3, 0}}, // zero-padded fields + } + + for _, tc := range cases { + v, err := NewVersion(tc.version) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := v.Segments() + expected := tc.expected + if !reflect.DeepEqual(actual, expected) { + t.Fatalf("expected: %#v\nactual: %#v", expected, actual) + } + } +} + +func TestVersionSegments64(t *testing.T) { + cases := []struct { + version string + expected []int64 + }{ + {"1.2.3", []int64{1, 2, 3}}, + {"1.2-beta", []int64{1, 2, 0}}, + {"1-x.Y.0", []int64{1, 0, 0}}, + {"1.2.0-x.Y.0+metadata", []int64{1, 2, 0}}, + {"1.4.9223372036854775807", []int64{1, 4, 9223372036854775807}}, + } + + for _, tc := range cases { + v, err := NewVersion(tc.version) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := v.Segments64() + expected := tc.expected + if !reflect.DeepEqual(actual, expected) { + t.Fatalf("expected: %#v\nactual: %#v", expected, actual) + } + + { + expected := actual[0] + actual[0]++ + actual = v.Segments64() + if actual[0] != expected { + t.Fatalf("Segments64 is mutable") + } + } + } +} + +func TestJsonMarshal(t *testing.T) { + cases := []struct { + version string + err bool + }{ + {"1.2.3", false}, + {"1.2.0-x.Y.0+metadata", false}, + {"1.2.0-x.Y.0+metadata-width-hyphen", false}, + {"1.2.3-rc1-with-hyphen", false}, + {"1.2.3.4", false}, + {"1.2.0.4-x.Y.0+metadata", false}, + {"1.2.0.4-x.Y.0+metadata-width-hyphen", false}, + {"1.2.0-X-1.2.0+metadata~dist", false}, + {"1.2.3.4-rc1-with-hyphen", false}, + {"1.2.3.4", false}, + } + + for _, tc := range cases { + v, err1 := NewVersion(tc.version) + if err1 != nil { + t.Fatalf("error for version %q: %s", tc.version, err1) + } + + parsed, err2 := json.Marshal(v) + if err2 != nil { + t.Fatalf("error marshaling version %q: %s", tc.version, err2) + } + result := string(parsed) + expected := fmt.Sprintf("%q", tc.version) + if result != expected && !tc.err { + t.Fatalf("Error marshaling unexpected marshaled content: result=%q expected=%q", result, expected) + } + } +} + +func TestJsonUnmarshal(t *testing.T) { + cases := []struct { + version string + err bool + }{ + {"1.2.3", false}, + {"1.2.0-x.Y.0+metadata", false}, + {"1.2.0-x.Y.0+metadata-width-hyphen", false}, + {"1.2.3-rc1-with-hyphen", false}, + {"1.2.3.4", false}, + {"1.2.0.4-x.Y.0+metadata", false}, + {"1.2.0.4-x.Y.0+metadata-width-hyphen", false}, + {"1.2.0-X-1.2.0+metadata~dist", false}, + {"1.2.3.4-rc1-with-hyphen", false}, + {"1.2.3.4", false}, + } + + for _, tc := range cases { + expected, err1 := NewVersion(tc.version) + if err1 != nil { + t.Fatalf("err: %s", err1) + } + + actual := &Version{} + err2 := json.Unmarshal([]byte(fmt.Sprintf("%q", tc.version)), actual) + if err2 != nil { + t.Fatalf("error unmarshaling version: %s", err2) + } + if !reflect.DeepEqual(actual, expected) { + t.Fatalf("error unmarshaling, unexpected object content: actual=%q expected=%q", actual, expected) + } + } +} + +func TestVersionString(t *testing.T) { + cases := [][]string{ + {"1.2.3", "1.2.3"}, + {"1.2-beta", "1.2.0-beta"}, + {"1.2.0-x.Y.0", "1.2.0-x.Y.0"}, + {"1.2.0-x.Y.0+metadata", "1.2.0-x.Y.0+metadata"}, + {"1.2.0-metadata-1.2.0+metadata~dist", "1.2.0-metadata-1.2.0+metadata~dist"}, + {"17.03.0-ce", "17.3.0-ce"}, // zero-padded fields + } + + for _, tc := range cases { + v, err := NewVersion(tc[0]) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := v.String() + expected := tc[1] + if actual != expected { + t.Fatalf("expected: %s\nactual: %s", expected, actual) + } + if actual := v.Original(); actual != tc[0] { + t.Fatalf("expected original: %q\nactual: %q", tc[0], actual) + } + } +} + +func TestEqual(t *testing.T) { + cases := []struct { + v1 string + v2 string + expected bool + }{ + {"1.2.3", "1.4.5", false}, + {"1.2-beta", "1.2-beta", true}, + {"1.2", "1.1.4", false}, + {"1.2", "1.2-beta", false}, + {"1.2+foo", "1.2+beta", true}, + {"v1.2", "v1.2-beta", false}, + {"v1.2+foo", "v1.2+beta", true}, + {"v1.2.3.4", "v1.2.3.4", true}, + {"v1.2.0.0", "v1.2", true}, + {"v1.2.0.0.1", "v1.2", false}, + {"v1.2", "v1.2.0.0", true}, + {"v1.2", "v1.2.0.0.1", false}, + {"v1.2.0.0", "v1.2.0.0.1", false}, + {"v1.2.3.0", "v1.2.3.4", false}, + {"1.7rc2", "1.7rc1", false}, + {"1.7rc2", "1.7", false}, + {"1.2.0", "1.2.0-X-1.2.0+metadata~dist", false}, + } + + for _, tc := range cases { + v1, err := NewVersion(tc.v1) + if err != nil { + t.Fatalf("err: %s", err) + } + + v2, err := NewVersion(tc.v2) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := v1.Equal(v2) + expected := tc.expected + if actual != expected { + t.Fatalf( + "%s <=> %s\nexpected: %t\nactual: %t", + tc.v1, tc.v2, + expected, actual) + } + } +} + +func TestGreaterThan(t *testing.T) { + cases := []struct { + v1 string + v2 string + expected bool + }{ + {"1.2.3", "1.4.5", false}, + {"1.2-beta", "1.2-beta", false}, + {"1.2", "1.1.4", true}, + {"1.2", "1.2-beta", true}, + {"1.2+foo", "1.2+beta", false}, + {"v1.2", "v1.2-beta", true}, + {"v1.2+foo", "v1.2+beta", false}, + {"v1.2.3.4", "v1.2.3.4", false}, + {"v1.2.0.0", "v1.2", false}, + {"v1.2.0.0.1", "v1.2", true}, + {"v1.2", "v1.2.0.0", false}, + {"v1.2", "v1.2.0.0.1", false}, + {"v1.2.0.0", "v1.2.0.0.1", false}, + {"v1.2.3.0", "v1.2.3.4", false}, + {"1.7rc2", "1.7rc1", true}, + {"1.7rc2", "1.7", false}, + {"1.2.0", "1.2.0-X-1.2.0+metadata~dist", true}, + } + + for _, tc := range cases { + v1, err := NewVersion(tc.v1) + if err != nil { + t.Fatalf("err: %s", err) + } + + v2, err := NewVersion(tc.v2) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := v1.GreaterThan(v2) + expected := tc.expected + if actual != expected { + t.Fatalf( + "%s > %s\nexpected: %t\nactual: %t", + tc.v1, tc.v2, + expected, actual) + } + } +} + +func TestLessThan(t *testing.T) { + cases := []struct { + v1 string + v2 string + expected bool + }{ + {"1.2.3", "1.4.5", true}, + {"1.2-beta", "1.2-beta", false}, + {"1.2", "1.1.4", false}, + {"1.2", "1.2-beta", false}, + {"1.2+foo", "1.2+beta", false}, + {"v1.2", "v1.2-beta", false}, + {"v1.2+foo", "v1.2+beta", false}, + {"v1.2.3.4", "v1.2.3.4", false}, + {"v1.2.0.0", "v1.2", false}, + {"v1.2.0.0.1", "v1.2", false}, + {"v1.2", "v1.2.0.0", false}, + {"v1.2", "v1.2.0.0.1", true}, + {"v1.2.0.0", "v1.2.0.0.1", true}, + {"v1.2.3.0", "v1.2.3.4", true}, + {"1.7rc2", "1.7rc1", false}, + {"1.7rc2", "1.7", true}, + {"1.2.0", "1.2.0-X-1.2.0+metadata~dist", false}, + } + + for _, tc := range cases { + v1, err := NewVersion(tc.v1) + if err != nil { + t.Fatalf("err: %s", err) + } + + v2, err := NewVersion(tc.v2) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := v1.LessThan(v2) + expected := tc.expected + if actual != expected { + t.Fatalf( + "%s < %s\nexpected: %t\nactual: %t", + tc.v1, tc.v2, + expected, actual) + } + } +} + +func TestGreaterThanOrEqual(t *testing.T) { + cases := []struct { + v1 string + v2 string + expected bool + }{ + {"1.2.3", "1.4.5", false}, + {"1.2-beta", "1.2-beta", true}, + {"1.2", "1.1.4", true}, + {"1.2", "1.2-beta", true}, + {"1.2+foo", "1.2+beta", true}, + {"v1.2", "v1.2-beta", true}, + {"v1.2+foo", "v1.2+beta", true}, + {"v1.2.3.4", "v1.2.3.4", true}, + {"v1.2.0.0", "v1.2", true}, + {"v1.2.0.0.1", "v1.2", true}, + {"v1.2", "v1.2.0.0", true}, + {"v1.2", "v1.2.0.0.1", false}, + {"v1.2.0.0", "v1.2.0.0.1", false}, + {"v1.2.3.0", "v1.2.3.4", false}, + {"1.7rc2", "1.7rc1", true}, + {"1.7rc2", "1.7", false}, + {"1.2.0", "1.2.0-X-1.2.0+metadata~dist", true}, + } + + for _, tc := range cases { + v1, err := NewVersion(tc.v1) + if err != nil { + t.Fatalf("err: %s", err) + } + + v2, err := NewVersion(tc.v2) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := v1.GreaterThanOrEqual(v2) + expected := tc.expected + if actual != expected { + t.Fatalf( + "%s >= %s\nexpected: %t\nactual: %t", + tc.v1, tc.v2, + expected, actual) + } + } +} + +func TestLessThanOrEqual(t *testing.T) { + cases := []struct { + v1 string + v2 string + expected bool + }{ + {"1.2.3", "1.4.5", true}, + {"1.2-beta", "1.2-beta", true}, + {"1.2", "1.1.4", false}, + {"1.2", "1.2-beta", false}, + {"1.2+foo", "1.2+beta", true}, + {"v1.2", "v1.2-beta", false}, + {"v1.2+foo", "v1.2+beta", true}, + {"v1.2.3.4", "v1.2.3.4", true}, + {"v1.2.0.0", "v1.2", true}, + {"v1.2.0.0.1", "v1.2", false}, + {"v1.2", "v1.2.0.0", true}, + {"v1.2", "v1.2.0.0.1", true}, + {"v1.2.0.0", "v1.2.0.0.1", true}, + {"v1.2.3.0", "v1.2.3.4", true}, + {"1.7rc2", "1.7rc1", false}, + {"1.7rc2", "1.7", true}, + {"1.2.0", "1.2.0-X-1.2.0+metadata~dist", false}, + } + + for _, tc := range cases { + v1, err := NewVersion(tc.v1) + if err != nil { + t.Fatalf("err: %s", err) + } + + v2, err := NewVersion(tc.v2) + if err != nil { + t.Fatalf("err: %s", err) + } + + actual := v1.LessThanOrEqual(v2) + expected := tc.expected + if actual != expected { + t.Fatalf( + "%s <= %s\nexpected: %t\nactual: %t", + tc.v1, tc.v2, + expected, actual) + } + } +} diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/josharian/native/license b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/josharian/native/license new file mode 100644 index 0000000000..6e617a9c7f --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/josharian/native/license @@ -0,0 +1,7 @@ +Copyright 2020 Josh Bleecher Snyder + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/json-iterator/go/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/json-iterator/go/LICENSE new file mode 100644 index 0000000000..2cf4f5ab28 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/json-iterator/go/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 json-iterator + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/klauspost/cpuid/v2/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/klauspost/cpuid/v2/LICENSE new file mode 100644 index 0000000000..5cec7ee949 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/klauspost/cpuid/v2/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Klaus Post + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/mdlayher/kobject/LICENSE.md b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/mdlayher/kobject/LICENSE.md new file mode 100644 index 0000000000..ffcdf89c9f --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/mdlayher/kobject/LICENSE.md @@ -0,0 +1,10 @@ +MIT License +=========== + +Copyright (C) 2017 Matt Layher + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/mdlayher/netlink/LICENSE.md b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/mdlayher/netlink/LICENSE.md new file mode 100644 index 0000000000..12f7105853 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/mdlayher/netlink/LICENSE.md @@ -0,0 +1,9 @@ +# MIT License + +Copyright (C) 2016-2022 Matt Layher + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/mdlayher/socket/LICENSE.md b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/mdlayher/socket/LICENSE.md new file mode 100644 index 0000000000..3ccdb75b26 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/mdlayher/socket/LICENSE.md @@ -0,0 +1,9 @@ +# MIT License + +Copyright (C) 2021 Matt Layher + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/minio/sha256-simd/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/minio/sha256-simd/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/minio/sha256-simd/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/modern-go/concurrent/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/modern-go/concurrent/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/modern-go/concurrent/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/modern-go/reflect2/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/modern-go/reflect2/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/modern-go/reflect2/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/peterbourgon/ff/v3/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/peterbourgon/ff/v3/LICENSE new file mode 100644 index 0000000000..8dada3edaf --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/peterbourgon/ff/v3/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + 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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/client_model/go/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/client_model/go/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/client_model/go/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/client_model/go/NOTICE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/client_model/go/NOTICE new file mode 100644 index 0000000000..20110e410e --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/client_model/go/NOTICE @@ -0,0 +1,5 @@ +Data model artifacts for Prometheus. +Copyright 2012-2015 The Prometheus Authors + +This product includes software developed at +SoundCloud Ltd. (http://soundcloud.com/). diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/common/model/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/common/model/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/common/model/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/common/model/NOTICE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/common/model/NOTICE new file mode 100644 index 0000000000..636a2c1a5e --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/common/model/NOTICE @@ -0,0 +1,5 @@ +Common libraries shared by Prometheus Go components. +Copyright 2015 The Prometheus Authors + +This product includes software developed at +SoundCloud Ltd. (http://soundcloud.com/). diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/prometheus/model/labels/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/prometheus/model/labels/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/prometheus/model/labels/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/prometheus/model/labels/NOTICE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/prometheus/model/labels/NOTICE new file mode 100644 index 0000000000..8605c258e3 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/prometheus/prometheus/model/labels/NOTICE @@ -0,0 +1,108 @@ +The Prometheus systems and service monitoring server +Copyright 2012-2015 The Prometheus Authors + +This product includes software developed at +SoundCloud Ltd. (https://soundcloud.com/). + + +The following components are included in this product: + +Bootstrap +https://getbootstrap.com +Copyright 2011-2014 Twitter, Inc. +Licensed under the MIT License + +bootstrap3-typeahead.js +https://github.com/bassjobsen/Bootstrap-3-Typeahead +Original written by @mdo and @fat +Copyright 2014 Bass Jobsen @bassjobsen +Licensed under the Apache License, Version 2.0 + +fuzzy +https://github.com/mattyork/fuzzy +Original written by @mattyork +Copyright 2012 Matt York +Licensed under the MIT License + +bootstrap-datetimepicker.js +https://github.com/Eonasdan/bootstrap-datetimepicker +Copyright 2015 Jonathan Peterson (@Eonasdan) +Licensed under the MIT License + +moment.js +https://github.com/moment/moment/ +Copyright JS Foundation and other contributors +Licensed under the MIT License + +Rickshaw +https://github.com/shutterstock/rickshaw +Copyright 2011-2014 by Shutterstock Images, LLC +See https://github.com/shutterstock/rickshaw/blob/master/LICENSE for license details + +mustache.js +https://github.com/janl/mustache.js +Copyright 2009 Chris Wanstrath (Ruby) +Copyright 2010-2014 Jan Lehnardt (JavaScript) +Copyright 2010-2015 The mustache.js community +Licensed under the MIT License + +jQuery +https://jquery.org +Copyright jQuery Foundation and other contributors +Licensed under the MIT License + +Protocol Buffers for Go with Gadgets +https://github.com/gogo/protobuf/ +Copyright (c) 2013, The GoGo Authors. +See source code for license details. + +Go support for leveled logs, analogous to +https://code.google.com/p/google-glog/ +Copyright 2013 Google Inc. +Licensed under the Apache License, Version 2.0 + +Support for streaming Protocol Buffer messages for the Go language (golang). +https://github.com/matttproud/golang_protobuf_extensions +Copyright 2013 Matt T. Proud +Licensed under the Apache License, Version 2.0 + +DNS library in Go +https://miek.nl/2014/august/16/go-dns-package/ +Copyright 2009 The Go Authors, 2011 Miek Gieben +See https://github.com/miekg/dns/blob/master/LICENSE for license details. + +LevelDB key/value database in Go +https://github.com/syndtr/goleveldb +Copyright 2012 Suryandaru Triandana +See https://github.com/syndtr/goleveldb/blob/master/LICENSE for license details. + +gosnappy - a fork of code.google.com/p/snappy-go +https://github.com/syndtr/gosnappy +Copyright 2011 The Snappy-Go Authors +See https://github.com/syndtr/gosnappy/blob/master/LICENSE for license details. + +go-zookeeper - Native ZooKeeper client for Go +https://github.com/samuel/go-zookeeper +Copyright (c) 2013, Samuel Stauffer +See https://github.com/samuel/go-zookeeper/blob/master/LICENSE for license details. + +Time series compression algorithm from Facebook's Gorilla paper +https://github.com/dgryski/go-tsz +Copyright (c) 2015,2016 Damian Gryski +See https://github.com/dgryski/go-tsz/blob/master/LICENSE for license details. + +The Go programming language +https://go.dev/ +Copyright (c) 2009 The Go Authors +See https://go.dev/LICENSE for license details. + +The Codicon icon font from Microsoft +https://github.com/microsoft/vscode-codicons +Copyright (c) Microsoft Corporation and other contributors +See https://github.com/microsoft/vscode-codicons/blob/main/LICENSE for license details. + +We also use code from a large number of npm packages. For details, see: +- https://github.com/prometheus/prometheus/blob/main/web/ui/react-app/package.json +- https://github.com/prometheus/prometheus/blob/main/web/ui/react-app/package-lock.json +- The individual package licenses as copied from the node_modules directory can be found in + the npm_licenses.tar.bz2 archive in release tarballs and Docker images. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/sirupsen/logrus/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/sirupsen/logrus/LICENSE new file mode 100644 index 0000000000..f090cb42f3 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/sirupsen/logrus/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Simon Eskildsen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/zeebo/xxh3/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/zeebo/xxh3/LICENSE new file mode 100644 index 0000000000..477f8e5e1e --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/github.com/zeebo/xxh3/LICENSE @@ -0,0 +1,25 @@ +xxHash Library +Copyright (c) 2012-2014, Yann Collet +Copyright (c) 2019, Jeff Wendling +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/consumer/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/consumer/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/consumer/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/consumer/xconsumer/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/consumer/xconsumer/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/consumer/xconsumer/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/featuregate/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/featuregate/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/featuregate/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/pdata/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/pdata/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/pdata/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/pdata/pprofile/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/pdata/pprofile/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/collector/pdata/pprofile/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/otel/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/otel/LICENSE new file mode 100644 index 0000000000..f1aee0f110 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/otel/LICENSE @@ -0,0 +1,231 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. + +-------------------------------------------------------------------------------- + +Copyright 2009 The Go Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google LLC nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/otel/metric/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/otel/metric/LICENSE new file mode 100644 index 0000000000..f1aee0f110 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/go.opentelemetry.io/otel/metric/LICENSE @@ -0,0 +1,231 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. + +-------------------------------------------------------------------------------- + +Copyright 2009 The Go Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google LLC nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/go.uber.org/multierr/LICENSE.txt b/third_party/opentelemetry-ebpf-profiler/LICENSES/go.uber.org/multierr/LICENSE.txt new file mode 100644 index 0000000000..413e30f7ce --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/go.uber.org/multierr/LICENSE.txt @@ -0,0 +1,19 @@ +Copyright (c) 2017-2021 Uber Technologies, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/arch/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/arch/LICENSE new file mode 100644 index 0000000000..686d8a9191 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/arch/LICENSE @@ -0,0 +1,27 @@ +Copyright 2015 The Go Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google LLC nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/exp/constraints/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/exp/constraints/LICENSE new file mode 100644 index 0000000000..2a7cf70da6 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/exp/constraints/LICENSE @@ -0,0 +1,27 @@ +Copyright 2009 The Go Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google LLC nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/net/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/net/LICENSE new file mode 100644 index 0000000000..2a7cf70da6 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/net/LICENSE @@ -0,0 +1,27 @@ +Copyright 2009 The Go Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google LLC nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/sync/errgroup/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/sync/errgroup/LICENSE new file mode 100644 index 0000000000..2a7cf70da6 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/sync/errgroup/LICENSE @@ -0,0 +1,27 @@ +Copyright 2009 The Go Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google LLC nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/sys/unix/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/sys/unix/LICENSE new file mode 100644 index 0000000000..2a7cf70da6 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/sys/unix/LICENSE @@ -0,0 +1,27 @@ +Copyright 2009 The Go Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google LLC nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/text/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/text/LICENSE new file mode 100644 index 0000000000..2a7cf70da6 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/golang.org/x/text/LICENSE @@ -0,0 +1,27 @@ +Copyright 2009 The Go Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google LLC nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/google.golang.org/genproto/googleapis/rpc/status/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/google.golang.org/genproto/googleapis/rpc/status/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/google.golang.org/genproto/googleapis/rpc/status/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/google.golang.org/grpc/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/google.golang.org/grpc/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/google.golang.org/grpc/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/google.golang.org/grpc/NOTICE.txt b/third_party/opentelemetry-ebpf-profiler/LICENSES/google.golang.org/grpc/NOTICE.txt new file mode 100644 index 0000000000..530197749e --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/google.golang.org/grpc/NOTICE.txt @@ -0,0 +1,13 @@ +Copyright 2014 gRPC authors. + +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. diff --git a/third_party/opentelemetry-ebpf-profiler/LICENSES/google.golang.org/protobuf/LICENSE b/third_party/opentelemetry-ebpf-profiler/LICENSES/google.golang.org/protobuf/LICENSE new file mode 100644 index 0000000000..49ea0f9288 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/LICENSES/google.golang.org/protobuf/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2018 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/third_party/opentelemetry-ebpf-profiler/Makefile b/third_party/opentelemetry-ebpf-profiler/Makefile new file mode 100644 index 0000000000..ec868088b9 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/Makefile @@ -0,0 +1,160 @@ +.PHONY: all all-common clean ebpf generate test test-deps \ + test-junit protobuf docker-image agent legal integration-test-binaries \ + codespell lint linter-version ebpf-profiler format-ebpf pprof-execs \ + pprof_1_23 pprof_1_24 pprof_1_24_cgo \ + rust-components rust-targets rust-tests vanity-import-check vanity-import-fix + +SHELL := /usr/bin/env bash + +# Detect native architecture and translate to GOARCH. +NATIVE_ARCH := $(shell uname -m) +ifeq ($(NATIVE_ARCH),x86_64) +NATIVE_ARCH := amd64 +else ifneq (,$(filter $(NATIVE_ARCH),aarch64 arm64)) +NATIVE_ARCH := arm64 +else +$(error Unsupported architecture: $(NATIVE_ARCH)) +endif + +# Valid values are: amd64, arm64. +TARGET_ARCH ?= $(NATIVE_ARCH) +ifeq ($(TARGET_ARCH),arm64) +ARCH_PREFIX := aarch64 +else ifeq ($(TARGET_ARCH),amd64) +ARCH_PREFIX := x86_64 +else +$(error Unsupported architecture: $(TARGET_ARCH)) +endif + +export TARGET_ARCH +export CGO_ENABLED = 0 +export GOARCH = $(TARGET_ARCH) +export CC = $(ARCH_PREFIX)-linux-gnu-gcc +export OBJCOPY = $(ARCH_PREFIX)-linux-gnu-objcopy + + +BRANCH = $(shell git rev-parse --abbrev-ref HEAD | tr -d '-' | tr '[:upper:]' '[:lower:]') +COMMIT_SHORT_SHA = $(shell git rev-parse --short=8 HEAD) + +VERSION ?= v0.0.0 +BUILD_TIMESTAMP ?= $(shell date +%s) +REVISION ?= $(BRANCH)-$(COMMIT_SHORT_SHA) + +LDFLAGS := -X go.opentelemetry.io/ebpf-profiler/vc.version=$(VERSION) \ + -X go.opentelemetry.io/ebpf-profiler/vc.revision=$(REVISION) \ + -X go.opentelemetry.io/ebpf-profiler/vc.buildTimestamp=$(BUILD_TIMESTAMP) \ + -extldflags=-static + +GO_TAGS := osusergo,netgo +EBPF_FLAGS := + +GO_FLAGS := -buildvcs=false -ldflags="$(LDFLAGS)" + +MAKEFLAGS += -j$(shell nproc) + +JUNIT_OUT_DIR ?= /tmp/testresults + +all: ebpf-profiler + +# Removes the go build cache and binaries in the current project +clean: + @go clean -cache -i + @$(MAKE) -s -C support/ebpf clean + @chmod -Rf u+w go/ || true + @rm -rf go .cache support/*.test interpreter/golabels/integrationtests/pprof_1_* + @cargo clean + +generate: + GOARCH=$(NATIVE_ARCH) go generate ./... + (cd support && ./generate.sh) + +ebpf: generate + $(MAKE) $(EBPF_FLAGS) -C support/ebpf + +ebpf-profiler: generate ebpf + go build $(GO_FLAGS) -tags $(GO_TAGS) + +rust-targets: + rustup target add $(ARCH_PREFIX)-unknown-linux-musl + +rust-components: rust-targets + RUSTFLAGS="--remap-path-prefix $(PWD)=/" cargo build --lib --release --target $(ARCH_PREFIX)-unknown-linux-musl + +rust-tests: rust-targets + cargo test + +GOLANGCI_LINT_VERSION = "v2.1.6" +lint: generate vanity-import-check pprof-execs + $(MAKE) lint -C support/ebpf + docker run --rm -t -v $$(pwd):/app -w /app golangci/golangci-lint:$(GOLANGCI_LINT_VERSION) sh -c "golangci-lint version && golangci-lint config verify && golangci-lint run --max-issues-per-linter -1 --max-same-issues -1" + +format-ebpf: + $(MAKE) format -C support/ebpf + +linter-version: + @echo $(GOLANGCI_LINT_VERSION) + +vanity-import-check: + @go install github.com/jcchavezs/porto/cmd/porto@latest + @porto --skip-dirs "^(LICENSES|go|target).*" --include-internal -l . || ( echo "(run: make vanity-import-fix)"; exit 1 ) + +vanity-import-fix: $(PORTO) + @go install github.com/jcchavezs/porto/cmd/porto@latest + @porto --skip-dirs "^(LICENSES|go|target).*" --include-internal -w . + +test: generate ebpf test-deps + # tools/coredump tests build ebpf C-code using CGO to test it against coredumps + CGO_ENABLED=1 go test $(GO_FLAGS) -tags $(GO_TAGS) ./... + +test-junit: generate ebpf test-deps + mkdir -p $(JUNIT_OUT_DIR) + go install gotest.tools/gotestsum@latest + CGO_ENABLED=1 gotestsum --junitfile $(JUNIT_OUT_DIR)/junit.xml -- $(GO_FLAGS) -tags $(GO_TAGS) ./... + +TESTDATA_DIRS:= \ + nativeunwind/elfunwindinfo/testdata \ + libpf/pfelf/testdata \ + reporter/testdata + +test-deps: + $(foreach testdata_dir, $(TESTDATA_DIRS), \ + ($(MAKE) -C "$(testdata_dir)") || exit ; \ + ) + +TEST_INTEGRATION_BINARY_DIRS := tracer processmanager/ebpf support interpreter/golabels/integrationtests + +pprof-execs: pprof_1_23 pprof_1_24 pprof_1_24_cgo pprof_1_24_cgo_pie + +pprof_1_23: + CGO_ENABLED=0 GOTOOLCHAIN=go1.23.7 go test -C ./interpreter/golabels/integrationtests/pprof -c -trimpath -tags $(GO_TAGS),nocgo,integration -o ./../$@ + +pprof_1_24: + CGO_ENABLED=0 GOTOOLCHAIN=go1.24.6 go test -C ./interpreter/golabels/integrationtests/pprof -c -trimpath -tags $(GO_TAGS),nocgo,integration -o ./../$@ + +pprof_1_24_cgo: + CGO_ENABLED=1 GOTOOLCHAIN=go1.24.6 go test -C ./interpreter/golabels/integrationtests/pprof -c -ldflags '-extldflags "-static"' -trimpath -tags $(GO_TAGS),withcgo,integration -o ./../$@ + +pprof_1_24_cgo_pie: + CGO_ENABLED=1 GOTOOLCHAIN=go1.24.6 go test -C ./interpreter/golabels/integrationtests/pprof -c -ldflags '-extldflags "-static"' -trimpath -buildmode=pie -tags $(GO_TAGS),withcgo,integration -o ./../$@ + +integration-test-binaries: generate ebpf pprof-execs + $(foreach test_name, $(TEST_INTEGRATION_BINARY_DIRS), \ + (go test -ldflags='-extldflags=-static' -trimpath -c \ + -tags $(GO_TAGS),static_build,integration \ + -o ./support/$(subst /,_,$(test_name)).test \ + ./$(test_name)) || exit ; \ + ) + +docker-image: + docker build -t otel/opentelemetry-ebpf-profiler-dev -f Dockerfile . + +agent: + docker run -v "$$PWD":/agent -it --rm --user $(shell id -u):$(shell id -g) otel/opentelemetry-ebpf-profiler-dev:latest \ + "make TARGET_ARCH=$(TARGET_ARCH) VERSION=$(VERSION) REVISION=$(REVISION) BUILD_TIMESTAMP=$(BUILD_TIMESTAMP)" + +legal: + @go install github.com/google/go-licenses@latest + @go-licenses save --force . --save_path=LICENSES + +codespell: + @codespell diff --git a/third_party/opentelemetry-ebpf-profiler/README.md b/third_party/opentelemetry-ebpf-profiler/README.md new file mode 100644 index 0000000000..3b93edab3c --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/README.md @@ -0,0 +1,106 @@ +# Introduction + +This repository implements a whole-system, cross-language profiler for Linux via +eBPF. + +## Core features and strengths + +- Implements the [experimental OTel profiling + signal](https://github.com/open-telemetry/opentelemetry-proto/pull/534) +- Very low CPU and memory overhead (1% CPU and 250MB memory are our upper limits + in testing and the agent typically manages to stay way below that) +- Support for native C/C++ executables without the need for DWARF debug + information (by leveraging `.eh_frame` data as described in + [US11604718B1](https://patents.google.com/patent/US11604718B1/en?inventor=thomas+dullien&oq=thomas+dullien)) +- Support profiling of system libraries **without frame pointers** and **without + debug symbols on the host**. +- Support for mixed stacktraces between runtimes - stacktraces go from Kernel + space through unmodified system libraries all the way into high-level + languages. +- Support for native code (C/C++, Rust, Zig, Go, etc. without debug symbols on + host) +- Support for a broad set of HLLs (Hotspot JVM, Python, Ruby, PHP, Node.JS, V8, + Perl), .NET is in preparation. +- 100% non-intrusive: there's no need to load agents or libraries into the + processes that are being profiled. +- No need for any reconfiguration, instrumentation or restarts of HLL + interpreters and VMs: the agent supports unwinding each of the supported + languages in the default configuration. +- ARM64 support for all unwinders except NodeJS. +- Support for native `inline frames`, which provide insights into compiler + optimizations and offer a higher precision of function call chains. + +## Building + +We are working towards integrating the profiling functionality into the [OTel Collector](https://opentelemetry.io/docs/collector/) as a receiver, +which will be the supported configuration going forward. In the meantime, we also offer a standalone profiling agent binary named `ebpf-profiler`, +to aid with development and debugging. The expectation is that this will go away once the integration with the [OTel Collector](https://opentelemetry.io/docs/collector/) is complete. + +## Platform Requirements +The agent can be built with the provided make targets. Docker is required for containerized builds, and both amd64 and arm64 architectures are supported. + + For **Linux**, the following steps apply: + 1. Build the agent for your current machine's architecture: + ```sh + make agent + ``` + Or `make debug-agent` for debug build. + 2. To cross-compile for a different architecture (e.g. arm64): + ```sh + make agent TARGET_ARCH=arm64 + ``` +The resulting binary will be named `ebpf-profiler` in the current directory. + +## Other OSes +Since the profiler is Linux-only, macOS and Windows users need to set up a Linux VM to build and run the agent. Ensure the appropriate architecture is specified if using cross-compilation. Use the same make targets as above after the Linux environment is configured in the VM. + +## Supported Linux kernel version + +[7ddc23ea](https://github.com/open-telemetry/opentelemetry-ebpf-profiler/commit/7ddc23ea135a2e00fffc17850ab90534e9b63108) is the last commit with support for 4.19. Changes after this commit may require a minimal Linux kernel version of 5.4. + +## Alternative Build (Without Docker) +You can build the agent without Docker by directly installing the dependencies listed in the Dockerfile. Once dependencies are set up, simply run: +```sh +make +``` +or +```sh +make debug +``` +This will build the profiler natively on your machine. + +## Running + +You can start the agent with the following command: + +```sh +sudo ./ebpf-profiler -collection-agent=127.0.0.1:11000 -disable-tls +``` + +The agent comes with a functional but work-in-progress / evolving implementation +of the recently released OTel profiling [signal](https://github.com/open-telemetry/opentelemetry-proto/pull/534). + +The agent loads the eBPF program and its maps, starts unwinding and reports +captured traces to the backend. + +## Development + +To understand how this project works and learn more about profiling, check out [Profiling internals](doc/internals.md) + + +# Legal + +## Licensing Information + +This project is licensed under the Apache License 2.0 (Apache-2.0). +[Apache License 2.0](LICENSE) + +The eBPF source code is licensed under the GPL 2.0 license. +[GPL 2.0](support/ebpf/LICENSE) + +## Licenses of dependencies + +To display a summary of the dependencies' licenses: +```sh +make legal +``` diff --git a/third_party/opentelemetry-ebpf-profiler/VERSIONING.md b/third_party/opentelemetry-ebpf-profiler/VERSIONING.md new file mode 100644 index 0000000000..633474854b --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/VERSIONING.md @@ -0,0 +1,22 @@ +# Versioning Policy +This document outlines the versioning strategy for the OpenTelemetry eBPF Profiler project. + +# Development Status +This project is currently under active development. As such, users should be aware that significant changes, including breaking API modifications, may occur at any time. + +# Automatic Version Tagging +Automatic version tags are generated on a monthly basis to reflect ongoing development progress. + +# Versioning Scheme +This project adheres to [Semantic Versioning 2](https://semver.org/spec/v2.0.0.html). + +Major Version Zero (0.y.z): While the project is in its initial development phase, the major version will remain 0. Anything MAY change at any time. The public API SHOULD NOT be considered stable. Users are advised to exercise caution and expect potential breaking changes without prior notice during this phase. + +# Automatic Tag Format +The format for automatically generated tags currently follows v0.0.x, where x represents the year followed by the week number. + +## Example: + +- `v0.0.202501` would indicate the first week of 2025. + +- `v0.0.202515` would indicate the fifteenth week of 2025. diff --git a/third_party/opentelemetry-ebpf-profiler/armhelpers/arm_helpers.go b/third_party/opentelemetry-ebpf-profiler/armhelpers/arm_helpers.go new file mode 100644 index 0000000000..4887575f33 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/armhelpers/arm_helpers.go @@ -0,0 +1,182 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +// This package contains a series of helper functions that are useful for ARM disassembly. +package armhelpers // import "go.opentelemetry.io/ebpf-profiler/armhelpers" + +import ( + "fmt" + "strconv" + "strings" + + "go.opentelemetry.io/ebpf-profiler/stringutil" + aa "golang.org/x/arch/arm64/arm64asm" +) + +// Xreg2num converts arm64asm Reg or RegSP X0...X30 and W0...W30 register enum into a register +// number. X0/W0 return 0, X1/W1 return 1, etc. +func Xreg2num(arg any) (int, bool) { + var ndx aa.Reg + switch reg := arg.(type) { + case aa.Reg: + ndx = reg + case aa.RegSP: + ndx = aa.Reg(reg) + case aa.RegExtshiftAmount: + // Similar to other instructions, fields of RegExtshiftAmount are not exported. + // https://github.com/golang/go/issues/51517 + n, ok := DecodeRegister(arg.(aa.RegExtshiftAmount).String()) + if !ok { + return 0, false + } + ndx = n + default: + return 0, false + } + + switch { + case ndx >= aa.X0 && ndx <= aa.X30: + return int(ndx - aa.X0), true + case ndx >= aa.W0 && ndx <= aa.W30: + return int(ndx - aa.W0), true + } + + return 0, false +} + +// DecodeRegister converts the result of calling Reg.String() +// into the initial register's value. +func DecodeRegister(reg string) (aa.Reg, bool) { + const maxRegister = uint64(aa.V31) + + // This function is essentially just the inverse + // of https://cs.opensource.google/go/x/arch/+/fc48f9fe:arm64/arm64asm/inst.go;l=335 + length := len(reg) + if length == 0 { + return 0, false + } + + // WZR and XZR don't have a value. + if reg == "WZR" || reg == "XZR" { + return 0, false + } + + // The special case is having a string containing Reg(%d). + if length > 3 && reg[0:2] == "Reg" { + val, err := strconv.ParseUint(reg[3:length-1], 10, 64) + if err != nil { + return 0, false + } + if val > maxRegister { + return 0, false + } + return aa.Reg(val), true + } + + // Otherwise, we want to strip out the + // leading character only if the + // character is one of a few. + var regOffset uint64 + switch reg[0] { + case 'W': + regOffset = uint64(aa.W0) + case 'X': + regOffset = uint64(aa.X0) + case 'B': + regOffset = uint64(aa.B0) + case 'H': + regOffset = uint64(aa.H0) + case 'S': + regOffset = uint64(aa.S0) + case 'D': + regOffset = uint64(aa.D0) + case 'Q': + regOffset = uint64(aa.Q0) + case 'V': + regOffset = uint64(aa.V0) + default: + return 0, false + } + + val, err := strconv.ParseUint(reg[1:], 10, 64) + if err != nil { + return 0, false + } + + res := val + regOffset + if res > maxRegister { + return 0, false + } + return aa.Reg(res), true +} + +// DecodeImmediate converts an arm64asm Arg of immediate type to it's value. +func DecodeImmediate(arg aa.Arg) (int64, bool) { + switch val := arg.(type) { + case aa.Imm: + return int64(val.Imm), true + case aa.PCRel: + return int64(val), true + case aa.MemImmediate: + // The MemImmediate layout changes quite + // a bit depending on its mode. + var fields [2]string + // All of the strings we are formatted in the following way: + // 1) They all (except 1) contain a comma + // 2) They all (except 1) have the offset as the second parameter. + // The exception is aa.AddrOffset when the offset is 0. + n := stringutil.SplitN(val.String(), ",", fields[:]) + if n == 0 || n > 2 { + // This is a failure case + return 0, false + } + + if n == 1 { + // This should happen only if we have an AddrOffset where there's + // a 0 offset. See + // https://cs.opensource.google/go/x/arch/+/fc48f9fe:arm64/arm64asm/inst.go;l=515 + return 0, true + } + + // In all other cases we want to split the string around the comma and + // extract the second number. Note that the string will start with a # + // in all but one case (namely, AddrPostReg). + pos := strings.Index(fields[1], "#") + if pos == -1 { + // We have a string that looks like this: + // [%s], %s + // Note that the second %s here is the print + // format from a register. Annoyingly this isn't a + // register type, so we have to unwind it manually + reg, ok := DecodeRegister(fields[1]) + if !ok { + return 0, false + } + // The Go disassembler always adds X0 here. + // See https://cs.opensource.google/go/x/arch/+/fc48f9fe:arm64/arm64asm/inst.go;l=526 + return int64(reg - aa.X0), true + } + + // Otherwise all of the strings end with a ], so we just parse + // the string before that. + endIndex := strings.Index(fields[1], "]") + // The strings are base 10 encoded + out, err := strconv.ParseInt(fields[1][pos+1:endIndex], 10, 64) + if err != nil { + return 0, false + } + return out, true + + case aa.ImmShift: + // Sadly, ImmShift{} does not have public fields. + // https://github.com/golang/go/issues/51517 + var imm int64 + n, err := fmt.Sscanf(val.String(), "#%v", &imm) + if err != nil || n != 1 { + return 0, false + } + return imm, true + } + + return 0, false +} diff --git a/third_party/opentelemetry-ebpf-profiler/asm/amd/.gitignore b/third_party/opentelemetry-ebpf-profiler/asm/amd/.gitignore new file mode 100644 index 0000000000..f15395e879 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/asm/amd/.gitignore @@ -0,0 +1 @@ +testdata/fuzz \ No newline at end of file diff --git a/third_party/opentelemetry-ebpf-profiler/asm/amd/insn.go b/third_party/opentelemetry-ebpf-profiler/asm/amd/insn.go new file mode 100644 index 0000000000..0c0da32fcc --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/asm/amd/insn.go @@ -0,0 +1,89 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package amd // import "go.opentelemetry.io/ebpf-profiler/asm/amd" +import ( + "bytes" + + "go.opentelemetry.io/ebpf-profiler/libpf" + "golang.org/x/arch/x86/x86asm" +) + +// https://www.felixcloutier.com/x86/endbr64 +var opcodeEndBr64 = []byte{0xf3, 0x0f, 0x1e, 0xfa} + +// DecodeSkippable decodes an instruction that we don't care much about and are going to skip, +// as golang.org/x/arch/x86/x86asm fails to decode it. +// The second returned argument is the size of the decoded instruction to skip. +func DecodeSkippable(code []byte) (ok bool, size int) { + switch { + case bytes.HasPrefix(code, opcodeEndBr64): + return true, len(opcodeEndBr64) + default: + return false, 0 + } +} + +// FindExternalJump decodes every instruction in the sym function and searches for +// a relative jump outside itself - to an address not covered by the sym. +// FindExternalJump returns the destination address of the relative jump outside the function or 0. +func FindExternalJump(code []byte, f *libpf.Symbol) (libpf.Address, error) { + var ( + err error + inst x86asm.Inst + rip = int64(f.Address) + ) + for len(code) > 0 { + if ok, l := DecodeSkippable(code); ok { + inst = x86asm.Inst{Op: x86asm.NOP, Len: l} + } else { + inst, err = x86asm.Decode(code, 64) + if err != nil { + return 0, err + } + } + rip += int64(inst.Len) + code = code[inst.Len:] + if !isJump(inst.Op) { + continue + } + if rel, ok := inst.Args[0].(x86asm.Rel); !ok { + continue + } else { + dst := rip + int64(rel) + if dst >= int64(f.Address) && dst < int64(f.Address)+int64(f.Size) { + continue + } + return libpf.Address(dst), nil + } + } + return 0, nil +} + +func isJump(op x86asm.Op) bool { + switch op { + case x86asm.JA, + x86asm.JAE, + x86asm.JB, + x86asm.JBE, + x86asm.JCXZ, + x86asm.JE, + x86asm.JECXZ, + x86asm.JG, + x86asm.JGE, + x86asm.JL, + x86asm.JLE, + x86asm.JMP, + x86asm.JNE, + x86asm.JNO, + x86asm.JNP, + x86asm.JNS, + x86asm.JO, + x86asm.JP, + x86asm.JRCXZ, + x86asm.JS: + return true + default: + return false + } +} diff --git a/third_party/opentelemetry-ebpf-profiler/asm/amd/insn_test.go b/third_party/opentelemetry-ebpf-profiler/asm/amd/insn_test.go new file mode 100644 index 0000000000..3dd3708f43 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/asm/amd/insn_test.go @@ -0,0 +1,19 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package amd + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestEndBr64(t *testing.T) { + res, n := DecodeSkippable([]byte{0xF3, 0x0F, 0x1E, 0xFA}) + assert.True(t, res) + assert.Equal(t, 4, n) + + res, _ = DecodeSkippable([]byte{}) + assert.False(t, res) +} diff --git a/third_party/opentelemetry-ebpf-profiler/asm/amd/interpreter.go b/third_party/opentelemetry-ebpf-profiler/asm/amd/interpreter.go new file mode 100644 index 0000000000..37560d3b48 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/asm/amd/interpreter.go @@ -0,0 +1,179 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package amd // import "go.opentelemetry.io/ebpf-profiler/asm/amd" + +import ( + "fmt" + "io" + "math" + + "go.opentelemetry.io/ebpf-profiler/asm/expression" + "golang.org/x/arch/x86/x86asm" +) + +type CodeBlock struct { + Address expression.Expression + Code []byte +} + +type Interpreter struct { + Regs Registers + code []byte + CodeAddress expression.Expression + pc int +} + +func NewInterpreter() *Interpreter { + it := &Interpreter{} + it.initRegs() + return it +} + +func NewInterpreterWithCode(code []byte) *Interpreter { + it := &Interpreter{code: code, CodeAddress: expression.Named("code address")} + it.initRegs() + return it +} + +func (i *Interpreter) ResetCode(code []byte, address expression.Expression) { + i.code = code + i.CodeAddress = address + i.pc = 0 +} + +func (i *Interpreter) Loop() (x86asm.Inst, error) { + return i.LoopWithBreak(func(x86asm.Inst) bool { return false }) +} + +func (i *Interpreter) LoopWithBreak(breakLoop func(op x86asm.Inst) bool) (x86asm.Inst, error) { + prev := x86asm.Inst{} + for { + op, err := i.Step() + if err != nil { + return prev, err + } + if breakLoop(op) { + return op, nil + } + prev = op + } +} + +func (i *Interpreter) Step() (x86asm.Inst, error) { + if len(i.code) == 0 { + return x86asm.Inst{}, io.EOF + } + var inst x86asm.Inst + var err error + if ok, instLen := DecodeSkippable(i.code); ok { + inst = x86asm.Inst{Op: x86asm.NOP, Len: instLen} + } else { + inst, err = x86asm.Decode(i.code, 64) + if err != nil { + return inst, fmt.Errorf("at 0x%x : %v", i.pc, err) + } + } + i.pc += inst.Len + i.code = i.code[inst.Len:] + i.Regs.setX86asm(x86asm.RIP, expression.Add(i.CodeAddress, expression.Imm(uint64(i.pc)))) + switch inst.Op { + case x86asm.ADD: + if dst, ok := inst.Args[0].(x86asm.Reg); ok { + left := i.Regs.GetX86(dst) + switch src := inst.Args[1].(type) { + case x86asm.Imm: + right := expression.Imm(uint64(src)) + i.Regs.setX86asm(dst, expression.Add(left, right)) + case x86asm.Reg: + right := i.Regs.GetX86(src) + i.Regs.setX86asm(dst, expression.Add(left, right)) + case x86asm.Mem: + right := i.MemArg(src) + right = expression.MemWithSegment(src.Segment, right, inst.MemBytes) + i.Regs.setX86asm(dst, expression.Add(left, right)) + } + } + case x86asm.SHL: + if dst, ok := inst.Args[0].(x86asm.Reg); ok { + if src, imm := inst.Args[1].(x86asm.Imm); imm { + v := expression.Multiply( + i.Regs.GetX86(dst), + expression.Imm(uint64(math.Pow(2, float64(src)))), + ) + i.Regs.setX86asm(dst, v) + } + } + case x86asm.MOV, x86asm.MOVZX, x86asm.MOVSXD, x86asm.MOVSX: + if dst, ok := inst.Args[0].(x86asm.Reg); ok { + switch src := inst.Args[1].(type) { + case x86asm.Imm: + i.Regs.setX86asm(dst, expression.Imm(uint64(src))) + case x86asm.Reg: + i.Regs.setX86asm(dst, i.Regs.GetX86(src)) + case x86asm.Mem: + v := i.MemArg(src) + + dataSizeBits := inst.DataSize + + v = expression.MemWithSegment(src.Segment, v, inst.MemBytes) + if inst.Op == x86asm.MOVSXD || inst.Op == x86asm.MOVSX { + v = expression.SignExtend(v, dataSizeBits) + } else { + v = expression.ZeroExtend(v, dataSizeBits) + } + i.Regs.setX86asm(dst, v) + } + } + case x86asm.XOR: + if dst, ok := inst.Args[0].(x86asm.Reg); ok { + if src, reg := inst.Args[1].(x86asm.Reg); reg { + if src == dst { + i.Regs.setX86asm(dst, expression.Imm(0)) + } + } + } + case x86asm.AND: + if dst, ok := inst.Args[0].(x86asm.Reg); ok { + if src, imm := inst.Args[1].(x86asm.Imm); imm { + if src == 3 { // todo other cases + i.Regs.setX86asm(dst, expression.ZeroExtend(i.Regs.GetX86(dst), 2)) + } + } + } + case x86asm.LEA: + if dst, ok := inst.Args[0].(x86asm.Reg); ok { + if src, mem := inst.Args[1].(x86asm.Mem); mem { + v := i.MemArg(src) + i.Regs.setX86asm(dst, v) + } + } + default: + } + return inst, nil +} + +func (i *Interpreter) MemArg(src x86asm.Mem) expression.Expression { + vs := make([]expression.Expression, 0, 3) + if src.Disp != 0 { + vs = append(vs, expression.Imm(uint64(src.Disp))) + } + if src.Base != 0 { + vs = append(vs, i.Regs.GetX86(src.Base)) + } + if src.Index != 0 { + v := expression.Multiply( + i.Regs.GetX86(src.Index), + expression.Imm(uint64(src.Scale)), + ) + vs = append(vs, v) + } + v := expression.Add(vs...) + return v +} + +func (i *Interpreter) initRegs() { + for j := range len(i.Regs.regs) { + i.Regs.regs[j] = expression.Named(Reg(j).String()) + } +} diff --git a/third_party/opentelemetry-ebpf-profiler/asm/amd/interpreter_test.go b/third_party/opentelemetry-ebpf-profiler/asm/amd/interpreter_test.go new file mode 100644 index 0000000000..be3fc2dada --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/asm/amd/interpreter_test.go @@ -0,0 +1,171 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package amd + +import ( + "io" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "go.opentelemetry.io/ebpf-profiler/asm/expression" +) + +func BenchmarkPythonInterpreter(b *testing.B) { + for i := 0; i < b.N; i++ { + testPythonInterpreter(b) + } +} + +func TestPythonInterpreter(t *testing.T) { + testPythonInterpreter(t) +} + +func testPythonInterpreter(t testing.TB) { + // 00010000 4D 89 F2 mov r10, r14 + // 00010003 45 0F B6 36 movzx r14d, byte ptr [r14] + // 00010007 48 8D 05 2D B3 35 00 lea rax, [rip + 0x35b32d] + // 0001000E 4C 8B 6C 24 08 mov r13, qword ptr [rsp + 8] + // 00010013 48 89 C1 mov rcx, rax + // 00010016 48 89 44 24 10 mov qword ptr [rsp + 0x10], rax + // 0001001B 45 0F B6 5A 01 movzx r11d, byte ptr [r10 + 1] + // 00010020 41 0F B6 C6 movzx eax, r14b + // 00010024 48 8B 04 C1 mov rax, qword ptr [rcx + rax*8] + // 00010028 FF E0 jmp rax + code := []byte{ + 0x4d, 0x89, 0xf2, 0x45, 0x0f, 0xb6, 0x36, 0x48, 0x8d, 0x05, 0x2d, 0xb3, 0x35, + 0x00, 0x4c, 0x8b, 0x6c, 0x24, 0x08, 0x48, 0x89, 0xc1, 0x48, 0x89, 0x44, 0x24, + 0x10, 0x45, 0x0f, 0xb6, 0x5a, 0x01, 0x41, 0x0f, 0xb6, 0xc6, 0x48, 0x8b, 0x04, + 0xc1, 0xff, 0xe0, + } + it := NewInterpreterWithCode(code) + it.CodeAddress = expression.Imm(0x8AF05) + r14 := it.Regs.Get(R14) + _, err := it.Loop() + if err == nil || err != io.EOF { + t.Fatal(err) + } + actual := it.Regs.Get(RAX) + expected := expression.Mem( + expression.Add( + expression.Multiply( + expression.ZeroExtend8(expression.Mem1(r14)), + expression.Imm(8), + ), + expression.NewImmediateCapture("switch table"), + ), + 8, + ) + if !actual.Match(expected) { + t.Fatal() + } +} + +func TestRecoverSwitchCase(t *testing.T) { + blocks := []CodeBlock{ + { + Address: expression.Imm(0x3310E3), + // 003310E3 48 8B 44 24 20 mov rax, qword ptr [rsp + 0x20] + // 003310E8 48 89 18 mov qword ptr [rax], rbx + // 003310EB 49 83 C2 02 add r10, 2 + // 003310EF 44 89 E0 mov eax, r12d + // 003310F2 83 E0 03 and eax, 3 + // 003310F5 31 DB xor ebx, ebx + // 003310F7 41 F6 C4 04 test r12b, 4 + // 003310FB 4C 89 74 24 10 mov qword ptr [rsp + 0x10], r14 + // 00331100 74 08 je 0x33110a + Code: []byte{0x48, 0x8b, 0x44, 0x24, 0x20, 0x48, 0x89, 0x18, 0x49, + 0x83, 0xc2, 0x02, 0x44, 0x89, 0xe0, 0x83, 0xe0, 0x03, 0x31, 0xdb, + 0x41, 0xf6, 0xc4, 0x04, 0x4c, 0x89, 0x74, 0x24, 0x10, 0x74, 0x08}, + }, + { + Address: expression.Imm(0x33110a), + // 0033110A 4D 89 DC mov r12, r11 + // 0033110D 4D 8D 47 F8 lea r8, [r15 - 8] + // 00331111 4C 89 7C 24 60 mov qword ptr [rsp + 0x60], r15 + // 00331116 4D 8B 7F F8 mov r15, qword ptr [r15 - 8] + // 0033111A 48 8B 0D 87 06 17 01 mov rcx, qword ptr [rip + 0x1170687] + // 00331121 89 C0 mov eax, eax + // 00331123 48 8D 15 02 E7 C0 00 lea rdx, [rip + 0xc0e702] + // 0033112A 48 63 04 82 movsxd rax, dword ptr [rdx + rax*4] + // 0033112E 48 01 D0 add rax, rdx + // 00331131 4C 89 D5 mov rbp, r10 + // 00331134 4D 89 C5 mov r13, r8 + // 00331137 FF E0 jmp rax + Code: []byte{ + 0x4d, 0x89, 0xdc, 0x4d, 0x8d, 0x47, 0xf8, 0x4c, 0x89, 0x7c, 0x24, + 0x60, 0x4d, 0x8b, 0x7f, 0xf8, 0x48, 0x8b, 0x0d, 0x87, 0x06, 0x17, + 0x01, 0x89, 0xc0, 0x48, 0x8d, 0x15, 0x02, 0xe7, 0xc0, 0x00, 0x48, + 0x63, 0x04, 0x82, 0x48, 0x01, 0xd0, 0x4c, 0x89, 0xd5, 0x4d, 0x89, + 0xc5, 0xff, 0xe0, + }, + }, + } + it := NewInterpreter() + initR12 := it.Regs.Get(R12) + it.ResetCode(blocks[0].Code, blocks[0].Address) + _, err := it.Loop() + require.ErrorIs(t, err, io.EOF) + + expected := expression.ZeroExtend(initR12, 2) + assertEval(t, it.Regs.Get(RAX), expected) + it.ResetCode(blocks[1].Code, blocks[1].Address) + _, err = it.Loop() + require.ErrorIs(t, err, io.EOF) + table := expression.NewImmediateCapture("table") + base := expression.NewImmediateCapture("base") + expected = expression.Add( + expression.SignExtend( + expression.Mem( + expression.Add( + expression.Multiply( + expression.ZeroExtend(initR12, 2), + expression.Imm(4), + ), + table, + ), + 4, + ), + 64, + ), + base, + ) + assertEval(t, it.Regs.Get(RAX), expected) + assert.EqualValues(t, 0xf3f82c, table.CapturedValue()) + assert.EqualValues(t, 0xf3f82c, base.CapturedValue()) +} + +func assertEval(t *testing.T, left, right expression.Expression) { + if !left.Match(right) { + assert.Failf(t, "failed to eval %s to %s", left.DebugString(), right.DebugString()) + t.Logf("left %s", left.DebugString()) + t.Logf("right %s", right.DebugString()) + } +} + +func FuzzInterpreter(f *testing.F) { + f.Fuzz(func(_ *testing.T, code []byte) { + i := NewInterpreterWithCode(code) + _, _ = i.Loop() + }) +} + +func TestMoveSignExtend(t *testing.T) { + i := NewInterpreterWithCode([]byte{ + // 00000000 B8 01 00 00 00 mov eax, 1 + // 00000005 8B 40 04 mov eax, dword ptr [rax + 4] + // 00000008 B8 02 00 00 00 mov eax, 2 + // 0000000D 48 0F B6 40 04 movzx rax, byte ptr [rax + 4] + // 00000012 B8 03 00 00 00 mov eax, 3 + // 00000017 48 0F BF 40 04 movsx rax, word ptr [rax + 4] + 0xB8, 0x01, 0x00, 0x00, 0x00, 0x8B, 0x40, 0x04, + 0xB8, 0x02, 0x00, 0x00, 0x00, 0x48, 0x0F, 0xB6, + 0x40, 0x04, 0xB8, 0x03, 0x00, 0x00, 0x00, 0x48, + 0x0F, 0xBF, 0x40, 0x04, + }) + _, err := i.Loop() + require.ErrorIs(t, err, io.EOF) + pattern := expression.SignExtend(expression.Mem(expression.Imm(7), 2), 64) + require.True(t, i.Regs.Get(RAX).Match(pattern)) +} diff --git a/third_party/opentelemetry-ebpf-profiler/asm/amd/regs_state.go b/third_party/opentelemetry-ebpf-profiler/asm/amd/regs_state.go new file mode 100644 index 0000000000..a793220d00 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/asm/amd/regs_state.go @@ -0,0 +1,235 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package amd // import "go.opentelemetry.io/ebpf-profiler/asm/amd" + +import ( + "fmt" + + "go.opentelemetry.io/ebpf-profiler/asm/expression" + "golang.org/x/arch/x86/x86asm" +) + +type Registers struct { + regs [int(registersCount)]expression.Expression +} + +type regEntry struct { + idx Reg + bits int +} +type Reg uint8 + +const ( + _ Reg = iota + RAX + RCX + RDX + RBX + RSP + RBP + RSI + RDI + R8 + R9 + R10 + R11 + R12 + R13 + R14 + R15 + RIP + registersCount +) + +var regNames = [...]string{ + RAX: "RAX", + RCX: "RCX", + RDX: "RDX", + RBX: "RBX", + RSP: "RSP", + RBP: "RBP", + RSI: "RSI", + RDI: "RDI", + R8: "R8", + R9: "R9", + R10: "R10", + R11: "R11", + R12: "R12", + R13: "R13", + R14: "R14", + R15: "R15", + RIP: "RIP", +} + +func (r Reg) String() string { + i := int(r) + if r == 0 || i >= len(regNames) || regNames[i] == "" { + return fmt.Sprintf("Reg(%d)", i) + } + return regNames[i] +} + +func regMappingFor(reg x86asm.Reg) regEntry { + switch reg { + case x86asm.AL: + return regEntry{idx: RAX, bits: 8} + case x86asm.CL: + return regEntry{idx: RCX, bits: 8} + case x86asm.DL: + return regEntry{idx: RDX, bits: 8} + case x86asm.BL: + return regEntry{idx: RBX, bits: 8} + case x86asm.SPB: + return regEntry{idx: RSP, bits: 8} + case x86asm.BPB: + return regEntry{idx: RBP, bits: 8} + case x86asm.SIB: + return regEntry{idx: RSI, bits: 8} + case x86asm.DIB: + return regEntry{idx: RDI, bits: 8} + case x86asm.R8B: + return regEntry{idx: R8, bits: 8} + case x86asm.R9B: + return regEntry{idx: R9, bits: 8} + case x86asm.R10B: + return regEntry{idx: R10, bits: 8} + case x86asm.R11B: + return regEntry{idx: R11, bits: 8} + case x86asm.R12B: + return regEntry{idx: R12, bits: 8} + case x86asm.R13B: + return regEntry{idx: R13, bits: 8} + case x86asm.R14B: + return regEntry{idx: R14, bits: 8} + case x86asm.R15B: + return regEntry{idx: R15, bits: 8} + case x86asm.AX: + return regEntry{idx: RAX, bits: 16} + case x86asm.CX: + return regEntry{idx: RCX, bits: 16} + case x86asm.DX: + return regEntry{idx: RDX, bits: 16} + case x86asm.BX: + return regEntry{idx: RBX, bits: 16} + case x86asm.SP: + return regEntry{idx: RSP, bits: 16} + case x86asm.BP: + return regEntry{idx: RBP, bits: 16} + case x86asm.SI: + return regEntry{idx: RSI, bits: 16} + case x86asm.DI: + return regEntry{idx: RDI, bits: 16} + case x86asm.R8W: + return regEntry{idx: R8, bits: 16} + case x86asm.R9W: + return regEntry{idx: R9, bits: 16} + case x86asm.R10W: + return regEntry{idx: R10, bits: 16} + case x86asm.R11W: + return regEntry{idx: R11, bits: 16} + case x86asm.R12W: + return regEntry{idx: R12, bits: 16} + case x86asm.R13W: + return regEntry{idx: R13, bits: 16} + case x86asm.R14W: + return regEntry{idx: R14, bits: 16} + case x86asm.R15W: + return regEntry{idx: R15, bits: 16} + case x86asm.EAX: + return regEntry{idx: RAX, bits: 32} + case x86asm.ECX: + return regEntry{idx: RCX, bits: 32} + case x86asm.EDX: + return regEntry{idx: RDX, bits: 32} + case x86asm.EBX: + return regEntry{idx: RBX, bits: 32} + case x86asm.ESP: + return regEntry{idx: RSP, bits: 32} + case x86asm.EBP: + return regEntry{idx: RBP, bits: 32} + case x86asm.ESI: + return regEntry{idx: RSI, bits: 32} + case x86asm.EDI: + return regEntry{idx: RDI, bits: 32} + case x86asm.R8L: + return regEntry{idx: R8, bits: 32} + case x86asm.R9L: + return regEntry{idx: R9, bits: 32} + case x86asm.R10L: + return regEntry{idx: R10, bits: 32} + case x86asm.R11L: + return regEntry{idx: R11, bits: 32} + case x86asm.R12L: + return regEntry{idx: R12, bits: 32} + case x86asm.R13L: + return regEntry{idx: R13, bits: 32} + case x86asm.R14L: + return regEntry{idx: R14, bits: 32} + case x86asm.R15L: + return regEntry{idx: R15, bits: 32} + case x86asm.RAX: + return regEntry{idx: RAX, bits: 64} + case x86asm.RCX: + return regEntry{idx: RCX, bits: 64} + case x86asm.RDX: + return regEntry{idx: RDX, bits: 64} + case x86asm.RBX: + return regEntry{idx: RBX, bits: 64} + case x86asm.RSP: + return regEntry{idx: RSP, bits: 64} + case x86asm.RBP: + return regEntry{idx: RBP, bits: 64} + case x86asm.RSI: + return regEntry{idx: RSI, bits: 64} + case x86asm.RDI: + return regEntry{idx: RDI, bits: 64} + case x86asm.R8: + return regEntry{idx: R8, bits: 64} + case x86asm.R9: + return regEntry{idx: R9, bits: 64} + case x86asm.R10: + return regEntry{idx: R10, bits: 64} + case x86asm.R11: + return regEntry{idx: R11, bits: 64} + case x86asm.R12: + return regEntry{idx: R12, bits: 64} + case x86asm.R13: + return regEntry{idx: R13, bits: 64} + case x86asm.R14: + return regEntry{idx: R14, bits: 64} + case x86asm.R15: + return regEntry{idx: R15, bits: 64} + case x86asm.RIP: + return regEntry{idx: RIP, bits: 64} + default: + return regEntry{idx: 0, bits: 64} + } +} + +func (r *Registers) setX86asm(reg x86asm.Reg, v expression.Expression) { + e := regMappingFor(reg) + if e.bits != 64 { + v = expression.ZeroExtend(v, e.bits) + } + r.regs[e.idx] = v +} + +// GetX86 returns the expression.Expression value associated with the given x86asm.Reg, with +// appropriate zero-extension if necessary. +func (r *Registers) GetX86(reg x86asm.Reg) expression.Expression { + e := regMappingFor(reg) + res := r.regs[e.idx] + if e.bits != 64 { + res = expression.ZeroExtend(res, e.bits) + } + return res +} + +// Get returns the expression.Expression value associated with the given Reg register +func (r *Registers) Get(reg Reg) expression.Expression { + if int(reg) >= len(r.regs) { + return r.regs[0] + } + return r.regs[int(reg)] +} diff --git a/third_party/opentelemetry-ebpf-profiler/asm/expression/add.go b/third_party/opentelemetry-ebpf-profiler/asm/expression/add.go new file mode 100644 index 0000000000..7061f6fa25 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/asm/expression/add.go @@ -0,0 +1,36 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package expression // import "go.opentelemetry.io/ebpf-profiler/asm/expression" + +func Add(vs ...Expression) Expression { + oss := make(operands, 0, len(vs)+1) + v := uint64(0) + for _, it := range vs { + if o, ok := it.(*op); ok && o.typ == opAdd { + for _, jit := range o.operands { + if imm, immOk := jit.(*immediate); immOk { + v += imm.Value + } else { + oss = append(oss, jit) + } + } + } else { + if imm, immOk := it.(*immediate); immOk { + v += imm.Value + } else { + oss = append(oss, it) + } + } + } + if len(oss) == 0 { + return Imm(v) + } + if v != 0 { + oss = append(oss, Imm(v)) + } + if len(oss) == 1 { + return oss[0] + } + return newOp(opAdd, oss) +} diff --git a/third_party/opentelemetry-ebpf-profiler/asm/expression/capture.go b/third_party/opentelemetry-ebpf-profiler/asm/expression/capture.go new file mode 100644 index 0000000000..f28b6c551e --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/asm/expression/capture.go @@ -0,0 +1,29 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package expression // import "go.opentelemetry.io/ebpf-profiler/asm/expression" + +var _ Expression = &ImmediateCapture{} + +func NewImmediateCapture(name string) *ImmediateCapture { + return &ImmediateCapture{ + name: name, + } +} + +type ImmediateCapture struct { + name string + capturedValue immediate +} + +func (v *ImmediateCapture) CapturedValue() uint64 { + return v.capturedValue.Value +} + +func (v *ImmediateCapture) DebugString() string { + return "@" + v.name +} + +func (v *ImmediateCapture) Match(_ Expression) bool { + return false +} diff --git a/third_party/opentelemetry-ebpf-profiler/asm/expression/expression.go b/third_party/opentelemetry-ebpf-profiler/asm/expression/expression.go new file mode 100644 index 0000000000..714d3efe57 --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/asm/expression/expression.go @@ -0,0 +1,72 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package expression // import "go.opentelemetry.io/ebpf-profiler/asm/expression" +import "sort" + +// Expression is an interface representing a 64-bit size value. It can be immediate +type Expression interface { + // Match compares this Expression value against a pattern Expression. + // The order of the arguments matters: a.Match(b) or b.Match(a) may + // produce different results. The intended order The pattern should be passed as + // an argument, not the other way around. + // It returns true if the values are considered equal or compatible according to + // the type-specific rules: + // - For operations (add, mul): checks if operation types and operands match + // - For immediate: checks if values are equal and extracts value into a ImmediateCapture + // - For mem references: checks if segments and addresses match + // - For extend operations: checks if sizes and inner values match + // - For named: checks if they are pointing to the same object instance. + // - For ImmediateCapture: matches nothing - see immediate + Match(pattern Expression) bool + DebugString() string +} + +type operands []Expression + +func (os *operands) Match(other operands) bool { + if len(*os) != len(other) { + return false + } + sort.Sort(sortedOperands(*os)) + sort.Sort(sortedOperands(other)) + for i := 0; i < len(*os); i++ { + if !(*os)[i].Match(other[i]) { + return false + } + } + return true +} + +type sortedOperands operands + +func (s sortedOperands) Len() int { + return len(s) +} + +func (s sortedOperands) Less(i, j int) bool { + o1 := cmpOrder(s[i]) + o2 := cmpOrder(s[j]) + return o1 < o2 +} + +func (s sortedOperands) Swap(i, j int) { + s[i], s[j] = s[j], s[i] +} + +func cmpOrder(u Expression) int { + switch u.(type) { + case *mem: + return 1 + case *op: + return 2 + case *named: + return 3 + case *ImmediateCapture: + return 4 + case *immediate: + return 5 + default: + return 0 + } +} diff --git a/third_party/opentelemetry-ebpf-profiler/asm/expression/expression_test.go b/third_party/opentelemetry-ebpf-profiler/asm/expression/expression_test.go new file mode 100644 index 0000000000..bf6772eaab --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/asm/expression/expression_test.go @@ -0,0 +1,116 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package expression + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestExpression(t *testing.T) { + t.Run("add sort-summ-immediate", func(t *testing.T) { + v := Named("v") + require.Equal(t, Add(v, Imm(14)), Add(Imm(1), Imm(3), Imm(1), v, Imm(9))) + }) + + t.Run("named match", func(t *testing.T) { + n := Named("v") + require.True(t, n.Match(n)) + require.False(t, n.Match(Imm(239))) + }) + + t.Run("add 0", func(t *testing.T) { + v := Named("v") + require.Equal(t, v, Add(Imm(0), v)) + }) + + t.Run("add nested", func(t *testing.T) { + s1 := Named("s1") + s2 := Named("s2") + s3 := Named("s3") + performAssertions := func(e Expression) { + opp, ok := e.(*op) + require.True(t, ok) + require.Len(t, opp.operands, 3) + require.Contains(t, opp.operands, s1) + require.Contains(t, opp.operands, s2) + require.Contains(t, opp.operands, s3) + } + performAssertions(Add(Add(s1, s3), s2)) + performAssertions(Add(Add(s1, s3), s2)) + }) + + t.Run("add opt", func(t *testing.T) { + v := Named("v") + require.Equal(t, Add(Add(Imm(2), v), Imm(7)), Add(v, Imm(9))) + }) + + t.Run("add 1 element", func(t *testing.T) { + require.Equal(t, Add(Imm(2)), Imm(2)) + }) + + t.Run("mul immediate", func(t *testing.T) { + v := Named("v") + require.Equal(t, Multiply(v, Imm(27)), Multiply(Imm(1), Imm(3), Imm(1), v, Imm(9))) + }) + + t.Run("mul 1", func(t *testing.T) { + v := Named("v") + + require.Equal(t, v, Multiply(Imm(1), v)) + }) + + t.Run("mul add", func(t *testing.T) { + v1 := Named("v1") + v2 := Named("v2") + v3 := Named("v3") + require.Equal(t, Add(Multiply(v1, v3), Multiply(v2, v3)), Multiply(Add(v1, v2), v3)) + }) + + t.Run("op order", func(t *testing.T) { + v := Named("v") + v2 := Mem8(Named("v2")) + require.True(t, Multiply(v, v2).Match(Multiply(v2, v))) + }) + + t.Run("mul order", func(t *testing.T) { + v := Named("v") + + var a Expression = &op{opMul, []Expression{v, Imm(239)}} + require.Equal(t, a, Multiply(Imm(239), v)) + }) + + t.Run("mul 0", func(t *testing.T) { + v := Named("v") + + require.Equal(t, Imm(0), Multiply(Imm(0), Imm(3), Imm(1), v, Imm(9))) + }) + + t.Run("extend nested", func(t *testing.T) { + v := Named("v") + + require.Equal(t, ZeroExtend(v, 7), ZeroExtend(ZeroExtend(v, 7), 7)) + }) + + t.Run("extend nested smaller", func(t *testing.T) { + v := Named("v") + + require.Equal(t, ZeroExtend(v, 5), ZeroExtend(ZeroExtend(v, 7), 5)) + }) + t.Run("extend nested smaller", func(t *testing.T) { + v := Named("v") + + require.Equal(t, ZeroExtend(v, 5), ZeroExtend(ZeroExtend(v, 5), 7)) + }) + + t.Run("extend 0", func(t *testing.T) { + require.Equal(t, Imm(0), ZeroExtend(Named("v1"), 0)) + }) + + t.Run("nested extend ", func(t *testing.T) { + v1 := Named("v1") + require.Equal(t, ZeroExtend(v1, 8), ZeroExtend(ZeroExtend(v1, 8), 8)) + }) +} diff --git a/third_party/opentelemetry-ebpf-profiler/asm/expression/extend.go b/third_party/opentelemetry-ebpf-profiler/asm/expression/extend.go new file mode 100644 index 0000000000..cdbc74a9fc --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/asm/expression/extend.go @@ -0,0 +1,84 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package expression // import "go.opentelemetry.io/ebpf-profiler/asm/expression" +import ( + "fmt" + "math" +) + +var _ Expression = &extend{} + +func SignExtend(v Expression, bits int) Expression { + return &extend{v, bits, true} +} + +func ZeroExtend32(v Expression) Expression { + return ZeroExtend(v, 32) +} + +func ZeroExtend8(v Expression) Expression { + return ZeroExtend(v, 8) +} + +func ZeroExtend(v Expression, bits int) Expression { + if bits >= 64 { + bits = 64 + } + c := &extend{ + v: v, + bits: bits, + } + if c.bits == 0 { + return Imm(0) + } + if c.bits == 64 { + return c.v + } + switch typed := c.v.(type) { + case *immediate: + return Imm(typed.Value & c.MaxValue()) + case *extend: + if typed.sign { + return c + } + if typed.bits <= c.bits { + return typed + } + return &extend{typed.v, c.bits, false} + default: + return c + } +} + +type extend struct { + v Expression + bits int + sign bool +} + +func (c *extend) MaxValue() uint64 { + if c.bits >= 64 || c.sign { + return math.MaxUint64 + } + return 1<= 64 { + bits = 64 + } + c := &extend{ + v: v, + bits: bits, + } + if c.bits == 0 { + return Imm(0) + } + if c.bits == 64 { + return c.v + } + switch typed := c.v.(type) { + case *immediate: + return Imm(typed.Value & c.MaxValue()) + case *extend: + if typed.sign { + return c + } + if typed.bits <= c.bits { + return typed + } + return &extend{typed.v, c.bits, false} + default: + myMax := c.MaxValue() + vMax := c.v.MaxValue() + if vMax <= myMax { + return c.v + } + return c + } +} + +type extend struct { + v Expression + bits int + sign bool +} + +func (c *extend) MaxValue() uint64 { + if c.bits >= 64 || c.sign { + return math.MaxUint64 + } + return 1< [!IMPORTANT] +> +> This document is from Elastic times and precedes the open-sourcing of the +> profiling agent. It is provided as an example of what a design document +> could look like. Many of the links had to be removed because the original +> git history of the profiling agent had to be erased for legal reasons when +> it was open-sourced. + +Process Manager: Move Per-FileID Info Into Dedicated Manager +============================================================ + +## Meta + +- **Author(s)**: Joel Höner +- **Start Date**: Jul 13, 2022 +- **Goal End Date**: Jul 29, 2022 +- **Primary Reviewers**: Christos Kalkanis, Florian Lehner + +## Problem + +The process manager in the host agent mixes up multiple related but still +distinct concerns in a single type. It manages both information that is kept per +process ID (PID) as well as information kept per file ID. The entanglement makes +consistency expectations between the different information being stored harder +to fathom. The per-file-ID information being stored additionally has +underdocumented and inconsistent lifetimes, with part of the information being +stored in append-only maps (inserted and kept forever), while other information +is reference-counted. The reference counting for the latter is mixed in with the +other business logic of the process manager without any form of abstraction. + +## Success Criteria + +- Clear separation of per-PID and per-file-ID information in two separate + managers +- Clear and consistent lifetime for all per-file-ID information being managed +- Clearly communicate mutability/constness of the data being stored +- New manager must not call back into the PM that owns it + - We have too many circle-references already + +## Scope + +- This document is concerned only with first splitting the per-file-ID + information storage and management out from the process manager and improving + on how it is managed +- Improvements on any of the per-PID information within the process manager are + not in scope + +## Context + +In the following sections we'll start by taking inventory of the per-file-ID +information that is currently being stored in the process manager, its use, +lifetime and mutability. + +### The `interpreterData` map + +The [`interpreterData` map][interpreter-data-field] serves as a cache of +per-executable interpreter data ([`interpreter.Data`][interpreter-data-struct]. + +[interpreter-data-field]: # +[interpreter-data-struct]: # + +When a new mapping is reported, it is used to quickly determine whether we have +already previously concluded that the `FileID` associated with the new mapping is +definitely not an interpreter [by checking for a `nil` record in +`interpreterData`][interpreter-data-check]. If this is not the case (either no +entry exists or the entry is non-`nil`), the [`pm.interpreterLoader` array] is +[walked][array-walking], asking each interpreter unwinder to attempt to detect +whether they want to handle the file. If an interpreter unwinder detects the +file as being supported by them, we store the corresponding helper information +that the interpreter extracted in the `interpreterData` map. If the search for a +suitable interpreter unwinder is exhausted unsuccessfully, we instead store +`nil`. + +[interpreter-data-check]: # +[`pm.interpreterLoader` array]: # +[array-walking]: # + +The map is inserted into in `attachInterpreter` via the following +call-chains: + +- [`ProcNewMapping`](#) → [`handleNewInterpreter`](#) → [`attachInterpreter`](#) + - [`ProcNewMapping`](#) → [`handleNewInterpreter`](#) → go [`handleNewInterpreterRetry`](#) → [`attachInterpreter`](#) + +The map is read in: + +- [`attachInterpreter`](#) +- [`handleNewInterpreter`](#) + +Records are never deleted from this map, nor are records that were inserted ever +mutated. + +### The `fileIDInfo` map + +The [`fileIDInfo` map] is harder to reason about. Its main purpose is to store +the information required to delete all information for a given FileID from the +two BPF maps `stack_delta_page_to_info` and `exe_id_to_%d_stack_deltas`. + +[`fileIDInfo` map]: # + +It further stores information about gaps in the unwinding information of +executables which is passed to [`interpreter.New`]. The information is currently +only consumed by the V8 unwinder that uses it to find the pre-compiled JIT block +within the binary. + +[`interpreter.New`]: # + +Entries in the map are managed via reference counting: incrementing the RC is +performed mixed into the business logic of the process manager ([link +1][rc-inc-1], [link 2][rc-inc-2]) while decrementing the RC is performed in the +[`decreaseReferenceCount`][rc-dec] function. + +[rc-inc-1]: # +[rc-inc-2]: # +[rc-dec]: # + +Entries are inserted into the `fileIDInfo` map in either +[`ProcNewMapping`][file-id-info-insert-1] or +[`AddSynthIntervalData`][file-id-info-insert-2]. In `ProcNewMapping`, if a +record for a file ID already existed previously, we instead just increase the +RC. `AddSynthIntervalData`, on the other hand, errors out when passed a file ID +that is already known. [`ProcNewMapping`][file-id-info-insert-1] is the typical +code-path taken in the majority of executables whereas +[`AddSynthIntervalData`][file-id-info-insert-2] is more of an edge-case; it +provides the ability to override unwinding information for executable with +broken `.eh_frame` sections. It's currently only used for `[vdso]` handling on +aarch64. + +[file-id-info-insert-1]: # +[file-id-info-insert-2]: # + +The value to be stored in the map -- for both code paths -- is returned from the +[`loadDeltas`][load-deltas-return] function. [`loadDeltas`][load-deltas-return] +loads unwinding information into the `stack_delta_page_to_info` and +`exe_id_to_%d_stack_deltas` BPF maps and then returns a newly created instance +of the [`fileIDInfo` struct][file-id-info-struct]. + +[load-deltas-return]: # +[file-id-info-struct]: # + +The reference counter can be decreased via the following code-paths: + +- [`ProcExit`](#) → [`deletePIDAddress`](#) → [`decreaseReferenceCounter`](#) +- [`ProcMunmap`](#) → [`deletePIDAddress`](#) → [`decreaseReferenceCounter`](#) + +In `deletePIDAddress`, once the RC reaches 0, the information from the +map is used to remove entries corresponding to the FileID from the BPF +maps ([link 1](#), [link 2](#)) and then also the entry itself from the +`fileIDInfo` map. + +The map is read using the following code-paths: + +- [`New`](#) → [`collectInterpreterMetrics`](#) → anonymous spawned goroutine +- [`ProcExit`](#) → [`deletePIDAddress`](#) → [`decreaseReferenceCounter`](#) +- [`ProcMunmap`](#) → [`deletePIDAddress`](#) → [`decreaseReferenceCounter`](#) +- [`ProcNewMapping`](#) + +With the exception of the reference counter field, entries in this map +are never mutated after insertion. + +### The `unwindInfoIndex` map + +[The `unwindInfoIndex` map][unwind-info-index] and the `unwind_info_array` BPF +map that it is tethered with provide deduplication of +[`UnwindInfo`][unwind-info-struct] records in the `exe_id_to_%d_stack_deltas` +BPF map. The map in Go assigns each unique `UnwindInfo` the `uint16` index of +the corresponding information in the BPF map. It is both read and written +exclusively from [`getUnwindInfoIndex`][get-unwind-info-func]. Entries are only +appended and then never deleted. + +[unwind-info-index]: # +[unwind-info-struct]: # +[get-unwind-info-func]: # + +Call-chains: + +- [`ProcNewMapping`](#) → [`loadDeltas`](#) → [`getUnwindInfoIndex`](#) +- [`AddSynthIntervalData`](#) → [`loadDeltas`](#) → [`getUnwindInfoIndex`](#) + +Because the map is exclusively used as a helper for deduplicating data +in the per-file-ID maps, I suggest moving into the new manager as well. + +### The `stackdeltaprovider` field + +The [`stackdeltaprovider` field][stackdeltaprovider-field] is used exclusively +to [construct the data that is then stored in the `fileIDInfo` +map][construct-data-for-fileidinfo] and the associated BPF maps. Because the SDP +is concerned only with per-file-ID information, we should move this field to the +new manager as well. + +[stackdeltaprovider-field]: # +[construct-data-for-fileidinfo]: # + +### The `interpreterLoaders` field + +The `interpreterLoaders` field is used to [populate the data][populate-data-1] +in the `fileIDInfo` map if it doesn't exist yet. The field and [the constructor +logic for populating it][populate-data-2] should be moved to the new manager. + +[populate-data-1]: # +[populate-data-2]: # + +### The `FileIDMapper` field + +`FileIDMapper` is a public field of the process manager. It provides +functionality for setting and getting the mapping from user-mode to +kernel-mode file IDs and is [implemented as an LRU](#). +The implementation is swappable to simplify testing. + +Entries are read in: + +- [`ProcessManager.ConvertTrace`](#) +- [`ebpf.reportNewMapping`](#) + +Entries are added in: + +- [`ebpf.getKernelStack`](#) +- [`elfinfo.getELFInfoForFile`](#) + +Entities are never explicitly deleted. Instead, they are +garbage-collected by falling out of the LRU. It is unclear what the +intended behavior is when binaries that are still loaded in a process +fall out of the LRU. Converting traces for such binaries will no longer +be possible. + +The field stores per-file-ID information and should probably be moved as +well. However, being public, swapable for testing, and mutated remotely +complicates this considerably. The actual implementation of the mapper +is already abstracted behind a dedicated type and doesn't introduce a +lot of complexity into the PM code itself, so I suggest leaving it where +it is for the moment. Consolidating it into the new manager might be +desirable at a later point in time but is declared out of scope for this +document. + +## Proposed Solution + +### New Manager Design + +This section makes concrete suggestions for the design of the new manager. + +#### Lifetime Management + +The two main maps `interpreterData` and `fileIDInfo` discussed in the previous +chapter currently have diverging lifetimes: one is append-only whereas the other +one uses reference counting. In order to merge the two and to make the lifetime +of per-file-ID information easier to reason about, it is desirable to move them +towards a common lifetime. There are multiple possible strategies to pursue +here. + +##### All Append-Only + +In this strategy we merge both maps and manage them according to an append-only +lifetime: entries that are added once will never be released. + +While this strategy worked reasonably well for `interpreterData`, it is doubtful +that it is desirable to also apply it to `fileIDInfo` and the connected BPF +maps: the amount of memory required to store it is significantly higher. On +systems that build and execute a lot of executables on the fly (e.g. wasmtime +runtime with the dylib loader) we'd quickly run out of memory. + +##### All Reference-Counted + +In this variant, we merge the maps and manage both of them via +reference-counting. While it entails a bit more complexity in the new manager's +internals, it ensures that no memory is being leaked regardless of the workload. + +For `fileIDInfo` the lifetime remains unchanged. For the `interpreterData` +information the logic changes slightly when compared to the previous append-only +approach: the per-executable interpreter information is lost once the last +interpreter running it exits. In a workload that spawns a lot of very +short-lived interpreter processes in sequence, this might increase the amount of +cycles spent on re-gathering the interpreter data. + +As an optional extension to combat this, we could refrain from removing objects +whose RC reaches 0 immediately. Instead, we store a timestamp of when the RC +reached 0. A goroutine then periodically cleans all entries that have been at RC += 0 for more than N seconds. Lookup and deletion methods will pretend that +objects with RC = 0 do not exist whereas insertion methods will pick up the +dying object and revive it by incrementing the RC. + +It is unclear whether the overhead introduced by these additional +`interpreter.Loader` calls is substantial. `fileIDInfo` has the same lifetime +management already and – from intuition – would appear to be more expensive to +re-create than the interpreter data: it requires reading stack-deltas from disk, +decompressing them and inserting them into the BPF maps. + +We could also consider storing the per-executable interpreter information on +disk as well. + +##### Keep Maps and Lifetime Separate + +This is the simplest variant to implement, but it also reduces the opportunities +for internal simplification significantly. If we keep their lifetime separate, +we'll have to add accessors to read from and write to each respective map +individually. + +##### Author's Preference + +My preference is managing all information with reference counting. I suggest +going without the delayed deletion approach first to keep things simple. If this +turns out to be a performance problem in practice, it should be reasonably easy +to extend the system as required. + +##### Decisions + +The reviewers agreed with the author's preference. + +#### Public Interface + +```go +type ExecutableInfo struct { + // Data holds per-executable interpreter information if the file ID that this + // instance belongs to was previously identified as an interpreter. Otherwise, + // this field is nil. + Data interpreter.Data + // Gaps contains information about large gaps in the unwinding information. + Gaps []libpf.Range + // [elided: various private fields required to keep track of RC and BPF map entries] +} + +type executableInfoManagerState struct { + info map[FileID]ExecutableInfo + unwindInfoIndex map[sdtypes.UnwindInfo]uint16 + sdp StackDeltaProvider + ebpf EbpfHandler + opener interpreter.ResourceOpener + numStackDeltaMapPages uint64 +} + +type ExecutableInfoManager struct { + state xsync.RWMutex[executableInfoManagerState] +} + +// Alias to keep the definitions below short. Not to be included in the actual code. +type EIM = ExecutableInfoManager; + +// New creates a new instance of the executable info manager. +func New(sdp StackDeltaProvider, ebpf EbpfHandler, opener interpreter.ResourceOpener) *EIM; + +// AddOrIncRef either adds information about an executable to the internal cache (when first +// encountering it) or increments the reference count if the executable is already known. +// The memory mapping and PID are only borrowed in order to allow interpreter loaders to read +// memory (e.g. to determine the version or to resolve other per-executable information). +func (mgr *EIM) AddOrIncRef(mapping *Mapping, pid util.PID) (*ExecutableInfo, error); + +// AddSynth adds synthetic interval data to the manager. A call to this function must +// precede all `AddOrIncRef` calls for the same file ID, otherwise an error is returned. +func (mgr *EIM) AddSynth(fileID host.FileID, data sdtypes.IntervalData) error; + +// Get retrieves information about an executable. If the executable isn't known, nil is +// returned instead. +func (mgr *EIM) Get(fileID FileID) *ExecutableInfo; + +// RemoveOrDecRef decrements the reference counter of the file being tracked. Once the RC +// reaches zero, information about the file is removed from the manager. +func (mgr *EIM) RemoveOrDecRef(fileID FileID) error; + +// UpdateMetricSummary updates the metrics in the given map. +func (mgr *EIM) UpdateMetricSummary(summary map[metrics.MetricID]metrics.MetricValue); +``` + +The suggested interface here assumes that we went with the consolidated +ref-counting approach for lifetime management. Should we decide to go with a +different approach, this will have to be reworked. + +The ref-counting semantics are intentionally exposed in the public interface: +callers must understand them; otherwise it might be tempting to ask why not to +only call `Add` once and check existence via `Get`. + +All function-, type- and field-names are suggestions and up for debate. + +#### Ownership of the New Manager + +The instance of the new manager will be owned by the process manager in the form +of a private struct field. The code continues to live in the `processmanager` +package, although in a different file: `execinfomanager.go`. + +#### BPF Map Management + +The responsibility for managing the following per-file-ID BPF maps is +transferred to the new manager: + +- `stack_delta_page_to_info` +- `exe_id_to_%d_stack_deltas` +- `unwind_info_array` + +#### BPF Map Documentation + +BPF maps pose a bit of a challenge with regards to where and how to document +them. They are always public to all code and their ownership situation can be +intransparent. In essence, they can be reasoned about as if they were public +fields of the type that manages them. Consequently, this might also be a way +forward in documenting them: on the type that manages them, as if they were +public fields. + +We should document what with and by whom the maps are populated and whether +other code is allowed to mutate them or not. In this particular case, the maps +are managed exclusively by the new manager and other code can only read from the +maps. + +#### Locking + +The new manager is locked internally and public methods can be called from an +arbitrary amount of different threads at the same time. A global `xsync.RWMutex` +is used to lock all fields. It is acquired and released in all public functions; +internal helpers that need access to the manager’s state rely on their caller +for locking by taking an `*executableInfoManagerState` argument. If applicable, +they can also be directly implemented as having the state struct as the +receiver. + +#### Metrics + +The `numStackDeltaMapPages` metric is concerned with keeping count of the size +of per-file-ID BPF maps and should thus be moved to the new manager. The +responsibility for reporting metric information of various fields that were +moved into the new manager is transferred as well. + +#### Moving Code + +Multiple methods of the process manager are exclusively concerned with +per-file-ID information: + +- `AddSynthIntervalData` +- `loadDeltas` +- `getUnwindInfoIndex` (only called from `loadDeltas`) +- `calculateMergeOpcode` (only called from `loadDeltas`) +- `decreaseReferenceCounter` + +These will be moved to the new manager in their entirety. + +### Porting Process + +#### Option #1 + +- Copy per-file-ID maps to separate type +- Create methods for all code-snippets that essentially – as far as possible – + contain exact copies of the code that previously lived in the process manager + - Will produce a lot of bogus methods with questionable names and semantics + - It however allows reviewers to easily tell whether code is equivalent +- Remove per-file-ID maps from process manager, replacing them with an instance + of the new manager +- Replacing the previously extracted code snippets with corresponding method + calls +- Get that reviewed & merged +- Unify the two maps in the new manager and move towards the new proposed public + interface +- Get that reviewed & merged + +#### Option #2 + +- Implement a manager with the public interface documented in this document + immediately + - Duplicate all required helper functions and fields + - Place a lot of comments that help explaining where code was pasted from, + how it was changed and where new code was added + - Get that reviewed and approved as a draft, but don’t actually merge it + into `main` yet +- Port PM to use the new manager, replacing and deleting all previously + duplicated code +- Get that reviewed, approved and then merged + +#### Author’s Preference + +This is going to be a bit of a challenge to review either way: even when going +with Option #1, there will still be one rather large commit to consolidate the +lifetimes of the two maps and to move towards the new interface. There’s also a +chance that all the bogus methods created to factor out the code snippets from +PM might actually make things harder to review instead of aiding with it, +because reviewers will now also have to check on how these snippet-methods are +called. I thus have a slight preference for Option #2, but will leave it to the +reviewers to decide which variant they prefer. + +#### Decision + +The reviewers either agreed with the preference for Option #2 or didn’t have a +preference at all. The port will be conducted using Option #2. diff --git a/third_party/opentelemetry-ebpf-profiler/design-docs/00000-example-docs/04359-remove-bpf-hashing/README.md b/third_party/opentelemetry-ebpf-profiler/design-docs/00000-example-docs/04359-remove-bpf-hashing/README.md new file mode 100644 index 0000000000..1f676f25ae --- /dev/null +++ b/third_party/opentelemetry-ebpf-profiler/design-docs/00000-example-docs/04359-remove-bpf-hashing/README.md @@ -0,0 +1,736 @@ +> [!IMPORTANT] +> +> This document is from Elastic times and precedes the open-sourcing of the +> profiling agent. It is provided as an example of what a design document +> could look like. Many of the links had to be removed because the original +> git history of the profiling agent had to be erased for legal reasons when +> it was open-sourced. + +HA: remove BPF hashing +====================== + +# Meta + +- **Author(s)**: Joel Höner +- **Start Date**: 9. Nov 2023 +- **Goal End Date**: 5. Dec 2023 +- **Primary Reviewers**: Christos Kalkanis, Timo Teräs + +## Abstract + +Our host agent uses a relatively complex data processing pipeline that enriches, +aggregates and reshapes raw traces into the format expected by the collector. +Statistics show that a significant portion of this complexity might be +unwarranted. Upcoming features further change some important requirements for +the system as a whole. This document proposes a rapid simplification of the +BPF ↔ user-mode communication portion of the pipeline. + +## Context + +The relevant portion of our trace aggregation in the host agent currently looks +roughly like this: + +![old-trace-pipe](./trace-pipe.drawio.svg) + +> [!NOTE] +> +> Kernel stack transfer is not included here because it will remain unchanged. + +## Problem + +The BPF and `tracehandler` portions of this pipeline are complex pieces +of code that have already cost multiple engineers a lot of time to reason about +whenever they need to be changed. + +The majority of the complexity arises from the fact that our BPF code transfers +traces and counts separately, but `tracehandler` needs to transfer information +from the trace over to the count updates that it sends out. The count updates from +BPF are essentially just `(BPFHash, Count)` tuples, but `reporter` expects count +updates to be annotated with thread-, container- and pod name. BPF sends the +information required to infer these values with the trace instead of the count. + +For `tracehandler` this means that it has to keep a cache of `(BPFHash, +TraceMeta)` mappings in order to make sure that it always has the required +information for the outgoing count updates. Moreover, it cannot make any +assumptions about the trace info already being present when corresponding counts +arrive, so it must support deferring count updates until the trace info for them +arrives. + +BPF currently uses 5 different BPF maps with different lifetimes and aggregation +behaviors. Maintaining the cache from `BPFHash` to `TraceMeta` further needs to +be implemented very efficiently to not eat up too much memory, so we're +currently using a hand-rolled, domain-specific LRU implementation for this. +This all adds up to a non-trivial amount of complexity. + +Another problem with this approach is that all information that is present in +the trace must also be part of the BPF hash. This in turn means that every +high-cardinality field that we add to the trace diminishes the efficiency of the +aggregation that occurs in the BPF maps. + +### Aggregation is rare already + +Testing with real-world applications has shown that it's pretty rare for an +entry in `hash_to_count` to ever have a count >1 within the 5 second interval +that we use for the BPF ↔ user-mode communication. Inserting into and removing +from a hash map is quite a bit more work than simply sending a perf event that +is mmap'ed into user-land. Particularly for traces with the "symbolize this now" +flag this is currently rather wasteful because we even send an additional perf +event to force the map to be read and cleared immediately. + +Trace resends via `hash_to_trace` are additionally suppressed via the +`known_traces` map that is tethered to `hashMapperCache` in `tracehandler`. This +suppresses the resend for ~45% of traces. We can monitor this rate for all +profiling agent deployments globally: + +![known-trace-metrics](./known-trace-metrics.png) + +While ~45% might seem like a significant chunk on first glance, any caching +scheme must always be evaluated in the context of: + +- what the cost of just redoing the work all the time would be +- the number of cycles burned in vain on the cache lookup itself when cache misses occur +- the cost of maintaining the cache + +The complex system with traces being split across multiple maps is in place in +large parts **just to support this caching scheme**, and without it we could go +with a much simpler approach (detailed in ["Proposed +Solution"](#proposed-solution)). + +In this simpler scheme, the cost of just resending the whole trace is a 0.3 - +2.5 KiB `memcpy` and, for a percentage of traces, a syscall to fetch the kernel +portion of the trace. The cache lookup in the existing system involves two +passes through hashing functions[^2] that will in all likelihood be slower than +an actual `memcpy`[^3], though perhaps not slower than a syscall. + +With that context in mind, ~45% aren't really all that good anymore. In 55% of +cases we will pay the price of the hashing **plus** the cost of sending the +trace. + +[^2]: First our custom hashing function, then putting the hash through whatever + hash function the kernel uses for their hash maps. +[^3]: Even heavily SIMDed hash functions like XXH3 are typically [quite a bit + slower] than a `memcpy`, and our custom hash function is very basic scalar + code. Also see ["Cost of memcpy" section](#cost-of-memcpy). + +[quite a bit slower]: https://github.com/rurban/smhasher + +### Upcoming features + +There are two upcoming features that may increase the cardinality of the BPF +trace significantly. Increased cardinality in turn further reduces the chance of +two traces being aggregated under one BPF hash. + +#### Nanosecond timestamps + +Christos' planned change towards nanosecond precision timestamps will require +recording the timestamp in kernel-mode. Previously the timestamp was not part of +the BPF trace and was added once it arrived in user-mode. This worked reasonably +well for second precision timestamps, but will definitely not transfer to +nanosecond precision. + +Assuming that we'd implement that by adding a timestamp field to the trace +and included that in the trace, this will almost guarantee that every BPF trace +is now be unique for all but a synthetic load that puts all cores into an +infinite loop. + +For this particular problem, there's an alternative route where we'd switch +`hash_to_count` to a per-CPU `nanotime_to_hash` map and let user-space do +aggregation/counting of events (in this case, hashes). This is what Christos +actually prototyped. This requires fewer changes at the cost of adding more +complexity to the existing system. + +#### APM integration + +We're currently working on integration between the APM and profiling products. +To allow associating profiling traces with APM traces, we need to read the APM +transaction-, span-, and trace IDs that were active while we collected each +trace. + +The APM IDs are randomly generated and particularly the spans and their IDs +typically only last for a few milliseconds. This is thus very similar to the +problem with the nanosecond timestamps: if we just include them in the BPF trace +hash, that will make it exceedingly unlikely that any aggregation takes place. + +Other than with the nanosecond precision timestamps, this problem will only +affect deployments that actually use the APM integration feature. + +## Success Criteria + +The primary goal is to unlock adding new high-cardinality fields to the trace in +the future without too much effort and without having to worry about constantly +deteriorating performance with every added field. + +A secondary goal is to achieve the primary goal without adding even more +complexity. In fact, preferably we use the opportunity to shed some. + +The changes further cannot put the host agent over the 1% CPU usage barrier. + +## Scope + +In scope: + + - trace processing in BPF, tracer, and tracehandler + +Not in scope: + + - any breaking changes to the reporter or the network protocol + - changing the user mode hash (tackled in separate document) + - experiments with per-frame (instead of per-trace) caching + +## Proposed Solution + +Remove BPF hashing and aggregation entirely and just resend the whole trace in a +perf event or BPF ring buffer for every sample that we unwind. + +Because with this approach all information is directly present in the event, +`tracehandler` no longer needs to keep a mapping from BPF hashes to trace meta +information. Worries about whether traces or counts arrive first become +irrelevant. `tracehandler`'s job is essentially reduced to just keeping track of +which traces were already previously reported to the collector and splitting +counts and traces. + +The caches that still need to be kept are reduced to: + +- `bpfTraceCache: BPFHash → UMHash` + - Suppresses unnecessary trace conversion + - Roughly comparable to the previous `hashMapperCache` (and `known_traces`) + - Pure performance optimization: not actually strictly required with this approach +- `umTraceCache: UMHash → Void` + - Suppress trace resend to the collector + - Equivalent to previous `traceCache` + +The following diagram shows the portion of the trace aggregation pipeline that +was previously introduced in the ["Context"](#context) section, but with the +suggested changes applied. + +![trace-pipe-reworked](./trace-pipe-reworked.drawio.svg) + +### Kernel memory napkin math + +Some basic math on this suggests that we'll actually need significantly less +kernel memory to be able to keep the same amount of traces in memory as with the +current approach. + +The following uses the map sizes that the host agent dynamically allocated on my +10 core VM. The buffers in both implementations should scale linearly with the +number of cores, so the concrete core counts do not impact the ratio between +both approaches. + +
+ +| Map | Key Size | Value Size | # Entries | +| ----------------- | -------- | ---------- | --------- | +| hash_to_framelist | 16 | 272 | 0x4000 | +| hash_to_trace | 8 | 40 | 0x800 | +| hash_to_count | 8 | 4 | 0x800 | +| known_traces | 8 | 1 | 0x10000 | + +
+ +``` +(16+272)*0x4000 + + (8+40)*0x800 + + (8+4)*0x800 + + (8+1)*0x10000 + ≈ 5304 KiB +``` + +> [!NOTE] +> +> The above ignores the per-record memory overhead that the individual data +> structures have. For example the hash map will have to store the hashes +> somewhere, so the actual memory overhead will likely be a bit higher than +> calculated here. + +With the proposed solution, we only have one map. + +| Map | Key Size | Value Size | # Entries | +| ------------ | -------- | ---------------------- | ---------------------------------- | +| trace_events | 0 | `sizeof(Trace)` = 2216 | `ncpu * freq * max_buf_secs` = 200 | + +``` +2216 * 200 ≈ 432 KiB +``` + +The above selects the buffer size to allow storing traces of maximum length with +all cores maxed out for 1 second. I expect that we'll read the buffers multiple +times per second to ensure timely interpreter symbolization, so this should be a +reasonable amount of slack to overcome small system hick-ups. We could also +easily ensure space for a 5 second period and still stay way below the current +memory footprint. + +### Proof of Concept + +During my OnWeek project in Oct 2023 I prototyped the proposed approach on the +[`joel/no-bpf-hashes`] branch and the results look quite promising. It looks +like we can achieve the same or better performance than the existing approach +while at the same time getting rid of a major piece of complexity. The prototype +also still works on our oldest supported kernel version (Linux 4.15). + +The diff stats for the prototype currently look like this: + +``` +Showing 26 changed files with 283 additions and 3,179 deletions. +``` + +In the process I however also discovered some challenges that we'll discuss +in the following section. + +[`joel/no-bpf-hashes`]: # + +## Detailed change proposals + +### Abolish hash maps, embrace ring buffers + +This is the core of this design document: I suggest that we stop hashing traces +in BPF and instead resend both meta information and the frame list for every +event. This eliminates the need for the `hash_to_count`, `hash_to_trace` and +`known_traces` maps. The existing `report_events` that is currently used for +both communicating PID events and forcing immediate map reads in UM (via +`ha_symbolization_needed`) will now only be concerned with PID events. All that +we need is one new perf event buffer `trace_events` that all trace events are +sent through: + +`` + +Perf events are essentially per-CPU ring-buffers. The events don't have to be +copied into user-mode memory: the ring buffer is `mmaped` into the UM +process[^1]. + +Since we're currently only suppressing about 45% of trace resends anyway, we +don't expect the overhead of this to be massive. Hashing and splitting the trace +across multiple hash maps is definitely more expensive than just sending a perf +event. With the existing system we are paying the price of caching itself plus +the price of resending the trace for the 55% of cases where the cache is missed. + +[^1]: [`perf_event_open`] manual page, CTRL+F for "MMAP layout" headline + +[`perf_event_open`]: https://www.man7.org/linux/man-pages/man2/perf_event_open.2.html + +I was originally worried that copying the events to Go heap and the +corresponding GC pressure would be an issue, but testing with the prototype +shows that this was unwarranted: the corresponding code barely shows up in the +profiler (see ["Cost of memcpy" section](#cost-of-memcpy)). + +We're also doing 45% more syscalls to retrieve the kernel half of our traces +with the new approach. Just like the `memcpy`, this also largely turned out to +be a non-issue: in the prototype we only spend about 0.92% of CPU cycles on this +([pprof profile](./prototype-option-2-ghidra-workload.pprof)). This is likely at +least in part because only a fraction of traces actually have kernel traces +associated with them. + +What did turn out to be an issue, however, is that we're now waking user-mode a +lot more frequently than we used with the old approach. The old HA only forces +an immediate read in UM when: + +- the trace is not previously known. This eliminates about ~45% of wakes. +- the unwinder sets `ha_symbolization_needed`. This eliminates 100% of wakes + that aren't due to PID events in a pure native workload and a noticeable chunk + in mixed workloads. + +This essentially means that we're waking from our `epoll` call that waits for +perf events a lot more frequently than before. The kernel itself seems to be +pretty good at handling this kind of wake efficiently, but the Go runtime isn't. +With all other optimizations suggested in this document (minus the ones in the +following "options" sections) applied, this almost doubles the CPU time that the +host agent is consuming in the average case. For interpreter workloads the +difference is not so significant. In the profile we're observing a slight (but +by no means deal-breaking) increase of time spent in `epoll` and a massive +increase of time spent in the goroutine scheduler. + +There are a number of possible routes that we can pursue to reduce the overhead +from constant waking. We'll discuss each one in the following sub-sections. + +> [!IMPORTANT] +> +> We recently learned that there is a bug with event inhibition that causes +> the "symbolize this now" events to not actually be delivered as intended. +> +> This likely explains why the previous approach was more performant even in +> heavy interpreter workloads despite the fact that the new approach should +> intuitively perform better here: constantly reading and clearing multiple maps +> really shouldn't be faster than reading events from shared memory and bumping +> atomics. Under a heavy interpreter load the amount of waking should be about +> the same between both variants if inhibition is released correctly. +> +> We did some experiments and confirmed that fixing the issue to restore the +> code's intended behavior indeed increases CPU usage significantly. However, we +> also noticed that interpreter symbolization clearly worked pretty well +> **despite this being broken for years now**, so we converged towards simply +> keeping the inhibition bug in place for the moment. + +#### Option 1: perf event buffer with event counting watermarks + +Perf event buffers support a feature called "watermarks". This essentially +allows us to specify a minimum number of either events or bytes in the buffer +before `epoll` will wake our process. Cilium defaults this to "1 byte". Setting +up watermarks to a size where they only wake us about 4 times per second per +core when all cores are maxed eliminates the overhead entirely. + +However, there are some issues with this approach that we'd need to get around: + +1) **The frequency at which we read events becomes unpredictable.**\ + On a system that is almost completely idle, it might take minutes to ever + reach the watermark. If a user opts out of fair scheduling by pinning their + application to a fixed list of cores, the frequency will also vary from core + to core. +2) **Cilium's BPF library only supports the byte-based watermarks.**\ + The length of our trace event can vary wildly depending on workload, so a + byte-size based watermark intensifies problem 1 even more: the reporting + frequency will additionally depend on the stack trace length. + +We can get around this by: + +1) **teaching Cilium to use the watermark variant that counts events.**\ + I have already implemented this to make sure that the kernel actually accepts + it with the BPF event kind. It's only a few lines of diff and works as expected. + It should be easy to get this merged upstream if we want. +2) **sending empty dummy traces when we interrupted the idle process.**\ + It's easy to forget that we have that option because we generally tend to + think of our BPF code as only being invoked when the CPU is under load, but + that is not actually the case. We get called at a constant frequency + regardless of the workload; we just immediately bail out when we [detect that + we're in the idle process][idle-check]. We could change this code path to + always send an empty dummy record and thus ensure that our watermark is + reached in a predictable and timely manner. + +[idle-check]: # + +#### Option 2: polling the perf event buffer + +The Cilium BPF library currently [always does an `epoll`][cilium-epoll] to get +notified about whether a watermark has been reached before attempting to read +from the ring. However, this is not actually required to safely read from the +buffer: it's also perfectly sound to just try to read and see if it contains +some data. Data access is synchronized with atomics. The Rust BPF library, for +example, supports this (and in fact offers it as the default way). + +Cilium currently doesn't provide a function to do that, but we can quite easily +add one. All the error prone logic for correctly reading and updating the +atomics is in place already;we mostly just need to call their existing +functions without doing an epoll first. I also implemented that variant in the +prototype and it works great. This in turn allows us to just read from our perf +event buffers at a constant frequency. + +The drawback here is that we're paying a certain constant overhead from polling. +However, in my experiments with a 250ms polling frequency, this is essentially +negligible. On the positive side, the HA CPU usage will be very consistent +regardless of the workload. + +I measured this to be ever so slightly slower than the current regular host agent +on a completely idle system (~32 minutes wall time): + +![idle-workload](./option2-idle-workload.png) + +And a bit more efficient on a system under a heavy mixed HotSpot/native workload +(~5 minutes wall time): + +![ghidra-workload](./option2-ghidra-workload.png) + +`pf-host-agent` is the prototype HA, `pf-normal` is a HA built from latest +`main` as of writing. Ignore the CPU percentage and look at the core seconds +under "TIME+". One additional core second in 32 minutes of wall time in the idle +case seems perfectly acceptable to me. + +[cilium-epoll]: https://github.com/cilium/ebpf/blob/da24e832beede03ec73966c7b92748d370c1937d/perf/reader.go#L354C7-L354C7 + +#### Option 3: option 2 + 80% watermarks + +We could extend option 2 by additionally setting a very high byte-based +watermark (e.g. 80% of the buffer size) and additionally `epoll` on that to +ensure that our buffer doesn't run full while we are sleeping between timer +ticks. This would potentially allow us to use a much smaller perf event buffer +while still having relatively high confidence that it never runs over while we +are sleeping. + +#### Option 4: BPF ring buffers + +While perf event buffers have one ring buffer per core, BPF ring buffers are +shared between all cores. This has the obvious benefit that user-mode will +always just have to manually poll a single mmap'ed ring or `epoll` on a single +file descriptor (instead of `num_cpu` FDs). This is beneficial for both +approaches: the overhead is constant and doesn't linearly scale with core count +as it does with perf event buffers. + +BPF ring buffers further allow the BPF code to decide whether it wants to wake +user-land on each message sent via `BPF_RB_NO_WAKEUP` and `BPF_RB_FORCE_WAKEUP` +flags. It can further query the buffer fill status via `bpf_ringbuf_query`. This +essentially allows us to implement whatever custom waking schema that we want, +and later switching or refining the approach would be quite easy. + +The drawback here is that BPF ring buffers were only added in kernel 5.8. I ran +a few queries on our HA metrics cluster and we still have about 3% of customers +running kernels that are older than that. It's further possible that certain +features (like waking and inspecting the buffer state from BPF) were added in +even newer kernel versions. If there is reviewer preference towards exploring +this approach further, I'd be happy to research this in more detail. + +#### Option 5: option 2 or 4 + early wakes for interpreter frames + +Option 2 and 4 can both optionally be extended to allow for early wake-ups that +ensure timely user-mode symbolization of interpreter frames. Examples for factors +that might request an early read could be (simply quoting Timo's suggestions): + +- if it's long living process, and we know the VM is unlikely to overwrite + memory structures, we could just throttle to send this event once every few + seconds per PID at maximum +- if it's new process, or the VM is known to be potentially overwriting things, + wakeup every frame as needed +- have per-VM type, or per-{PID,framedata} LRU to throttle sending the wakeup + +**With option 2** we'd simply have to leave the old "send an event to the PID +event perf buffer for early flush" mechanism in place. Instead of flushing the +old BPF hash maps it'd cause an early read of the perf event buffers. + +**With option 4** we could set the flag argument on `bpf_ringbuf_output` to +`BPF_RB_FORCE_WAKEUP` to force a wake-up in user-mode. + +#### Author's preference + +My preference is option 2. Option 3 and 5 can be considered optional +improvements to option 2 that we may or may not apply later. + +Option 1 seems like a bit of a hack that introduces mental complexity while +providing no upside at all compared to option 2. + +Option 4 is also excellent and what I'd like to see us using in the future, but +I'm not sure whether we're willing to kick out 3% of customers. I suspect that +we'll discover that particularly the big corporate customers that are waiting +for on-prem might be running older kernels. + +Starting with option 2 now and migrating to option 4 maybe a year down the line +should not present a huge amount of work, so this is my preference. + +#### Decision + +Reviewers agreed with the author's preference. + +### Replace `hashmapperlru` with `freelru` + +The hand-rolled `hashmapperlru` mostly exists because we had to persistently +store various string fields (comm, pod name, container name) of the trace that +need to be transferred over to the count updates while maintaining high memory +efficiency with string interning. + +The remaining LRUs in `tracehandler` no longer need to store any strings or +other heap allocated objects: both keys and values are either just hashes or +`libpf.Void`. Since we always just resend everything in the new approach, +there's also no chance that we'll ever have to add back any such field in the +LRU when we add more fields later. + +Pod and container name are currently still part of the UM hash. They are not +sent from kernel directly, but derived from the PID. Since the names cannot +change after process start, there is no need to worry about them changing +and having to invalidate caches because of that. + +We can thus retire our complicated custom LRU implementation and replace it with +the generic `freelru` without sacrificing memory efficiency. + +**Validated in prototype:** yes\ +**Independent issue:** no + +### Frame list in `per_cpu_record` + +During unwinding the frame list is currently chunked and temporarily stored in +the dedicated BPF map `per_cpu_frame_list`: + +`` + +I honestly have no idea why we are doing this even in the current approach: it +adds quite a bit of complexity to both the "push" function and the trace hashing +code. As far as I can tell there doesn't seem to be any technical limitation +that would require this chunking even on old kernels. + +I suggest that we simply add the frame list to our existing [`Trace`] struct, in +struct-of-array columnar representation: + +```c +typedef struct Trace { + // [...] (existing meta-data fields omitted) + + struct { + FileID file_ids[MAX_FRAME_UNWINDS]; + u64 addr_or_lines[MAX_FRAME_UNWINDS]; + u8 kinds[MAX_FRAME_UNWINDS]; + } frames; +} Trace; +``` + +Columnar representation is chosen to reduce alignment bytes. The alternative of +an `__attribute__((packed))` `Frame` type and array-of-struct was considered, +but turned out to not be supported by CGo: it ignores the attribute and ends up +accessing memory incorrectly. + +The `Trace` instances live in [`PerCPURecord`] and was previously already used +to store trace meta-information. The proposed change thus simply consolidates +the two maps into one. + +**Validated in prototype:** yes\ +**Independent issue:** yes, but simpler to do in main PR + +[`Trace`]: # +[`PerCPURecord`]: # + +### Move container- and pod name lookup into `tracehandler` + +The lookup for container- and pod names currently happens in +`ProcessManager.ConverTrace`: + +`` + +The BPF trace only contains the PID, not the actual container- and pod name. To +have both of these available when sending out the count, we thus need to move +the lookup to `tracehandler`. `tracehandler` can then pass the names that it +looked up to `ConvertTrace` for new traces and skip trace conversion for known +ones. + +**Validated in prototype:** yes\ +**Independent issue:** no + +### Extended container- and pod name caching + +Moving the call to tracehandler means that we'll now be doing these lookups more +often than before. Previously we'd only call into `containermetadata` when a +trace wasn't present in `hashMapperCache` and needed conversion, now we'll be +doing it for every trace. + +`containermetadata` has caching in place already: + +`` + +But that cache is only hit after looking up the file identifier. The `Sprintf` +and the `stat` syscall originating in `libpf.GetOnDiskFileIdentifier` eat a +noticeable amount of CPU time. + +It wasn't immediately obvious to me why this indirection via the file identifier +is taken instead of simply using the PID as the key, but the [comments on the PR +that added the cache][pid-reuse] shed light on that: it's meant to provide +resilience against PID reuse. + +We essentially have three options here: + +1) Accept a slight increase in cycles burned: about 3-5%. +2) Add a second, short lived `PID → (PodName, ContainerName)` cache in + `tracehandler`. This is the route that I pursued in the prototype. A 256 + entry cache with a lifetime of 1 minute did the job. +3) Reduce resilience against PID reuse and change the key of the existing cache + to be PID based, but add a timeout on the LRU. + +**Author's preference:** I'd like to give option 3 a try: I suspect that it +should do the job nicely without the need for added complexity from a new layer +of caching. No strong opinion on this, though. + +**Validated in prototype:** yes (option 1 and 2)\ +**Independent issue:** yes + +[pid-reuse]: # + +#### Improvements on newer kernels + +Kernel versions v4.18+ actually have a function `bpf_get_current_cgroup_id` that +we could use to obtain a unique ID that is guaranteed not to be re-used: + +https://github.com/torvalds/linux/blob/9b6de136b5f0158c60844f85286a593cb70fb364/include/linux/kernfs.h#L217-L221 + +I believe the inode ID corresponds to the directory node in `/sys/fs/cgroup`. To +my knowledge there is no way to open a file descriptor from an inode ID, so we'll +still have to keep our existing logic based on PIDs to read the container info. +The ID could only serve as a better cache key. + +### BPF trace hashing in UM + +#### Hash inputs + +We're no longer hashing traces within BPF, but we still need to construct a hash +for the LRU that suppresses repeated trace conversion. However, if we continue +to just have all fields of the BPF trace into this, we'll suffer the same +diminishing returns of caching efficiency with every high-cardinality field that +we add as discussed in the [Problems](#problems) section. + +Since the purpose of the hash is now only to avoid repeatedly doing user-mode +symbolization for the same trace (and no longer to keep a unique mapping to +other existing and upcoming meta-fields like NS timestamp or APM info), we can +reduce the hash input to just the frame list, COMM, kernel stack ID, and PID. +The PID still needs to be included because the frame list can contain per-PID +identifiers. + +**Validated in prototype:** no\ +**Independent issue:** no (unless we start without a trace translation cache) + +#### Hash algorithm + +BPF is currently using a hand-rolled, custom hashing scheme. The scheme was +chosen primarily for simplicity and is likely neither the fastest, nor the most +collision resistant function imaginable. We already have XXH3 as a dependency +anyway, so I suggest that we just use that. It's very fast and provides a pretty +reasonable output distribution. + +**Validated in prototype:** yes\ +**Independent issue:** no (unless we start without a trace translation cache) + +### Row-based trace record in UM + +We're currently using a columnar (struct of array) representation for the frames +in `host.Trace`: + +`` + +As far as I can tell, there's no upside to this at all. Allocating space for a +trace will in fact take 4 allocs whereas with a row-based (array of struct) +implementation we'd only need 2. Initializing and accessing it is more +cumbersome and requires more bound-checks. + +I suggest that we switch the frames to array-of-struct representation. + +This suggestion is largely independent of the goals in this document, except +that with the new approach we're allocating more `host.Trace` instances: that's +why I'm mentioning it here. + +**Validated in prototype:** yes\ +**Independent issue:** yes + +## Alternatives considered + +### Perf buffer with just `(hash, meta_field_a, ...)` + +This would keep most of the existing maps in place and only replace +`hash_to_count` with a perf event buffers that transfers e.g. `(hash, +nano_timestamp, apm_span_id, ...)` tuples. We'd continue hashing the +low-cardinality portion of the trace and send the high-cardinality fields with +the trace events. The intuition for this approach is that we could avoid +unnecessary `memcpy`s at the cost of keeping most of the complexity. + +The idea was abandoned because we realized that the price of the memcpy is more +or less negligible (see ["Cost of `memcpy`"](#cost-of-memcpy) section), so +paying the extra complexity and maintenance effort of the more complex solution +seemed like a bad trade-off. This variant would also have required dealing with +the same complications as the [proposed solution](#proposed-solution) in +addition to that. + +## Misc remarks + +### Cost of `memcpy` + +Since the new approach resends the whole trace all the time, intuitively we tend +to assume that the suggested approach must come with a hefty amount of CPU +cycles spend in `memcpy`. The wish to avoid `memcpy` was brought up by multiple +reviewers, and I myself also assumed this to be a bottle-neck when starting this +experiment. + +Fortunately we can remedy these worries quite easily by profiling the prototype +host agent. The following profile is the result of a heavy mixed HotSpot/native +workload, letting Ghidra analyze the entire `devfiler` executable (29 MiB): + +![memcpy-cost](./memcpy-cost.png) + +The [`parseRawTrace`] function is responsible for hashing, allocating and +copying the BPF trace into Go heap. We can see that the whole function only +accounts for roughly 1.61% of execution time. 0.23% of that are spent in XXH3 +hashing, 1.15% in memory allocation. + +Funnily (or sadly) enough, the internal allocs in the timer that is used for +polling the perf buffer is actually about equally expensive as copying and +hashing the whole trace. + +[`parseRawTrace`]: # +[original location]: # diff --git a/third_party/opentelemetry-ebpf-profiler/design-docs/00000-example-docs/04359-remove-bpf-hashing/known-trace-metrics.png b/third_party/opentelemetry-ebpf-profiler/design-docs/00000-example-docs/04359-remove-bpf-hashing/known-trace-metrics.png new file mode 100644 index 0000000000000000000000000000000000000000..5d5b16d5a469d67febcd636af00eeb2f2e2b0212 GIT binary patch literal 214909 zcmeFZWmr_*+c!+72*QO(gGzVzfC3_|q%=xNcMoBKC^9sXqojazHws8IGIS3)bjJ)e z&*qBz{$Ka|;o*MYuP?_jGn?6at-a4!XZ+4{O~ex|6*3Y!5-cn%GS$aQI#^glC@d`8 zM??g`HxAO7qgYrZrS^)7PgE5ZS)O>f+S)tWU|~IuNJt{o)19~-25VYl#eT^02kzTh zJT4sU?6*wyUZuBUDIP`$;bWJHNWQ-J;XTp#@23>_oj6_3Zgu?pGJb|ft2FFh%EF!K z`%2kurRZcfAh5_2R&zXKw-Yo_&#^&{Wz87%EDgU9H<~Y2HS-OaHbS-g#xxcSj_8-r zwbsvV2_KA}K7Ec=){Wjdz7!ArwL)KQRd;!D5h6wc5m?5-Qf5u-iSwwq1^N&vVOpj{ zfK_mFFO@ejqO+Ftxh653<>v>X+ZwwKLRyS=qQSE4;*;dhrLp`d!|&a~QYcqCk7Ovu z>Q*FqG;ZEb^?_nQd7MWkkd=Ji;4NRw9ig9A=;Zvl~aG6mueCiA6N}lOAy;ETQ)In+KKB@oW-eMX*c~q)(@vwk@ ztUm+h$@1j)_ob>@R0QP-{??o0sw?WaFW8OB1&xh(G#5HktfQ<8ie*K#*0hlo3Fw0% zD=Ky=l{?Hr-SEE8zw__N=UCi@7#zcB@X=Z$WP00jCZ{vO@0^y6jRKrXJ$BOaFVS~L z^|b6W%O#lR0zy0Ch{=*0Lkv|@~&_RFPcHhbsVc23!$GX!{ zLj~=aYFIqEl{udW?!AHKW_P#Lu7{?R@C&t+ycv=UN(|?yBMMzCGp)OC_cNR+&@$Qr zPwWe^*DGv6?8MgFYkl~BSj-ey4;Aje$5*ukAzph$lijxz;>6;4aElY0zSZ^#zE9}P zmzxZD;SWe9u?Jq0B1mcpTwW0>V4waV6~vo;^OWed8wG9V!}@4eYk~=dC#$(of4%esyONIkRnHghmo$3h7dVXJ0}qqFFs(8Tlaf7j{h}>M!u}(r6y$Uh z7Md(bdh?ytyniW{IUcg@-EKfFW$`=m*8W{16bYErpj80z{11ivFE2Uo#q)iL*jH4} zjD2d)N$fyda7X`DfwEZUdH#he$ZWrzf{kPmadffUq^G)^E^wE#uEJktXk3CgA-~n(DoE9zz zHxW*D(mH14h_hKbS_;^g+PB&#)GsJV=Qc^mt2eDOt};5RU*{2fosvwa?%ZtLZ2WHW zR#l;czzFgB%6jlR!;#JU$a?3<&Np)1Z+{S~-DgWJk1B_HMC@ze<~=XI_2tJ9=kR!u zyH*zDLuSg8i*Kgu4(m+o{thkd215_yijuz?W%@suIQL+&}dL>P&KN`hfk&~ zl2>MLRH-xheA0Q6!#T(~QQRW1$S3RAd+S!Zy);M~oc5ha>P1_RU7uV}?``76 zy!Q3z`;qMi-{@4auldfhXumzvQ0>r%JjM(k=*^*`wZTKS!A001~aV%dGAC1wd@oeQ!W1%A9qG}_vim;;eqM@R~qLRs0aencKsm|hZ zLqbC{xgT@Kv|6mx%WWoB#>K~vCkHowZW>HfjW?w{m%iu!>lbahNb{u3l-Pgzy>#>yu5a;YY`e%sgS77lGBi;JK|YG92U8s0a3%@?P)&pSFslo#Nu z!mAGJDGSDn0pa=GkuQp^%)Q!b(e-@3GV{lSGaY6t!Q&SKq-ziR*d-gf`F^SqniV^r>L_$}L8neP)HQ*=j7|AFT0x$E$BxTK=2BFokg z7EHHAVMZ}StN6)?qC$Qp=)0?v{pK6VUP*t`z((WqY1Any1`qSL98Y;6vOOolF!nI^ zt!hzs?GkFKsk_Y+XT>RFNPf)UWpH}xfOlniph48aHF)$qj&%68+ieEbAKCY_H?`4y z5lh1!VY(CfV)=@u^4qt!Ni)bx(j>Z0mXh`e;j%+L@C;&E{8YR*YqM+AYXa|re{#=n zL?R*?Y40V+B%cYl*sxiP*(_G*mP0;@DkWz|y(1v?q&a@?+^+nh6tT_DB(6aa`FDTUj6XmC-u7^dAy6? zPqK~gbJbV;vg(gw9+W2u*)-p%^x2p!>1bT&Wjki0W`mBokC|O|&*$|(n~Stf=FHZ0 z>Vt57-n?wv`ZPfzjl>$&$$*3C|OXOf+j; z#!u_Go7N4gT)lP4nrxl>yToU!H>QHBCANRhJuP1x(wZM=Xn5@-HkLAGu=#6yVB*3{ z`#fU+nk+xIGcsjTe$opX1Sy+&nW;2623-W7Ucw1#AIu8+S#G~_B)lN67M~Q~cE}V< zV897q3eUjA?)PrBeGQ+22tq`e#AJ*;BLlwI(mD({GC8QaKCNW0I%Xi3nw?!4^w~6Q zusBH#?Y0>^%w}ioPRh5NnxUQ{hd(}qe-7_}3^VJ?=E@ge%&ecV zzx%jgT@vCt7WbKh{IoVm;4=DhudZd63vJ&KIgFMV728GIQ$ahn&5q1bbiwDKvy0WodxSIO-pt9&GV*L- zx;tj)v?q1@A4ig^OTJn#2lrkcYxc#s{mQ{2p>;E+!*V@lm1ZTzS{K85@5%0URQrGm zga3>8oFn7+?BWVe>kknur6Md#4gRe|?A9C4_dk=*KV!y{k>cviCSV%duzI9Y8Nc{h zL28fl{0GS{dFt=|xuXjhEoa50^CgYhB>qoEL6im%!hW!MrfRFHiNy^Z6Jg?`yPx&#S*^;B__TuTR|AFf2mgKT6=`_XX#l ztBFuwaQ`{ReFU7tdZ4SQstSDST6x&mxOl#F_1b%g{tbLV?Dp8m6ASA$+tmwORp