From 888c2030713fa000e2880e8b7192d148a34d8658 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 26 Jun 2025 12:16:09 -0500 Subject: [PATCH 01/45] [Release] add-backport-next (#45060) (#45075) (cherry picked from commit 0dd36b9c6031fb50deb0a2cef9cbd85861a87e9a) Co-authored-by: elastic-vault-github-plugin-prod[bot] <150874479+elastic-vault-github-plugin-prod[bot]@users.noreply.github.com> Co-authored-by: elasticmachine --- .mergify.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.mergify.yml b/.mergify.yml index ab4df8f5e4df..497a28e0054c 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -428,3 +428,11 @@ pull_request_rules: labels: - "backport" title: "[{{ destination_branch }}](backport #{{ number }}) {{ title }}" + - name: backport patches to 9.1 branch + conditions: + - merged + - label=backport-9.1 + actions: + backport: + branches: + - "9.1" From 433ca4ad6f642a3c60a0a1ce99bae30bd568d2cb Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 26 Jun 2025 20:53:51 +0000 Subject: [PATCH 02/45] [fbreceiver] - Skip flaky TestReceiverDegraded (#45058) (#45079) * skip TestReceiverDegraded (cherry picked from commit bdc59914ebc31b5f8672d78a71ce5d9c3cdf7351) Co-authored-by: Vihas Makwana <121151420+VihasMakwana@users.noreply.github.com> --- x-pack/filebeat/fbreceiver/receiver_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/filebeat/fbreceiver/receiver_test.go b/x-pack/filebeat/fbreceiver/receiver_test.go index 09998dcad512..e6b13c7d79a9 100644 --- a/x-pack/filebeat/fbreceiver/receiver_test.go +++ b/x-pack/filebeat/fbreceiver/receiver_test.go @@ -253,6 +253,7 @@ func TestMultipleReceivers(t *testing.T) { } func TestReceiverDegraded(t *testing.T) { + t.Skip("Flaky on CI but works locally: https://github.com/elastic/beats/issues/45057") testCases := []struct { name string status oteltest.ExpectedStatus From 1bb520b665552d40c2724b56722bd9b93b44f819 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 27 Jun 2025 00:41:58 +0200 Subject: [PATCH 03/45] docs-builder: add `pull-requests: write` permission to docs-build workflow (#44946) (#45067) (cherry picked from commit 9e9edd73e277634bb17be0895eb50ec1a2238035) Co-authored-by: Jan Calanog --- .github/workflows/docs-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs-build.yml b/.github/workflows/docs-build.yml index c8738a96f117..cc7010911235 100644 --- a/.github/workflows/docs-build.yml +++ b/.github/workflows/docs-build.yml @@ -17,4 +17,4 @@ jobs: deployments: write id-token: write contents: read - pull-requests: read + pull-requests: write From 25e32f8dbe143875a9cede83bb8fbcb3715c9479 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 27 Jun 2025 11:12:56 -0600 Subject: [PATCH 04/45] [OTel] Convert array-nested `mapstr.M` (#45076) (#45082) This adds the reflective capture of `mapstr.M` in addition to `map[string]any` for `[]any`. (cherry picked from commit 8d191b7ebaaa25b526edee4bc52d707fe2be0cec) Co-authored-by: Chris Earle --- libbeat/otelbeat/otelmap/otelmap.go | 11 ++++++++--- libbeat/otelbeat/otelmap/otelmap_test.go | 4 +++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/libbeat/otelbeat/otelmap/otelmap.go b/libbeat/otelbeat/otelmap/otelmap.go index 8a471524860e..50487d66a56c 100644 --- a/libbeat/otelbeat/otelmap/otelmap.go +++ b/libbeat/otelbeat/otelmap/otelmap.go @@ -101,10 +101,15 @@ func ConvertNonPrimitive[T mapstrOrMap](m T) { s := make([]any, ref.Len()) for i := 0; i < ref.Len(); i++ { elem := ref.Index(i).Interface() - if m, ok := elem.(map[string]any); ok { - ConvertNonPrimitive(m) + if mi, ok := elem.(map[string]any); ok { + ConvertNonPrimitive(mi) + s[i] = mi + } else if mi, ok := elem.(mapstr.M); ok { + ConvertNonPrimitive(mi) + s[i] = map[string]any(mi) + } else { + s[i] = elem } - s[i] = elem } m[key] = s break // we figured out the type, so we don't need the unknown type case diff --git a/libbeat/otelbeat/otelmap/otelmap_test.go b/libbeat/otelbeat/otelmap/otelmap_test.go index a33fc0fa749f..5d2b19bd35fa 100644 --- a/libbeat/otelbeat/otelmap/otelmap_test.go +++ b/libbeat/otelbeat/otelmap/otelmap_test.go @@ -198,7 +198,7 @@ func TestFromMapstrMapstr(t *testing.T) { } func TestFromMapstrSliceMapstr(t *testing.T) { - inputSlice := []mapstr.M{mapstr.M{"item": 1}, mapstr.M{"item": 1}, mapstr.M{"item": 1}} + inputSlice := []mapstr.M{{"item": 1}, {"item": 1}, {"item": 1}} inputMap := mapstr.M{ "slice": inputSlice, } @@ -292,6 +292,7 @@ func TestFromMapstrWithNestedData(t *testing.T) { "inner_int": 43, "inner_map_slice": []any{ map[string]any{"string": "string3"}, + mapstr.M{"number": 12.4}, }, "inner_slice": [2]map[string]any{ // array -> slice {"string": "string2"}, @@ -318,6 +319,7 @@ func TestFromMapstrWithNestedData(t *testing.T) { "inner_int": 43, "inner_map_slice": []any{ map[string]any{"string": "string3"}, + map[string]any{"number": 12.4}, }, "inner_slice": []any{ map[string]any{"string": "string2"}, From a58635cf618a939ac38efabd2c01db3b75e909e8 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 27 Jun 2025 13:17:48 -0400 Subject: [PATCH 05/45] feat(libbeat/processors/dns): Add option to disable DNS caches (#44932) (#45078) This enables use cases that require resolving the current DNS record, regardless of the record's TTL or any previously cached values. It is useful, for example, when monitoring a DNS server or when recorded events must capture the environment's state at a specific moment. When a cache is used, the TTL determines the time frame in which an agent might observe a stale record instead of the current one. This unpredictability can be undesirable when optimizing for rapid time-to-intervention. Disabling the cache has significant throughput implications. The processing time for a single event will be at least the DNS round-trip time. For example, if a DNS request takes 1 ms, the maximum serial throughput is limited to 1000 events/sec. Known use cases for this feature have low throughput requirements. Throughput can be increased by deploying multiple, parallel agents. NOTE: Setting the failure cache TTL to a very low value (e.g., 1ns) achieves a similar, but imperfect, effect. NOTE: While the config allows setting a TTL on the success cache, this option is currently ignored. A future enhancement could honor this setting (e.g., by using min(configured_ttl, record_ttl)), which would align with the behavior of other DNS clients. (cherry picked from commit eee15e73543cdf13e40b0b1eaf9e14f86d6a147d) Co-authored-by: Michael Bischoff Co-authored-by: Visha Angelova <91186315+vishaangelova@users.noreply.github.com> --- docs/reference/auditbeat/processor-dns.md | 14 ++++++++++ docs/reference/filebeat/processor-dns.md | 14 ++++++++++ docs/reference/heartbeat/processor-dns.md | 14 ++++++++++ docs/reference/metricbeat/processor-dns.md | 14 ++++++++++ docs/reference/packetbeat/processor-dns.md | 14 ++++++++++ docs/reference/winlogbeat/processor-dns.md | 14 ++++++++++ libbeat/processors/dns/cache.go | 30 ++++++++++++++++++++-- libbeat/processors/dns/cache_test.go | 29 ++++++++++++++++++++- libbeat/processors/dns/config.go | 5 ++++ libbeat/processors/dns/dns_test.go | 14 +++++----- 10 files changed, 152 insertions(+), 10 deletions(-) diff --git a/docs/reference/auditbeat/processor-dns.md b/docs/reference/auditbeat/processor-dns.md index 8f3587ddcfdb..1a523611320a 100644 --- a/docs/reference/auditbeat/processor-dns.md +++ b/docs/reference/auditbeat/processor-dns.md @@ -79,6 +79,13 @@ The `dns` processor has the following configuration settings: `success_cache.min_ttl` : The duration of the minimum alternative cache TTL for successful DNS responses. Ensures that `TTL=0` successful reverse DNS responses can be cached. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Default value is `1m`. +`success_cache.enabled` +: Whether the success cache should be enabled. The default value is `true`, meaning the cache is used by default. + +::::{note} +Disabling the cache has throughput implications, requiring each event to perform a round trip to the DNS server. For example, if a DNS lookup takes 1 ms, serial throughput is limited to a maximum of 1,000 events per second. +:::: + `failure_cache.capacity.initial` : The initial number of items that the failure cache will be allocated to hold. When initialized the processor will allocate the memory for this number of items. Default value is `1000`. @@ -88,6 +95,13 @@ The `dns` processor has the following configuration settings: `failure_cache.ttl` : The duration for which failures are cached. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Default value is `1m`. +`failure_cache.enabled` +: Whether the failure cache should be enabled. The default value is `true`, meaning the cache is used by default. + +::::{note} +Disabling the cache has throughput implications, requiring each event to perform a round trip to the DNS server. For example, if a DNS lookup takes 1 ms, serial throughput is limited to a maximum of 1,000 events per second. Additionally, if the failure occurs because the server is overloaded, retrying immediately might have compounding effects. +:::: + `nameservers` : A list of nameservers to query. If there are multiple servers, the resolver queries them in the order listed. If none are specified then it will read the nameservers listed in `/etc/resolv.conf` once at initialization. On Windows you must always supply at least one nameserver. diff --git a/docs/reference/filebeat/processor-dns.md b/docs/reference/filebeat/processor-dns.md index 6a663a990e20..d41d1cd01af0 100644 --- a/docs/reference/filebeat/processor-dns.md +++ b/docs/reference/filebeat/processor-dns.md @@ -79,6 +79,13 @@ The `dns` processor has the following configuration settings: `success_cache.min_ttl` : The duration of the minimum alternative cache TTL for successful DNS responses. Ensures that `TTL=0` successful reverse DNS responses can be cached. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Default value is `1m`. +`success_cache.enabled` +: Whether the success cache should be enabled. The default value is `true`, meaning the cache is used by default. + +::::{note} +Disabling the cache has throughput implications, requiring each event to perform a round trip to the DNS server. For example, if a DNS lookup takes 1 ms, serial throughput is limited to a maximum of 1,000 events per second. +:::: + `failure_cache.capacity.initial` : The initial number of items that the failure cache will be allocated to hold. When initialized the processor will allocate the memory for this number of items. Default value is `1000`. @@ -88,6 +95,13 @@ The `dns` processor has the following configuration settings: `failure_cache.ttl` : The duration for which failures are cached. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Default value is `1m`. +`failure_cache.enabled` +: Whether the failure cache should be enabled. The default value is `true`, meaning the cache is used by default. + +::::{note} +Disabling the cache has throughput implications, requiring each event to perform a round trip to the DNS server. For example, if a DNS lookup takes 1 ms, serial throughput is limited to a maximum of 1,000 events per second. Additionally, if the failure occurs because the server is overloaded, retrying immediately might have compounding effects. +:::: + `nameservers` : A list of nameservers to query. If there are multiple servers, the resolver queries them in the order listed. If none are specified then it will read the nameservers listed in `/etc/resolv.conf` once at initialization. On Windows you must always supply at least one nameserver. diff --git a/docs/reference/heartbeat/processor-dns.md b/docs/reference/heartbeat/processor-dns.md index ba88677aa606..951efcc9bdfb 100644 --- a/docs/reference/heartbeat/processor-dns.md +++ b/docs/reference/heartbeat/processor-dns.md @@ -79,6 +79,13 @@ The `dns` processor has the following configuration settings: `success_cache.min_ttl` : The duration of the minimum alternative cache TTL for successful DNS responses. Ensures that `TTL=0` successful reverse DNS responses can be cached. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Default value is `1m`. +`success_cache.enabled` +: Whether the success cache should be enabled. The default value is `true`, meaning the cache is used by default. + +::::{note} +Disabling the cache has throughput implications, requiring each event to perform a round trip to the DNS server. For example, if a DNS lookup takes 1 ms, serial throughput is limited to a maximum of 1,000 events per second. +:::: + `failure_cache.capacity.initial` : The initial number of items that the failure cache will be allocated to hold. When initialized the processor will allocate the memory for this number of items. Default value is `1000`. @@ -88,6 +95,13 @@ The `dns` processor has the following configuration settings: `failure_cache.ttl` : The duration for which failures are cached. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Default value is `1m`. +`failure_cache.enabled` +: Whether the failure cache should be enabled. The default value is `true`, meaning the cache is used by default. + +::::{note} +Disabling the cache has throughput implications, requiring each event to perform a round trip to the DNS server. For example, if a DNS lookup takes 1 ms, serial throughput is limited to a maximum of 1,000 events per second. Additionally, if the failure occurs because the server is overloaded, retrying immediately might have compounding effects. +:::: + `nameservers` : A list of nameservers to query. If there are multiple servers, the resolver queries them in the order listed. If none are specified then it will read the nameservers listed in `/etc/resolv.conf` once at initialization. On Windows you must always supply at least one nameserver. diff --git a/docs/reference/metricbeat/processor-dns.md b/docs/reference/metricbeat/processor-dns.md index 1f3b40e9dc60..fcf04332d276 100644 --- a/docs/reference/metricbeat/processor-dns.md +++ b/docs/reference/metricbeat/processor-dns.md @@ -79,6 +79,13 @@ The `dns` processor has the following configuration settings: `success_cache.min_ttl` : The duration of the minimum alternative cache TTL for successful DNS responses. Ensures that `TTL=0` successful reverse DNS responses can be cached. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Default value is `1m`. +`success_cache.enabled` +: Whether the success cache should be enabled. The default value is `true`, meaning the cache is used by default. + +::::{note} +Disabling the cache has throughput implications, requiring each event to perform a round trip to the DNS server. For example, if a DNS lookup takes 1 ms, serial throughput is limited to a maximum of 1,000 events per second. +:::: + `failure_cache.capacity.initial` : The initial number of items that the failure cache will be allocated to hold. When initialized the processor will allocate the memory for this number of items. Default value is `1000`. @@ -88,6 +95,13 @@ The `dns` processor has the following configuration settings: `failure_cache.ttl` : The duration for which failures are cached. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Default value is `1m`. +`failure_cache.enabled` +: Whether the failure cache should be enabled. The default value is `true`, meaning the cache is used by default. + +::::{note} +Disabling the cache has throughput implications, requiring each event to perform a round trip to the DNS server. For example, if a DNS lookup takes 1 ms, serial throughput is limited to a maximum of 1,000 events per second. Additionally, if the failure occurs because the server is overloaded, retrying immediately might have compounding effects. +:::: + `nameservers` : A list of nameservers to query. If there are multiple servers, the resolver queries them in the order listed. If none are specified then it will read the nameservers listed in `/etc/resolv.conf` once at initialization. On Windows you must always supply at least one nameserver. diff --git a/docs/reference/packetbeat/processor-dns.md b/docs/reference/packetbeat/processor-dns.md index 2d2111bda386..70f0490c16e7 100644 --- a/docs/reference/packetbeat/processor-dns.md +++ b/docs/reference/packetbeat/processor-dns.md @@ -79,6 +79,13 @@ The `dns` processor has the following configuration settings: `success_cache.min_ttl` : The duration of the minimum alternative cache TTL for successful DNS responses. Ensures that `TTL=0` successful reverse DNS responses can be cached. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Default value is `1m`. +`success_cache.enabled` +: Whether the success cache should be enabled. The default value is `true`, meaning the cache is used by default. + +::::{note} +Disabling the cache has throughput implications, requiring each event to perform a round trip to the DNS server. For example, if a DNS lookup takes 1 ms, serial throughput is limited to a maximum of 1,000 events per second. +:::: + `failure_cache.capacity.initial` : The initial number of items that the failure cache will be allocated to hold. When initialized the processor will allocate the memory for this number of items. Default value is `1000`. @@ -88,6 +95,13 @@ The `dns` processor has the following configuration settings: `failure_cache.ttl` : The duration for which failures are cached. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Default value is `1m`. +`failure_cache.enabled` +: Whether the failure cache should be enabled. The default value is `true`, meaning the cache is used by default. + +::::{note} +Disabling the cache has throughput implications, requiring each event to perform a round trip to the DNS server. For example, if a DNS lookup takes 1 ms, serial throughput is limited to a maximum of 1,000 events per second. Additionally, if the failure occurs because the server is overloaded, retrying immediately might have compounding effects. +:::: + `nameservers` : A list of nameservers to query. If there are multiple servers, the resolver queries them in the order listed. If none are specified then it will read the nameservers listed in `/etc/resolv.conf` once at initialization. On Windows you must always supply at least one nameserver. diff --git a/docs/reference/winlogbeat/processor-dns.md b/docs/reference/winlogbeat/processor-dns.md index e90d2373f171..0911945b9e39 100644 --- a/docs/reference/winlogbeat/processor-dns.md +++ b/docs/reference/winlogbeat/processor-dns.md @@ -79,6 +79,13 @@ The `dns` processor has the following configuration settings: `success_cache.min_ttl` : The duration of the minimum alternative cache TTL for successful DNS responses. Ensures that `TTL=0` successful reverse DNS responses can be cached. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Default value is `1m`. +`success_cache.enabled` +: Whether the success cache should be enabled. The default value is `true`, meaning the cache is used by default. + +::::{note} +Disabling the cache has throughput implications, requiring each event to perform a round trip to the DNS server. For example, if a DNS lookup takes 1 ms, serial throughput is limited to a maximum of 1,000 events per second. +:::: + `failure_cache.capacity.initial` : The initial number of items that the failure cache will be allocated to hold. When initialized the processor will allocate the memory for this number of items. Default value is `1000`. @@ -88,6 +95,13 @@ The `dns` processor has the following configuration settings: `failure_cache.ttl` : The duration for which failures are cached. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Default value is `1m`. +`failure_cache.enabled` +: Whether the failure cache should be enabled. The default value is `true`, meaning the cache is used by default. + +::::{note} +Disabling the cache has throughput implications, requiring each event to perform a round trip to the DNS server. For example, if a DNS lookup takes 1 ms, serial throughput is limited to a maximum of 1,000 events per second. Additionally, if the failure occurs because the server is overloaded, retrying immediately might have compounding effects. +:::: + `nameservers` : A list of nameservers to query. If there are multiple servers, the resolver queries them in the order listed. If none are specified then it will read the nameservers listed in `/etc/resolv.conf` once at initialization. On Windows you must always supply at least one nameserver. diff --git a/libbeat/processors/dns/cache.go b/libbeat/processors/dns/cache.go index 6427fb9f98ed..cb17690630a3 100644 --- a/libbeat/processors/dns/cache.go +++ b/libbeat/processors/dns/cache.go @@ -18,6 +18,7 @@ package dns import ( + "math" "sync" "time" @@ -34,6 +35,7 @@ func (r successRecord) IsExpired(now time.Time) bool { } type successCache struct { + enabled bool sync.RWMutex data map[string]successRecord maxSize int @@ -41,6 +43,9 @@ type successCache struct { } func (c *successCache) set(now time.Time, key string, result *result) { + if !c.enabled { + return + } c.Lock() defer c.Unlock() @@ -65,12 +70,15 @@ func (c *successCache) evict() { } func (c *successCache) get(now time.Time, key string) *result { + if !c.enabled { + return nil + } c.RLock() defer c.RUnlock() r, found := c.data[key] if found && !r.IsExpired(now) { - return &result{r.data, uint32(r.expires.Sub(now) / time.Second)} + return &result{r.data, safeUint32(r.expires.Sub(now).Seconds())} } return nil } @@ -85,6 +93,7 @@ func (r failureRecord) IsExpired(now time.Time) bool { } type failureCache struct { + enabled bool sync.RWMutex data map[string]failureRecord maxSize int @@ -92,6 +101,9 @@ type failureCache struct { } func (c *failureCache) set(now time.Time, key string, err error) { + if !c.enabled { + return + } c.Lock() defer c.Unlock() if len(c.data) >= c.maxSize { @@ -115,6 +127,9 @@ func (c *failureCache) evict() { } func (c *failureCache) get(now time.Time, key string) error { + if !c.enabled { + return nil + } c.RLock() defer c.RUnlock() @@ -155,11 +170,13 @@ func newLookupCache(reg *monitoring.Registry, conf cacheConfig, resolver resolve c := &lookupCache{ success: &successCache{ + enabled: conf.FailureCache.Enabled, data: make(map[string]successRecord, conf.SuccessCache.InitialCapacity), maxSize: conf.SuccessCache.MaxCapacity, minSuccessTTL: conf.SuccessCache.MinTTL, }, failure: &failureCache{ + enabled: conf.FailureCache.Enabled, data: make(map[string]failureRecord, conf.FailureCache.InitialCapacity), maxSize: conf.FailureCache.MaxCapacity, failureTTL: conf.FailureCache.TTL, @@ -200,7 +217,7 @@ func (c lookupCache) Lookup(q string, qt queryType) (*result, error) { } // We set the result TTL to the minimum TTL in case it is less than that. - r.TTL = max(r.TTL, uint32(c.success.minSuccessTTL/time.Second)) + r.TTL = max(r.TTL, safeUint32(c.success.minSuccessTTL.Seconds())) c.success.set(now, q, r) return r, nil @@ -212,3 +229,12 @@ func max(a, b uint32) uint32 { } return b } + +// safeUint32 converts a float64 to a uint32, protecting against out-of-bounds +// values. It takes the absolute value to prevent negative numbers and caps the +// result at math.MaxUint32 to avoid integer overflows. +// +// This function is used to satisfy the gosec security scanner rule G115. +func safeUint32(float float64) uint32 { + return uint32(math.Min(math.Abs(float), float64(math.MaxUint32))) +} diff --git a/libbeat/processors/dns/cache_test.go b/libbeat/processors/dns/cache_test.go index ffb081d9fcc9..e352e04d00e2 100644 --- a/libbeat/processors/dns/cache_test.go +++ b/libbeat/processors/dns/cache_test.go @@ -101,7 +101,7 @@ func TestCache(t *testing.T) { assert.EqualValues(t, 3, c.stats.Miss.Get()) // Cache miss. } - minTTL := defaultConfig().cacheConfig.SuccessCache.MinTTL + minTTL := defaultConfig().SuccessCache.MinTTL // Initial success returned TTL=0 with MinTTL. r, err = c.Lookup(gatewayIP+"2", typePTR) if assert.NoError(t, err) { @@ -126,3 +126,30 @@ func TestCache(t *testing.T) { assert.EqualValues(t, 4, c.stats.Miss.Get()) } } + +func TestDisabledCache(t *testing.T) { + config := defaultConfig().cacheConfig + config.SuccessCache.Enabled = false + config.FailureCache.Enabled = false + + c, err := newLookupCache( + monitoring.NewRegistry(), + config, + &stubResolver{}) + if err != nil { + t.Fatal(err) + } + + // Initial success query. + var r *result + r, err = c.Lookup(gatewayIP, typePTR) + if assert.NoError(t, err) { + assert.EqualValues(t, []string{gatewayName}, r.Data) + } + r, err = c.Lookup(gatewayIP, typePTR) + if assert.NoError(t, err) { + assert.EqualValues(t, []string{gatewayName}, r.Data) + assert.EqualValues(t, 0, c.stats.Hit.Get()) + assert.EqualValues(t, 2, c.stats.Miss.Get()) + } +} diff --git a/libbeat/processors/dns/config.go b/libbeat/processors/dns/config.go index 07aefe5303a6..8d40c5ce17d2 100644 --- a/libbeat/processors/dns/config.go +++ b/libbeat/processors/dns/config.go @@ -120,6 +120,9 @@ type cacheConfig struct { // cacheSettings define the caching behavior for an individual cache. type cacheSettings struct { + // Disable the use of the cache. + Enabled bool `config:"enabled"` + // TTL value for items in cache. Not used for success because we use TTL // from the DNS record. TTL time.Duration `config:"ttl"` @@ -189,11 +192,13 @@ func defaultConfig() config { return config{ cacheConfig: cacheConfig{ SuccessCache: cacheSettings{ + Enabled: true, MinTTL: time.Minute, InitialCapacity: 1000, MaxCapacity: 10000, }, FailureCache: cacheSettings{ + Enabled: true, MinTTL: time.Minute, TTL: time.Minute, InitialCapacity: 1000, diff --git a/libbeat/processors/dns/dns_test.go b/libbeat/processors/dns/dns_test.go index 7e523e7bbf03..f68d7da9958c 100644 --- a/libbeat/processors/dns/dns_test.go +++ b/libbeat/processors/dns/dns_test.go @@ -39,7 +39,7 @@ func TestDNSProcessorRun(t *testing.T) { resolver: &stubResolver{}, log: logptest.NewTestingLogger(t, logName), } - p.config.reverseFlat = map[string]string{ + p.reverseFlat = map[string]string{ "source.ip": "source.domain", } t.Log(p.String()) @@ -60,7 +60,7 @@ func TestDNSProcessorRun(t *testing.T) { const forwardDomain = "www." + gatewayName t.Run("append", func(t *testing.T) { - p.config.Action = actionAppend + p.Action = actionAppend event, err := p.Run(&beat.Event{ Fields: mapstr.M{ @@ -79,7 +79,7 @@ func TestDNSProcessorRun(t *testing.T) { }) t.Run("replace", func(t *testing.T) { - p.config.Action = actionReplace + p.Action = actionReplace event, err := p.Run(&beat.Event{ Fields: mapstr.M{ @@ -132,8 +132,8 @@ func TestDNSProcessorTagOnFailure(t *testing.T) { resolver: &stubResolver{}, log: logptest.NewTestingLogger(t, logName), } - p.config.TagOnFailure = []string{"_lookup_failed"} - p.config.reverseFlat = map[string]string{ + p.TagOnFailure = []string{"_lookup_failed"} + p.reverseFlat = map[string]string{ "source.ip": "source.domain", "destination.ip": "destination.domain", } @@ -151,7 +151,7 @@ func TestDNSProcessorTagOnFailure(t *testing.T) { v, _ := event.GetValue("tags") if assert.Len(t, v, 1) { - assert.ElementsMatch(t, v, p.config.TagOnFailure) + assert.ElementsMatch(t, v, p.TagOnFailure) } } @@ -166,7 +166,7 @@ func TestDNSProcessorRunInParallel(t *testing.T) { t.Fatal(err) } p := &processor{config: conf, resolver: cache, log: logptest.NewTestingLogger(t, logName)} - p.config.reverseFlat = map[string]string{"source.ip": "source.domain"} + p.reverseFlat = map[string]string{"source.ip": "source.domain"} const numGoroutines = 10 const numEvents = 500 From d6492d529944d68e032f1c11114e3233cf6158c9 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 27 Jun 2025 20:00:10 +0000 Subject: [PATCH 06/45] [Elasticsearch] Allow Env Injected Auth (#45092) (#45094) This allows tools to inject the auth parameters via the environment, which enables usage of dynamically deciding what to use for auth in OTel mode while still supporting blank values. (cherry picked from commit 5ae4c3733e6b43f6707744603b45fe10941e1b6e) Co-authored-by: Chris Earle --- metricbeat/module/elasticsearch/metricset.go | 22 ++++++++------------ 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/metricbeat/module/elasticsearch/metricset.go b/metricbeat/module/elasticsearch/metricset.go index 508ac68431c0..ae36cf991367 100644 --- a/metricbeat/module/elasticsearch/metricset.go +++ b/metricbeat/module/elasticsearch/metricset.go @@ -22,6 +22,7 @@ import ( "encoding/json" "errors" "fmt" + "os" "github.com/elastic/beats/v7/libbeat/common/productorigin" "github.com/elastic/beats/v7/metricbeat/helper" @@ -29,16 +30,13 @@ import ( "github.com/elastic/beats/v7/metricbeat/mb/parse" ) -const ( - defaultScheme = "http" - pathConfigKey = "path" -) - var ( // HostParser parses host urls for RabbitMQ management plugin HostParser = parse.URLHostParserBuilder{ - DefaultScheme: defaultScheme, - PathConfigKey: pathConfigKey, + DefaultScheme: "http", + DefaultUsername: os.Getenv("ELASTICSEARCH_READ_USERNAME"), + DefaultPassword: os.Getenv("ELASTICSEARCH_READ_PASSWORD"), + PathConfigKey: "path", }.Build() ) @@ -98,7 +96,7 @@ func NewMetricSet(base mb.BaseMetricSet, servicePath string) (*MetricSet, error) }{ Scope: ScopeNode, XPackEnabled: false, - ApiKey: "", + ApiKey: os.Getenv("ELASTICSEARCH_READ_API_KEY"), } if err := base.Module().UnpackConfig(&config); err != nil { return nil, err @@ -135,7 +133,7 @@ func (m *MetricSet) GetServiceURI() string { // SetServiceURI updates the URI of the Elasticsearch service being monitored by this metricset func (m *MetricSet) SetServiceURI(servicePath string) { m.servicePath = servicePath - m.HTTP.SetURI(m.GetServiceURI()) + m.SetURI(m.GetServiceURI()) } func (m *MetricSet) ShouldSkipFetch() (bool, error) { @@ -159,10 +157,9 @@ func (m *MetricSet) ShouldSkipFetch() (bool, error) { // GetMasterNodeID returns the ID of the Elasticsearch cluster's master node func (m *MetricSet) GetMasterNodeID() (string, error) { - http := m.HTTP resetURI := m.GetServiceURI() - content, err := fetchPath(http, resetURI, "_nodes/_master", "filter_path=nodes.*.name") + content, err := fetchPath(m.HTTP, resetURI, "_nodes/_master", "filter_path=nodes.*.name") if err != nil { return "", err } @@ -184,10 +181,9 @@ func (m *MetricSet) GetMasterNodeID() (string, error) { // IsMLockAllEnabled returns if the given Elasticsearch node has mlockall enabled func (m *MetricSet) IsMLockAllEnabled(nodeID string) (bool, error) { - http := m.HTTP resetURI := m.GetServiceURI() - content, err := fetchPath(http, resetURI, "_nodes/"+nodeID, "filter_path=nodes.*.process.mlockall") + content, err := fetchPath(m.HTTP, resetURI, "_nodes/"+nodeID, "filter_path=nodes.*.process.mlockall") if err != nil { return false, err } From b5808f4c9cfab4bd5a9ebec883bd651a429164a5 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 28 Jun 2025 02:22:55 +0000 Subject: [PATCH 07/45] Use existing constants (#45053) (#45103) (cherry picked from commit 6798fe54a08c83297f76ce4f09e2c0188baaf3ca) Co-authored-by: Shaunak Kashyap --- filebeat/input/v2/loader.go | 4 ++-- filebeat/input/v2/loader_test.go | 6 +++--- libbeat/common/mode_fips.go | 23 ----------------------- libbeat/common/mode_nofips.go | 23 ----------------------- 4 files changed, 5 insertions(+), 51 deletions(-) delete mode 100644 libbeat/common/mode_fips.go delete mode 100644 libbeat/common/mode_nofips.go diff --git a/filebeat/input/v2/loader.go b/filebeat/input/v2/loader.go index c4b446ff8baf..4ac3c1124040 100644 --- a/filebeat/input/v2/loader.go +++ b/filebeat/input/v2/loader.go @@ -20,8 +20,8 @@ package v2 import ( "fmt" - "github.com/elastic/beats/v7/libbeat/common" "github.com/elastic/beats/v7/libbeat/feature" + "github.com/elastic/beats/v7/libbeat/version" conf "github.com/elastic/elastic-agent-libs/config" "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/go-concert/unison" @@ -97,7 +97,7 @@ func (l *Loader) Configure(cfg *conf.C) (Input, error) { log.Warnf("DEPRECATED: The %v input is deprecated", name) } - if common.FIPSMode && p.ExcludeFromFIPS { + if version.FIPSDistribution && p.ExcludeFromFIPS { return nil, fmt.Errorf("running a FIPS-capable distribution but input [%s] is not FIPS capable", name) } diff --git a/filebeat/input/v2/loader_test.go b/filebeat/input/v2/loader_test.go index 72e60f27bbfe..3ca762c5c9fc 100644 --- a/filebeat/input/v2/loader_test.go +++ b/filebeat/input/v2/loader_test.go @@ -23,8 +23,8 @@ import ( "github.com/stretchr/testify/require" - "github.com/elastic/beats/v7/libbeat/common" "github.com/elastic/beats/v7/libbeat/feature" + "github.com/elastic/beats/v7/libbeat/version" conf "github.com/elastic/elastic-agent-libs/config" "github.com/elastic/elastic-agent-libs/logp" ) @@ -202,12 +202,12 @@ func TestLoader_ConfigureFIPS(t *testing.T) { input, err := loader.Configure(conf.MustNewConfigFrom(map[string]any{"type": "a"})) require.Nil(t, input) - if common.FIPSMode { + if version.FIPSDistribution { require.Error(t, err) } else { require.NoError(t, err) } - t.Logf("FIPS mode = %v; err = %v", common.FIPSMode, err) + t.Logf("FIPS distribution = %v; err = %v", version.FIPSDistribution, err) } func (b loaderConfig) MustNewLoader() *Loader { diff --git a/libbeat/common/mode_fips.go b/libbeat/common/mode_fips.go deleted file mode 100644 index 3823f04a5d41..000000000000 --- a/libbeat/common/mode_fips.go +++ /dev/null @@ -1,23 +0,0 @@ -// Licensed to Elasticsearch B.V. under one or more contributor -// license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright -// ownership. Elasticsearch B.V. licenses this file to you under -// the Apache License, Version 2.0 (the "License"); you may -// not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -//go:build requirefips - -package common - -// FIPSMode = true indicates that this is a FIPS-capable distribution. -const FIPSMode = true diff --git a/libbeat/common/mode_nofips.go b/libbeat/common/mode_nofips.go deleted file mode 100644 index 506bfd8721a7..000000000000 --- a/libbeat/common/mode_nofips.go +++ /dev/null @@ -1,23 +0,0 @@ -// Licensed to Elasticsearch B.V. under one or more contributor -// license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright -// ownership. Elasticsearch B.V. licenses this file to you under -// the Apache License, Version 2.0 (the "License"); you may -// not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -//go:build !requirefips - -package common - -// FIPSMode = false indicates that this is not a FIPS-capable distribution. -const FIPSMode = false From 32dbd1e74363e20d7dadaca712876471d8ae8d61 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 30 Jun 2025 15:33:04 +0000 Subject: [PATCH 08/45] Revert "[AutoOps] Serialize custom struct before sending as event (#45015)" (#45104) (#45120) This reverts commit 38f68429cbf4239b390b12ed8f6644b127299af0. (cherry picked from commit 84c0c70290ed965f42ecc1d755c3ade669686d94) Co-authored-by: Chris Earle --- .../module/autoops_es/cat_shards/data.go | 8 +- .../module/autoops_es/cat_shards/data_test.go | 45 +++++----- .../autoops_es/cat_shards/index_shards.go | 22 ----- .../cat_shards/index_shards_test.go | 80 ----------------- .../autoops_es/cat_shards/struct_to_map.go | 27 ------ .../cat_shards/struct_to_map_test.go | 87 ------------------- .../module/autoops_es/cat_shards/testing.go | 19 ---- 7 files changed, 27 insertions(+), 261 deletions(-) delete mode 100644 x-pack/metricbeat/module/autoops_es/cat_shards/struct_to_map.go delete mode 100644 x-pack/metricbeat/module/autoops_es/cat_shards/struct_to_map_test.go diff --git a/x-pack/metricbeat/module/autoops_es/cat_shards/data.go b/x-pack/metricbeat/module/autoops_es/cat_shards/data.go index e10f34809be6..d569c685cbb3 100644 --- a/x-pack/metricbeat/module/autoops_es/cat_shards/data.go +++ b/x-pack/metricbeat/module/autoops_es/cat_shards/data.go @@ -11,6 +11,8 @@ import ( "github.com/elastic/beats/v7/x-pack/metricbeat/module/autoops_es/events" + "golang.org/x/exp/maps" + "github.com/elastic/elastic-agent-libs/mapstr" "github.com/elastic/beats/v7/metricbeat/mb" @@ -80,7 +82,7 @@ func eventsMapping(m *elasticsearch.MetricSet, r mb.ReporterV2, info *utils.Clus transactionID := utils.NewUUIDV4() - sendNodeShardsEvent(r, info, nodeShardCountToMapArray(nodeShards), transactionID) + sendNodeShardsEvent(r, info, maps.Values(nodeShards), transactionID) indexMetadata, err := getResolvedIndices(m) @@ -95,7 +97,7 @@ func eventsMapping(m *elasticsearch.MetricSet, r mb.ReporterV2, info *utils.Clus return err } -func sendNodeShardsEvent(r mb.ReporterV2, info *utils.ClusterInfo, nodeToShards []map[string]any, transactionId string) { +func sendNodeShardsEvent(r mb.ReporterV2, info *utils.ClusterInfo, nodeToShards []NodeShardCount, transactionId string) { r.Event(events.CreateEvent(info, mapstr.M{"node_shards_count": nodeToShards}, transactionId)) } @@ -109,7 +111,7 @@ func sendNodeIndexShardsEvent(r mb.ReporterV2, info *utils.ClusterInfo, nodeInde for i := 0; i < size; i += nodeIndexShardsPerEvent { group := nodeIndexShards[i:min(i+nodeIndexShardsPerEvent, size)] - groups = append(groups, mapstr.M{"node_index_shards": convertObjectArrayToMapArray(group)}) + groups = append(groups, mapstr.M{"node_index_shards": group}) } events.CreateAndReportEvents(r, info, groups, transactionId) diff --git a/x-pack/metricbeat/module/autoops_es/cat_shards/data_test.go b/x-pack/metricbeat/module/autoops_es/cat_shards/data_test.go index 126da1c38586..f2eaaaa1d15d 100644 --- a/x-pack/metricbeat/module/autoops_es/cat_shards/data_test.go +++ b/x-pack/metricbeat/module/autoops_es/cat_shards/data_test.go @@ -29,8 +29,8 @@ var ( func TestSendNodeShardsEvent(t *testing.T) { reporter := &mbtest.CapturingReporterV2{} info := auto_ops_testing.CreateClusterInfo("8.15.3") - nodeToShards := map[string]NodeShardCount{ - "node1": { + nodeToShards := []NodeShardCount{ + { NodeId: "node1", NodeName: "name1", Shards: 100, @@ -43,7 +43,7 @@ func TestSendNodeShardsEvent(t *testing.T) { RelocatingPrimaryShards: 1, RelocatingReplicaShards: 2, }, - "node2": { + { NodeId: "node2", NodeName: "name2", Shards: 99, @@ -59,7 +59,7 @@ func TestSendNodeShardsEvent(t *testing.T) { } transactionId := "xyz" - sendNodeShardsEvent(reporter, &info, nodeShardCountToMapArray(nodeToShards), transactionId) + sendNodeShardsEvent(reporter, &info, nodeToShards, transactionId) require.Equal(t, 0, len(reporter.GetErrors())) require.Equal(t, 1, len(reporter.GetEvents())) @@ -68,7 +68,7 @@ func TestSendNodeShardsEvent(t *testing.T) { auto_ops_testing.CheckEventWithTransactionId(t, event, info, transactionId) - require.ElementsMatch(t, maps.Values(nodeToShards), mapArrayToType[NodeShardCount](auto_ops_testing.GetObjectValue(event.MetricSetFields, "node_shards_count").([]map[string]any))) + require.ElementsMatch(t, nodeToShards, auto_ops_testing.GetObjectValue(event.MetricSetFields, "node_shards_count")) } func TestSendNodeIndexShardsEventInBatch(t *testing.T) { @@ -86,7 +86,7 @@ func TestSendNodeIndexShardsEventInBatch(t *testing.T) { auto_ops_testing.CheckEventWithTransactionId(t, event, info, transactionId) - require.ElementsMatch(t, convertObjectArrayToMapArray(nodeIndexShards), auto_ops_testing.GetObjectValue(event.MetricSetFields, "node_index_shards")) + require.ElementsMatch(t, nodeIndexShards, auto_ops_testing.GetObjectValue(event.MetricSetFields, "node_index_shards")) } func TestSendNodeIndexShardsEvent(t *testing.T) { @@ -106,16 +106,16 @@ func TestSendNodeIndexShardsEvent(t *testing.T) { auto_ops_testing.CheckAllEventsUseSameTransactionId(t, events) - eventData := []map[string]any{} + eventData := []NodeIndexShards{} for _, event := range events { auto_ops_testing.CheckEventWithTransactionId(t, event, info, transactionId) array := auto_ops_testing.GetObjectValue(event.MetricSetFields, "node_index_shards") - eventData = append(eventData, array.([]map[string]any)...) + eventData = append(eventData, array.([]NodeIndexShards)...) } - require.ElementsMatch(t, convertObjectArrayToMapArray(nodeIndexShards), eventData) + require.ElementsMatch(t, nodeIndexShards, eventData) } func expectValidParsedData(t *testing.T, data metricset.FetcherData[[]JSONShard]) { @@ -131,12 +131,12 @@ func expectValidParsedData(t *testing.T, data metricset.FetcherData[[]JSONShard] nodeShardsCountEvents := auto_ops_testing.GetEventsWithField(t, events, "node_shards_count") require.Equal(t, 1, len(nodeShardsCountEvents)) - require.Equal(t, 2, len(auto_ops_testing.GetObjectValue(nodeShardsCountEvents[0].MetricSetFields, "node_shards_count").([]map[string]any))) + require.Equal(t, 2, len(auto_ops_testing.GetObjectValue(nodeShardsCountEvents[0].MetricSetFields, "node_shards_count").([]NodeShardCount))) nodeIndexShardsEvents := auto_ops_testing.GetEventsWithField(t, events, "node_index_shards") require.Equal(t, 1, len(nodeIndexShardsEvents)) - require.LessOrEqual(t, 2, len(auto_ops_testing.GetObjectValue(nodeIndexShardsEvents[0].MetricSetFields, "node_index_shards").([]map[string]any))) + require.LessOrEqual(t, 2, len(auto_ops_testing.GetObjectValue(nodeIndexShardsEvents[0].MetricSetFields, "node_index_shards").([]NodeIndexShards))) } func expectValidParsedDetailedShards(t *testing.T, data metricset.FetcherData[[]JSONShard]) { @@ -147,7 +147,7 @@ func expectValidParsedDetailedShards(t *testing.T, data metricset.FetcherData[[] require.Equal(t, 2, len(events)) nodeShardCountsEvents := auto_ops_testing.GetEventsWithField(t, events, "node_shards_count") - nodeShardCounts := mapArrayToType[NodeShardCount](auto_ops_testing.GetObjectValue(nodeShardCountsEvents[0].MetricSetFields, "node_shards_count").([]map[string]any)) + nodeShardCounts := auto_ops_testing.GetObjectValue(nodeShardCountsEvents[0].MetricSetFields, "node_shards_count").([]NodeShardCount) require.Equal(t, 1, len(nodeShardCountsEvents)) require.Equal(t, 2, len(nodeShardCounts)) @@ -167,18 +167,17 @@ func expectValidParsedDetailedShards(t *testing.T, data metricset.FetcherData[[] require.EqualValues(t, 0, node2.RelocatingReplicaShards) nodeIndexShardsEvents := auto_ops_testing.GetEventsWithField(t, events, "node_index_shards") - nodeIndexShards := mapArrayToType[NodeIndexShards](auto_ops_testing.GetObjectValue(nodeIndexShardsEvents[0].MetricSetFields, "node_index_shards").([]map[string]any)) + nodeIndexShards := auto_ops_testing.GetObjectValue(nodeIndexShardsEvents[0].MetricSetFields, "node_index_shards").([]NodeIndexShards) require.Equal(t, 1, len(nodeIndexShardsEvents)) require.LessOrEqual(t, 14, len(nodeIndexShards)) myIndexNode2 := nodeIndexShards[slices.IndexFunc(nodeIndexShards, func(node NodeIndexShards) bool { return node.IndexNode == "my-index-node_id-node2" })] - switch data.Version { - case "7.17.0": + if data.Version == "7.17.0" { require.Equal(t, 14, len(nodeIndexShards)) require.EqualValues(t, 14, myIndexNode2.TotalFractions) - case "8.15.3": + } else if data.Version == "8.15.3" { require.Equal(t, 35, len(nodeIndexShards)) require.EqualValues(t, 35, myIndexNode2.TotalFractions) } @@ -236,7 +235,7 @@ func expectValidParsedDetailedShardsWithCache(t *testing.T, data metricset.Fetch expectValidParsedDetailedShards(t, data) nodeIndexShardsEvents := auto_ops_testing.GetEventsWithField(t, data.Reporter.GetEvents(), "node_index_shards") - nodeIndexShards := mapArrayToType[NodeIndexShards](auto_ops_testing.GetObjectValue(nodeIndexShardsEvents[0].MetricSetFields, "node_index_shards").([]map[string]any)) + nodeIndexShards := auto_ops_testing.GetObjectValue(nodeIndexShardsEvents[0].MetricSetFields, "node_index_shards").([]NodeIndexShards) myIndexNode2 := nodeIndexShards[slices.IndexFunc(nodeIndexShards, func(node NodeIndexShards) bool { return node.IndexNode == "my-index-node_id-node2" })] require.NotNil(t, myIndexNode2.TimestampDiff) @@ -264,14 +263,14 @@ func expectValidParsedWithoutResolvedIndexDataWithoutElasticSearchError(t *testi nodeShardsCountEvents := auto_ops_testing.GetEventsWithField(t, events, "node_shards_count") require.Equal(t, 1, len(nodeShardsCountEvents)) - require.Equal(t, 2, len(auto_ops_testing.GetObjectValue(nodeShardsCountEvents[0].MetricSetFields, "node_shards_count").([]map[string]any))) + require.Equal(t, 2, len(auto_ops_testing.GetObjectValue(nodeShardsCountEvents[0].MetricSetFields, "node_shards_count").([]NodeShardCount))) nodeIndexShardsEvents := auto_ops_testing.GetEventsWithField(t, events, "node_index_shards") require.Equal(t, 1, len(nodeIndexShardsEvents)) - require.LessOrEqual(t, 2, len(auto_ops_testing.GetObjectValue(nodeIndexShardsEvents[0].MetricSetFields, "node_index_shards").([]map[string]any))) + require.LessOrEqual(t, 2, len(auto_ops_testing.GetObjectValue(nodeIndexShardsEvents[0].MetricSetFields, "node_index_shards").([]NodeIndexShards))) - nodeIndexShards := mapArrayToType[NodeIndexShards](auto_ops_testing.GetObjectValue(nodeIndexShardsEvents[0].MetricSetFields, "node_index_shards").([]map[string]any)) + nodeIndexShards := auto_ops_testing.GetObjectValue(nodeIndexShardsEvents[0].MetricSetFields, "node_index_shards").([]NodeIndexShards) myIndexNode2 := nodeIndexShards[slices.IndexFunc(nodeIndexShards, func(node NodeIndexShards) bool { return node.IndexNode == "my-index-node_id-node2" })] require.Nil(t, myIndexNode2.IndexType) @@ -294,14 +293,14 @@ func expectValidParsedWithoutResolvedIndexDataWithElasticSearchError(t *testing. nodeShardsCountEvents := auto_ops_testing.GetEventsWithField(t, events, "node_shards_count") require.Equal(t, 1, len(nodeShardsCountEvents)) - require.Equal(t, 2, len(auto_ops_testing.GetObjectValue(nodeShardsCountEvents[0].MetricSetFields, "node_shards_count").([]map[string]any))) + require.Equal(t, 2, len(auto_ops_testing.GetObjectValue(nodeShardsCountEvents[0].MetricSetFields, "node_shards_count").([]NodeShardCount))) nodeIndexShardsEvents := auto_ops_testing.GetEventsWithField(t, events, "node_index_shards") require.Equal(t, 1, len(nodeIndexShardsEvents)) - require.LessOrEqual(t, 2, len(auto_ops_testing.GetObjectValue(nodeIndexShardsEvents[0].MetricSetFields, "node_index_shards").([]map[string]any))) + require.LessOrEqual(t, 2, len(auto_ops_testing.GetObjectValue(nodeIndexShardsEvents[0].MetricSetFields, "node_index_shards").([]NodeIndexShards))) - nodeIndexShards := mapArrayToType[NodeIndexShards](auto_ops_testing.GetObjectValue(nodeIndexShardsEvents[0].MetricSetFields, "node_index_shards").([]map[string]any)) + nodeIndexShards := auto_ops_testing.GetObjectValue(nodeIndexShardsEvents[0].MetricSetFields, "node_index_shards").([]NodeIndexShards) myIndexNode2 := nodeIndexShards[slices.IndexFunc(nodeIndexShards, func(node NodeIndexShards) bool { return node.IndexNode == "my-index-node_id-node2" })] require.Nil(t, myIndexNode2.IndexType) diff --git a/x-pack/metricbeat/module/autoops_es/cat_shards/index_shards.go b/x-pack/metricbeat/module/autoops_es/cat_shards/index_shards.go index 258249e44b48..a32a14619e2f 100644 --- a/x-pack/metricbeat/module/autoops_es/cat_shards/index_shards.go +++ b/x-pack/metricbeat/module/autoops_es/cat_shards/index_shards.go @@ -210,28 +210,6 @@ func appendNodeShards(nodeShards map[string]NodeShardCount, shard *Shard) { nodeShards[shard.node_id] = node } -func nodeShardCountToMapArray(nodeShards map[string]NodeShardCount) []map[string]any { - mapArray := make([]map[string]any, 0, len(nodeShards)) - - for _, nodeShard := range nodeShards { - mapArray = append(mapArray, map[string]any{ - "node_id": nodeShard.NodeId, - "node_name": nodeShard.NodeName, - "shards_count": nodeShard.Shards, - "primary_shards": nodeShard.PrimaryShards, - "replica_shards": nodeShard.ReplicaShards, - "initializing_shards": nodeShard.InitializingShards, - "initializing_primary_shards": nodeShard.InitializingPrimaryShards, - "initializing_replica_shards": nodeShard.InitializingReplicaShards, - "relocating_shards": nodeShard.RelocatingShards, - "relocating_primary_shards": nodeShard.RelocatingPrimaryShards, - "relocating_replica_shards": nodeShard.RelocatingReplicaShards, - }) - } - - return mapArray -} - func indexShardsToNodeIndexShards(nodeIndexShardsMap map[string]NodeIndexShards, index string, shards []Shard) { status := GREEN indexStatus := &status diff --git a/x-pack/metricbeat/module/autoops_es/cat_shards/index_shards_test.go b/x-pack/metricbeat/module/autoops_es/cat_shards/index_shards_test.go index 4e0ea0f80cae..e8a43dcf78b3 100644 --- a/x-pack/metricbeat/module/autoops_es/cat_shards/index_shards_test.go +++ b/x-pack/metricbeat/module/autoops_es/cat_shards/index_shards_test.go @@ -615,86 +615,6 @@ func TestIndexShardsToNodeIndexShardsGreenIndex(t *testing.T) { require.Equal(t, STARTED, assignedShard4.State) } -func TestNodeShardCountToMapArray(t *testing.T) { - // Create a map with multiple node shard counts - nodeShards := map[string]NodeShardCount{ - "node1": { - NodeId: "node1", - NodeName: "node-1", - Shards: 10, - PrimaryShards: 5, - ReplicaShards: 5, - InitializingShards: 2, - InitializingPrimaryShards: 1, - InitializingReplicaShards: 1, - RelocatingShards: 3, - RelocatingPrimaryShards: 1, - RelocatingReplicaShards: 2, - }, - "node2": { - NodeId: "node2", - NodeName: "node-2", - Shards: 8, - PrimaryShards: 4, - ReplicaShards: 4, - InitializingShards: 1, - InitializingPrimaryShards: 1, - InitializingReplicaShards: 0, - RelocatingShards: 0, - RelocatingPrimaryShards: 0, - RelocatingReplicaShards: 0, - }, - } - - // Call the function - mapArray := nodeShardCountToMapArray(nodeShards) - - // Verify the results - require.Equal(t, 2, len(mapArray)) - - // Check that we have entries for both nodes - foundNode1 := false - foundNode2 := false - - for _, nodeMap := range mapArray { - if nodeId, ok := nodeMap["node_id"].(string); ok { - switch nodeId { - case "node1": - foundNode1 = true - require.Equal(t, "node-1", nodeMap["node_name"]) - require.EqualValues(t, 10, nodeMap["shards_count"]) - require.EqualValues(t, 5, nodeMap["primary_shards"]) - require.EqualValues(t, 5, nodeMap["replica_shards"]) - require.EqualValues(t, 2, nodeMap["initializing_shards"]) - require.EqualValues(t, 1, nodeMap["initializing_primary_shards"]) - require.EqualValues(t, 1, nodeMap["initializing_replica_shards"]) - require.EqualValues(t, 3, nodeMap["relocating_shards"]) - require.EqualValues(t, 1, nodeMap["relocating_primary_shards"]) - require.EqualValues(t, 2, nodeMap["relocating_replica_shards"]) - case "node2": - foundNode2 = true - require.Equal(t, "node-2", nodeMap["node_name"]) - require.EqualValues(t, 8, nodeMap["shards_count"]) - require.EqualValues(t, 4, nodeMap["primary_shards"]) - require.EqualValues(t, 4, nodeMap["replica_shards"]) - require.EqualValues(t, 1, nodeMap["initializing_shards"]) - require.EqualValues(t, 1, nodeMap["initializing_primary_shards"]) - require.EqualValues(t, 0, nodeMap["initializing_replica_shards"]) - require.EqualValues(t, 0, nodeMap["relocating_shards"]) - require.EqualValues(t, 0, nodeMap["relocating_primary_shards"]) - require.EqualValues(t, 0, nodeMap["relocating_replica_shards"]) - default: - require.Fail(t, "Unexpected node in map array", nodeId) - } - } else { - require.Fail(t, "Unexpected node in map array", nodeId) - } - } - - require.True(t, foundNode1, "Node1 should be in the map array") - require.True(t, foundNode2, "Node2 should be in the map array") -} - func TestIndexShardsToNodeIndexShardsRelocating(t *testing.T) { docs := int64(100001) segments := int64(10) diff --git a/x-pack/metricbeat/module/autoops_es/cat_shards/struct_to_map.go b/x-pack/metricbeat/module/autoops_es/cat_shards/struct_to_map.go deleted file mode 100644 index 0b88138deece..000000000000 --- a/x-pack/metricbeat/module/autoops_es/cat_shards/struct_to_map.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one -// or more contributor license agreements. Licensed under the Elastic License; -// you may not use this file except in compliance with the Elastic License. - -package cat_shards - -import ( - "encoding/json" -) - -// convertObjectArrayToMapArray converts an array of structs to an array of maps one by one. -func convertObjectArrayToMapArray[T any](objects []T) []map[string]any { - mapArray := make([]map[string]any, 0, len(objects)) - - for _, object := range objects { - if data, err := json.Marshal(object); err == nil { - // Unmarshal the JSON into a map - var result map[string]any - - if err := json.Unmarshal(data, &result); err == nil { - mapArray = append(mapArray, result) - } - } - } - - return mapArray -} diff --git a/x-pack/metricbeat/module/autoops_es/cat_shards/struct_to_map_test.go b/x-pack/metricbeat/module/autoops_es/cat_shards/struct_to_map_test.go deleted file mode 100644 index fea78bbc77bd..000000000000 --- a/x-pack/metricbeat/module/autoops_es/cat_shards/struct_to_map_test.go +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one -// or more contributor license agreements. Licensed under the Elastic License; -// you may not use this file except in compliance with the Elastic License. - -package cat_shards - -import ( - "reflect" - "testing" -) - -func TestConvertObjectArrayToMapArray(t *testing.T) { - type testStruct struct { - Name string `json:"name"` - Value int `json:"value"` - Active bool `json:"active"` - } - - tests := []struct { - name string - input []testStruct - want []map[string]any - }{ - { - name: "nil slice", - input: nil, - want: []map[string]any{}, - }, - { - name: "empty slice", - input: []testStruct{}, - want: []map[string]any{}, - }, - { - name: "single item", - input: []testStruct{ - {Name: "A", Value: 1, Active: true}, - }, - want: []map[string]any{ - {"name": "A", "value": float64(1), "active": true}, - }, - }, - { - name: "multiple items", - input: []testStruct{ - {Name: "A", Value: 1, Active: true}, - {Name: "B", Value: 2, Active: false}, - }, - want: []map[string]any{ - {"name": "A", "value": float64(1), "active": true}, - {"name": "B", "value": float64(2), "active": false}, - }, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - got := convertObjectArrayToMapArray(tt.input) - if len(got) == 0 && len(tt.want) == 0 { - return - } - if !reflect.DeepEqual(got, tt.want) { - t.Errorf("convertObjectArrayToMapArray() got = %#v, want %#v", got, tt.want) - } - }) - } -} - -func TestConvertObjectArrayToMapArray_MarshalError(t *testing.T) { - type errorStruct struct { - C chan int `json:"c,omitempty"` - } - - input := []any{ - errorStruct{C: make(chan int)}, // This will cause json.Marshal to fail - map[string]any{}, // This will be an empty object - } - - got := convertObjectArrayToMapArray(input) - want := []map[string]any{ - {}, - } - - if !reflect.DeepEqual(got, want) { - t.Errorf("convertObjectArrayToMapArray() with marshal error got = %#v, want %#v", got, want) - } -} diff --git a/x-pack/metricbeat/module/autoops_es/cat_shards/testing.go b/x-pack/metricbeat/module/autoops_es/cat_shards/testing.go index e61aa1b19c3a..a3a777c15f66 100644 --- a/x-pack/metricbeat/module/autoops_es/cat_shards/testing.go +++ b/x-pack/metricbeat/module/autoops_es/cat_shards/testing.go @@ -8,7 +8,6 @@ package cat_shards import ( - "encoding/json" "net/http" "net/http/httptest" "os" @@ -19,24 +18,6 @@ import ( "github.com/stretchr/testify/require" ) -func objectToType[T any](content any) T { - data, err := json.Marshal(content) - - if err == nil { - var result T - - if err = json.Unmarshal(data, &result); err == nil { - return result - } - } - - panic(err) -} - -func mapArrayToType[T any](content []map[string]any) []T { - return objectToType[[]T](content) -} - func SetupSuccessfulServerWithResolvedIndexes(resolvedIndexes []byte) auto_ops_testing.SetupServerCallback { return func(t *testing.T, clusterInfo []byte, data []byte, _ string) *httptest.Server { return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { From acb09747f318c4e097d794e16dd5f51b48fd673a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 30 Jun 2025 15:36:53 +0000 Subject: [PATCH 09/45] [Synthetics] Upgrade node to latest LTS 20 (#45087) (#45116) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Upgrade node to latest LTS 20 (cherry picked from commit 944ee11fa620425ff87e842c5ca65b20bef01d94) Co-authored-by: Emilio Alvarez Piñeiro <95703246+emilioalvap@users.noreply.github.com> --- CHANGELOG.next.asciidoc | 1 + dev-tools/packaging/templates/docker/Dockerfile.tmpl | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 39ef590b319d..8cdb130bd73b 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -483,6 +483,7 @@ otherwise no tag is added. {issue}42208[42208] {pull}42403[42403] - Upgrade node to latest LTS v18.20.3. {pull}40038[40038] - Add support for RFC7231 methods to http monitors. {pull}41975[41975] - Upgrade node to latest LTS v18.20.7. {pull}43511[43511] +- Upgrade node to latest LTS v20.19.3. {pull}45087[45087] *Metricbeat* diff --git a/dev-tools/packaging/templates/docker/Dockerfile.tmpl b/dev-tools/packaging/templates/docker/Dockerfile.tmpl index c211dafb979e..9480126141a3 100644 --- a/dev-tools/packaging/templates/docker/Dockerfile.tmpl +++ b/dev-tools/packaging/templates/docker/Dockerfile.tmpl @@ -133,7 +133,7 @@ USER root # Install required dependencies from wolfi repository RUN for iter in {1..10}; do \ apk update && \ - apk add --no-interactive --no-progress --no-cache nodejs-18=18.20.7-r0 npm=10.9.2-r0 glib dbus-glib libatk-1.0 \ + apk add --no-interactive --no-progress --no-cache nodejs-20=20.19.3-r0 npm=11.4.2-r0 glib dbus-glib libatk-1.0 \ libatk-bridge-2.0 cups-libs libxcomposite libxdamage libxrandr libxkbcommon pango alsa-lib \ font-opensans fontconfig gtk icu-data-full libnss mesa font-noto-cjk font-noto-emoji && \ exit_code=0 && break || exit_code=$? && echo "apk error: retry $iter in 10s" && sleep 10; \ @@ -198,7 +198,7 @@ RUN echo \ # Setup synthetics env vars ENV ELASTIC_SYNTHETICS_CAPABLE=true ENV TZ=UTC -ENV NODE_VERSION=18.20.7 +ENV NODE_VERSION=20.19.3 ENV PATH="$NODE_PATH/node/bin:$PATH" # Install the latest version of @elastic/synthetics forcefully ignoring the previously # cached node_modules, heartbeat then calls the global executable to run test suites From c5b69c74695e45198d077bcfea4875716b75e284 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 30 Jun 2025 15:43:48 +0000 Subject: [PATCH 10/45] [AutoOps] Reuse Common Fields and Drop non-standard ones (#45101) (#45119) This drops custom fields that duplicate fields coming from Metricbeat through OTel in ECS format. (cherry picked from commit 9866af4004b775e7d58d022b9d172db44c5808e5) Co-authored-by: Chris Earle --- .../module/autoops_es/auto_ops_testing/testing.go | 5 ----- .../module/autoops_es/cat_shards/cat_shards_test.go | 8 ++++---- x-pack/metricbeat/module/autoops_es/events/events.go | 10 +++++----- .../metricbeat/module/autoops_es/events/events_test.go | 8 ++++++++ .../module/autoops_es/metricset/cluster_info_test.go | 4 ++-- 5 files changed, 19 insertions(+), 16 deletions(-) diff --git a/x-pack/metricbeat/module/autoops_es/auto_ops_testing/testing.go b/x-pack/metricbeat/module/autoops_es/auto_ops_testing/testing.go index a763d29be40a..eb947c51f468 100644 --- a/x-pack/metricbeat/module/autoops_es/auto_ops_testing/testing.go +++ b/x-pack/metricbeat/module/autoops_es/auto_ops_testing/testing.go @@ -20,7 +20,6 @@ import ( "github.com/gofrs/uuid/v5" "github.com/stretchr/testify/require" - libbeatversion "github.com/elastic/beats/v7/libbeat/version" "github.com/elastic/beats/v7/metricbeat/mb" "github.com/elastic/beats/v7/x-pack/metricbeat/module/autoops_es/utils" "github.com/elastic/elastic-agent-libs/mapstr" @@ -346,10 +345,6 @@ func CheckEvent(t *testing.T, event mb.Event, info utils.ClusterInfo) { require.Equal(t, info.ClusterID, GetObjectValue(event.ModuleFields, "cluster.id")) require.Equal(t, info.ClusterName, GetObjectValue(event.ModuleFields, "cluster.name")) require.Equal(t, info.Version.Number.String(), GetObjectValue(event.ModuleFields, "cluster.version")) - - require.Equal(t, "autoops_es", GetObjectValue(event.RootFields, "service.name")) - require.Equal(t, libbeatversion.GetDefaultVersion(), GetObjectValue(event.RootFields, "metricbeatVersion")) - require.Equal(t, libbeatversion.Commit(), GetObjectValue(event.RootFields, "commit")) } func CheckEventWithTransactionId(t *testing.T, event mb.Event, info utils.ClusterInfo, transactionId string) { diff --git a/x-pack/metricbeat/module/autoops_es/cat_shards/cat_shards_test.go b/x-pack/metricbeat/module/autoops_es/cat_shards/cat_shards_test.go index b2bcdb8c8216..8e8a56fc69e0 100644 --- a/x-pack/metricbeat/module/autoops_es/cat_shards/cat_shards_test.go +++ b/x-pack/metricbeat/module/autoops_es/cat_shards/cat_shards_test.go @@ -191,7 +191,7 @@ func Test500FailedToResolveIndexesWhileFetching(t *testing.T) { require.Equal(t, "GET", errorField.HTTPMethod) require.Equal(t, 500, errorField.HTTPStatusCode) require.Equal(t, "Server Error", errorField.HTTPResponse) // checking the HTTP response body - require.Equal(t, "test-resource-id", event.RootFields["orchestrator.resource.id"]) + require.Equal(t, "test-resource-id", auto_ops_testing.GetObjectValue(event.RootFields, "orchestrator.resource.id")) }) } @@ -217,7 +217,7 @@ func Test404FailedToResolveIndexesWhileFetching(t *testing.T) { require.Equal(t, "cat_shards", errorField.MetricSet) require.Equal(t, "GET", errorField.HTTPMethod) require.Equal(t, 404, errorField.HTTPStatusCode) - require.Equal(t, "test-resource-id", event.RootFields["orchestrator.resource.id"]) + require.Equal(t, "test-resource-id", auto_ops_testing.GetObjectValue(event.RootFields, "orchestrator.resource.id")) // avoiding the HTTP response body check on purpose, as the error response is a JSON string, and it's already tested }) } @@ -244,7 +244,7 @@ func Test405FailedToResolveIndexesWhileFetching(t *testing.T) { require.Equal(t, "cat_shards", errorField.MetricSet) require.Equal(t, "GET", errorField.HTTPMethod) require.Equal(t, 405, errorField.HTTPStatusCode) - require.Equal(t, "test-resource-id", event.RootFields["orchestrator.resource.id"]) + require.Equal(t, "test-resource-id", auto_ops_testing.GetObjectValue(event.RootFields, "orchestrator.resource.id")) // avoiding the HTTP response body check on purpose, as the error response is a JSON string, and it's already tested }) } @@ -271,7 +271,7 @@ func Test500FailedToResolveIndexesWhileFetchingEmptyResponse(t *testing.T) { require.Equal(t, "cat_shards", errorField.MetricSet) require.Equal(t, "GET", errorField.HTTPMethod) require.Equal(t, 500, errorField.HTTPStatusCode) - require.Equal(t, "test-resource-id", event.RootFields["orchestrator.resource.id"]) + require.Equal(t, "test-resource-id", auto_ops_testing.GetObjectValue(event.RootFields, "orchestrator.resource.id")) // avoiding the HTTP response body check on purpose, as the error response is a JSON string, and it's already tested }) } diff --git a/x-pack/metricbeat/module/autoops_es/events/events.go b/x-pack/metricbeat/module/autoops_es/events/events.go index 012aa0474d55..ee93b0c96a8b 100644 --- a/x-pack/metricbeat/module/autoops_es/events/events.go +++ b/x-pack/metricbeat/module/autoops_es/events/events.go @@ -5,7 +5,6 @@ package events import ( - "github.com/elastic/beats/v7/libbeat/version" "github.com/elastic/beats/v7/metricbeat/mb" "github.com/elastic/beats/v7/x-pack/metricbeat/module/autoops_es/utils" "github.com/elastic/elastic-agent-libs/mapstr" @@ -29,10 +28,11 @@ func CreateEvent(info *utils.ClusterInfo, metricSetFields mapstr.M, transactionI "transactionId": transactionId, }, RootFields: mapstr.M{ - "service.name": "autoops_es", - "metricbeatVersion": version.GetDefaultVersion(), - "commit": version.Commit(), - "orchestrator.resource.id": utils.GetResourceID(), + "orchestrator": mapstr.M{ + "resource": mapstr.M{ + "id": utils.GetResourceID(), + }, + }, }, } } diff --git a/x-pack/metricbeat/module/autoops_es/events/events_test.go b/x-pack/metricbeat/module/autoops_es/events/events_test.go index 408276ce4c84..3b96cf5e7fff 100644 --- a/x-pack/metricbeat/module/autoops_es/events/events_test.go +++ b/x-pack/metricbeat/module/autoops_es/events/events_test.go @@ -11,6 +11,7 @@ import ( "testing" "github.com/elastic/beats/v7/x-pack/metricbeat/module/autoops_es/auto_ops_testing" + "github.com/elastic/beats/v7/x-pack/metricbeat/module/autoops_es/utils" "github.com/stretchr/testify/require" @@ -37,6 +38,10 @@ func TestCreateEventWithRandomTransactionId(t *testing.T) { } func TestCreateEvent(t *testing.T) { + t.Cleanup(utils.ClearResourceID) + + utils.SetResourceID("resource-id") + info := auto_ops_testing.CreateClusterInfo("8.15.3") metricSetFields := mapstr.M{ "field1": "value1", @@ -54,4 +59,7 @@ func TestCreateEvent(t *testing.T) { require.Equal(t, "value1", auto_ops_testing.GetObjectValue(event.MetricSetFields, "field1")) require.Equal(t, "value2", auto_ops_testing.GetObjectValue(event.MetricSetFields, "obj1.field1")) require.Equal(t, "value3", auto_ops_testing.GetObjectValue(event.MetricSetFields, "obj2.field1")) + + // orchestrator + require.Equal(t, "resource-id", auto_ops_testing.GetObjectValue(event.RootFields, "orchestrator.resource.id")) } diff --git a/x-pack/metricbeat/module/autoops_es/metricset/cluster_info_test.go b/x-pack/metricbeat/module/autoops_es/metricset/cluster_info_test.go index 2652734280ea..37f96451284a 100644 --- a/x-pack/metricbeat/module/autoops_es/metricset/cluster_info_test.go +++ b/x-pack/metricbeat/module/autoops_es/metricset/cluster_info_test.go @@ -59,7 +59,7 @@ func TestNestedFailedClusterInfoNoId(t *testing.T) { require.Equal(t, "test_nested_metricset", errorField.MetricSet) require.Equal(t, http.MethodGet, errorField.HTTPMethod) require.Equal(t, 0, errorField.HTTPStatusCode) // status code vary based on the server response for cluster not ready - require.Equal(t, "test-resource-id", event.RootFields["orchestrator.resource.id"]) + require.Equal(t, "test-resource-id", auto_ops_testing.GetObjectValue(event.RootFields, "orchestrator.resource.id")) }) } @@ -82,6 +82,6 @@ func TestNestedFailedClusterInfoNAId(t *testing.T) { require.Equal(t, "", errorField.ClusterID) require.Equal(t, "/", errorField.URLPath) require.Equal(t, "test_metricset", errorField.MetricSet) - require.Equal(t, "test-resource-id", event.RootFields["orchestrator.resource.id"]) + require.Equal(t, "test-resource-id", auto_ops_testing.GetObjectValue(event.RootFields, "orchestrator.resource.id")) }) } From 08abf753eac2a6e0d8fefabb28ec0dae4f29fdbe Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 30 Jun 2025 19:03:42 +0300 Subject: [PATCH 11/45] Fix rendering of code snippet annotation in Filebeat quick start (#45121) (#45123) (cherry picked from commit e478cf8907929b077029d25410287d300237a0d8) Co-authored-by: Visha Angelova <91186315+vishaangelova@users.noreply.github.com> --- .../filebeat/filebeat-installation-configuration.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/reference/filebeat/filebeat-installation-configuration.md b/docs/reference/filebeat/filebeat-installation-configuration.md index afb52c96a94b..621c2025b71b 100644 --- a/docs/reference/filebeat/filebeat-installation-configuration.md +++ b/docs/reference/filebeat/filebeat-installation-configuration.md @@ -154,13 +154,14 @@ cloud.auth: "filebeat_setup:YOUR_PASSWORD" <1> ```yaml setup.kibana: host: "mykibanahost:5601" <1> - username: "my_kibana_user" <2> <3> + username: "my_kibana_user" <2> password: "YOUR_PASSWORD" ``` 1. The hostname and port of the machine where {{kib}} is running, for example, `mykibanahost:5601`. If you specify a path after the port number, include the scheme and port: `http://mykibanahost:5601/path`. 2. The `username` and `password` settings for {{kib}} are optional. If you don’t specify credentials for {{kib}}, Filebeat uses the `username` and `password` specified for the {{es}} output. - 3. To use the pre-built {{kib}} dashboards, this user must be authorized to view dashboards or have the `kibana_admin` [built-in role](elasticsearch://reference/elasticsearch/roles.md). + + To use the pre-built {{kib}} dashboards, this user must be authorized to view dashboards or have the `kibana_admin` [built-in role](elasticsearch://reference/elasticsearch/roles.md). :::::: ::::::: From 5775927125dd50cc93456e80a5c437b6375d6d28 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 1 Jul 2025 09:55:09 +0200 Subject: [PATCH 12/45] Fix Elasticsearch output retry backoff when receiving 429s (#45073) (#45098) See https://github.com/elastic/beats/issues/36926. This fix has two components: - Return an error from `Publish` when the Elasticsearch output gets a 429 (too many requests) from Elasticsearch. This triggers a retry delay and reconnection attempt in the pipeline. - Break the backoff counters for `Publish` and `Connect` into separate values, so a successful `Connect` call (which for Elasticsearch just means that an empty http GET gave an ok response) doesn't reset the exponential backoff for bulk ingest requests when they are being throttled. (cherry picked from commit 8b25d5b14bb12c02bac944f44f15b35a151a71cf) Co-authored-by: Fae Charlton --- CHANGELOG.next.asciidoc | 1 + libbeat/outputs/backoff.go | 17 +++++++++-------- libbeat/outputs/elasticsearch/client.go | 13 ++++++++++++- libbeat/outputs/elasticsearch/client_test.go | 20 ++++++++++++++++++++ 4 files changed, 42 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 8cdb130bd73b..d8e7771008f2 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -141,6 +141,7 @@ otherwise no tag is added. {issue}42208[42208] {pull}42403[42403] - Fix `dns` processor to handle IPv6 server addresses properly. {pull}44526[44526] - Fix an issue where the Kafka output could get stuck if a proxied connection to the Kafka cluster was reset. {issue}44606[44606] - Use Debian 11 to build linux/arm to match linux/amd64. Upgrades linux/arm64's statically linked glibc from 2.28 to 2.31. {issue}44816[44816] +- The Elasticsearch output now correctly applies exponential backoff when being throttled by 429s ("too many requests") from Elasticsarch. {issue}36926[36926] {pull}45073[45073] *Auditbeat* diff --git a/libbeat/outputs/backoff.go b/libbeat/outputs/backoff.go index 87d94bb66d0d..502d3d67d1af 100644 --- a/libbeat/outputs/backoff.go +++ b/libbeat/outputs/backoff.go @@ -30,24 +30,25 @@ import ( type backoffClient struct { client NetworkClient - done chan struct{} - backoff backoff.Backoff + done chan struct{} + connectBackoff backoff.Backoff + publishBackoff backoff.Backoff } // WithBackoff wraps a NetworkClient, adding exponential backoff support to a network client if connection/publishing failed. func WithBackoff(client NetworkClient, init, max time.Duration) NetworkClient { done := make(chan struct{}) - backoff := backoff.NewEqualJitterBackoff(done, init, max) return &backoffClient{ - client: client, - done: done, - backoff: backoff, + client: client, + done: done, + connectBackoff: backoff.NewEqualJitterBackoff(done, init, max), + publishBackoff: backoff.NewEqualJitterBackoff(done, init, max), } } func (b *backoffClient) Connect(ctx context.Context) error { err := b.client.Connect(ctx) - backoff.WaitOnError(b.backoff, err) + backoff.WaitOnError(b.connectBackoff, err) return err } @@ -62,7 +63,7 @@ func (b *backoffClient) Publish(ctx context.Context, batch publisher.Batch) erro if err != nil { b.client.Close() } - backoff.WaitOnError(b.backoff, err) + backoff.WaitOnError(b.publishBackoff, err) return err } diff --git a/libbeat/outputs/elasticsearch/client.go b/libbeat/outputs/elasticsearch/client.go index b34218b5c87e..d22ca8eda631 100644 --- a/libbeat/outputs/elasticsearch/client.go +++ b/libbeat/outputs/elasticsearch/client.go @@ -43,7 +43,9 @@ import ( var ( errPayloadTooLarge = errors.New("the bulk payload is too large for the server. Consider to adjust `http.max_content_length` parameter in Elasticsearch or `bulk_max_size` in the beat. The batch has been dropped") - ErrTooOld = errors.New("Elasticsearch is too old. Please upgrade the instance. If you would like to connect to older instances set output.elasticsearch.allow_older_versions to true") //nolint:staticcheck //false positive + ErrTooOld = errors.New("Elasticsearch is too old. Please upgrade the instance. If you would like to connect to older instances set output.elasticsearch.allow_older_versions to true") //nolint:staticcheck //false positive (Elasticsearch should be capitalized) + + errTooMany = errors.New("Elasticsearch returned error 429 Too Many Requests, throttling connection") //nolint:staticcheck //false positive (Elasticsearch should be capitalized) ) // Client is an elasticsearch client. @@ -269,6 +271,15 @@ func (client *Client) Publish(ctx context.Context, batch publisher.Batch) error } else { batch.ACK() } + return publishResultForStats(stats) +} + +func publishResultForStats(stats bulkResultStats) error { + if stats.tooMany > 0 { + // We're being throttled by Elasticsearch, return an error so we + // retry the connection with exponential backoff + return errTooMany + } return nil } diff --git a/libbeat/outputs/elasticsearch/client_test.go b/libbeat/outputs/elasticsearch/client_test.go index 3c2f69f4a25b..2c4c598fdf68 100644 --- a/libbeat/outputs/elasticsearch/client_test.go +++ b/libbeat/outputs/elasticsearch/client_test.go @@ -636,6 +636,26 @@ func TestCollectPipelinePublishFail(t *testing.T) { assert.Equal(t, events, res) } +func TestPublishResultForStats(t *testing.T) { + // publishResultForStats should return errTooMany if it is given + // stats with tooMany > 0, and nil otherwise (all other errors are + // either caused by encoding or connection failures, or are + // immediately retryable). + stats := bulkResultStats{ + acked: 1, + duplicates: 2, + fails: 3, + nonIndexable: 4, + deadLetter: 5, + tooMany: 1, + } + + assert.Equal(t, errTooMany, publishResultForStats(stats), "publishResultForStats should return errTooMany if tooMany > 0") + + stats.tooMany = 0 + assert.Nil(t, publishResultForStats(stats), "publishResultForStats should return nil if tooMany == 0") +} + func BenchmarkCollectPublishFailsNone(b *testing.B) { logger, err := logp.NewDevelopmentLogger("") require.NoError(b, err) From 0eef3274715eb1c25d7853e9b129999d2cf349f0 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 2 Jul 2025 17:48:36 +0530 Subject: [PATCH 13/45] [oteltest][fbreceiver] Fix flaky test (#45127) (#45136) * skip TestReceiverDegraded * typo * commit * replace require.EventuallyWithT (cherry picked from commit dd5cbacf433338c65b96b78c89af1fca7cab1ace) Co-authored-by: Vihas Makwana <121151420+VihasMakwana@users.noreply.github.com> --- libbeat/otelbeat/oteltest/oteltest.go | 26 ++++++++++----------- x-pack/filebeat/fbreceiver/receiver_test.go | 1 - 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/libbeat/otelbeat/oteltest/oteltest.go b/libbeat/otelbeat/oteltest/oteltest.go index 7cd9589c5cb1..05b2bd0103a3 100644 --- a/libbeat/otelbeat/oteltest/oteltest.go +++ b/libbeat/otelbeat/oteltest/oteltest.go @@ -173,25 +173,25 @@ func CheckReceivers(params CheckReceiversParams) { // Ensure the logger fields from the otel collector are present for _, zl := range zapLogs.All() { - require.Contains(t, zl.ContextMap(), "otelcol.component.kind") - require.Equal(t, "receiver", zl.ContextMap()["otelcol.component.kind"]) - require.Contains(t, zl.ContextMap(), "otelcol.signal") - require.Equal(t, "logs", zl.ContextMap()["otelcol.signal"]) - require.Contains(t, zl.ContextMap(), "otelcol.component.id") + require.Contains(ct, zl.ContextMap(), "otelcol.component.kind") + require.Equal(ct, "receiver", zl.ContextMap()["otelcol.component.kind"]) + require.Contains(ct, zl.ContextMap(), "otelcol.signal") + require.Equal(ct, "logs", zl.ContextMap()["otelcol.signal"]) + require.Contains(ct, zl.ContextMap(), "otelcol.component.id") compID, ok := zl.ContextMap()["otelcol.component.id"].(string) - require.True(t, ok, "otelcol.component.id should be a string") - require.Contains(t, zl.ContextMap(), "service.name") - require.Equal(t, beatForCompID(compID), zl.ContextMap()["service.name"]) + require.True(ct, ok, "otelcol.component.id should be a string") + require.Contains(ct, zl.ContextMap(), "service.name") + require.Equal(ct, beatForCompID(compID), zl.ContextMap()["service.name"]) break } - require.NotNilf(t, host.Evt, "expected not nil nil, got %v", host.Evt) + require.NotNil(ct, host.Evt, "expected not nil, got nil") if params.Status.Error == "" { - require.Equalf(t, host.Evt.Status(), componentstatus.StatusOK, "expected %v, got %v", params.Status.Status, host.Evt.Status()) - require.Nilf(t, host.Evt.Err(), "expected nil, got %v", host.Evt.Err()) + require.Equalf(ct, host.Evt.Status(), componentstatus.StatusOK, "expected %v, got %v", params.Status.Status, host.Evt.Status()) + require.Nilf(ct, host.Evt.Err(), "expected nil, got %v", host.Evt.Err()) } else { - require.Equalf(t, host.Evt.Status(), params.Status.Status, "expected %v, got %v", params.Status.Status, host.Evt.Status()) - require.ErrorContainsf(t, host.Evt.Err(), params.Status.Error, "expected error to contain '%v': %v", params.Status.Error, host.Evt.Err()) + require.Equalf(ct, host.Evt.Status(), params.Status.Status, "expected %v, got %v", params.Status.Status, host.Evt.Status()) + require.ErrorContainsf(ct, host.Evt.Err(), params.Status.Error, "expected error to contain '%v': %v", params.Status.Error, host.Evt.Err()) } if params.AssertFunc != nil { diff --git a/x-pack/filebeat/fbreceiver/receiver_test.go b/x-pack/filebeat/fbreceiver/receiver_test.go index e6b13c7d79a9..09998dcad512 100644 --- a/x-pack/filebeat/fbreceiver/receiver_test.go +++ b/x-pack/filebeat/fbreceiver/receiver_test.go @@ -253,7 +253,6 @@ func TestMultipleReceivers(t *testing.T) { } func TestReceiverDegraded(t *testing.T) { - t.Skip("Flaky on CI but works locally: https://github.com/elastic/beats/issues/45057") testCases := []struct { name string status oteltest.ExpectedStatus From 073067c1ea2e13297821dbeaf6150c74e4648ac9 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 2 Jul 2025 12:56:43 +0000 Subject: [PATCH 14/45] Bump up github.com/go-viper/mapstructure/v2 dependency (#45129) (#45141) (cherry picked from commit 113b5a5722a55044ad2b482ba97402fab829e82a) Co-authored-by: Shaunak Kashyap --- NOTICE.txt | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/NOTICE.txt b/NOTICE.txt index df71ded3c9f3..238f85921ed6 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -46797,11 +46797,11 @@ THE SOFTWARE. -------------------------------------------------------------------------------- Dependency : github.com/go-viper/mapstructure/v2 -Version: v2.2.1 +Version: v2.3.0 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/go-viper/mapstructure/v2@v2.2.1/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/go-viper/mapstructure/v2@v2.3.0/LICENSE: The MIT License (MIT) diff --git a/go.mod b/go.mod index bb2a3ba8984d..71194ce5e0e9 100644 --- a/go.mod +++ b/go.mod @@ -318,7 +318,7 @@ require ( github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.20.4 // indirect github.com/go-openapi/swag v0.23.0 // indirect - github.com/go-viper/mapstructure/v2 v2.2.1 // indirect + github.com/go-viper/mapstructure/v2 v2.3.0 // indirect github.com/gobwas/glob v0.2.3 // indirect github.com/goccy/go-json v0.10.3 // indirect github.com/godror/knownpb v0.1.0 // indirect diff --git a/go.sum b/go.sum index 7755cb9898fa..7409ddf24bc7 100644 --- a/go.sum +++ b/go.sum @@ -504,8 +504,8 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= -github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= -github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/go-viper/mapstructure/v2 v2.3.0 h1:27XbWsHIqhbdR5TIC911OfYvgSaW93HM+dX7970Q7jk= +github.com/go-viper/mapstructure/v2 v2.3.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/gocarina/gocsv v0.0.0-20170324095351-ffef3ffc77be h1:zXHeEEJ231bTf/IXqvCfeaqjLpXsq42ybLoT4ROSR6Y= From 1fdd69b690f5a8ce0d207a8f7b1593739df4cae1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 2 Jul 2025 18:48:10 +0000 Subject: [PATCH 15/45] [updatecli] update elastic stack version for testing 9.1.0-4999b65e (#45069) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: Update snapshot.yml Made with ❤️️ by updatecli * chore: Update snapshot.yml Made with ❤️️ by updatecli --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Anderson Queiroz Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- testing/environments/snapshot.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/testing/environments/snapshot.yml b/testing/environments/snapshot.yml index 31714a23c4b3..d86c8729ea8e 100644 --- a/testing/environments/snapshot.yml +++ b/testing/environments/snapshot.yml @@ -2,7 +2,7 @@ services: elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:9.1.0-7fefcbbc-SNAPSHOT + image: docker.elastic.co/elasticsearch/elasticsearch:9.1.0-4999b65e-SNAPSHOT # When extend is used it merges healthcheck.tests, see: # https://github.com/docker/compose/issues/8962 # healthcheck: @@ -37,7 +37,7 @@ services: - "./docker/elasticsearch/users_roles:/usr/share/elasticsearch/config/users_roles" logstash: - image: docker.elastic.co/logstash/logstash:9.1.0-7fefcbbc-SNAPSHOT + image: docker.elastic.co/logstash/logstash:9.1.0-4999b65e-SNAPSHOT healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9600/_node/stats"] retries: 600 @@ -50,7 +50,7 @@ services: - 5055:5055 kibana: - image: docker.elastic.co/kibana/kibana:9.1.0-7fefcbbc-SNAPSHOT + image: docker.elastic.co/kibana/kibana:9.1.0-4999b65e-SNAPSHOT environment: - "ELASTICSEARCH_USERNAME=kibana_system_user" - "ELASTICSEARCH_PASSWORD=testing" From 243a52fe9b0419f5084a8f02250e6cc2d581cd85 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 09:21:38 +0000 Subject: [PATCH 16/45] [9.1](backport #45107) mod: update elastic/mito to version v1.21.0 (#45161) * mod: update elastic/mito to version v1.21.0 (#45107) This adds support for: * custom authentication headers * AWS v4 request signing helpers And upgrades the CEL runtime and compiler to v0.25.0. (cherry picked from commit c15a753f7aa34b49bfb1e7821622e326df5f10e0) * remove irrelevant changelog entry --------- Co-authored-by: Dan Kortschak --- CHANGELOG.next.asciidoc | 1 + NOTICE.txt | 64 +++---- docs/reference/filebeat/filebeat-input-cel.md | 162 +++++++++--------- go.mod | 31 ++-- go.sum | 64 +++---- x-pack/filebeat/input/cel/input.go | 6 +- x-pack/filebeat/input/cel/input_test.go | 39 ++++- 7 files changed, 204 insertions(+), 163 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index d8e7771008f2..6a1154e001b2 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -469,6 +469,7 @@ otherwise no tag is added. {issue}42208[42208] {pull}42403[42403] - Add Fleet status updating to HTTP JSON input. {issue}44282[44282] {pull}44365[44365] - Segregated `max_workers` from `batch_size` in the azure-blob-storage input. {issue}44491[44491] {pull}44992[44992] - Add support for relationship expansion to EntraID entity analytics provider. {issue}43324[43324] {pull}44761[44761] +- Update CEL mito extensions to v1.21.0. {issue}40762[40762] {pull}45107[45107] *Auditbeat* diff --git a/NOTICE.txt b/NOTICE.txt index 238f85921ed6..786cf5468dda 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -4649,11 +4649,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- Dependency : github.com/aws/aws-sdk-go-v2 -Version: v1.36.4 +Version: v1.36.5 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2@v1.36.4/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2@v1.36.5/LICENSE.txt: Apache License @@ -4861,11 +4861,11 @@ Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2@v1.36 -------------------------------------------------------------------------------- Dependency : github.com/aws/aws-sdk-go-v2/config -Version: v1.29.16 +Version: v1.29.17 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/config@v1.29.16/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/config@v1.29.17/LICENSE.txt: Apache License @@ -5073,11 +5073,11 @@ Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/confi -------------------------------------------------------------------------------- Dependency : github.com/aws/aws-sdk-go-v2/credentials -Version: v1.17.69 +Version: v1.17.70 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/credentials@v1.17.69/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/credentials@v1.17.70/LICENSE.txt: Apache License @@ -5285,11 +5285,11 @@ Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/crede -------------------------------------------------------------------------------- Dependency : github.com/aws/aws-sdk-go-v2/feature/ec2/imds -Version: v1.16.31 +Version: v1.16.32 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/feature/ec2/imds@v1.16.31/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/feature/ec2/imds@v1.16.32/LICENSE.txt: Apache License @@ -8677,11 +8677,11 @@ Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/servi -------------------------------------------------------------------------------- Dependency : github.com/aws/aws-sdk-go-v2/service/sts -Version: v1.33.21 +Version: v1.34.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/service/sts@v1.33.21/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/service/sts@v1.34.0/LICENSE.txt: Apache License @@ -8889,11 +8889,11 @@ Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/servi -------------------------------------------------------------------------------- Dependency : github.com/aws/smithy-go -Version: v1.22.2 +Version: v1.22.4 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/aws/smithy-go@v1.22.2/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/aws/smithy-go@v1.22.4/LICENSE: Apache License @@ -15556,11 +15556,11 @@ limitations under the License. -------------------------------------------------------------------------------- Dependency : github.com/elastic/mito -Version: v1.19.0 +Version: v1.21.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/mito@v1.19.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/elastic/mito@v1.21.0/LICENSE: Apache License @@ -17641,11 +17641,11 @@ Contents of probable licence file $GOMODCACHE/github.com/gomodule/redigo@v1.8.3/ -------------------------------------------------------------------------------- Dependency : github.com/google/cel-go -Version: v0.19.0 +Version: v0.25.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/google/cel-go@v0.19.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/google/cel-go@v0.25.0/LICENSE: Apache License @@ -29847,11 +29847,11 @@ THE SOFTWARE. -------------------------------------------------------------------------------- Dependency : cel.dev/expr -Version: v0.20.0 +Version: v0.23.1 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/cel.dev/expr@v0.20.0/LICENSE: +Contents of probable licence file $GOMODCACHE/cel.dev/expr@v0.23.1/LICENSE: Apache License @@ -38328,11 +38328,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- Dependency : github.com/aws/aws-sdk-go -Version: v1.55.5 +Version: v1.55.7 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go@v1.55.5/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go@v1.55.7/LICENSE.txt: Apache License @@ -38752,11 +38752,11 @@ Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/aws/p -------------------------------------------------------------------------------- Dependency : github.com/aws/aws-sdk-go-v2/internal/configsources -Version: v1.3.35 +Version: v1.3.36 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/internal/configsources@v1.3.35/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/internal/configsources@v1.3.36/LICENSE.txt: Apache License @@ -38964,11 +38964,11 @@ Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/inter -------------------------------------------------------------------------------- Dependency : github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 -Version: v2.6.35 +Version: v2.6.36 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2@v2.6.35/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2@v2.6.36/LICENSE.txt: Apache License @@ -39600,11 +39600,11 @@ Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/inter -------------------------------------------------------------------------------- Dependency : github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding -Version: v1.12.3 +Version: v1.12.4 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding@v1.12.3/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding@v1.12.4/LICENSE.txt: Apache License @@ -40024,11 +40024,11 @@ Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/servi -------------------------------------------------------------------------------- Dependency : github.com/aws/aws-sdk-go-v2/service/internal/presigned-url -Version: v1.12.16 +Version: v1.12.17 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url@v1.12.16/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url@v1.12.17/LICENSE.txt: Apache License @@ -40448,11 +40448,11 @@ Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/servi -------------------------------------------------------------------------------- Dependency : github.com/aws/aws-sdk-go-v2/service/sso -Version: v1.25.4 +Version: v1.25.5 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/service/sso@v1.25.4/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/service/sso@v1.25.5/LICENSE.txt: Apache License @@ -40660,11 +40660,11 @@ Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/servi -------------------------------------------------------------------------------- Dependency : github.com/aws/aws-sdk-go-v2/service/ssooidc -Version: v1.30.2 +Version: v1.30.3 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/service/ssooidc@v1.30.2/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/aws/aws-sdk-go-v2/service/ssooidc@v1.30.3/LICENSE.txt: Apache License diff --git a/docs/reference/filebeat/filebeat-input-cel.md b/docs/reference/filebeat/filebeat-input-cel.md index f24e40af3d49..a85ff352c02f 100644 --- a/docs/reference/filebeat/filebeat-input-cel.md +++ b/docs/reference/filebeat/filebeat-input-cel.md @@ -117,7 +117,7 @@ After completion of a program’s execution it should return a single object wit 1. The `events` field must be present, but may be empty or null. If it is not empty, it must only have objects as elements. The field should be an array, but in the case of an error condition in the CEL program it is acceptable to return a single object instead of an array; this will will be wrapped as an array for publication and an error will be logged. If the single object contains a key, "error", the error value will be used to update the status of the input to report to Elastic Agent. This can be used to more rapidly respond to API failures. 2. If `cursor` is present it must be either be a single object or an array with the same length as events; each element *i* of the `cursor` will be the details for obtaining the events at and beyond event *i* in the `events` array. If the `cursor` is a single object it is will be the details for obtaining events after the last event in the `events` array and will only be retained on successful publication of all the events in the `events` array. -3. If `rate_limit` is present it must be a map with numeric fields `rate` and `burst`. The `rate_limit` field may also have a string `error` field and other fields which will be logged. If it has an `error` field, the `rate` and `burst` will not be used to set rate limit behavior. The [Limit](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#Limit), and [Okta Rate Limit policy](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#OktaRateLimit) and [Draft Rate Limit policy](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#DraftRateLimit) documentation show how to construct this field. +3. If `rate_limit` is present it must be a map with numeric fields `rate` and `burst`. The `rate_limit` field may also have a string `error` field and other fields which will be logged. If it has an `error` field, the `rate` and `burst` will not be used to set rate limit behavior. The [Limit](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Limit), and [Okta Rate Limit policy](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#OktaRateLimit) and [Draft Rate Limit policy](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#DraftRateLimit) documentation show how to construct this field. 4. The evaluation is repeated with the new state, after removing the events field, if the "want_more" field is present and true, and a non-zero events array is returned. If the "want_more" field is present after a failed evaluation, it is set to false. @@ -133,116 +133,122 @@ The CEL input will log the complete state after evaluation when logging at the D As noted above the `cel` input provides functions, macros, and global variables to extend the language. -* [Collections](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#Collections) +* [AWS v4 request signing](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#AWS) - * [Collate](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Collate-Collections) - * [Drop](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Drop-Collections) - * [Drop Empty](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Drop_Empty-Collections) - * [Flatten](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Flatten-Collections) - * [Front](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Front-Collections) - * [Keys](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Keys-Collections) - * [Max](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Max-Collections) - * [Min](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Min-Collections) - * [Sum](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Sum-Collections) - * [Tail](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Tail-Collections) - * [Values](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Values-Collections) - * [With](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-With-Collections) - * [With Replace](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-With_Replace-Collections) - * [With Update](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-With_Update-Collections) - * [Zip](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Zip-Collections) + * [Sign AWS from env](https://pkg.go.dev/github.com/elastic/mito/lib#hdr-Sign_AWS_from_env-AWS) + * [Sign AWS from shared credentials](https://pkg.go.dev/github.com/elastic/mito/lib#hdr-Sign_AWS_from_shared_credentials-AWS) + * [Sign AWS from static credentials](https://pkg.go.dev/github.com/elastic/mito/lib#hdr-Sign_AWS_from_static_credentials-AWS) -* [Crypto](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#Crypto) +* [Collections](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Collections) - * [Base64](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Base64-Crypto) - * [Base64 Decode](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Base64_Decode-Crypto) - * [Base64 Raw](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Base64_Raw-Crypto) - * [Base64 Raw Decode](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Base64_Raw_Decode-Crypto) - * [Hex](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Hex-Crypto) - * [Hex Decode](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Hex_Decode-Crypto) - * [MD5](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-MD5-Crypto) - * [SHA-1](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-SHA_1-Crypto) - * [SHA-256](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-SHA_256-Crypto) - * [HMAC](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-HMAC-Crypto) - * [UUID](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-UUID-Crypto) + * [Collate](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Collate-Collections) + * [Drop](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Drop-Collections) + * [Drop Empty](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Drop_Empty-Collections) + * [Flatten](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Flatten-Collections) + * [Front](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Front-Collections) + * [Keys](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Keys-Collections) + * [Max](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Max-Collections) + * [Min](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Min-Collections) + * [Sum](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Sum-Collections) + * [Tail](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Tail-Collections) + * [Values](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Values-Collections) + * [With](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-With-Collections) + * [With Replace](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-With_Replace-Collections) + * [With Update](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-With_Update-Collections) + * [Zip](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Zip-Collections) -* [File](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#File) — the file extension is initialized with MIME handlers for "application/gzip", ["application/x-ndjson"](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#NDJSON), ["application/zip"](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#Zip), ["text/csv; header=absent"](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#CSVNoHeader), and ["text/csv; header=present"](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#CSVHeader). +* [Crypto](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Crypto) - * [Dir](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Dir-File) - * [File](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-File-File) + * [Base64](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Base64-Crypto) + * [Base64 Decode](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Base64_Decode-Crypto) + * [Base64 Raw](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Base64_Raw-Crypto) + * [Base64 Raw Decode](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Base64_Raw_Decode-Crypto) + * [Hex](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Hex-Crypto) + * [Hex Decode](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Hex_Decode-Crypto) + * [MD5](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-MD5-Crypto) + * [SHA-1](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-SHA_1-Crypto) + * [SHA-256](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-SHA_256-Crypto) + * [HMAC](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-HMAC-Crypto) + * [UUID](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-UUID-Crypto) -* [HTTP](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#HTTP) +* [File](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#File) — the file extension is initialized with MIME handlers for "application/gzip", ["application/x-ndjson"](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#NDJSON), ["application/zip"](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Zip), ["text/csv; header=absent"](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#CSVNoHeader), and ["text/csv; header=present"](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#CSVHeader). - * [HEAD](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-HEAD-HTTP) - * [GET](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-GET-HTTP) - * [GET Request](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-GET_Request-HTTP) - * [POST](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-POST-HTTP) - * [POST Request](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-POST_Request-HTTP) - * [Request](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Request-HTTP) - * [Basic Authentication](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Basic_Authentication-HTTP) - * [Do Request](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Do_Request-HTTP) - * [Parse URL](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Parse_URL-HTTP) - * [Format URL](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Format_URL-HTTP) - * [Parse Query](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Parse_Query-HTTP) - * [Format Query](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Format_Query-HTTP) + * [Dir](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Dir-File) + * [File](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-File-File) -* [JSON](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#JSON) +* [HTTP](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#HTTP) - * [Encode JSON](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Encode_JSON-JSON) - * [Decode JSON](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Decode_JSON-JSON) - * [Decode JSON Stream](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Decode_JSON_Stream-JSON) + * [HEAD](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-HEAD-HTTP) + * [GET](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-GET-HTTP) + * [GET Request](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-GET_Request-HTTP) + * [POST](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-POST-HTTP) + * [POST Request](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-POST_Request-HTTP) + * [Request](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Request-HTTP) + * [Basic Authentication](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Basic_Authentication-HTTP) + * [Do Request](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Do_Request-HTTP) + * [Parse URL](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Parse_URL-HTTP) + * [Format URL](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Format_URL-HTTP) + * [Parse Query](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Parse_Query-HTTP) + * [Format Query](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Format_Query-HTTP) -* [XML](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#XML) — the XML extension is initialized with XML schema definitions provided via the `xsd` configuration option. +* [JSON](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#JSON) - * [Decode XML](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Decode_XML-XML) + * [Encode JSON](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Encode_JSON-JSON) + * [Decode JSON](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Decode_JSON-JSON) + * [Decode JSON Stream](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Decode_JSON_Stream-JSON) -* [Limit](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#Limit) — the rate limit extension is initialized with [Okta (as "okta")](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#OktaRateLimit) and the [Draft Rate Limit (as "draft")](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#DraftRateLimit) policies. +* [XML](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#XML) — the XML extension is initialized with XML schema definitions provided via the `xsd` configuration option. - * [Rate Limit](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Rate_Limit-Limit) + * [Decode XML](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Decode_XML-XML) -* [MIME](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#MIME) — the MIME extension is initialized with MIME handlers for "application/gzip", ["application/x-ndjson"](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#NDJSON), ["application/zip"](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#Zip), ["text/csv; header=absent"](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#CSVNoHeader), and ["text/csv; header=present"](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#CSVHeader). +* [Limit](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Limit) — the rate limit extension is initialized with [Okta (as "okta")](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#OktaRateLimit) and the [Draft Rate Limit (as "draft")](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#DraftRateLimit) policies. - * [MIME](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-MIME-MIME) + * [Rate Limit](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Rate_Limit-Limit) -* [Regexp](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#Regexp) — the regular expression extension is initialized with the patterns specified in the user input configuration via the `regexp` field. +* [MIME](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#MIME) — the MIME extension is initialized with MIME handlers for "application/gzip", ["application/x-ndjson"](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#NDJSON), ["application/zip"](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Zip), ["text/csv; header=absent"](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#CSVNoHeader), and ["text/csv; header=present"](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#CSVHeader). - * [RE Match](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-RE_Match) - * [RE Find](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-RE_Find) - * [RE Find All](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-RE_Find_All) - * [RE Find Submatch](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-RE_Find_Submatch) - * [RE Find All Submatch](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-RE_Find_All_Submatch) - * [RE Replace All](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-RE_Replace_All) + * [MIME](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-MIME-MIME) -* [Printf](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#Printf) +* [Regexp](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Regexp) — the regular expression extension is initialized with the patterns specified in the user input configuration via the `regexp` field. - * [Sprintf](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Sprintf-Printf) + * [RE Match](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-RE_Match) + * [RE Find](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-RE_Find) + * [RE Find All](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-RE_Find_All) + * [RE Find Submatch](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-RE_Find_Submatch) + * [RE Find All Submatch](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-RE_Find_All_Submatch) + * [RE Replace All](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-RE_Replace_All) -* [Strings](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#Strings) +* [Printf](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Printf) - * [String Methods](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-String_Methods-Strings) - * [String List Methods](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-String_List_Methods-Strings) - * [Bytes Methods](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Bytes_Methods-Strings) + * [Sprintf](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Sprintf-Printf) -* [Time](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#Time) +* [Strings](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Strings) - * [Format](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Format-Time) - * [Parse Time](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Parse_Time-Time) - * [Global Variables](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Global_Variables-Time) + * [String Methods](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-String_Methods-Strings) + * [String List Methods](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-String_List_Methods-Strings) + * [Bytes Methods](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Bytes_Methods-Strings) -* [Try](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#Try) +* [Time](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Time) - * [Try](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Try-Try) - * [Is Error](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Is_Error-Try) + * [Format](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Format-Time) + * [Parse Time](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Parse_Time-Time) + * [Global Variables](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Global_Variables-Time) -* [Debug](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#Debug) — the debug handler registers a logger with the name extension `cel_debug` and calls to the CEL `debug` function are emitted to that logger. +* [Try](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Try) - * [Debug](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#hdr-Debug) + * [Try](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Try-Try) + * [Is Error](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Is_Error-Try) + +* [Debug](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Debug) — the debug handler registers a logger with the name extension `cel_debug` and calls to the CEL `debug` function are emitted to that logger. + + * [Debug](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Debug) In addition to the extensions provided in the packages listed above, a global variable `useragent` is also provided which gives the user CEL program access to the filebeat user-agent string. By default, this value is assigned to all requests' user-agent headers unless the CEL program has already set the user-agent header value. Programs wishing to not provide a user-agent, should set this header to the empty string, `""`. Host environment variables are made available via the global map `env`. Only environment variables that have been allow listed via the `allowed_environment` configuration list are visible to the CEL program. -The CEL environment enables the [optional types](https://pkg.go.dev/github.com/google/cel-go/cel#OptionalTypes) library using the version defined [here](https://pkg.go.dev/github.com/elastic/mito@v1.19.0/lib#OptionalTypesVersion). +The CEL environment enables the [optional types](https://pkg.go.dev/github.com/google/cel-go/cel#OptionalTypes) library using the version defined [here](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#OptionalTypesVersion). Additionally, it supports authentication via Basic Authentication, Digest Authentication or OAuth2. diff --git a/go.mod b/go.mod index 71194ce5e0e9..e685e3e249bc 100644 --- a/go.mod +++ b/go.mod @@ -22,9 +22,9 @@ require ( github.com/akavel/rsrc v0.8.0 // indirect github.com/apoydence/eachers v0.0.0-20181020210610-23942921fe77 // indirect github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 - github.com/aws/aws-sdk-go-v2 v1.36.4 - github.com/aws/aws-sdk-go-v2/config v1.29.16 - github.com/aws/aws-sdk-go-v2/credentials v1.17.69 + github.com/aws/aws-sdk-go-v2 v1.36.5 + github.com/aws/aws-sdk-go-v2/config v1.29.17 + github.com/aws/aws-sdk-go-v2/credentials v1.17.70 github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.45.2 github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.50.2 github.com/aws/aws-sdk-go-v2/service/costexplorer v1.51.1 @@ -36,7 +36,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.26.5 github.com/aws/aws-sdk-go-v2/service/s3 v1.80.2 github.com/aws/aws-sdk-go-v2/service/sqs v1.38.7 - github.com/aws/aws-sdk-go-v2/service/sts v1.33.21 + github.com/aws/aws-sdk-go-v2/service/sts v1.34.0 github.com/blakesmith/ar v0.0.0-20150311145944-8bd4349a67f2 github.com/cavaliergopher/rpm v1.2.0 github.com/cespare/xxhash/v2 v2.3.0 @@ -164,12 +164,12 @@ require ( github.com/Azure/azure-storage-blob-go v0.15.0 github.com/aerospike/aerospike-client-go/v7 v7.7.1 github.com/apache/arrow/go/v17 v17.0.0 - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.31 + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32 github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.79 github.com/aws/aws-sdk-go-v2/service/apigateway v1.31.3 github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.28.3 github.com/aws/aws-sdk-go-v2/service/health v1.30.3 - github.com/aws/smithy-go v1.22.2 + github.com/aws/smithy-go v1.22.4 github.com/dgraph-io/badger/v4 v4.6.0 github.com/elastic/bayeux v1.0.5 github.com/elastic/ebpfevents v0.7.0 @@ -180,7 +180,7 @@ require ( github.com/elastic/go-freelru v0.16.0 github.com/elastic/go-quark v0.3.0 github.com/elastic/go-sfdc v0.0.0-20241010131323-8e176480d727 - github.com/elastic/mito v1.19.0 + github.com/elastic/mito v1.21.0 github.com/elastic/mock-es v0.0.0-20240712014503-e5b47ece0015 github.com/elastic/sarama v1.19.1-0.20250603175145-7672917f26b6 github.com/elastic/tk-btf v0.1.0 @@ -191,7 +191,7 @@ require ( github.com/go-resty/resty/v2 v2.13.1 github.com/gofrs/uuid/v5 v5.2.0 github.com/golang-jwt/jwt/v5 v5.2.2 - github.com/google/cel-go v0.19.0 + github.com/google/cel-go v0.25.0 github.com/googleapis/gax-go/v2 v2.14.0 github.com/gorilla/handlers v1.5.1 github.com/gorilla/mux v1.8.0 @@ -238,7 +238,7 @@ require ( require ( aqwari.net/xml v0.0.0-20210331023308-d9421b293817 // indirect - cel.dev/expr v0.20.0 // indirect + cel.dev/expr v0.23.1 // indirect cloud.google.com/go/auth v0.13.0 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.6 // indirect cloud.google.com/go/compute/metadata v0.6.0 // indirect @@ -266,17 +266,18 @@ require ( github.com/apache/arrow/go/v15 v15.0.2 // indirect github.com/apache/thrift v0.20.0 // indirect github.com/armon/go-radix v1.0.0 // indirect + github.com/aws/aws-sdk-go v1.55.7 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.35 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.35 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.35 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.16 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.16 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.25.4 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.25.5 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.3 // indirect github.com/benbjohnson/clock v1.3.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bluekeyes/go-gitdiff v0.7.1 // indirect diff --git a/go.sum b/go.sum index 7409ddf24bc7..fa095579c32c 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ aqwari.net/xml v0.0.0-20210331023308-d9421b293817 h1:+3Rh5EaTzNLnzWx3/uy/mAaH/dGI7svJ6e0oOIDcPuE= aqwari.net/xml v0.0.0-20210331023308-d9421b293817/go.mod h1:c7kkWzc7HS/t8Q2DcVY8P2d1dyWNEhEVT5pL0ZHO11c= -cel.dev/expr v0.20.0 h1:OunBvVCfvpWlt4dN7zg3FM6TDkzOePe1+foGJ9AXeeI= -cel.dev/expr v0.20.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw= +cel.dev/expr v0.23.1 h1:K4KOtPCJQjVggkARsjG9RWXP6O4R73aHeJMa/dmCQQg= +cel.dev/expr v0.23.1/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= @@ -177,24 +177,24 @@ github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= -github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= -github.com/aws/aws-sdk-go-v2 v1.36.4 h1:GySzjhVvx0ERP6eyfAbAuAXLtAda5TEy19E5q5W8I9E= -github.com/aws/aws-sdk-go-v2 v1.36.4/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg= +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.36.5 h1:0OF9RiEMEdDdZEMqF9MRjevyxAQcf6gY+E7vwBILFj0= +github.com/aws/aws-sdk-go-v2 v1.36.5/go.mod h1:EYrzvCCN9CMUTa5+6lf6MM4tq3Zjp8UhSGR/cBsjai0= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 h1:zAybnyUQXIZ5mok5Jqwlf58/TFE7uvd3IAsa1aF9cXs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10/go.mod h1:qqvMj6gHLR/EXWZw4ZbqlPbQUyenf4h82UQUlKc+l14= -github.com/aws/aws-sdk-go-v2/config v1.29.16 h1:XkruGnXX1nEZ+Nyo9v84TzsX+nj86icbFAeust6uo8A= -github.com/aws/aws-sdk-go-v2/config v1.29.16/go.mod h1:uCW7PNjGwZ5cOGZ5jr8vCWrYkGIhPoTNV23Q/tpHKzg= -github.com/aws/aws-sdk-go-v2/credentials v1.17.69 h1:8B8ZQboRc3uaIKjshve/XlvJ570R7BKNy3gftSbS178= -github.com/aws/aws-sdk-go-v2/credentials v1.17.69/go.mod h1:gPME6I8grR1jCqBFEGthULiolzf/Sexq/Wy42ibKK9c= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.31 h1:oQWSGexYasNpYp4epLGZxxjsDo8BMBh6iNWkTXQvkwk= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.31/go.mod h1:nc332eGUU+djP3vrMI6blS0woaCfHTe3KiSQUVTMRq0= +github.com/aws/aws-sdk-go-v2/config v1.29.17 h1:jSuiQ5jEe4SAMH6lLRMY9OVC+TqJLP5655pBGjmnjr0= +github.com/aws/aws-sdk-go-v2/config v1.29.17/go.mod h1:9P4wwACpbeXs9Pm9w1QTh6BwWwJjwYvJ1iCt5QbCXh8= +github.com/aws/aws-sdk-go-v2/credentials v1.17.70 h1:ONnH5CM16RTXRkS8Z1qg7/s2eDOhHhaXVd72mmyv4/0= +github.com/aws/aws-sdk-go-v2/credentials v1.17.70/go.mod h1:M+lWhhmomVGgtuPOhO85u4pEa3SmssPTdcYpP/5J/xc= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32 h1:KAXP9JSHO1vKGCr5f4O6WmlVKLFFXgWYAGoJosorxzU= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32/go.mod h1:h4Sg6FQdexC1yYG9RDnOvLbW1a/P986++/Y/a+GyEM8= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.79 h1:mGo6WGWry+s5GEf2GLfw3zkHad109FQmtvBV3VYQ8mA= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.79/go.mod h1:siwnpWxHYFSSge7Euw9lGMgQBgvRyym352mCuGNHsMQ= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.35 h1:o1v1VFfPcDVlK3ll1L5xHsaQAFdNtZ5GXnNR7SwueC4= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.35/go.mod h1:rZUQNYMNG+8uZxz9FOerQJ+FceCiodXvixpeRtdESrU= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.35 h1:R5b82ubO2NntENm3SAm0ADME+H630HomNJdgv+yZ3xw= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.35/go.mod h1:FuA+nmgMRfkzVKYDNEqQadvEMxtxl9+RLT9ribCwEMs= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 h1:SsytQyTMHMDPspp+spo7XwXTP44aJZZAC7fBV2C5+5s= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36/go.mod h1:Q1lnJArKRXkenyog6+Y+zr7WDpk4e6XlR6gs20bbeNo= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 h1:i2vNHQiXUvKhs3quBR6aqlgJaiaexz/aNvdCktW/kAM= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36/go.mod h1:UdyGa7Q91id/sdyHPwth+043HhmP6yP9MBHgbZM0xo8= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.35 h1:th/m+Q18CkajTw1iqx2cKkLCij/uz8NMwJFPK91p2ug= @@ -217,12 +217,12 @@ github.com/aws/aws-sdk-go-v2/service/health v1.30.3 h1:calnqWx6QS7sSy50SkYxnvw5I github.com/aws/aws-sdk-go-v2/service/health v1.30.3/go.mod h1:EdJbR2a/rKOvTtMwmGuO1uvqDAw2xttLLbbyO+uaIP4= github.com/aws/aws-sdk-go-v2/service/iam v1.42.1 h1:w41T3NvOJdpMeuAd3sXKGDj9hC3Gl2l/Ijl6WRAtkWg= github.com/aws/aws-sdk-go-v2/service/iam v1.42.1/go.mod h1:JNyIvyaNq8HVkFePaU5lki3CTDa5YeGMZm+yeQBynko= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 h1:eAh2A4b5IzM/lum78bZ590jy36+d/aFLgKF/4Vd1xPE= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3/go.mod h1:0yKJC/kb8sAnmlYa6Zs3QVYqaC8ug2AbnNChv5Ox3uA= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 h1:CXV68E2dNqhuynZJPB80bhPQwAKqBWVer887figW6Jc= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4/go.mod h1:/xFi9KtvBXP97ppCz1TAEvU1Uf66qvid89rbem3wCzQ= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.3 h1:VHPZakq2L7w+RLzV54LmQavbvheFaR2u1NomJRSEfcU= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.3/go.mod h1:DX1e/lkbsAt0MkY3NgLYuH4jQvRfw8MYxTe9feR7aXM= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.16 h1:/ldKrPPXTC421bTNWrUIpq3CxwHwRI/kpc+jPUTJocM= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.16/go.mod h1:5vkf/Ws0/wgIMJDQbjI4p2op86hNW6Hie5QtebrDgT8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 h1:t0E6FzREdtCsiLIoLCWsYliNsRBgyGD/MCK571qk4MI= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17/go.mod h1:ygpklyoaypuyDvOM5ujWGrYWpAK3h7ugnmKCU/76Ys4= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.16 h1:2HuI7vWKhFWsBhIr2Zq8KfFZT6xqaId2XXnXZjkbEuc= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.16/go.mod h1:BrwWnsfbFtFeRjdx0iM1ymvlqDX1Oz68JsQaibX/wG8= github.com/aws/aws-sdk-go-v2/service/organizations v1.38.4 h1:c9K/EJ59uX93DPV1KAlNPDVBEi9HNEH8pnnauJrl1IA= @@ -235,14 +235,14 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.80.2 h1:T6Wu+8E2LeTUqzqQ/Bh1EoFNj1u4j github.com/aws/aws-sdk-go-v2/service/s3 v1.80.2/go.mod h1:chSY8zfqmS0OnhZoO/hpPx/BHfAIL80m77HwhRLYScY= github.com/aws/aws-sdk-go-v2/service/sqs v1.38.7 h1:hbOlzaZYwfKhLss4XhjtcEQkVCI6BnzzYF+Wrlhtv/w= github.com/aws/aws-sdk-go-v2/service/sqs v1.38.7/go.mod h1:cSnwA6RKvtcl0f7ORIrOdSVV6XQmdAHUDAxuQRGF/kw= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.4 h1:EU58LP8ozQDVroOEyAfcq0cGc5R/FTZjVoYJ6tvby3w= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.4/go.mod h1:CrtOgCcysxMvrCoHnvNAD7PHWclmoFG78Q2xLK0KKcs= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.2 h1:XB4z0hbQtpmBnb1FQYvKaCM7UsS6Y/u8jVBwIUGeCTk= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.2/go.mod h1:hwRpqkRxnQ58J9blRDrB4IanlXCpcKmsC83EhG77upg= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.21 h1:nyLjs8sYJShFYj6aiyjCBI3EcLn1udWrQTjEF+SOXB0= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.21/go.mod h1:EhdxtZ+g84MSGrSrHzZiUm9PYiZkrADNja15wtRJSJo= -github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= -github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/aws/aws-sdk-go-v2/service/sso v1.25.5 h1:AIRJ3lfb2w/1/8wOOSqYb9fUKGwQbtysJ2H1MofRUPg= +github.com/aws/aws-sdk-go-v2/service/sso v1.25.5/go.mod h1:b7SiVprpU+iGazDUqvRSLf5XmCdn+JtT1on7uNL6Ipc= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.3 h1:BpOxT3yhLwSJ77qIY3DoHAQjZsc4HEGfMCE4NGy3uFg= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.3/go.mod h1:vq/GQR1gOFLquZMSrxUK/cpvKCNVYibNyJ1m7JrU88E= +github.com/aws/aws-sdk-go-v2/service/sts v1.34.0 h1:NFOJ/NXEGV4Rq//71Hs1jC/NvPs1ezajK+yQmkwnPV0= +github.com/aws/aws-sdk-go-v2/service/sts v1.34.0/go.mod h1:7ph2tGpfQvwzgistp2+zga9f+bCjlQJPkPUmMgDSD7w= +github.com/aws/smithy-go v1.22.4 h1:uqXzVZNuNexwc/xrh6Tb56u89WDlJY6HS+KC0S4QSjw= +github.com/aws/smithy-go v1.22.4/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= @@ -408,8 +408,8 @@ github.com/elastic/gopacket v1.1.20-0.20241002174017-e8c5fda595e6 h1:VgOx6omXIMK github.com/elastic/gopacket v1.1.20-0.20241002174017-e8c5fda595e6/go.mod h1:riddUzxTSBpJXk3qBHtYr4qOhFhT6k/1c0E3qkQjQpA= github.com/elastic/gosigar v0.14.3 h1:xwkKwPia+hSfg9GqrCUKYdId102m9qTJIIr7egmK/uo= github.com/elastic/gosigar v0.14.3/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= -github.com/elastic/mito v1.19.0 h1:rrJ8GR6SniJ/KieB5j8kDTNf5vAIJOtKiAz4hcfP1LU= -github.com/elastic/mito v1.19.0/go.mod h1:f+W7LJ18FGwjVGmbXlOLVYsAbuVAtqqMkgdh0Sf00W0= +github.com/elastic/mito v1.21.0 h1:4Xr3D9pyjzxK/EnJooy9an/7jGXMhPCF2t+/O4GzDwQ= +github.com/elastic/mito v1.21.0/go.mod h1:h1V+8B62+DXsu0TstJkjsTh5ewJIDJlwzxPkP3HBM9s= github.com/elastic/mock-es v0.0.0-20240712014503-e5b47ece0015 h1:z8cC8GASpPo8yKlbnXI36HQ/BM9wYjhBPNbDjAWm0VU= github.com/elastic/mock-es v0.0.0-20240712014503-e5b47ece0015/go.mod h1:qH9DX/Dmflz6EAtaks/+2SsdQzecVAKE174Zl66hk7E= github.com/elastic/pkcs8 v1.0.0 h1:HhitlUKxhN288kcNcYkjW6/ouvuwJWd9ioxpjnD9jVA= @@ -560,8 +560,8 @@ github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs= github.com/golang/snappy v1.0.0/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomodule/redigo v1.8.3 h1:HR0kYDX2RJZvAup8CsiJwxB4dTCSC0AaUq6S4SiLwUc= github.com/gomodule/redigo v1.8.3/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0= -github.com/google/cel-go v0.19.0 h1:vVgaZoHPBDd1lXCYGQOh5A06L4EtuIfmqQ/qnSXSKiU= -github.com/google/cel-go v0.19.0/go.mod h1:kWcIzTsPX0zmQ+H3TirHstLLf9ep5QTsZBN9u4dOYLg= +github.com/google/cel-go v0.25.0 h1:jsFw9Fhn+3y2kBbltZR4VEz5xKkcIFRPDnuEzAGv5GY= +github.com/google/cel-go v0.25.0/go.mod h1:hjEb6r5SuOSlhCHmFoLzu8HGCERvIsDAbxDAyNU/MmI= github.com/google/flatbuffers v25.2.10+incompatible h1:F3vclr7C3HpB1k9mxCGRMXq6FdUalZ6H/pNX4FP1v0Q= github.com/google/flatbuffers v25.2.10+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= diff --git a/x-pack/filebeat/input/cel/input.go b/x-pack/filebeat/input/cel/input.go index 7fed7e228d2f..6321e2ac7215 100644 --- a/x-pack/filebeat/input/cel/input.go +++ b/x-pack/filebeat/input/cel/input.go @@ -36,7 +36,8 @@ import ( "golang.org/x/time/rate" "github.com/google/cel-go/cel" - "github.com/google/cel-go/checker/decls" + "github.com/google/cel-go/common/decls" + "github.com/google/cel-go/common/types" "google.golang.org/protobuf/types/known/structpb" v2 "github.com/elastic/beats/v7/filebeat/input/v2" @@ -1060,8 +1061,9 @@ func newProgram(ctx context.Context, src, root string, vars map[string]string, c return nil, nil, nil, fmt.Errorf("failed to build xml type hints: %w", err) } opts := []cel.EnvOption{ - cel.Declarations(decls.NewVar(root, decls.Dyn)), + cel.VariableDecls(decls.NewVariable(root, types.DynType)), cel.OptionalTypes(cel.OptionalTypesVersion(lib.OptionalTypesVersion)), + lib.AWS(), lib.Collections(), lib.Crypto(), lib.JSON(nil), diff --git a/x-pack/filebeat/input/cel/input_test.go b/x-pack/filebeat/input/cel/input_test.go index 73f30e83b06c..fd398380694b 100644 --- a/x-pack/filebeat/input/cel/input_test.go +++ b/x-pack/filebeat/input/cel/input_test.go @@ -469,6 +469,33 @@ var inputTests = []struct { {"message": "not present"}, }, }, + { + // This test exists purely to demonstrate that the lib is available. + name: "aws_signing_static", + config: map[string]interface{}{ + "interval": 1, + "program": `{"events": [{ + "message": post_request("http://www.example.com/", "text/plain", "request data").sign_aws_from_static( + "id", "long_enough_secret", "token", // secret must be longer than 112 bits for FIPS140 tests to pass. + { + "service": "service", + "region": "region", + "sign_time": timestamp("2009-11-10T23:00:00Z"), + "no_hoist": false, + "no_escape": false, + "disable_session_token": false, + } + ).Header.Authorization[?0].orValue("nope") + }]}`, + "state": nil, + "resource": map[string]interface{}{ + "url": "", + }, + }, + want: []map[string]interface{}{ + {"message": "AWS4-HMAC-SHA256 Credential=id/20091110/region/service/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date;x-amz-security-token, Signature=ad27046c0009e06c6626e6009ba2af96027f4893b7a190ab67aaec85becb25cd"}, + }, + }, // FS-based tests. { @@ -814,7 +841,9 @@ var inputTests = []struct { want: []map[string]interface{}{ { "error": map[string]any{ - "message": string("failed eval: ERROR: :2:16: response body too big\n | get(state.url).Body.as(body, {\n | ...............^"), + "message": `failed eval: ERROR: :3:21: response body too big + | "events": [string(body)] + | ....................^`, }, }, }, @@ -1752,11 +1781,13 @@ var inputTests = []struct { }, handler: defaultHandler(http.MethodGet, ""), want: []map[string]interface{}{ + // Loss of location information here is a result of changes in the runtime. + // We no longer look into macros at all. This is a huge loss for debugging. { "error": map[string]interface{}{ - "message": `failed eval: ERROR: :3:26: no such overload - | get(state.url+'/'+r.id).Body.decode_json()).as(events, { - | .........................^`, + "message": `failed eval: ERROR: :5:14: no such overload + | "events": events, + | .............^`, }, }, }, From 898f45815cab3a423b742027d37a36be868311e7 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 12:41:29 +0300 Subject: [PATCH 17/45] removed reviewers from dependabot.yml (#45085) (#45162) (cherry picked from commit 6708dc845677d1257086f7ca86ae4a1dc2fd7910) Co-authored-by: Olga Naydyonock --- .github/dependabot.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 644c119a830b..38dba63114fc 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -73,9 +73,6 @@ updates: interval: "weekly" day: "sunday" time: "22:00" - reviewers: - - "elastic/observablt-ci" - - "elastic/observablt-ci-contractors" labels: - automation - dependabot From 31884286e084813598db5e674f2f402bf156ab64 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 15:12:11 +0000 Subject: [PATCH 18/45] [oteltest][fbreceiver]: skip TestMultipleReceivers (#45147) (#45167) This test is flaking for a while with a high failure rate. We have an integration test that covers the same scenario added by https://github.com/elastic/beats/pull/45093. Skip this test for now. (cherry picked from commit 5069a00b5098fce7137ae0ada60ed77f1f60eaaf) Co-authored-by: Mauri de Souza Meneguzzo --- x-pack/filebeat/fbreceiver/receiver_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/filebeat/fbreceiver/receiver_test.go b/x-pack/filebeat/fbreceiver/receiver_test.go index 09998dcad512..717d17bc28cb 100644 --- a/x-pack/filebeat/fbreceiver/receiver_test.go +++ b/x-pack/filebeat/fbreceiver/receiver_test.go @@ -158,6 +158,7 @@ func BenchmarkFactory(b *testing.B) { } func TestMultipleReceivers(t *testing.T) { + t.Skip("flaky test, see https://github.com/elastic/beats/issues/43832") // This test verifies that multiple receivers can be instantiated // in isolation, started, and can ingest logs without interfering // with each other. From 4d095bf336a7aba3e1d611e1dc576611a5cd7415 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 17:40:04 +0000 Subject: [PATCH 19/45] chore: Update snapshot.yml (#45172) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made with ❤️️ by updatecli Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- testing/environments/snapshot.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/testing/environments/snapshot.yml b/testing/environments/snapshot.yml index d86c8729ea8e..0b4646138072 100644 --- a/testing/environments/snapshot.yml +++ b/testing/environments/snapshot.yml @@ -2,7 +2,7 @@ services: elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:9.1.0-4999b65e-SNAPSHOT + image: docker.elastic.co/elasticsearch/elasticsearch:9.1.0-2ea4374b-SNAPSHOT # When extend is used it merges healthcheck.tests, see: # https://github.com/docker/compose/issues/8962 # healthcheck: @@ -37,7 +37,7 @@ services: - "./docker/elasticsearch/users_roles:/usr/share/elasticsearch/config/users_roles" logstash: - image: docker.elastic.co/logstash/logstash:9.1.0-4999b65e-SNAPSHOT + image: docker.elastic.co/logstash/logstash:9.1.0-2ea4374b-SNAPSHOT healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9600/_node/stats"] retries: 600 @@ -50,7 +50,7 @@ services: - 5055:5055 kibana: - image: docker.elastic.co/kibana/kibana:9.1.0-4999b65e-SNAPSHOT + image: docker.elastic.co/kibana/kibana:9.1.0-2ea4374b-SNAPSHOT environment: - "ELASTICSEARCH_USERNAME=kibana_system_user" - "ELASTICSEARCH_PASSWORD=testing" From 311e321cff0db8fb91fafec521c1bea18e644992 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 4 Jul 2025 09:53:05 +0200 Subject: [PATCH 20/45] [9.1](backport #45149) [chore] update OTel Collector libraries to v1.35.0/v0.129.0 (#45170) * [chore] update OTel Collector libraries to v1.35.0/v0.129.0 (#45149) (cherry picked from commit 0b1170f2f0af8a864208df1f01ee815d6379631b) # Conflicts: # NOTICE.txt # go.mod * fix conflicts --------- Co-authored-by: Andrzej Stencel --- NOTICE.txt | 1725 ++++++++++++++++++++++++++++++++-------------------- go.mod | 184 +++--- go.sum | 408 +++++++------ 3 files changed, 1372 insertions(+), 945 deletions(-) diff --git a/NOTICE.txt b/NOTICE.txt index 786cf5468dda..bcc94eafa022 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -12950,11 +12950,11 @@ Contents of probable licence file $GOMODCACHE/github.com/elastic/go-concert@v0.3 -------------------------------------------------------------------------------- Dependency : github.com/elastic/go-elasticsearch/v8 -Version: v8.18.0 +Version: v8.18.1 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/go-elasticsearch/v8@v8.18.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/elastic/go-elasticsearch/v8@v8.18.1/LICENSE: Apache License Version 2.0, January 2004 @@ -21388,11 +21388,11 @@ THE SOFTWARE. -------------------------------------------------------------------------------- Dependency : github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter@v0.129.0/LICENSE: Apache License Version 2.0, January 2004 @@ -21965,11 +21965,11 @@ Contents of probable licence file $GOMODCACHE/github.com/prometheus/client_model -------------------------------------------------------------------------------- Dependency : github.com/prometheus/common -Version: v0.62.0 +Version: v0.65.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/prometheus/common@v0.62.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/prometheus/common@v0.65.0/LICENSE: Apache License Version 2.0, January 2004 @@ -22176,11 +22176,11 @@ Contents of probable licence file $GOMODCACHE/github.com/prometheus/common@v0.62 -------------------------------------------------------------------------------- Dependency : github.com/prometheus/procfs -Version: v0.16.0 +Version: v0.16.1 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/prometheus/procfs@v0.16.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/prometheus/procfs@v0.16.1/LICENSE: Apache License Version 2.0, January 2004 @@ -22672,11 +22672,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : github.com/shirou/gopsutil/v4 -Version: v4.25.4 +Version: v4.25.5 Licence type (autodetected): BSD-3-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/shirou/gopsutil/v4@v4.25.4/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/shirou/gopsutil/v4@v4.25.5/LICENSE: gopsutil is distributed under BSD license reproduced below. @@ -24854,11 +24854,11 @@ Contents of probable licence file $GOMODCACHE/go.mongodb.org/mongo-driver@v1.17. -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/component -Version: v1.33.0 +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/component@v1.33.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/component@v1.35.0/LICENSE: Apache License @@ -25066,11 +25066,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/comp -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/component/componentstatus -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/component/componentstatus@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/component/componentstatus@v0.129.0/LICENSE: Apache License @@ -25278,11 +25278,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/comp -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/config/configtls -Version: v1.33.0 +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/config/configtls@v1.33.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/config/configtls@v1.35.0/LICENSE: Apache License @@ -25490,11 +25490,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/conf -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/confmap -Version: v1.33.0 +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/confmap@v1.33.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/confmap@v1.35.0/LICENSE: Apache License @@ -25702,11 +25702,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/conf -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/consumer -Version: v1.33.0 +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/consumer@v1.33.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/consumer@v1.35.0/LICENSE: Apache License @@ -25914,11 +25914,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/cons -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/consumer/consumererror -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/consumer/consumererror@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/consumer/consumererror@v0.129.0/LICENSE: Apache License @@ -26126,11 +26126,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/cons -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/exporter/debugexporter -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exporter/debugexporter@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exporter/debugexporter@v0.129.0/LICENSE: Apache License @@ -26338,11 +26338,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/expo -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/otelcol -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/otelcol@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/otelcol@v0.129.0/LICENSE: Apache License @@ -26550,11 +26550,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/otel -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/pdata -Version: v1.33.0 +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pdata@v1.33.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pdata@v1.35.0/LICENSE: Apache License @@ -26762,11 +26762,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pdat -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/receiver -Version: v1.33.0 +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/receiver@v1.33.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/receiver@v1.35.0/LICENSE: Apache License @@ -27355,11 +27355,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : golang.org/x/net -Version: v0.40.0 +Version: v0.41.0 Licence type (autodetected): BSD-3-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/golang.org/x/net@v0.40.0/LICENSE: +Contents of probable licence file $GOMODCACHE/golang.org/x/net@v0.41.0/LICENSE: Copyright 2009 The Go Authors. @@ -27392,11 +27392,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : golang.org/x/oauth2 -Version: v0.27.0 +Version: v0.30.0 Licence type (autodetected): BSD-3-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/golang.org/x/oauth2@v0.27.0/LICENSE: +Contents of probable licence file $GOMODCACHE/golang.org/x/oauth2@v0.30.0/LICENSE: Copyright 2009 The Go Authors. @@ -27688,11 +27688,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : google.golang.org/genproto/googleapis/api -Version: v0.0.0-20250218202821-56aae31c358a +Version: v0.0.0-20250519155744-55703ea1f237 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/google.golang.org/genproto/googleapis/api@v0.0.0-20250218202821-56aae31c358a/LICENSE: +Contents of probable licence file $GOMODCACHE/google.golang.org/genproto/googleapis/api@v0.0.0-20250519155744-55703ea1f237/LICENSE: Apache License @@ -27900,11 +27900,11 @@ Contents of probable licence file $GOMODCACHE/google.golang.org/genproto/googlea -------------------------------------------------------------------------------- Dependency : google.golang.org/grpc -Version: v1.72.1 +Version: v1.73.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/google.golang.org/grpc@v1.72.1/LICENSE: +Contents of probable licence file $GOMODCACHE/google.golang.org/grpc@v1.73.0/LICENSE: Apache License @@ -34904,11 +34904,11 @@ Contents of probable licence file $GOMODCACHE/github.com/!azure!a!d/microsoft-au -------------------------------------------------------------------------------- Dependency : github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp -Version: v1.26.0 +Version: v1.27.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/!google!cloud!platform/opentelemetry-operations-go/detectors/gcp@v1.26.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/!google!cloud!platform/opentelemetry-operations-go/detectors/gcp@v1.27.0/LICENSE: Apache License @@ -41089,11 +41089,11 @@ SOFTWARE. -------------------------------------------------------------------------------- Dependency : github.com/cncf/xds/go -Version: v0.0.0-20250121191232-2f005788dc42 +Version: v0.0.0-20250326154945-ae57f3c0d45f Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/cncf/xds/go@v0.0.0-20250121191232-2f005788dc42/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/cncf/xds/go@v0.0.0-20250326154945-ae57f3c0d45f/LICENSE: Apache License Version 2.0, January 2004 @@ -43476,11 +43476,11 @@ Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-transpo -------------------------------------------------------------------------------- Dependency : github.com/elastic/go-docappender/v2 -Version: v2.9.0 +Version: v2.10.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/go-docappender/v2@v2.9.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/elastic/go-docappender/v2@v2.10.0/LICENSE: Apache License Version 2.0, January 2004 @@ -50253,11 +50253,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : github.com/grpc-ecosystem/grpc-gateway/v2 -Version: v2.26.1 +Version: v2.26.3 Licence type (autodetected): BSD-3-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/grpc-ecosystem/grpc-gateway/v2@v2.26.1/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/grpc-ecosystem/grpc-gateway/v2@v2.26.3/LICENSE: Copyright (c) 2015, Gengo, Inc. All rights reserved. @@ -54321,11 +54321,11 @@ THE SOFTWARE. -------------------------------------------------------------------------------- Dependency : github.com/knadh/koanf/v2 -Version: v2.2.0 +Version: v2.2.1 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/knadh/koanf/v2@v2.2.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/knadh/koanf/v2@v2.2.1/LICENSE: The MIT License @@ -58283,11 +58283,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- Dependency : github.com/open-telemetry/opentelemetry-collector-contrib/internal/common -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/open-telemetry/opentelemetry-collector-contrib/internal/common@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/open-telemetry/opentelemetry-collector-contrib/internal/common@v0.129.0/LICENSE: Apache License Version 2.0, January 2004 @@ -58494,11 +58494,11 @@ Contents of probable licence file $GOMODCACHE/github.com/open-telemetry/opentele -------------------------------------------------------------------------------- Dependency : github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal@v0.129.0/LICENSE: Apache License Version 2.0, January 2004 @@ -58705,11 +58705,11 @@ Contents of probable licence file $GOMODCACHE/github.com/open-telemetry/opentele -------------------------------------------------------------------------------- Dependency : github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest@v0.129.0/LICENSE: Apache License Version 2.0, January 2004 @@ -58916,11 +58916,11 @@ Contents of probable licence file $GOMODCACHE/github.com/open-telemetry/opentele -------------------------------------------------------------------------------- Dependency : github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil@v0.129.0/LICENSE: Apache License Version 2.0, January 2004 @@ -62749,217 +62749,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -Dependency : go.elastic.co/apm/module/apmzap/v2 -Version: v2.7.0 -Licence type (autodetected): Apache-2.0 --------------------------------------------------------------------------------- - -Contents of probable licence file $GOMODCACHE/go.elastic.co/apm/module/apmzap/v2@v2.7.0/LICENSE: - - 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 2018 Elasticsearch BV - - 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. - - -------------------------------------------------------------------------------- Dependency : go.elastic.co/fastjson Version: v1.5.0 @@ -63417,11 +63206,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/auto/sdk@v1.1. -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector@v0.129.0/LICENSE: Apache License @@ -63629,11 +63418,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector@v0.1 -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/client -Version: v1.33.0 +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/client@v1.33.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/client@v1.35.0/LICENSE: Apache License @@ -63841,11 +63630,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/clie -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/component/componenttest -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/component/componenttest@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/component/componenttest@v0.129.0/LICENSE: Apache License @@ -64053,11 +63842,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/comp -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/config/configauth -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/config/configauth@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/config/configauth@v0.129.0/LICENSE: Apache License @@ -64265,11 +64054,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/conf -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/config/configcompression -Version: v1.33.0 +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/config/configcompression@v1.33.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/config/configcompression@v1.35.0/LICENSE: Apache License @@ -64477,11 +64266,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/conf -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/config/confighttp -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/config/confighttp@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/config/confighttp@v0.129.0/LICENSE: Apache License @@ -64689,11 +64478,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/conf -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/config/configmiddleware -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/config/configmiddleware@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/config/configmiddleware@v0.129.0/LICENSE: Apache License @@ -64901,11 +64690,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/conf -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/config/configopaque -Version: v1.33.0 +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/config/configopaque@v1.33.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/config/configopaque@v1.35.0/LICENSE: Apache License @@ -65113,11 +64902,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/conf -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/config/configretry -Version: v1.33.0 +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/config/configretry@v1.33.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/config/configretry@v1.35.0/LICENSE: Apache License @@ -65325,11 +65114,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/conf -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/config/configtelemetry -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/config/configtelemetry@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/config/configtelemetry@v0.129.0/LICENSE: Apache License @@ -65537,11 +65326,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/conf -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/confmap/provider/fileprovider -Version: v1.33.0 +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/confmap/provider/fileprovider@v1.33.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/confmap/provider/fileprovider@v1.35.0/LICENSE: Apache License @@ -65749,11 +65538,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/conf -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/confmap/provider/yamlprovider -Version: v1.33.0 +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/confmap/provider/yamlprovider@v1.33.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/confmap/provider/yamlprovider@v1.35.0/LICENSE: Apache License @@ -65961,11 +65750,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/conf -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/confmap/xconfmap -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/confmap/xconfmap@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/confmap/xconfmap@v0.129.0/LICENSE: Apache License @@ -66173,11 +65962,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/conf -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/connector -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/connector@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/connector@v0.129.0/LICENSE: Apache License @@ -66385,11 +66174,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/conn -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/connector/connectortest -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/connector/connectortest@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/connector/connectortest@v0.129.0/LICENSE: Apache License @@ -66597,11 +66386,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/conn -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/connector/xconnector -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/connector/xconnector@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/connector/xconnector@v0.129.0/LICENSE: Apache License @@ -66809,11 +66598,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/conn -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/consumer/consumererror/xconsumererror -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/consumer/consumererror/xconsumererror@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/consumer/consumererror/xconsumererror@v0.129.0/LICENSE: Apache License @@ -67021,11 +66810,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/cons -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/consumer/consumertest -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/consumer/consumertest@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/consumer/consumertest@v0.129.0/LICENSE: Apache License @@ -67233,11 +67022,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/cons -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/consumer/xconsumer -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/consumer/xconsumer@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/consumer/xconsumer@v0.129.0/LICENSE: Apache License @@ -67445,11 +67234,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/cons -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/exporter -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exporter@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exporter@v0.129.0/LICENSE: Apache License @@ -67657,11 +67446,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/expo -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper@v0.129.0/LICENSE: Apache License @@ -67869,11 +67658,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/expo -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/exporter/exportertest -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exporter/exportertest@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exporter/exportertest@v0.129.0/LICENSE: Apache License @@ -68081,11 +67870,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/expo -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/exporter/xexporter -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exporter/xexporter@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exporter/xexporter@v0.129.0/LICENSE: Apache License @@ -68293,11 +68082,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/expo -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/extension -Version: v1.33.0 +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension@v1.33.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension@v1.35.0/LICENSE: Apache License @@ -68505,11 +68294,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exte -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/extension/extensionauth -Version: v1.33.0 +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension/extensionauth@v1.33.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension/extensionauth@v1.35.0/LICENSE: Apache License @@ -68717,11 +68506,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exte -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest@v0.129.0/LICENSE: Apache License @@ -68929,11 +68718,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exte -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/extension/extensioncapabilities -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension/extensioncapabilities@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension/extensioncapabilities@v0.129.0/LICENSE: Apache License @@ -69141,11 +68930,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exte -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/extension/extensionmiddleware -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension/extensionmiddleware@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension/extensionmiddleware@v0.129.0/LICENSE: Apache License @@ -69353,11 +69142,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exte -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest@v0.129.0/LICENSE: Apache License @@ -69565,11 +69354,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exte -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/extension/extensiontest -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension/extensiontest@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension/extensiontest@v0.129.0/LICENSE: Apache License @@ -69777,11 +69566,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exte -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/extension/xextension -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension/xextension@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension/xextension@v0.129.0/LICENSE: Apache License @@ -69989,11 +69778,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exte -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/extension/zpagesextension -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension/zpagesextension@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/extension/zpagesextension@v0.129.0/LICENSE: Apache License @@ -70201,11 +69990,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/exte -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/featuregate -Version: v1.33.0 +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/featuregate@v1.33.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/featuregate@v1.35.0/LICENSE: Apache License @@ -70413,11 +70202,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/feat -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/internal/fanoutconsumer -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/internal/fanoutconsumer@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/internal/fanoutconsumer@v0.129.0/LICENSE: Apache License @@ -70625,11 +70414,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/inte -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/internal/telemetry -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/internal/telemetry@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/internal/telemetry@v0.129.0/LICENSE: Apache License @@ -70837,11 +70626,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/inte -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/pdata/pprofile -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pdata/pprofile@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pdata/pprofile@v0.129.0/LICENSE: Apache License @@ -71049,11 +70838,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pdat -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/collector/pdata/testdata -Version: v0.127.0 +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pdata/testdata@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pdata/testdata@v0.129.0/LICENSE: Apache License @@ -71260,12 +71049,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pdat -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/collector/pipeline -Version: v0.127.0 +Dependency : go.opentelemetry.io/collector/pdata/xpdata +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pipeline@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pdata/xpdata@v0.129.0/LICENSE: Apache License @@ -71472,12 +71261,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pipe -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/collector/pipeline/xpipeline -Version: v0.127.0 +Dependency : go.opentelemetry.io/collector/pipeline +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pipeline/xpipeline@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pipeline@v0.129.0/LICENSE: Apache License @@ -71684,12 +71473,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pipe -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/collector/processor -Version: v1.33.0 +Dependency : go.opentelemetry.io/collector/pipeline/xpipeline +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/processor@v1.33.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/pipeline/xpipeline@v0.129.0/LICENSE: Apache License @@ -71896,12 +71685,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/proc -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/collector/processor/processortest -Version: v0.127.0 +Dependency : go.opentelemetry.io/collector/processor +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/processor/processortest@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/processor@v1.35.0/LICENSE: Apache License @@ -72108,12 +71897,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/proc -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/collector/processor/xprocessor -Version: v0.127.0 +Dependency : go.opentelemetry.io/collector/processor/processortest +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/processor/xprocessor@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/processor/processortest@v0.129.0/LICENSE: Apache License @@ -72320,12 +72109,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/proc -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/collector/receiver/receivertest -Version: v0.127.0 +Dependency : go.opentelemetry.io/collector/processor/xprocessor +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/receiver/receivertest@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/processor/xprocessor@v0.129.0/LICENSE: Apache License @@ -72532,12 +72321,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/rece -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/collector/receiver/xreceiver -Version: v0.127.0 +Dependency : go.opentelemetry.io/collector/receiver/receivertest +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/receiver/xreceiver@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/receiver/receivertest@v0.129.0/LICENSE: Apache License @@ -72744,12 +72533,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/rece -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/collector/service -Version: v0.127.0 +Dependency : go.opentelemetry.io/collector/receiver/xreceiver +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/service@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/receiver/xreceiver@v0.129.0/LICENSE: Apache License @@ -72956,12 +72745,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/serv -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/collector/service/hostcapabilities -Version: v0.127.0 +Dependency : go.opentelemetry.io/collector/service +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/service/hostcapabilities@v0.127.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/service@v0.129.0/LICENSE: Apache License @@ -73168,12 +72957,13 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/serv -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/contrib/bridges/otelzap -Version: v0.10.0 +Dependency : go.opentelemetry.io/collector/service/hostcapabilities +Version: v0.129.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/bridges/otelzap@v0.10.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/collector/service/hostcapabilities@v0.129.0/LICENSE: + Apache License Version 2.0, January 2004 @@ -73379,12 +73169,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/bridge -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/contrib/detectors/gcp -Version: v1.34.0 +Dependency : go.opentelemetry.io/contrib/bridges/otelzap +Version: v0.11.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/detectors/gcp@v1.34.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/bridges/otelzap@v0.11.0/LICENSE: Apache License Version 2.0, January 2004 @@ -73590,12 +73380,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/detect -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc -Version: v0.60.0 +Dependency : go.opentelemetry.io/contrib/detectors/gcp +Version: v1.35.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc@v0.60.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/detectors/gcp@v1.35.0/LICENSE: Apache License Version 2.0, January 2004 @@ -73801,223 +73591,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/instru -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp +Dependency : go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc Version: v0.60.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp@v0.60.0/LICENSE: - - 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. - - --------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/contrib/otelconf -Version: v0.15.0 -Licence type (autodetected): Apache-2.0 --------------------------------------------------------------------------------- - -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/otelconf@v0.15.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc@v0.60.0/LICENSE: Apache License Version 2.0, January 2004 @@ -74223,12 +73802,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/otelco -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/contrib/propagators/b3 -Version: v1.35.0 +Dependency : go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp +Version: v0.61.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/propagators/b3@v1.35.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp@v0.61.0/LICENSE: Apache License Version 2.0, January 2004 @@ -74434,12 +74013,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/propag -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/contrib/zpages -Version: v0.60.0 +Dependency : go.opentelemetry.io/contrib/otelconf +Version: v0.16.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/zpages@v0.60.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/otelconf@v0.16.0/LICENSE: Apache License Version 2.0, January 2004 @@ -74645,12 +74224,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/zpages -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/ebpf-profiler -Version: v0.0.0-20250212075250-7bf12d3f962f +Dependency : go.opentelemetry.io/contrib/propagators/b3 +Version: v1.36.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/ebpf-profiler@v0.0.0-20250212075250-7bf12d3f962f/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/propagators/b3@v1.36.0/LICENSE: Apache License Version 2.0, January 2004 @@ -74856,12 +74435,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/ebpf-profiler@ -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/otel -Version: v1.35.0 +Dependency : go.opentelemetry.io/contrib/zpages +Version: v0.61.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel@v1.35.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/contrib/zpages@v0.61.0/LICENSE: Apache License Version 2.0, January 2004 @@ -75067,12 +74646,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel@v1.35.0/L -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc -Version: v0.11.0 +Dependency : go.opentelemetry.io/ebpf-profiler +Version: v0.0.0-20250212075250-7bf12d3f962f Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc@v0.11.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/ebpf-profiler@v0.0.0-20250212075250-7bf12d3f962f/LICENSE: Apache License Version 2.0, January 2004 @@ -75278,12 +74857,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp -Version: v0.11.0 +Dependency : go.opentelemetry.io/otel +Version: v1.36.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp@v0.11.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel@v1.36.0/LICENSE: Apache License Version 2.0, January 2004 @@ -75489,12 +75068,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc -Version: v1.35.0 +Dependency : go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc +Version: v0.12.2 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc@v1.35.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc@v0.12.2/LICENSE: Apache License Version 2.0, January 2004 @@ -75700,12 +75279,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp -Version: v1.35.0 +Dependency : go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp +Version: v0.12.2 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp@v1.35.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp@v0.12.2/LICENSE: Apache License Version 2.0, January 2004 @@ -75911,12 +75490,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/otel/exporters/otlp/otlptrace -Version: v1.35.0 +Dependency : go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc +Version: v1.36.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/otlp/otlptrace@v1.35.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc@v1.36.0/LICENSE: Apache License Version 2.0, January 2004 @@ -76122,12 +75701,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc -Version: v1.35.0 +Dependency : go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp +Version: v1.36.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc@v1.35.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp@v1.36.0/LICENSE: Apache License Version 2.0, January 2004 @@ -76333,12 +75912,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp -Version: v1.35.0 +Dependency : go.opentelemetry.io/otel/exporters/otlp/otlptrace +Version: v1.36.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp@v1.35.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/otlp/otlptrace@v1.36.0/LICENSE: Apache License Version 2.0, January 2004 @@ -76544,12 +76123,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/otel/exporters/prometheus -Version: v0.57.0 +Dependency : go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc +Version: v1.36.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/prometheus@v0.57.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc@v1.36.0/LICENSE: Apache License Version 2.0, January 2004 @@ -76755,12 +76334,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/otel/exporters/stdout/stdoutlog -Version: v0.11.0 +Dependency : go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp +Version: v1.36.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/stdout/stdoutlog@v0.11.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp@v1.36.0/LICENSE: Apache License Version 2.0, January 2004 @@ -76966,12 +76545,12 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/otel/exporters/stdout/stdoutmetric -Version: v1.35.0 +Dependency : go.opentelemetry.io/otel/exporters/prometheus +Version: v0.58.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/stdout/stdoutmetric@v1.35.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/prometheus@v0.58.0/LICENSE: Apache License Version 2.0, January 2004 @@ -77177,12 +76756,434 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters -------------------------------------------------------------------------------- -Dependency : go.opentelemetry.io/otel/exporters/stdout/stdouttrace -Version: v1.35.0 +Dependency : go.opentelemetry.io/otel/exporters/stdout/stdoutlog +Version: v0.12.2 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/stdout/stdouttrace@v1.35.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/stdout/stdoutlog@v0.12.2/LICENSE: + + 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. + + +-------------------------------------------------------------------------------- +Dependency : go.opentelemetry.io/otel/exporters/stdout/stdoutmetric +Version: v1.36.0 +Licence type (autodetected): Apache-2.0 +-------------------------------------------------------------------------------- + +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/stdout/stdoutmetric@v1.36.0/LICENSE: + + 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. + + +-------------------------------------------------------------------------------- +Dependency : go.opentelemetry.io/otel/exporters/stdout/stdouttrace +Version: v1.36.0 +Licence type (autodetected): Apache-2.0 +-------------------------------------------------------------------------------- + +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters/stdout/stdouttrace@v1.36.0/LICENSE: Apache License Version 2.0, January 2004 @@ -77389,11 +77390,222 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/exporters -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/otel/log -Version: v0.11.0 +Version: v0.12.2 +Licence type (autodetected): Apache-2.0 +-------------------------------------------------------------------------------- + +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/log@v0.12.2/LICENSE: + + 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. + + +-------------------------------------------------------------------------------- +Dependency : go.opentelemetry.io/otel/log/logtest +Version: v0.0.0-20250526142609-aa5bd0e64989 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/log@v0.11.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/log/logtest@v0.0.0-20250526142609-aa5bd0e64989/LICENSE: Apache License Version 2.0, January 2004 @@ -77600,11 +77812,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/log@v0.11 -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/otel/metric -Version: v1.35.0 +Version: v1.36.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/metric@v1.35.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/metric@v1.36.0/LICENSE: Apache License Version 2.0, January 2004 @@ -77811,11 +78023,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/metric@v1 -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/otel/sdk -Version: v1.35.0 +Version: v1.36.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/sdk@v1.35.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/sdk@v1.36.0/LICENSE: Apache License Version 2.0, January 2004 @@ -78022,11 +78234,222 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/sdk@v1.35 -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/otel/sdk/log -Version: v0.11.0 +Version: v0.12.2 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/sdk/log@v0.11.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/sdk/log@v0.12.2/LICENSE: + + 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. + + +-------------------------------------------------------------------------------- +Dependency : go.opentelemetry.io/otel/sdk/log/logtest +Version: v0.0.0-20250521073539-a85ae98dcedc +Licence type (autodetected): Apache-2.0 +-------------------------------------------------------------------------------- + +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/sdk/log/logtest@v0.0.0-20250521073539-a85ae98dcedc/LICENSE: Apache License Version 2.0, January 2004 @@ -78233,11 +78656,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/sdk/log@v -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/otel/sdk/metric -Version: v1.35.0 +Version: v1.36.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/sdk/metric@v1.35.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/sdk/metric@v1.36.0/LICENSE: Apache License Version 2.0, January 2004 @@ -78444,11 +78867,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/sdk/metri -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/otel/trace -Version: v1.35.0 +Version: v1.36.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/trace@v1.35.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/trace@v1.36.0/LICENSE: Apache License Version 2.0, January 2004 @@ -78655,11 +79078,11 @@ Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/otel/trace@v1. -------------------------------------------------------------------------------- Dependency : go.opentelemetry.io/proto/otlp -Version: v1.5.0 +Version: v1.6.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/proto/otlp@v1.5.0/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opentelemetry.io/proto/otlp@v1.6.0/LICENSE: Apache License Version 2.0, January 2004 @@ -79237,11 +79660,11 @@ Contents of probable licence file $GOMODCACHE/google.golang.org/genproto@v0.0.0- -------------------------------------------------------------------------------- Dependency : google.golang.org/genproto/googleapis/rpc -Version: v0.0.0-20250218202821-56aae31c358a +Version: v0.0.0-20250519155744-55703ea1f237 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/google.golang.org/genproto/googleapis/rpc@v0.0.0-20250218202821-56aae31c358a/LICENSE: +Contents of probable licence file $GOMODCACHE/google.golang.org/genproto/googleapis/rpc@v0.0.0-20250519155744-55703ea1f237/LICENSE: Apache License diff --git a/go.mod b/go.mod index e685e3e249bc..c4141970ae8e 100644 --- a/go.mod +++ b/go.mod @@ -108,8 +108,8 @@ require ( github.com/pkg/errors v0.9.1 github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.6.2 - github.com/prometheus/common v0.62.0 - github.com/prometheus/procfs v0.16.0 + github.com/prometheus/common v0.65.0 + github.com/prometheus/procfs v0.16.1 github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 github.com/samuel/go-parser v0.0.0-20130731160455-ca8abbf65d0e // indirect github.com/samuel/go-thrift v0.0.0-20140522043831-2187045faa54 @@ -126,8 +126,8 @@ require ( go.uber.org/zap v1.27.0 golang.org/x/crypto v0.39.0 golang.org/x/mod v0.25.0 - golang.org/x/net v0.40.0 - golang.org/x/oauth2 v0.27.0 + golang.org/x/net v0.41.0 + golang.org/x/oauth2 v0.30.0 golang.org/x/sync v0.15.0 golang.org/x/sys v0.33.0 golang.org/x/text v0.26.0 @@ -135,7 +135,7 @@ require ( golang.org/x/tools v0.33.0 google.golang.org/api v0.214.0 google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 // indirect - google.golang.org/grpc v1.72.1 + google.golang.org/grpc v1.73.0 google.golang.org/protobuf v1.36.6 gopkg.in/inf.v0 v0.9.1 gopkg.in/yaml.v2 v2.4.0 @@ -176,7 +176,7 @@ require ( github.com/elastic/elastic-agent-autodiscover v0.9.2 github.com/elastic/elastic-agent-libs v0.20.0 github.com/elastic/elastic-agent-system-metrics v0.11.11 - github.com/elastic/go-elasticsearch/v8 v8.18.0 + github.com/elastic/go-elasticsearch/v8 v8.18.1 github.com/elastic/go-freelru v0.16.0 github.com/elastic/go-quark v0.3.0 github.com/elastic/go-sfdc v0.0.0-20241010131323-8e176480d727 @@ -203,12 +203,12 @@ require ( github.com/meraki/dashboard-api-go/v3 v3.0.9 github.com/microsoft/go-mssqldb v1.8.2 github.com/microsoft/wmi v0.25.1 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.127.0 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.129.0 github.com/otiai10/copy v1.12.0 github.com/pierrec/lz4/v4 v4.1.22 github.com/pkg/xattr v0.4.9 github.com/prometheus/prometheus v0.300.1 - github.com/shirou/gopsutil/v4 v4.25.4 + github.com/shirou/gopsutil/v4 v4.25.5 github.com/teambition/rrule-go v1.8.2 github.com/tklauser/go-sysconf v0.3.12 github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80 @@ -218,20 +218,20 @@ require ( go.elastic.co/apm/module/apmhttp/v2 v2.6.3 go.elastic.co/apm/v2 v2.7.0 go.mongodb.org/mongo-driver v1.17.4 - go.opentelemetry.io/collector/component v1.33.0 - go.opentelemetry.io/collector/component/componentstatus v0.127.0 - go.opentelemetry.io/collector/config/configtls v1.33.0 - go.opentelemetry.io/collector/confmap v1.33.0 - go.opentelemetry.io/collector/consumer v1.33.0 - go.opentelemetry.io/collector/consumer/consumererror v0.127.0 - go.opentelemetry.io/collector/exporter/debugexporter v0.127.0 - go.opentelemetry.io/collector/otelcol v0.127.0 - go.opentelemetry.io/collector/pdata v1.33.0 - go.opentelemetry.io/collector/receiver v1.33.0 + go.opentelemetry.io/collector/component v1.35.0 + go.opentelemetry.io/collector/component/componentstatus v0.129.0 + go.opentelemetry.io/collector/config/configtls v1.35.0 + go.opentelemetry.io/collector/confmap v1.35.0 + go.opentelemetry.io/collector/consumer v1.35.0 + go.opentelemetry.io/collector/consumer/consumererror v0.129.0 + go.opentelemetry.io/collector/exporter/debugexporter v0.129.0 + go.opentelemetry.io/collector/otelcol v0.129.0 + go.opentelemetry.io/collector/pdata v1.35.0 + go.opentelemetry.io/collector/receiver v1.35.0 go.uber.org/mock v0.5.0 golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f golang.org/x/term v0.32.0 - google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a + google.golang.org/genproto/googleapis/api v0.0.0-20250519155744-55703ea1f237 gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v3 v3.0.1 ) @@ -257,7 +257,7 @@ require ( github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.4.0 // indirect - github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 // indirect github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect @@ -285,7 +285,7 @@ require ( github.com/cenkalti/backoff/v5 v5.0.2 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cilium/ebpf v0.16.0 // indirect - github.com/cncf/xds/go v0.0.0-20250121191232-2f005788dc42 // indirect + github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f // indirect github.com/containerd/containerd/v2 v2.1.0 // indirect github.com/containerd/log v0.1.0 // indirect github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7 // indirect @@ -299,7 +299,7 @@ require ( github.com/eapache/queue v1.1.0 // indirect github.com/ebitengine/purego v0.9.0-alpha.3.0.20250507171635-5047c08daa38 // indirect github.com/elastic/elastic-transport-go/v8 v8.7.0 // indirect - github.com/elastic/go-docappender/v2 v2.9.0 // indirect + github.com/elastic/go-docappender/v2 v2.10.0 // indirect github.com/elastic/go-windows v1.0.2 // indirect github.com/elastic/pkcs8 v1.0.0 // indirect github.com/elazarl/goproxy v0.0.0-20240909085733-6741dbfc16a1 // indirect @@ -336,7 +336,7 @@ require ( github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect github.com/hashicorp/cronexpr v1.1.2 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect @@ -357,7 +357,7 @@ require ( github.com/klauspost/cpuid/v2 v2.2.8 // indirect github.com/knadh/koanf/maps v0.1.2 // indirect github.com/knadh/koanf/providers/confmap v1.0.0 // indirect - github.com/knadh/koanf/v2 v2.2.0 // indirect + github.com/knadh/koanf/v2 v2.2.1 // indirect github.com/kortschak/utter v1.5.0 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/lestrrat-go/strftime v1.1.0 // indirect @@ -385,8 +385,8 @@ require ( github.com/morikuni/aec v1.0.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.127.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.127.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.129.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.129.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.1 // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect @@ -409,80 +409,80 @@ require ( github.com/yusufpapurcu/wmi v1.2.4 // indirect github.com/zeebo/errs v1.4.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect - go.elastic.co/apm/module/apmzap/v2 v2.7.0 // indirect go.elastic.co/fastjson v1.5.0 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/collector/client v1.33.0 // indirect - go.opentelemetry.io/collector/component/componenttest v0.127.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.127.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.33.0 // indirect - go.opentelemetry.io/collector/config/confighttp v0.127.0 // indirect - go.opentelemetry.io/collector/config/configmiddleware v0.127.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.33.0 // indirect - go.opentelemetry.io/collector/config/configretry v1.33.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.127.0 // indirect - go.opentelemetry.io/collector/confmap/xconfmap v0.127.0 // indirect - go.opentelemetry.io/collector/connector v0.127.0 // indirect - go.opentelemetry.io/collector/connector/connectortest v0.127.0 // indirect - go.opentelemetry.io/collector/connector/xconnector v0.127.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.127.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.127.0 // indirect - go.opentelemetry.io/collector/consumer/xconsumer v0.127.0 // indirect - go.opentelemetry.io/collector/exporter v0.127.0 // indirect - go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.127.0 // indirect - go.opentelemetry.io/collector/exporter/exportertest v0.127.0 // indirect - go.opentelemetry.io/collector/exporter/xexporter v0.127.0 // indirect - go.opentelemetry.io/collector/extension v1.33.0 // indirect - go.opentelemetry.io/collector/extension/extensionauth v1.33.0 // indirect - go.opentelemetry.io/collector/extension/extensioncapabilities v0.127.0 // indirect - go.opentelemetry.io/collector/extension/extensionmiddleware v0.127.0 // indirect - go.opentelemetry.io/collector/extension/extensiontest v0.127.0 // indirect - go.opentelemetry.io/collector/extension/xextension v0.127.0 // indirect - go.opentelemetry.io/collector/featuregate v1.33.0 // indirect - go.opentelemetry.io/collector/internal/fanoutconsumer v0.127.0 // indirect - go.opentelemetry.io/collector/internal/telemetry v0.127.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.127.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.127.0 // indirect - go.opentelemetry.io/collector/pipeline v0.127.0 // indirect - go.opentelemetry.io/collector/pipeline/xpipeline v0.127.0 // indirect - go.opentelemetry.io/collector/processor v1.33.0 // indirect - go.opentelemetry.io/collector/processor/processortest v0.127.0 // indirect - go.opentelemetry.io/collector/processor/xprocessor v0.127.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.127.0 // indirect - go.opentelemetry.io/collector/receiver/xreceiver v0.127.0 // indirect - go.opentelemetry.io/collector/service v0.127.0 // indirect - go.opentelemetry.io/collector/service/hostcapabilities v0.127.0 // indirect - go.opentelemetry.io/contrib/bridges/otelzap v0.10.0 // indirect - go.opentelemetry.io/contrib/detectors/gcp v1.34.0 // indirect + go.opentelemetry.io/collector/client v1.35.0 // indirect + go.opentelemetry.io/collector/component/componenttest v0.129.0 // indirect + go.opentelemetry.io/collector/config/configauth v0.129.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.35.0 // indirect + go.opentelemetry.io/collector/config/confighttp v0.129.0 // indirect + go.opentelemetry.io/collector/config/configmiddleware v0.129.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.35.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.35.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.129.0 // indirect + go.opentelemetry.io/collector/confmap/xconfmap v0.129.0 // indirect + go.opentelemetry.io/collector/connector v0.129.0 // indirect + go.opentelemetry.io/collector/connector/connectortest v0.129.0 // indirect + go.opentelemetry.io/collector/connector/xconnector v0.129.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.129.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.129.0 // indirect + go.opentelemetry.io/collector/consumer/xconsumer v0.129.0 // indirect + go.opentelemetry.io/collector/exporter v0.129.0 // indirect + go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.129.0 // indirect + go.opentelemetry.io/collector/exporter/exportertest v0.129.0 // indirect + go.opentelemetry.io/collector/exporter/xexporter v0.129.0 // indirect + go.opentelemetry.io/collector/extension v1.35.0 // indirect + go.opentelemetry.io/collector/extension/extensionauth v1.35.0 // indirect + go.opentelemetry.io/collector/extension/extensioncapabilities v0.129.0 // indirect + go.opentelemetry.io/collector/extension/extensionmiddleware v0.129.0 // indirect + go.opentelemetry.io/collector/extension/extensiontest v0.129.0 // indirect + go.opentelemetry.io/collector/extension/xextension v0.129.0 // indirect + go.opentelemetry.io/collector/featuregate v1.35.0 // indirect + go.opentelemetry.io/collector/internal/fanoutconsumer v0.129.0 // indirect + go.opentelemetry.io/collector/internal/telemetry v0.129.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.129.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.129.0 // indirect + go.opentelemetry.io/collector/pdata/xpdata v0.129.0 // indirect + go.opentelemetry.io/collector/pipeline v0.129.0 // indirect + go.opentelemetry.io/collector/pipeline/xpipeline v0.129.0 // indirect + go.opentelemetry.io/collector/processor v1.35.0 // indirect + go.opentelemetry.io/collector/processor/processortest v0.129.0 // indirect + go.opentelemetry.io/collector/processor/xprocessor v0.129.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.129.0 // indirect + go.opentelemetry.io/collector/receiver/xreceiver v0.129.0 // indirect + go.opentelemetry.io/collector/service v0.129.0 // indirect + go.opentelemetry.io/collector/service/hostcapabilities v0.129.0 // indirect + go.opentelemetry.io/contrib/bridges/otelzap v0.11.0 // indirect + go.opentelemetry.io/contrib/detectors/gcp v1.35.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 // indirect - go.opentelemetry.io/contrib/otelconf v0.15.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.35.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect + go.opentelemetry.io/contrib/otelconf v0.16.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.36.0 // indirect go.opentelemetry.io/ebpf-profiler v0.0.0-20250212075250-7bf12d3f962f // indirect - go.opentelemetry.io/otel v1.35.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.11.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.11.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.35.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.57.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.11.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.35.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.35.0 // indirect - go.opentelemetry.io/otel/log v0.11.0 // indirect - go.opentelemetry.io/otel/metric v1.35.0 // indirect - go.opentelemetry.io/otel/sdk v1.35.0 // indirect - go.opentelemetry.io/otel/sdk/log v0.11.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.35.0 // indirect - go.opentelemetry.io/otel/trace v1.35.0 // indirect - go.opentelemetry.io/proto/otlp v1.5.0 // indirect + go.opentelemetry.io/otel v1.36.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.12.2 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.12.2 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.36.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.36.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.36.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.36.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.58.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.12.2 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.36.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.36.0 // indirect + go.opentelemetry.io/otel/log v0.12.2 // indirect + go.opentelemetry.io/otel/metric v1.36.0 // indirect + go.opentelemetry.io/otel/sdk v1.36.0 // indirect + go.opentelemetry.io/otel/sdk/log v0.12.2 // indirect + go.opentelemetry.io/otel/sdk/metric v1.36.0 // indirect + go.opentelemetry.io/otel/trace v1.36.0 // indirect + go.opentelemetry.io/proto/otlp v1.6.0 // indirect go.uber.org/ratelimit v0.3.1 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect gonum.org/v1/gonum v0.16.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect diff --git a/go.sum b/go.sum index fa095579c32c..4fca85e5f68d 100644 --- a/go.sum +++ b/go.sum @@ -126,8 +126,8 @@ github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mo github.com/AzureAD/microsoft-authentication-library-for-go v1.4.0 h1:MUkXAnvvDHgvPItl0nBj0hgk0f7hnnQbGm0h0+YxbN4= github.com/AzureAD/microsoft-authentication-library-for-go v1.4.0/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0 h1:f2Qw/Ehhimh5uO1fayV0QIW7DShEQqhtUfhYc+cBPlw= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.26.0/go.mod h1:2bIszWvQRlJVmJLiuLhukLImRjKPcYdzzsx6darK02A= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 h1:ErKg/3iS1AKcTkf3yixlZ54f9U1rljCkQyEXWUnIUxc= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0/go.mod h1:yAZHSGnqScoU556rBOVkwLze6WP5N+U11RHuWaGVxwY= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 h1:UQ0AhxogsIRZDkElkblfnwjc3IaltCm2HUMvezQaL7s= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1/go.mod h1:jyqM3eLpJ3IbIFDTKVz2rF9T/xWGW0rIriGwnz8l9Tk= github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.48.1 h1:oTX4vsorBZo/Zdum6OKPA4o7544hm6smoRv1QjpTwGo= @@ -275,8 +275,8 @@ github.com/cloudfoundry/noaa v2.1.0+incompatible/go.mod h1:5LmacnptvxzrTvMfL9+EJ github.com/cloudfoundry/sonde-go v0.0.0-20171206171820-b33733203bb4 h1:cWfya7mo/zbnwYVio6eWGsFJHqYw4/k/uhwIJ1eqRPI= github.com/cloudfoundry/sonde-go v0.0.0-20171206171820-b33733203bb4/go.mod h1:GS0pCHd7onIsewbw8Ue9qa9pZPv2V88cUZDttK6KzgI= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/xds/go v0.0.0-20250121191232-2f005788dc42 h1:Om6kYQYDUk5wWbT0t0q6pvyM49i9XZAv9dDrkDA7gjk= -github.com/cncf/xds/go v0.0.0-20250121191232-2f005788dc42/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f h1:C5bqEmzEPLsHm9Mv73lSE9e9bKV23aB1vxOsmZrkl3k= +github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0 h1:sDMmm+q/3+BukdIpxwO365v/Rbspp2Nt5XntgQRXq8Q= github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= github.com/coder/websocket v1.8.12 h1:5bUXkEPPIbewrnkU8LTCLVaxi4N4J8ahufH2vlo4NAo= @@ -372,10 +372,10 @@ github.com/elastic/fsnotify v1.6.1-0.20240920222514-49f82bdbc9e3 h1:UyNbxdkQiSfy github.com/elastic/fsnotify v1.6.1-0.20240920222514-49f82bdbc9e3/go.mod h1:DAsKqylc/16NDcfdk8dN5axVtSOsQwgP2kV+NV5xPDE= github.com/elastic/go-concert v0.3.0 h1:Y66JFn3ENndpHErOhTASu8/Fz1SSsLZicPufCmvQD60= github.com/elastic/go-concert v0.3.0/go.mod h1:UWt1MB5HxxZ85hKynLaYl/AaLIKFx0WiBP2uJSRfduA= -github.com/elastic/go-docappender/v2 v2.9.0 h1:EWNSfA4R8gyK+x9Hh3/AsRbc12nT3UVjsLg+Yz4fxA4= -github.com/elastic/go-docappender/v2 v2.9.0/go.mod h1:xoTA2/HUjnIgF7acxxjfYaT7KE3nFhBQ5ZkmN0edE5o= -github.com/elastic/go-elasticsearch/v8 v8.18.0 h1:ANNq1h7DEiPUaALb8+5w3baQzaS08WfHV0DNzp0VG4M= -github.com/elastic/go-elasticsearch/v8 v8.18.0/go.mod h1:WLqwXsJmQoYkoA9JBFeEwPkQhCfAZuUvfpdU/NvSSf0= +github.com/elastic/go-docappender/v2 v2.10.0 h1:gK7embg8JCedjkrfojhhWNufoG5ui7edBklakGXHtbQ= +github.com/elastic/go-docappender/v2 v2.10.0/go.mod h1:uJH43KCtXmqFUhYj7Am1NiHv0MXf3vM6VxtNlA/Utks= +github.com/elastic/go-elasticsearch/v8 v8.18.1 h1:lPsN2Wk6+QqBeD4ckmOax7G/Y8tAZgroDYG8j6/5Ce0= +github.com/elastic/go-elasticsearch/v8 v8.18.1/go.mod h1:F3j9e+BubmKvzvLjNui/1++nJuJxbkhHefbaT0kFKGY= github.com/elastic/go-freelru v0.16.0 h1:gG2HJ1WXN2tNl5/p40JS/l59HjvjRhjyAa+oFTRArYs= github.com/elastic/go-freelru v0.16.0/go.mod h1:bSdWT4M0lW79K8QbX6XY2heQYSCqD7THoYf82pT/H3I= github.com/elastic/go-libaudit/v2 v2.6.2 h1:1PM6wVBTJHJQYsKl8jfA9/Aw9pFty5uUezPiUfKtOI4= @@ -625,8 +625,8 @@ github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWm github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc h1:GN2Lv3MGO7AS6PrRoT6yV5+wkrOpcszoIsO4+4ds248= github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 h1:e9Rjr40Z98/clHv5Yg79Is0NtosR5LXRvdr7o/6NwbA= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1/go.mod h1:tIxuGz/9mpox++sgp9fJjHO0+q1X9/UOWd798aAm22M= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3/go.mod h1:ndYquD05frm2vACXE1nsccT4oJzjhw2arTS2cpUD1PI= github.com/h2non/filetype v1.1.1 h1:xvOwnXKAckvtLWsN398qS9QhlxlnVXBjXBydK2/UFB4= github.com/h2non/filetype v1.1.1/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw= @@ -717,8 +717,8 @@ github.com/knadh/koanf/maps v0.1.2 h1:RBfmAW5CnZT+PJ1CVc1QSJKf4Xu9kxfQgYVQSu8hpb github.com/knadh/koanf/maps v0.1.2/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= github.com/knadh/koanf/providers/confmap v1.0.0 h1:mHKLJTE7iXEys6deO5p6olAiZdG5zwp8Aebir+/EaRE= github.com/knadh/koanf/providers/confmap v1.0.0/go.mod h1:txHYHiI2hAtF0/0sCmcuol4IDcuQbKTybiB1nOcUo1A= -github.com/knadh/koanf/v2 v2.2.0 h1:FZFwd9bUjpb8DyCWARUBy5ovuhDs1lI87dOEn2K8UVU= -github.com/knadh/koanf/v2 v2.2.0/go.mod h1:PSFru3ufQgTsI7IF+95rf9s8XA1+aHxKuO/W+dPoHEY= +github.com/knadh/koanf/v2 v2.2.1 h1:jaleChtw85y3UdBnI0wCqcg1sj1gPoz6D3caGNHtrNE= +github.com/knadh/koanf/v2 v2.2.1/go.mod h1:PSFru3ufQgTsI7IF+95rf9s8XA1+aHxKuO/W+dPoHEY= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kortschak/utter v1.5.0 h1:1vHGHPZmJ6zU5XbfllIAG3eQBoHT97ePrZJ+pT3RoiQ= github.com/kortschak/utter v1.5.0/go.mod h1:vSmSjbyrlKjjsL71193LmzBOKgwePk9DH6uFaWHIInc= @@ -837,16 +837,16 @@ github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.127.0 h1:OOEeyO8sl5TiAn9EnoXr0mzUZ1gJq/6O7NeqG7SckV0= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.127.0/go.mod h1:mWalotWgYXcuF8Sv1jKOONz5mqNmoxUIhRpjzOLvltA= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.127.0 h1:x4YN4Pp56JLyfvG/LA05Xc0d6QGwbXy3MzjyzQn7jfU= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.127.0/go.mod h1:bEWsX7jbO6OPCW1DJ1GFfcAYBNaGVmJ/FAuJsCbh294= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.127.0 h1:e+Dv7xCw9+XHWHlCD4jvU8xhu/+ckHTEFxDI+wuZVT8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.127.0/go.mod h1:jGwB3dMiscECgE859rLB9O7aA8lR11EemBYVssV0kzA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.127.0 h1:1gE/wca+n2hptpCrH60oqbTdXUMvMyZSe0lBkaBmUpQ= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.127.0/go.mod h1:kEufI2rLrjeBxAyV+SElguqAyZNU3OUVOVhPCC+eJDw= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.127.0 h1:htRqI1VzOR/9ATKKl28Ps4q/GR9T6tG+lwSdXnbufRE= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.127.0/go.mod h1:eYArfh5F/dmAP8LKFcZfTThRUGYyuN/zaUA2G+H88qg= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.129.0 h1:uwwcJDtisSe4QdyAtNbrXy3kt1Bg7ftrwYY6ZM1X10E= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.129.0/go.mod h1:dGFKjwfF1AhlObQ6AaI99IGwJO/EWeRqMN1urIAcUKw= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.129.0 h1:oM7A/qZBgALjdsIaxsq35Czi09ufqhqIuhwT+Yu/lqY= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.129.0/go.mod h1:7LPAdyC0Sfe3Cg+edlUL3wv2C9Vai3i6GAAOJTKLMIg= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.129.0 h1:qwuUfLK8ukEHcoq8CK9HFvnBcOmxNxfMtLkuKN8texM= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.129.0/go.mod h1:fyuzPZMBR5V1YqLnFj3rYXlTmBgdkToH7PQA4PRU8yg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.129.0 h1:ydkfqpZ5BWZfEJEs7OUhTHW59og5aZspbUYxoGcAEok= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.129.0/go.mod h1:oA+49dkzmhUx0YFC9JXGuPPSBL0TOTp6jkv7qSr2n0Q= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.129.0 h1:AOVxBvCZfTPj0GLGqBVHpAnlC9t9pl1JXUQXymHliiY= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.129.0/go.mod h1:0CAJ32V/bCUBhNTEvnN9wlOG5IsyZ+Bmhe9e3Eri7CU= 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= @@ -891,15 +891,15 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= -github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= +github.com/prometheus/common v0.65.0 h1:QDwzd+G1twt//Kwj/Ww6E9FQq1iVMmODnILtW1t2VzE= +github.com/prometheus/common v0.65.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= github.com/prometheus/common/sigv4 v0.1.0 h1:qoVebwtwwEhS85Czm2dSROY5fTo2PAPEVdDeppTwGX4= github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57JrvHu9k5YwTjsNtI= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.16.0 h1:xh6oHhKwnOJKMYiYBDWmkHqQPyiY40sny36Cmx2bbsM= -github.com/prometheus/procfs v0.16.0/go.mod h1:8veyXUu3nGP7oaCxhX6yeaM5u4stL2FeMXnCqhDthZg= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/prometheus/prometheus v0.300.1 h1:9KKcTTq80gkzmXW0Et/QCFSrBPgmwiS3Hlcxc6o8KlM= github.com/prometheus/prometheus v0.300.1/go.mod h1:gtTPY/XVyCdqqnjA3NzDMb0/nc5H9hOu1RMame+gHyM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= @@ -921,8 +921,8 @@ github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KR github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= -github.com/shirou/gopsutil/v4 v4.25.4 h1:cdtFO363VEOOFrUCjZRh4XVJkb548lyF0q0uTeMqYPw= -github.com/shirou/gopsutil/v4 v4.25.4/go.mod h1:xbuxyoZj+UsgnZrENu3lQivsngRR5BdjbJwf2fv4szA= +github.com/shirou/gopsutil/v4 v4.25.5 h1:rtd9piuSMGeU8g1RMXjZs9y9luK5BwtnG7dZaQUJAsc= +github.com/shirou/gopsutil/v4 v4.25.5/go.mod h1:PfybzyydfZcN+JMMjkF6Zb8Mq1A/VcogFFg7hj50W9c= github.com/shoenig/test v1.7.1 h1:UJcjSAI3aUKx52kfcfhblgyhZceouhvvs3OYdWgn+PY= github.com/shoenig/test v1.7.1/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= @@ -1024,8 +1024,6 @@ go.elastic.co/apm/module/apmelasticsearch/v2 v2.6.3 h1:5CuemBg1oZnXI6jz+jkLqM95N go.elastic.co/apm/module/apmelasticsearch/v2 v2.6.3/go.mod h1:MVK2TIrvMGQaL7bnO4dbnJ+jpDNqmkj+BukDRBYTI60= go.elastic.co/apm/module/apmhttp/v2 v2.6.3 h1:jwFovJZkccySKCyy2oE9ZKvUry/a4gdQHF/MtZUQVtE= go.elastic.co/apm/module/apmhttp/v2 v2.6.3/go.mod h1:w94Gkk6uzI/K+eJYKDLB66tvWC5uK0fSHyWcyX2jPlQ= -go.elastic.co/apm/module/apmzap/v2 v2.7.0 h1:jpfn3kLXcNpZkCPCipGdbkmi2Y7fOUeYUeoPDKSp+8Q= -go.elastic.co/apm/module/apmzap/v2 v2.7.0/go.mod h1:31dKGp4KyNnbwIJn1Wc8zTtdxMmzutAcj6DE1dAb0kk= go.elastic.co/apm/v2 v2.7.0 h1:fbsy3BmTTedIbj7+1Ay9Zpdfuztd8RUk7Dm0JvxRW/M= go.elastic.co/apm/v2 v2.7.0/go.mod h1:f1Sr3rVJju5winTjsJtKzofdU32L7+Mw/c23cVcn3Io= go.elastic.co/ecszap v1.0.2 h1:iW5OGx8IiokiUzx/shD4AJCPFMC9uUtr7ycaiEIU++I= @@ -1042,172 +1040,178 @@ 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.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/collector v0.127.0 h1:W8Gs3W/Z2kY6cDSb6yv79Wtqg8DbcKEYz5dNIBooaFk= -go.opentelemetry.io/collector v0.127.0/go.mod h1:wtiUNv3pd9r104JaFq1IlGrKdD5ExNkjPcfST8+rgxM= -go.opentelemetry.io/collector/client v1.33.0 h1:1S/t3CV3SnmwjbTSKj1DoMsQkDq3bBlLt9eREX/Lzrk= -go.opentelemetry.io/collector/client v1.33.0/go.mod h1:CMX7Ly/zQE7hH9T4NUyT9kKYlZC8JIu7ncBzEL6kLYM= -go.opentelemetry.io/collector/component v1.33.0 h1:AoP5ZGEU7Q3YDYQx2CgYy82Xmy3gLgh1WCMeLtTXXFo= -go.opentelemetry.io/collector/component v1.33.0/go.mod h1:/5v3hl1GSQT45D6T7sE/LB6nlQMMRHCYDX1glJamh7E= -go.opentelemetry.io/collector/component/componentstatus v0.127.0 h1:3oZU2b7Giyc+tnrStYDWJAPHt2QxWOWuhTumGiHl9OQ= -go.opentelemetry.io/collector/component/componentstatus v0.127.0/go.mod h1:9afwixYMvsb1xvmxxg33XzMU7ZTe4pBitkugj5DDZdQ= -go.opentelemetry.io/collector/component/componenttest v0.127.0 h1:2cieQeh5OS1zf73Aad4b8Rf5vCDk5Hlb6oeJH7Q1VYs= -go.opentelemetry.io/collector/component/componenttest v0.127.0/go.mod h1:0jHbHYRXSNS+nm2vSsxpdAsIj+EDehxKRGk4oclyHKs= -go.opentelemetry.io/collector/config/configauth v0.127.0 h1:31PvdHi0mSXJQAUT0jlicOlT2CsPlkc9KHr/Ek3tIj0= -go.opentelemetry.io/collector/config/configauth v0.127.0/go.mod h1:Jzle3Nup5LCxcJPb4DdPpH5iEqDOD6WSMeiqBBWksbo= -go.opentelemetry.io/collector/config/configcompression v1.33.0 h1:nXKQ+wN/8O0dyjkpieIwQ3PWclJa0mcGwv9mmYd48oU= -go.opentelemetry.io/collector/config/configcompression v1.33.0/go.mod h1:QwbNpaOl6Me+wd0EdFuEJg0Cc+WR42HNjJtdq4TwE6w= -go.opentelemetry.io/collector/config/confighttp v0.127.0 h1:VOMJ4v79SxiUVabl+kw/j56zOKs0zC5073R4SaQ4gbY= -go.opentelemetry.io/collector/config/confighttp v0.127.0/go.mod h1:/HxOPqXjYm1ViIwmxesqayozvTWawnd1bg6F2WMfBTs= -go.opentelemetry.io/collector/config/configmiddleware v0.127.0 h1:gJ6xTs3cip7Q5zgMcdBj5fiYYHpmXGclGuHCxDKs+RA= -go.opentelemetry.io/collector/config/configmiddleware v0.127.0/go.mod h1:yYxOsEgHG8WoX4ShSJMpXVskU5GTK3ecTAHzqH6YixE= -go.opentelemetry.io/collector/config/configopaque v1.33.0 h1:QNiPszINK/pBA+tFWgct7IXka+X6W2E4k/Sy8TTg0s8= -go.opentelemetry.io/collector/config/configopaque v1.33.0/go.mod h1:rw0/X78O8cOk0dhACqNbdiKk1PF7z7mwq9wgSpWoqgs= -go.opentelemetry.io/collector/config/configretry v1.33.0 h1:HAzchQZKq1lCVzLZnUjRYt3J+Uk4Q1Mr1SZXMgwtb+c= -go.opentelemetry.io/collector/config/configretry v1.33.0/go.mod h1:QNnb+MCk7aS1k2EuGJMtlNCltzD7b8uC7Xel0Dxm1wQ= -go.opentelemetry.io/collector/config/configtelemetry v0.127.0 h1:m4HKEbxcxclMiJJyIvbaJrQbnG+Eck9l8827f8jTcWw= -go.opentelemetry.io/collector/config/configtelemetry v0.127.0/go.mod h1:WXmlNatI0vwjv7whh/qF1Xy+UufCZDk7VLtYqML7QmA= -go.opentelemetry.io/collector/config/configtls v1.33.0 h1:4pGT0nFM24KCtyyq8ng7VWW9fVN1VLQMlkNrMhiWRhU= -go.opentelemetry.io/collector/config/configtls v1.33.0/go.mod h1:50tvOLlI6iedkrQ9/HMO1KWxzzx0Nu28MgSRXxTwSkY= -go.opentelemetry.io/collector/confmap v1.33.0 h1:dCLSrONMssTWhnbELZZpJoWMn+P+DVJc8r10JJCeS/4= -go.opentelemetry.io/collector/confmap v1.33.0/go.mod h1:fq5ccP4lzF3IVK/Cs0kWsiH0dynejXkMc8gaNwvkvtk= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.33.0 h1:T7rVBmAKgLDLXYKQbCrgw15eD9sAhHqvnSGxYv735ew= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.33.0/go.mod h1:JlAC1QMaaPiPx7x8hQYRcxxf2GiOeHYaM8uEIri1dPg= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.33.0 h1:M14VV2/mSU9TMnxfZeHi/fVgzPMv0caPPDNgFXoN8SU= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.33.0/go.mod h1:8yugd3piWlNFCssSTlSdc9KAWGGah+dJ86Yr2wdFg9I= -go.opentelemetry.io/collector/confmap/xconfmap v0.127.0 h1:isSNkBXltLxUWstxJyHcJ3qVo9qp9GABCVhzIvZgIdM= -go.opentelemetry.io/collector/confmap/xconfmap v0.127.0/go.mod h1:K9GaSgmMYxM1/QlAVNIj2fX9LekInm9dwFnIeF1HCgs= -go.opentelemetry.io/collector/connector v0.127.0 h1:oH1qfmZK5Ma6ytbXcInFHySSv3M34rBTCS+DbXzZK/4= -go.opentelemetry.io/collector/connector v0.127.0/go.mod h1:KYOVGKGj23WL4+y5bHvbPc7VSPRm8BpwzKdx6YOzb98= -go.opentelemetry.io/collector/connector/connectortest v0.127.0 h1:bTJCvSWj4TywQ4i9AAF3PFMcAuE7oUtYBXyzl6ng7Yo= -go.opentelemetry.io/collector/connector/connectortest v0.127.0/go.mod h1:1khc74iFfEJYYOazVfr6KRAfHESNrR9fUgpNtx0I55I= -go.opentelemetry.io/collector/connector/xconnector v0.127.0 h1:re8+Wt4uzgcXRs2uagBotAImGgjjqdZg6i/vpdjAe7U= -go.opentelemetry.io/collector/connector/xconnector v0.127.0/go.mod h1:UQODXm9pN1LbOEQqjQ225PMI8caNCmWHMQxmW9V72cA= -go.opentelemetry.io/collector/consumer v1.33.0 h1:y6ohYtFsXHdD3eJ67SRHSgumRQRNlR6N+DuyjOq3hYo= -go.opentelemetry.io/collector/consumer v1.33.0/go.mod h1:WwB/nHWw6KwumVy7OayUmvRa7V3UsfK+f8qwW8/c5rY= -go.opentelemetry.io/collector/consumer/consumererror v0.127.0 h1:9MylkP5eR2hlaj80v67VRUjSoiHNNHTK37gCrtz/9+w= -go.opentelemetry.io/collector/consumer/consumererror v0.127.0/go.mod h1:7FRcHa5E8rMytzJHRdzd9SzgweDwfvEc92Clq54BjSA= -go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.127.0 h1:gMUY5EUu6YxAZY0ZvrpQ6jDsvjyItLyXlSAA/ietxtA= -go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.127.0/go.mod h1:Jlkd5T8Qs2DcrBj1wn3fqh8DT5piaNDTm0GvvmUvdPs= -go.opentelemetry.io/collector/consumer/consumertest v0.127.0 h1:rtp7ilS1P1xVfmZu0XnWohhi1N2d+wtWo9ORo8A1Xb8= -go.opentelemetry.io/collector/consumer/consumertest v0.127.0/go.mod h1:SFn8ifdrKulaQWDIvQskmEjSNdMZMQ5upQYJXLFEvzg= -go.opentelemetry.io/collector/consumer/xconsumer v0.127.0 h1:23qpVECDiqad44d9HtQ1M4P4g2xbB4A7R1b9yux2Gag= -go.opentelemetry.io/collector/consumer/xconsumer v0.127.0/go.mod h1:vZ06tk8nu2OyeizjN6AtlaftY79WuODi2rC3U7lxsb4= -go.opentelemetry.io/collector/exporter v0.127.0 h1:qy86B33YBKaBRwEbXLPe6ju3P05MqozyfUGW11RiaQ0= -go.opentelemetry.io/collector/exporter v0.127.0/go.mod h1:P72zzaz4tdK/MOGhliimvs4Cjrlefa5XunEfrs0U5i8= -go.opentelemetry.io/collector/exporter/debugexporter v0.127.0 h1:7e9KG7sGfhXtrm/fSjtGSg3VYowqDDL812zBr23ynuY= -go.opentelemetry.io/collector/exporter/debugexporter v0.127.0/go.mod h1:S3ZGq7KpB896yjjkKTXcekALz5vwmlR2WJwJppfDZoE= -go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.127.0 h1:cSkBz/MsvmRtkca3B1SLrT2Qyy8nOblGJ1/eVBQ3Zmg= -go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.127.0/go.mod h1:1XTbvObfifCdHV+uIyTzY1Nx7ZFpxha//aCIkBk7Vsg= -go.opentelemetry.io/collector/exporter/exportertest v0.127.0 h1:P6QYcPw1VSpXb9QYiLjUeIGKpbwfx+P9b0hlPDO5JLo= -go.opentelemetry.io/collector/exporter/exportertest v0.127.0/go.mod h1:5qdUXbocIpzAA8SJOyYq+gGz2h3JNileYnLJ6fBR2/8= -go.opentelemetry.io/collector/exporter/xexporter v0.127.0 h1:vP5Sk3s35u6oazXqm4nLkz/0Xud3dVAIqdWt8wrqQBs= -go.opentelemetry.io/collector/exporter/xexporter v0.127.0/go.mod h1:0x+KzQsI6VmQnx3MO4C/XmMeL7zmY6bZPHaktTAekKY= -go.opentelemetry.io/collector/extension v1.33.0 h1:QXNOwcvKi9iwai83ielK8B8fCOH9wNO9K98IY0ftotM= -go.opentelemetry.io/collector/extension v1.33.0/go.mod h1:EVsoOULEODW5vzHE76ltl7BjOdaYnDw5/EmAFFFAmBg= -go.opentelemetry.io/collector/extension/extensionauth v1.33.0 h1:m7PQze6Z9xddM1UmbU2P25cipAe7koAEaR6lPgxPMxE= -go.opentelemetry.io/collector/extension/extensionauth v1.33.0/go.mod h1:4sqbOn6DeRFEFpmBKElk92mdv9lImrXrCJaR8s05K68= -go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.127.0 h1:CXSYbXZBD7cLI1HlIp1w+hJmyznf75ZYeFitj6FDxDg= -go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.127.0/go.mod h1:GKxP+mkK2Pq6h9trvZ7/Vb4XM/fosuwvB08A1mnlNYM= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.127.0 h1:WHe1RZScVJJV3sh1pHIF/WJAaZ7VeqejmbQ1bU4/TDM= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.127.0/go.mod h1:OZRBpnrS7reS0PfQeyQiFgE1UnHFHwU6V4jHo51NGh8= -go.opentelemetry.io/collector/extension/extensionmiddleware v0.127.0 h1:5dM/Wqnvn6g6qLaPZy+86dyfiEZgibNcY/EGOgaxtCM= -go.opentelemetry.io/collector/extension/extensionmiddleware v0.127.0/go.mod h1:XGFqdRdGYXJt3IotRW72tgSCFS20Vr9jk5jqQiinmXc= -go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.127.0 h1:18YkheReX/x/pJGGCtwBLPUcCnzGUy79IQAmQibGVLA= -go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.127.0/go.mod h1:aqtxnTgH5F6OfWanYrEM9KKy1uWaBU46MZKEvDOzBv0= -go.opentelemetry.io/collector/extension/extensiontest v0.127.0 h1:wf+rP15+mRRyNfhAPNccNOsRAOyEIOMNleJiMbYYI2A= -go.opentelemetry.io/collector/extension/extensiontest v0.127.0/go.mod h1:yZKXiLKaJOTXgNOmvWgYKZ2DGToCxHzrqN6PX8YC+fI= -go.opentelemetry.io/collector/extension/xextension v0.127.0 h1:JT2lXY+MGiXuU6AoBX5kRLnUtr5jG6+xKSV0o//rMTk= -go.opentelemetry.io/collector/extension/xextension v0.127.0/go.mod h1:IFx3P/zH8Gey2XP70eb5q4OZHBWMtizg5Gr71eXBndA= -go.opentelemetry.io/collector/extension/zpagesextension v0.127.0 h1:iwxxrUh/5B858EAKqYDxjfiiINtioyFhty/0apHDV5A= -go.opentelemetry.io/collector/extension/zpagesextension v0.127.0/go.mod h1:w6wwIJ1f+yM28kphp7leqeho2lpVr8Sb5qt6Cwwpzk4= -go.opentelemetry.io/collector/featuregate v1.33.0 h1:ronhxafsUE7H3Cem4U2PXrvDZhxA9Gixx4Wik7X32X8= -go.opentelemetry.io/collector/featuregate v1.33.0/go.mod h1:Y/KsHbvREENKvvN9RlpiWk/IGBK+CATBYzIIpU7nccc= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.127.0 h1:LXLYLmPuf7ZwygcQmzFJzbc66CGC+CrFSxEjKH/ZOQ8= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.127.0/go.mod h1:V16/QfrzLcGVI8gcTujYU4i9U9+IDA6UOC8hjM659tY= -go.opentelemetry.io/collector/internal/telemetry v0.127.0 h1:/wAnPmFjUN7MwnRyDYJzUJZa5n0qK9zM1F7PgMWM5Y0= -go.opentelemetry.io/collector/internal/telemetry v0.127.0/go.mod h1:Un7Zn//l0BkE6hk6wirsTGwnJJpxw/gJWgzYL3eSruk= -go.opentelemetry.io/collector/otelcol v0.127.0 h1:nCOfC4IpJe36QOmLcFubwyFjeTfo268uWpMmRo5R0I4= -go.opentelemetry.io/collector/otelcol v0.127.0/go.mod h1:jN1rfCDqohNNy/KnLhIEWLSUz0ZQC+GuI6VkNMdjZZs= -go.opentelemetry.io/collector/pdata v1.33.0 h1:PuqiZzdCoBJo9NmMzuYfzazpeFZyLmbDVcRrvb497lg= -go.opentelemetry.io/collector/pdata v1.33.0/go.mod h1:TDvbHuvIK+g6xqu1gxtz8ti4pB2x1WcBpjFob5KfleU= -go.opentelemetry.io/collector/pdata/pprofile v0.127.0 h1:t0fpwMunK+dkUTPFc0zim8qfAan086eMqpSufnt+H30= -go.opentelemetry.io/collector/pdata/pprofile v0.127.0/go.mod h1:6S6q2+vaF7qfDxLKctQUB+CN7hThuz73p4le6mYLWnQ= -go.opentelemetry.io/collector/pdata/testdata v0.127.0 h1:1j6KWO/7TyyUaYpIeyxWzsE/klVYGFhbsTCJp4GaTco= -go.opentelemetry.io/collector/pdata/testdata v0.127.0/go.mod h1:UXvOckTD4hhAA9nzRQik0lVBU/hJ+SFes+ar9LjzYBk= -go.opentelemetry.io/collector/pipeline v0.127.0 h1:WdllRrWwsJ1yAr9l4LRiArb0ekdNaGuMJP8zQ6lZlos= -go.opentelemetry.io/collector/pipeline v0.127.0/go.mod h1:TO02zju/K6E+oFIOdi372Wk0MXd+Szy72zcTsFQwXl4= -go.opentelemetry.io/collector/pipeline/xpipeline v0.127.0 h1:dWftaJ1yr5BoI5S5Xi5g73yAFm439Uqy5oKio7dPKyc= -go.opentelemetry.io/collector/pipeline/xpipeline v0.127.0/go.mod h1:w/l+ks0aBhxJyDG8chLY8wff6SgqycWpxjBPlaVD2UI= -go.opentelemetry.io/collector/processor v1.33.0 h1:oI8gBA/HvGQru/45tUp1kGXz9EzemhGS0ufInPZzQoA= -go.opentelemetry.io/collector/processor v1.33.0/go.mod h1:frlKFbtD+VBSK2vqbiDX1qy0bzkfdjpnUEdIl9wCZeA= -go.opentelemetry.io/collector/processor/processortest v0.127.0 h1:NKSOBWg5ggJO0km5FJ/UeFU5MORvbqNJEhdT1O74OtA= -go.opentelemetry.io/collector/processor/processortest v0.127.0/go.mod h1:6Q0HdaiuakBwfnVjEhf3HtilfIlXRu0DKQGgfv5FasY= -go.opentelemetry.io/collector/processor/xprocessor v0.127.0 h1:WEXmmIbh/ifag9yS42CUHHMOwbdGvbr8jr6MLrL2MDU= -go.opentelemetry.io/collector/processor/xprocessor v0.127.0/go.mod h1:IHpB7FxRjgzHr3+EwfleRx33iMkkNq5GxzlGaxuRhBY= -go.opentelemetry.io/collector/receiver v1.33.0 h1:ge3LSQZ5uSZQUQhGb9hg1iWIUg6NQwOs+Wv29DyRZmk= -go.opentelemetry.io/collector/receiver v1.33.0/go.mod h1:RkTKFqh9+lSY3QayvfJ39dv7bAMRIHHnx1dd8TvmVMU= -go.opentelemetry.io/collector/receiver/receivertest v0.127.0 h1:3XtARAYqYxhcOa9LMmr9tc03sKZZFjsTjUgcJlPxZI0= -go.opentelemetry.io/collector/receiver/receivertest v0.127.0/go.mod h1:OSMA/bmiB+a73JboiCuvVPrPR7+1CuMh1PTNRTWDTEQ= -go.opentelemetry.io/collector/receiver/xreceiver v0.127.0 h1:oUAz3sCcOl+Mt/e5Gq3nZX0J0bpFUghLkItnC0bqWy0= -go.opentelemetry.io/collector/receiver/xreceiver v0.127.0/go.mod h1:spfky570JgiS7CRDbM/DiWJSM/mkq5RmdwldbFOMVoM= -go.opentelemetry.io/collector/service v0.127.0 h1:72JKDcEhTqEsEGrlzX7g459O4HgS8ryczGwIr67T4So= -go.opentelemetry.io/collector/service v0.127.0/go.mod h1:yL3cVJhbISZZgGOuNFa4inPNS+IeFUfLLJ2FZio5dO8= -go.opentelemetry.io/collector/service/hostcapabilities v0.127.0 h1:nAdem/Lz9JLvWpZ41atvc1EUhk7Np2VmmBHx1AP/N3w= -go.opentelemetry.io/collector/service/hostcapabilities v0.127.0/go.mod h1:IbK3DF5IplTqXpj37iGSeOej6F6FZAFb/QroQ7F8p+8= -go.opentelemetry.io/contrib/bridges/otelzap v0.10.0 h1:ojdSRDvjrnm30beHOmwsSvLpoRF40MlwNCA+Oo93kXU= -go.opentelemetry.io/contrib/bridges/otelzap v0.10.0/go.mod h1:oTTm4g7NEtHSV2i/0FeVdPaPgUIZPfQkFbq0vbzqnv0= -go.opentelemetry.io/contrib/detectors/gcp v1.34.0 h1:JRxssobiPg23otYU5SbWtQC//snGVIM3Tx6QRzlQBao= -go.opentelemetry.io/contrib/detectors/gcp v1.34.0/go.mod h1:cV4BMFcscUR/ckqLkbfQmF0PRsq8w/lMGzdbCSveBHo= +go.opentelemetry.io/collector v0.129.0 h1:9RIJkrkJHWisk7xSIl7T3Vzrn29iAxRiRboSzhO7VFc= +go.opentelemetry.io/collector v0.129.0/go.mod h1:xK+smJWmW4NKMjLAe5/nNIhnZji0T8B0QXKTMz79YPY= +go.opentelemetry.io/collector/client v1.35.0 h1:0nLRdQKFpxGZp5XkYZoZwIc03+cBqzA8lIakxnQSGwE= +go.opentelemetry.io/collector/client v1.35.0/go.mod h1:hFg+6sGvwIvz8mR8zhSHGTRrP6JUIPdc//ROrww1D9U= +go.opentelemetry.io/collector/component v1.35.0 h1:JpvBukEcEUvJ/TInF1KYpXtWEP+C7iYkxCHKjI0o7BQ= +go.opentelemetry.io/collector/component v1.35.0/go.mod h1:hU/ieWPxWbMAacODCSqem5ZaN6QH9W5GWiZ3MtXVuwc= +go.opentelemetry.io/collector/component/componentstatus v0.129.0 h1:ejpBAt7hXAAZiQKcSxLvcy8sj8SjY4HOLdoXIlW6ybw= +go.opentelemetry.io/collector/component/componentstatus v0.129.0/go.mod h1:/dLPIxn/tRMWmGi+DPtuFoBsffOLqPpSZ2IpEQzYtwI= +go.opentelemetry.io/collector/component/componenttest v0.129.0 h1:gpKkZGCRPu3Yn0U2co09bMvhs17yLFb59oV8Gl9mmRI= +go.opentelemetry.io/collector/component/componenttest v0.129.0/go.mod h1:JR9k34Qvd/pap6sYkPr5QqdHpTn66A5lYeYwhenKBAM= +go.opentelemetry.io/collector/config/configauth v0.129.0 h1:utGWTWNr2Udmhft6GeGvKMHaPJAfo//yv7rdBOg2eB8= +go.opentelemetry.io/collector/config/configauth v0.129.0/go.mod h1:nJAWAIT5mj7iw4w/pFa66tV6ChMDPnQd2gQ9V+UtJ7Q= +go.opentelemetry.io/collector/config/configcompression v1.35.0 h1:mc3kg5xNj0+V7uIrKMSXlkIOC0ILFay0XqZyvMZ8gPk= +go.opentelemetry.io/collector/config/configcompression v1.35.0/go.mod h1:QwbNpaOl6Me+wd0EdFuEJg0Cc+WR42HNjJtdq4TwE6w= +go.opentelemetry.io/collector/config/confighttp v0.129.0 h1:3Q3FuTbujR15gL34tvHnbzOhk3q04SK3+seYV+blbqA= +go.opentelemetry.io/collector/config/confighttp v0.129.0/go.mod h1:x/bHu26G6YPCnELgbL8KZdgcRUi22uIoGRC0x4nMJFg= +go.opentelemetry.io/collector/config/configmiddleware v0.129.0 h1:ILDUqd/krni++HsZtXSheHguxKm3IGI+gBiSCDk/1mk= +go.opentelemetry.io/collector/config/configmiddleware v0.129.0/go.mod h1:jp4nK4r6duZhXlVCL/Nop8sU9jYUIt5IdjW+bcyTBoQ= +go.opentelemetry.io/collector/config/configopaque v1.35.0 h1:icetANbNljFgvLyJzf2paWQnsVa/KoUzoRbfHU+f0KU= +go.opentelemetry.io/collector/config/configopaque v1.35.0/go.mod h1:rw0/X78O8cOk0dhACqNbdiKk1PF7z7mwq9wgSpWoqgs= +go.opentelemetry.io/collector/config/configretry v1.35.0 h1:RVgIDmhcDqxF3U1vw+Klk4wI5Xu2Pj80jvMwU30ku+M= +go.opentelemetry.io/collector/config/configretry v1.35.0/go.mod h1:QNnb+MCk7aS1k2EuGJMtlNCltzD7b8uC7Xel0Dxm1wQ= +go.opentelemetry.io/collector/config/configtelemetry v0.129.0 h1:91m/gtGUTyXN4PCI0uK/mPf1J0mWytk33u85YS3a9AU= +go.opentelemetry.io/collector/config/configtelemetry v0.129.0/go.mod h1:WXmlNatI0vwjv7whh/qF1Xy+UufCZDk7VLtYqML7QmA= +go.opentelemetry.io/collector/config/configtls v1.35.0 h1:MaZrtIW4Bq87dz41shLMpyUjVuFBStBAoJA2RX+IUbg= +go.opentelemetry.io/collector/config/configtls v1.35.0/go.mod h1:twLYBQkeB4r1EpGoDGiyOj6CVpxyTX9qCji/hRs75EE= +go.opentelemetry.io/collector/confmap v1.35.0 h1:U4JDATAl4PrKWe9bGHbZkoQXmJXefWgR2DIkFvw8ULQ= +go.opentelemetry.io/collector/confmap v1.35.0/go.mod h1:qX37ExVBa+WU4jWWJCZc7IJ+uBjb58/9oL+/ctF1Bt0= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.35.0 h1:6Z3uy4wlLXOeCWt265ekPZPglB2Eh9t9vD1NWCrWDn8= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.35.0/go.mod h1:kcCOECduHBpJQjFlze1XZdc+dR8qzHmKPkMrlfkXlMw= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.35.0 h1:ISxrkHXQWlxLdifbn3/XciydQeWFEMygPr0oqeZpN0I= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.35.0/go.mod h1:jmIxi1X2uD4lq4vJ30lmdQgiYs7UaiyzXr/86FX1b1E= +go.opentelemetry.io/collector/confmap/xconfmap v0.129.0 h1:Q/+pJKrkCaMPSoSAH2BpC3UZCh+5hTiFkh/bdy5yChk= +go.opentelemetry.io/collector/confmap/xconfmap v0.129.0/go.mod h1:RNMnlay2meJDXcKjxiLbST9/YAhKLJlj0kZCrJrLGgw= +go.opentelemetry.io/collector/connector v0.129.0 h1:z5PLMTE0sGV3t+AbibIbSZsh4CS9YErLhNqirxa92Pk= +go.opentelemetry.io/collector/connector v0.129.0/go.mod h1:DUYCv0jbJhNiR+/Bloa6TXkn2910LSWn4R+aQSxjUps= +go.opentelemetry.io/collector/connector/connectortest v0.129.0 h1:zbiXswz2A8Kx9A7ag2z/rZ4H9IBCvJiinPpGOmYL0O4= +go.opentelemetry.io/collector/connector/connectortest v0.129.0/go.mod h1:5vuW7keNPNobSTWv1D1l4B1xiAd42RnS4cWhwTj1Vqk= +go.opentelemetry.io/collector/connector/xconnector v0.129.0 h1:bPQuaEwLOHtocoWfUeIa4skRrfIgO2PGPf4Zn8rGyiQ= +go.opentelemetry.io/collector/connector/xconnector v0.129.0/go.mod h1:N4AxnF2sqjSdMZWqf0fap2kAuFuyubh04IsKvzfr6lw= +go.opentelemetry.io/collector/consumer v1.35.0 h1:mgS42yh1maXBIE65IT4//iOA89BE+7xSUzV8czyevHg= +go.opentelemetry.io/collector/consumer v1.35.0/go.mod h1:9sSPX0hDHaHqzR2uSmfLOuFK9v3e9K3HRQ+fydAjOWs= +go.opentelemetry.io/collector/consumer/consumererror v0.129.0 h1:ud92OBWwqQlHjjx9cB48XhXU/Lz5QSAnXUAErsNHHME= +go.opentelemetry.io/collector/consumer/consumererror v0.129.0/go.mod h1:wtg7mcOkncUO/oZQUfHYoTPiVgMT4yrEKeskFv9dUJg= +go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.129.0 h1:pz6Xzaf0hWUhPtQQZXNkUubSfCpoeq92IzX2QPV3880= +go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.129.0/go.mod h1:YUFtf7/GmfR4C7kBvMIU9rcclz5oL2lDS/i229ca4EU= +go.opentelemetry.io/collector/consumer/consumertest v0.129.0 h1:kRmrAgVvPxH5c/rTaOYAzyy0YrrYhQpBNkuqtDRrgeU= +go.opentelemetry.io/collector/consumer/consumertest v0.129.0/go.mod h1:JgJKms1+v/CuAjkPH+ceTnKeDgUUGTQV4snGu5wTEHY= +go.opentelemetry.io/collector/consumer/xconsumer v0.129.0 h1:bRyJ9TGWwnrUnB5oQGTjPhxpVRbkIVeugmvks22bJ4A= +go.opentelemetry.io/collector/consumer/xconsumer v0.129.0/go.mod h1:pbe5ZyPJrtzdt/RRI0LqfT1GVBiJLbtkDKx3SBRTiTY= +go.opentelemetry.io/collector/exporter v0.129.0 h1:HsJ0Q/CkwgWmkXv/nNjgwXY4Dc5ibQsHLvcqscUhMns= +go.opentelemetry.io/collector/exporter v0.129.0/go.mod h1:lIRe4Vo5kyOWUkwSB+2J15Jhl/io964x+MhpV5tJaOY= +go.opentelemetry.io/collector/exporter/debugexporter v0.129.0 h1:QJv3BVmlDxaebb+XPJOHuIbFkgQ0F9HG7C/sqab2+eE= +go.opentelemetry.io/collector/exporter/debugexporter v0.129.0/go.mod h1:n/WOd4MP3CJpkEysruef6CgulsS7uc/UuBBY8p00f8U= +go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.129.0 h1:Wricx4p/QQSzooRmIscwH0ta5zrc+NF0uWwx4NUdU8s= +go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.129.0/go.mod h1:PbiLvdwaXrClDfhh2WvR39v1YdOvbsTLj0amYe6VXz0= +go.opentelemetry.io/collector/exporter/exportertest v0.129.0 h1:HGS5KgbKwvLrtR972ejTSJgE7iPp0+d1fRcCznf3CVA= +go.opentelemetry.io/collector/exporter/exportertest v0.129.0/go.mod h1:ngH3IeEUNGVO8skhOYhQK56j3e81gRZmgT2qH5iHipA= +go.opentelemetry.io/collector/exporter/xexporter v0.129.0 h1:BQeQFnvtqv8g0zYBoWimIRX5W9WgiCFo3MSYYBjgbyM= +go.opentelemetry.io/collector/exporter/xexporter v0.129.0/go.mod h1:uoZG9n5maYged7BUIeUYRKANgDgJBnd930u90GHtU0Y= +go.opentelemetry.io/collector/extension v1.35.0 h1:MBnBq5HiXbj+HGCGoqRYPK4tp5cC5+7L9bhiO59T/3k= +go.opentelemetry.io/collector/extension v1.35.0/go.mod h1:Ry/QgkfYUfcQEK96t4d/oi4A7+v56T7wZMyPgnZtEco= +go.opentelemetry.io/collector/extension/extensionauth v1.35.0 h1:dw/G8RdS2x2jbap52TOVpb0NHIGKLTo0iuk69T2NaJg= +go.opentelemetry.io/collector/extension/extensionauth v1.35.0/go.mod h1:bjGAFwd0pjtPbevALtgazGWfHAoOzGr+e/oP5NjAGv4= +go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.129.0 h1:JFm1T3rxtSmWwG3oltSaZpDrS7KF8AU1efvW2g/0dy8= +go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.129.0/go.mod h1:So7bI+k8rtVVTosMHoRMKq0+amTg9D6TY/i73sIhhrk= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.129.0 h1:dkE/8H6Ik+2VTpAzwanTe+EzpeqhDNdPTVO4NWIuEPA= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.129.0/go.mod h1:V/Kdpr3nrKru8YrhH8950ac2gfQonifINiddUUmn+g8= +go.opentelemetry.io/collector/extension/extensionmiddleware v0.129.0 h1:04blWaKcbloymwhG8Y3IEJEHlvtDmxgJi0iFchbWOxw= +go.opentelemetry.io/collector/extension/extensionmiddleware v0.129.0/go.mod h1:xc1VLLUebuxPAdKCDopohorTZifokuwFfdvPINmx/GQ= +go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.129.0 h1:V85S9H4UnhPWEmSewFx0L25+XKXZbNUnQHdjT0YAMRY= +go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.129.0/go.mod h1:1sWR6V3xQt+9wsc4vW/lM9zn0YmpJH4o/tLBWQFnAxg= +go.opentelemetry.io/collector/extension/extensiontest v0.129.0 h1:YYXwF3rE9/4py+BD/GPUs2k/7e9WwJSDh47L2ljyxMk= +go.opentelemetry.io/collector/extension/extensiontest v0.129.0/go.mod h1:r1aMvxZLlHub1/28ABW/EM88YFP0AW0B+KrB/yxXlHc= +go.opentelemetry.io/collector/extension/xextension v0.129.0 h1:I9Mj+zJDpHVTonZOr7D9wcf94fENPohtt8TBvDCWOTg= +go.opentelemetry.io/collector/extension/xextension v0.129.0/go.mod h1:kdroFrrmIrV3Usm0RTOHXhWoGohdFwsvGWRirJUJYpw= +go.opentelemetry.io/collector/extension/zpagesextension v0.129.0 h1:vmvvh4QoHrjfzcPyHi3cfahJ6GfY1xfaDE5oVtE5Iq8= +go.opentelemetry.io/collector/extension/zpagesextension v0.129.0/go.mod h1:pqA6D+7/KLoq4VkcSYZzzH6/Qwfugkove48SRsY5dQ4= +go.opentelemetry.io/collector/featuregate v1.35.0 h1:c/XRtA35odgxVc4VgOF/PTIk7ajw1wYdQ6QI562gzd4= +go.opentelemetry.io/collector/featuregate v1.35.0/go.mod h1:Y/KsHbvREENKvvN9RlpiWk/IGBK+CATBYzIIpU7nccc= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.129.0 h1:fx3c7NRDSnvHj6OLFeZPWqCM82RFcAqAKrmM9dCSoiI= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.129.0/go.mod h1:ExshKbDe5u7PdIzWEvrbMXTW9YQUXCCwE7VMjzNmlU4= +go.opentelemetry.io/collector/internal/telemetry v0.129.0 h1:jkzRpIyMxMGdAzVOcBe8aRNrbP7eUrMq6cxEHe0sbzA= +go.opentelemetry.io/collector/internal/telemetry v0.129.0/go.mod h1:riAPlR2LZBV7VEx4LicOKebg3N1Ja3izzkv5fl1Lhiw= +go.opentelemetry.io/collector/otelcol v0.129.0 h1:c9tyaphcIoStM2vcAOqvtpKewN6jNkajlaDXbFrmn7Y= +go.opentelemetry.io/collector/otelcol v0.129.0/go.mod h1:zmV3C/z6TdwGUoJOxAUiDuZRLmv89XHfudklz4V3NL4= +go.opentelemetry.io/collector/pdata v1.35.0 h1:ck6WO6hCNjepADY/p9sT9/rLECTLO5ukYTumKzsqB/E= +go.opentelemetry.io/collector/pdata v1.35.0/go.mod h1:pttpb089864qG1k0DMeXLgwwTFLk+o3fAW9I6MF9tzw= +go.opentelemetry.io/collector/pdata/pprofile v0.129.0 h1:DgZTvjOGmyZRx7Or80hz8XbEaGwHPkIh2SX1A5eXttQ= +go.opentelemetry.io/collector/pdata/pprofile v0.129.0/go.mod h1:uUBZxqJNOk6QIMvbx30qom//uD4hXJ1K/l3qysijMLE= +go.opentelemetry.io/collector/pdata/testdata v0.129.0 h1:n1QLnLOtrcAR57oMSVzmtPsQEpCc/nE5Avk1xfuAkjY= +go.opentelemetry.io/collector/pdata/testdata v0.129.0/go.mod h1:RfY5IKpmcvkS2IGVjl9jG9fcT7xpQEBWpg9sQOn/7mY= +go.opentelemetry.io/collector/pdata/xpdata v0.129.0 h1:adn3OSRQ8fVHMpAoPXCzwV4yygvBskgWzKShfZdbJcw= +go.opentelemetry.io/collector/pdata/xpdata v0.129.0/go.mod h1:J5v/SAmqBo06PthOhfi6dFBOm64z07DdAUn1Sih02TA= +go.opentelemetry.io/collector/pipeline v0.129.0 h1:Mp7RuKLizLQJ0381eJqKQ0zpgkFlhTE9cHidpJQIvMU= +go.opentelemetry.io/collector/pipeline v0.129.0/go.mod h1:TO02zju/K6E+oFIOdi372Wk0MXd+Szy72zcTsFQwXl4= +go.opentelemetry.io/collector/pipeline/xpipeline v0.129.0 h1:JDLSoGiUg4JgahMqHXj5TwoZdLsqU/iDG1cGLcMiBeY= +go.opentelemetry.io/collector/pipeline/xpipeline v0.129.0/go.mod h1:qDjE/5uvKmXRHaDzy7yMo/VwSm4njtRWzACTjf5CVjg= +go.opentelemetry.io/collector/processor v1.35.0 h1:YOfHemhhodYn4BnPjN7kWYYDhzPVqRkyHCaQ8mAlavs= +go.opentelemetry.io/collector/processor v1.35.0/go.mod h1:cWHDOpmpAaVNCc9K9j2/okZoLIuP/EpGGRNhM4JGmFM= +go.opentelemetry.io/collector/processor/processortest v0.129.0 h1:r5iJHdS7Ffdb2zmMVYx4ahe92PLrce5cas/AJEXivkY= +go.opentelemetry.io/collector/processor/processortest v0.129.0/go.mod h1:gdf8GzyzjGoDTA11+CPwC4jfXphtC+B7MWbWn+LIWXc= +go.opentelemetry.io/collector/processor/xprocessor v0.129.0 h1:V3Zgd+YIeu3Ij3DPlGtzdcTwpqOQIqQVcL5jdHHS7sc= +go.opentelemetry.io/collector/processor/xprocessor v0.129.0/go.mod h1:78T+AP5NO137W/E+SibQhaqOyS67fR+IN697b4JFh00= +go.opentelemetry.io/collector/receiver v1.35.0 h1:JOLa0cHLi6cKU+qsBWXkAWLnd5MoHdh8GaUJ97jWguY= +go.opentelemetry.io/collector/receiver v1.35.0/go.mod h1:y1y8DNoP54RsiucXP/qeRuCErBLc1gyvFjO+GIIn91s= +go.opentelemetry.io/collector/receiver/receivertest v0.129.0 h1:abzNSUJXrtPwRqDM1R+BWs0uzYN2g7YZa7t6nyeLu3s= +go.opentelemetry.io/collector/receiver/receivertest v0.129.0/go.mod h1:hcn7bZ0gfcQYW00GKfEbhwVDsPhOAKALtxK67dywjYA= +go.opentelemetry.io/collector/receiver/xreceiver v0.129.0 h1:jQSsDPLbnX8tWDNz0a495ACoA4vVe/FlPEIftPdVtmU= +go.opentelemetry.io/collector/receiver/xreceiver v0.129.0/go.mod h1:5vzmNL4Mv2q3xlvw2ypg1d1WWWut9i5bUcphXNbQNN4= +go.opentelemetry.io/collector/service v0.129.0 h1:iauNP1MwcEdSmBW6ls30itxszV8biZRClJyO62B1KCo= +go.opentelemetry.io/collector/service v0.129.0/go.mod h1:U5ulge2o/5Mvoubp0BMU7+xC7SUfw0fpXyPSDbCPAtc= +go.opentelemetry.io/collector/service/hostcapabilities v0.129.0 h1:XYrwQJ8PnO+uMoc6804sm2bZfVB3pNC0G0e2O99oq3Y= +go.opentelemetry.io/collector/service/hostcapabilities v0.129.0/go.mod h1:GArFdsQM1rx56IiYGwOaXE25J3MBoO6JcA3m1xTf2LU= +go.opentelemetry.io/contrib/bridges/otelzap v0.11.0 h1:u2E32P7j1a/gRgZDWhIXC+Shd4rLg70mnE7QLI/Ssnw= +go.opentelemetry.io/contrib/bridges/otelzap v0.11.0/go.mod h1:pJPCLM8gzX4ASqLlyAXjHBEYxgbOQJ/9bidWxD6PEPQ= +go.opentelemetry.io/contrib/detectors/gcp v1.35.0 h1:bGvFt68+KTiAKFlacHW6AhA56GF2rS0bdD3aJYEnmzA= +go.opentelemetry.io/contrib/detectors/gcp v1.35.0/go.mod h1:qGWP8/+ILwMRIUf9uIVLloR1uo5ZYAslM4O6OqUi1DA= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 h1:sbiXRNDSWJOTobXh5HyQKjq6wUC5tNybqjIqDpAY4CU= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0/go.mod h1:69uWxva0WgAA/4bu2Yy70SLDBwZXuQ6PbBpbsa5iZrQ= -go.opentelemetry.io/contrib/otelconf v0.15.0 h1:BLNiIUsrNcqhSKpsa6CnhE6LdrpY1A8X0szMVsu99eo= -go.opentelemetry.io/contrib/otelconf v0.15.0/go.mod h1:OPH1seO5z9dp1P26gnLtoM9ht7JDvh3Ws6XRHuXqImY= -go.opentelemetry.io/contrib/propagators/b3 v1.35.0 h1:DpwKW04LkdFRFCIgM3sqwTJA/QREHMeMHYPWP1WeaPQ= -go.opentelemetry.io/contrib/propagators/b3 v1.35.0/go.mod h1:9+SNxwqvCWo1qQwUpACBY5YKNVxFJn5mlbXg/4+uKBg= -go.opentelemetry.io/contrib/zpages v0.60.0 h1:wOM9ie1Hz4H88L9KE6GrGbKJhfm+8F1NfW/Y3q9Xt+8= -go.opentelemetry.io/contrib/zpages v0.60.0/go.mod h1:xqfToSRGh2MYUsfyErNz8jnNDPlnpZqWM/y6Z2Cx7xw= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= +go.opentelemetry.io/contrib/otelconf v0.16.0 h1:mTYGRlZtpc/zDaTaUQSnsZ1hyoRONaS4Od/Ny5++lhE= +go.opentelemetry.io/contrib/otelconf v0.16.0/go.mod h1:gnsljuyDyVDg39vUvXKj0BVCiVaokN3b8N5BL/ab8fQ= +go.opentelemetry.io/contrib/propagators/b3 v1.36.0 h1:xrAb/G80z/l5JL6XlmUMSD1i6W8vXkWrLfmkD3w/zZo= +go.opentelemetry.io/contrib/propagators/b3 v1.36.0/go.mod h1:UREJtqioFu5awNaCR8aEx7MfJROFlAWb6lPaJFbHaG0= +go.opentelemetry.io/contrib/zpages v0.61.0 h1:tYvUj377Dn3k1wf1le/f8YWSNQ8k0byS3jK8PiIXu9Y= +go.opentelemetry.io/contrib/zpages v0.61.0/go.mod h1:MFNPHMJOGA1P6m5501ANjOJDp4A9BUQja1Y53CDL8LQ= go.opentelemetry.io/ebpf-profiler v0.0.0-20250212075250-7bf12d3f962f h1:DqRQ7JaRjf3TwWwfwHIvsBB/aLUs+kgrX+MrAIllALI= go.opentelemetry.io/ebpf-profiler v0.0.0-20250212075250-7bf12d3f962f/go.mod h1:hfAVBjRN6FZjSgZUBsNzvRDJWlS46R5Y0SGVr4Jl86s= -go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= -go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.11.0 h1:HMUytBT3uGhPKYY/u/G5MR9itrlSO2SMOsSD3Tk3k7A= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.11.0/go.mod h1:hdDXsiNLmdW/9BF2jQpnHHlhFajpWCEYfM6e5m2OAZg= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.11.0 h1:C/Wi2F8wEmbxJ9Kuzw/nhP+Z9XaHYMkyDmXy6yR2cjw= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.11.0/go.mod h1:0Lr9vmGKzadCTgsiBydxr6GEZ8SsZ7Ks53LzjWG5Ar4= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0 h1:QcFwRrZLc82r8wODjvyCbP7Ifp3UANaBSmhDSFjnqSc= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0/go.mod h1:CXIWhUomyWBG/oY2/r/kLp6K/cmx9e/7DLpBuuGdLCA= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.35.0 h1:0NIXxOCFx+SKbhCVxwl3ETG8ClLPAa0KuKV6p3yhxP8= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.35.0/go.mod h1:ChZSJbbfbl/DcRZNc9Gqh6DYGlfjw4PvO1pEOZH1ZsE= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 h1:1fTNlAIJZGWLP5FVu0fikVry1IsiUnXjf7QFvoNN3Xw= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0/go.mod h1:zjPK58DtkqQFn+YUMbx0M2XV3QgKU0gS9LeGohREyK4= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 h1:m639+BofXTvcY1q8CGs4ItwQarYtJPOWmVobfM1HpVI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0/go.mod h1:LjReUci/F4BUyv+y4dwnq3h/26iNOeC3wAIqgvTIZVo= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0 h1:xJ2qHD0C1BeYVTLLR9sX12+Qb95kfeD/byKj6Ky1pXg= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0/go.mod h1:u5BF1xyjstDowA1R5QAO9JHzqK+ublenEW/dyqTjBVk= -go.opentelemetry.io/otel/exporters/prometheus v0.57.0 h1:AHh/lAP1BHrY5gBwk8ncc25FXWm/gmmY3BX258z5nuk= -go.opentelemetry.io/otel/exporters/prometheus v0.57.0/go.mod h1:QpFWz1QxqevfjwzYdbMb4Y1NnlJvqSGwyuU0B4iuc9c= -go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.11.0 h1:k6KdfZk72tVW/QVZf60xlDziDvYAePj5QHwoQvrB2m8= -go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.11.0/go.mod h1:5Y3ZJLqzi/x/kYtrSrPSx7TFI/SGsL7q2kME027tH6I= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.35.0 h1:PB3Zrjs1sG1GBX51SXyTSoOTqcDglmsk7nT6tkKPb/k= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.35.0/go.mod h1:U2R3XyVPzn0WX7wOIypPuptulsMcPDPs/oiSVOMVnHY= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.35.0 h1:T0Ec2E+3YZf5bgTNQVet8iTDW7oIk03tXHq+wkwIDnE= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.35.0/go.mod h1:30v2gqH+vYGJsesLWFov8u47EpYTcIQcBjKpI6pJThg= -go.opentelemetry.io/otel/log v0.11.0 h1:c24Hrlk5WJ8JWcwbQxdBqxZdOK7PcP/LFtOtwpDTe3Y= -go.opentelemetry.io/otel/log v0.11.0/go.mod h1:U/sxQ83FPmT29trrifhQg+Zj2lo1/IPN1PF6RTFqdwc= -go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= -go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= -go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= -go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= -go.opentelemetry.io/otel/sdk/log v0.11.0 h1:7bAOpjpGglWhdEzP8z0VXc4jObOiDEwr3IYbhBnjk2c= -go.opentelemetry.io/otel/sdk/log v0.11.0/go.mod h1:dndLTxZbwBstZoqsJB3kGsRPkpAgaJrWfQg3lhlHFFY= -go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o= -go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w= -go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= -go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= -go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4= -go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= +go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= +go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.12.2 h1:06ZeJRe5BnYXceSM9Vya83XXVaNGe3H1QqsvqRANQq8= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.12.2/go.mod h1:DvPtKE63knkDVP88qpatBj81JxN+w1bqfVbsbCbj1WY= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.12.2 h1:tPLwQlXbJ8NSOfZc4OkgU5h2A38M4c9kfHSVc4PFQGs= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.12.2/go.mod h1:QTnxBwT/1rBIgAG1goq6xMydfYOBKU6KTiYF4fp5zL8= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.36.0 h1:zwdo1gS2eH26Rg+CoqVQpEK1h8gvt5qyU5Kk5Bixvow= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.36.0/go.mod h1:rUKCPscaRWWcqGT6HnEmYrK+YNe5+Sw64xgQTOJ5b30= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.36.0 h1:gAU726w9J8fwr4qRDqu1GYMNNs4gXrU+Pv20/N1UpB4= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.36.0/go.mod h1:RboSDkp7N292rgu+T0MgVt2qgFGu6qa1RpZDOtpL76w= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0 h1:dNzwXjZKpMpE2JhmO+9HsPl42NIXFIFSUSSs0fiqra0= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0/go.mod h1:90PoxvaEB5n6AOdZvi+yWJQoE95U8Dhhw2bSyRqnTD0= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.36.0 h1:JgtbA0xkWHnTmYk7YusopJFX6uleBmAuZ8n05NEh8nQ= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.36.0/go.mod h1:179AK5aar5R3eS9FucPy6rggvU0g52cvKId8pv4+v0c= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.36.0 h1:nRVXXvf78e00EwY6Wp0YII8ww2JVWshZ20HfTlE11AM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.36.0/go.mod h1:r49hO7CgrxY9Voaj3Xe8pANWtr0Oq916d0XAmOoCZAQ= +go.opentelemetry.io/otel/exporters/prometheus v0.58.0 h1:CJAxWKFIqdBennqxJyOgnt5LqkeFRT+Mz3Yjz3hL+h8= +go.opentelemetry.io/otel/exporters/prometheus v0.58.0/go.mod h1:7qo/4CLI+zYSNbv0GMNquzuss2FVZo3OYrGh96n4HNc= +go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.12.2 h1:12vMqzLLNZtXuXbJhSENRg+Vvx+ynNilV8twBLBsXMY= +go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.12.2/go.mod h1:ZccPZoPOoq8x3Trik/fCsba7DEYDUnN6yX79pgp2BUQ= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.36.0 h1:rixTyDGXFxRy1xzhKrotaHy3/KXdPhlWARrCgK+eqUY= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.36.0/go.mod h1:dowW6UsM9MKbJq5JTz2AMVp3/5iW5I/TStsk8S+CfHw= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.36.0 h1:G8Xec/SgZQricwWBJF/mHZc7A02YHedfFDENwJEdRA0= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.36.0/go.mod h1:PD57idA/AiFD5aqoxGxCvT/ILJPeHy3MjqU/NS7KogY= +go.opentelemetry.io/otel/log v0.12.2 h1:yob9JVHn2ZY24byZeaXpTVoPS6l+UrrxmxmPKohXTwc= +go.opentelemetry.io/otel/log v0.12.2/go.mod h1:ShIItIxSYxufUMt+1H5a2wbckGli3/iCfuEbVZi/98E= +go.opentelemetry.io/otel/log/logtest v0.0.0-20250526142609-aa5bd0e64989 h1:4JF7oY9CcHrPGfBLijDcXZyCzGckVEyOjuat5ktmQRg= +go.opentelemetry.io/otel/log/logtest v0.0.0-20250526142609-aa5bd0e64989/go.mod h1:NToOxLDCS1tXDSB2dIj44H9xGPOpKr0csIN+gnuihv4= +go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE= +go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs= +go.opentelemetry.io/otel/sdk v1.36.0 h1:b6SYIuLRs88ztox4EyrvRti80uXIFy+Sqzoh9kFULbs= +go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY= +go.opentelemetry.io/otel/sdk/log v0.12.2 h1:yNoETvTByVKi7wHvYS6HMcZrN5hFLD7I++1xIZ/k6W0= +go.opentelemetry.io/otel/sdk/log v0.12.2/go.mod h1:DcpdmUXHJgSqN/dh+XMWa7Vf89u9ap0/AAk/XGLnEzY= +go.opentelemetry.io/otel/sdk/log/logtest v0.0.0-20250521073539-a85ae98dcedc h1:uqxdywfHqqCl6LmZzI3pUnXT1RGFYyUgxj0AkWPFxi0= +go.opentelemetry.io/otel/sdk/log/logtest v0.0.0-20250521073539-a85ae98dcedc/go.mod h1:TY/N/FT7dmFrP/r5ym3g0yysP1DefqGpAZr4f82P0dE= +go.opentelemetry.io/otel/sdk/metric v1.36.0 h1:r0ntwwGosWGaa0CrSt8cuNuTcccMXERFwHX4dThiPis= +go.opentelemetry.io/otel/sdk/metric v1.36.0/go.mod h1:qTNOhFDfKRwX0yXOqJYegL5WRaW376QbB7P4Pb0qva4= +go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= +go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= +go.opentelemetry.io/proto/otlp v1.6.0 h1:jQjP+AQyTf+Fe7OKj/MfkDrmK4MNVtw2NpXsf9fefDI= +go.opentelemetry.io/proto/otlp v1.6.0/go.mod h1:cicgGehlFuNdgZkcALOCh3VE6K/u2tAjzlRhDwmVpZc= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= @@ -1286,12 +1290,12 @@ golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= +golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw= +golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190130055435-99b60b757ec1/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M= -golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= 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= @@ -1413,17 +1417,17 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 h1:ToEetK57OidYuqD4Q5w+vfEnPvPpuTwedCNVohYJfNk= google.golang.org/genproto v0.0.0-20241118233622-e639e219e697/go.mod h1:JJrvXBWRZaFMxBufik1a4RpFw4HhgVtBBWQeQgUj2cc= -google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a h1:nwKuGPlUAt+aR+pcrkfFRrTU1BVrSmYyYMxYbUIVHr0= -google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a/go.mod h1:3kWAYMk1I75K4vykHtKt2ycnOgpA6974V7bREqbsenU= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a h1:51aaUVRocpvUOSQKM6Q7VuoaktNIaMCLuhZB6DKksq4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a/go.mod h1:uRxBH1mhmO8PGhU89cMcHaXKZqO+OfakD8QQO0oYwlQ= +google.golang.org/genproto/googleapis/api v0.0.0-20250519155744-55703ea1f237 h1:Kog3KlB4xevJlAcbbbzPfRG0+X9fdoGM+UBRKVz6Wr0= +google.golang.org/genproto/googleapis/api v0.0.0-20250519155744-55703ea1f237/go.mod h1:ezi0AVyMKDWy5xAncvjLWH7UcLBB5n7y2fQ8MzjJcto= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237 h1:cJfm9zPbe1e873mHJzmQ1nwVEeRDU/T1wXDK2kUSU34= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250519155744-55703ea1f237/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.72.1 h1:HR03wO6eyZ7lknl75XlxABNVLLFc2PAb6mHlYh756mA= -google.golang.org/grpc v1.72.1/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= +google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok= +google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= From 12cd1d675b9009fdf357cff7df9ab0884dd88ce5 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 4 Jul 2025 16:15:59 +0200 Subject: [PATCH 21/45] x-pack/filebeat/input/gcppubsub: fix integration tests (#45150) (#45190) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Solved two issues in the GCP Pub/Sub input tests: - GCP Pub/Sub Emulator Container Missing: this has been fixed by ensuring the Pub/Sub emulator Docker container is properly launched for the test environment. - Fix for Segfault in NewInput.func2: a segmentation fault occurred when test code accessed in.metrics before it was initialized. Metrics are now explicitly initialized in the test setup to avoid nil pointer dereferencing. (cherry picked from commit 5373f23794f7015b71cf265b0adc3141fb499a5b) Co-authored-by: Chema Martínez --- CHANGELOG-developer.next.asciidoc | 1 + dev-tools/mage/integtest_docker.go | 2 ++ .../environments/docker/googlepubsub}/Dockerfile | 0 .../docker/googlepubsub}/supported-versions.yml | 0 x-pack/agentbeat/docker-compose.yml | 10 ++++++++++ x-pack/filebeat/docker-compose.yml | 10 ++++++++++ x-pack/filebeat/input/gcppubsub/docker-compose.yml | 11 ----------- x-pack/filebeat/input/gcppubsub/pubsub_test.go | 2 ++ 8 files changed, 25 insertions(+), 11 deletions(-) rename {x-pack/filebeat/input/gcppubsub/_meta => testing/environments/docker/googlepubsub}/Dockerfile (100%) rename {x-pack/filebeat/input/gcppubsub/_meta => testing/environments/docker/googlepubsub}/supported-versions.yml (100%) delete mode 100644 x-pack/filebeat/input/gcppubsub/docker-compose.yml diff --git a/CHANGELOG-developer.next.asciidoc b/CHANGELOG-developer.next.asciidoc index 79b2262a4da2..cf80b2409b53 100644 --- a/CHANGELOG-developer.next.asciidoc +++ b/CHANGELOG-developer.next.asciidoc @@ -115,6 +115,7 @@ The list below covers the major changes between 7.0.0-rc2 and main only. - Fix IIS module logging errors in case application pool PDH counter is not found. {pull}42274[42274] - Removed direct dependency on Azure/go-autorest/autorest/adal, which is deprecated. {issue}41463[41463] {pull}42959[42959] - Fixed flaky zookeeper integration tests. {pull}43638[43638] +- Fixed Fileebat GCP Pub/Sub input integration tests. {pull}45150[45150] ==== Added diff --git a/dev-tools/mage/integtest_docker.go b/dev-tools/mage/integtest_docker.go index c1b094984667..c9c16e2193e5 100644 --- a/dev-tools/mage/integtest_docker.go +++ b/dev-tools/mage/integtest_docker.go @@ -191,6 +191,8 @@ func WithGoIntegTestHostEnv(env map[string]string) map[string]string { // images for the next release after a feature freeze, which causes temporary test failures. env["TESTING_FILEBEAT_ALLOW_OLDER"] = "1" + env["PUBSUB_EMULATOR_HOST"] = "localhost:8432" + return env } diff --git a/x-pack/filebeat/input/gcppubsub/_meta/Dockerfile b/testing/environments/docker/googlepubsub/Dockerfile similarity index 100% rename from x-pack/filebeat/input/gcppubsub/_meta/Dockerfile rename to testing/environments/docker/googlepubsub/Dockerfile diff --git a/x-pack/filebeat/input/gcppubsub/_meta/supported-versions.yml b/testing/environments/docker/googlepubsub/supported-versions.yml similarity index 100% rename from x-pack/filebeat/input/gcppubsub/_meta/supported-versions.yml rename to testing/environments/docker/googlepubsub/supported-versions.yml diff --git a/x-pack/agentbeat/docker-compose.yml b/x-pack/agentbeat/docker-compose.yml index b4dbda4d86f6..37eb6dd516c4 100644 --- a/x-pack/agentbeat/docker-compose.yml +++ b/x-pack/agentbeat/docker-compose.yml @@ -20,6 +20,16 @@ services: ports: - 9200:9200 + googlepubsub: + image: docker.elastic.co/integrations-ci/beats-googlepubsub:emulator-${SDK_VERSION:-398.0.0-0}-1 + build: + context: ${ES_BEATS}/testing/environments/docker/googlepubsub + args: + SDK_VERSION: ${SDK_VERSION:-398.0.0-0} + hostname: googlepubsub + ports: + - 8432:8432 + cometd: build: ${ES_BEATS}/testing/environments/docker/cometd hostname: cometd diff --git a/x-pack/filebeat/docker-compose.yml b/x-pack/filebeat/docker-compose.yml index b4dbda4d86f6..37eb6dd516c4 100644 --- a/x-pack/filebeat/docker-compose.yml +++ b/x-pack/filebeat/docker-compose.yml @@ -20,6 +20,16 @@ services: ports: - 9200:9200 + googlepubsub: + image: docker.elastic.co/integrations-ci/beats-googlepubsub:emulator-${SDK_VERSION:-398.0.0-0}-1 + build: + context: ${ES_BEATS}/testing/environments/docker/googlepubsub + args: + SDK_VERSION: ${SDK_VERSION:-398.0.0-0} + hostname: googlepubsub + ports: + - 8432:8432 + cometd: build: ${ES_BEATS}/testing/environments/docker/cometd hostname: cometd diff --git a/x-pack/filebeat/input/gcppubsub/docker-compose.yml b/x-pack/filebeat/input/gcppubsub/docker-compose.yml deleted file mode 100644 index 60ce3ebd83f7..000000000000 --- a/x-pack/filebeat/input/gcppubsub/docker-compose.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: '2.3' - -services: - googlepubsub: - image: docker.elastic.co/integrations-ci/beats-googlepubsub:emulator-${SDK_VERSION:-398.0.0-0}-1 - build: - context: ./_meta - args: - SDK_VERSION: ${SDK_VERSION:-398.0.0-0} - ports: - - '127.0.0.1:8432:8432' diff --git a/x-pack/filebeat/input/gcppubsub/pubsub_test.go b/x-pack/filebeat/input/gcppubsub/pubsub_test.go index 7e719d7102db..6e845d3f3d1d 100644 --- a/x-pack/filebeat/input/gcppubsub/pubsub_test.go +++ b/x-pack/filebeat/input/gcppubsub/pubsub_test.go @@ -251,6 +251,8 @@ func runTestWithACKer(t *testing.T, cfg *conf.C, onEvent eventHandler, run func( } //nolint:errcheck // ignore pubsubInput := in.(*pubsubInput) + // Initialize metrics explicitly for tests + pubsubInput.metrics = newInputMetrics("", nil) defer pubsubInput.Stop() run(client, pubsubInput, eventOutlet, t) From 85eea30a333aa70dc7c05e79ab422b90154c13d6 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 4 Jul 2025 14:28:43 -0600 Subject: [PATCH 22/45] [MetricBeat][StackMonitoring] fetching index summary from node/_stats endpoint (#45049) (#45204) Fetching index summary metricset from `_nodes/stats` endpoint instead of `_stats` so that as indexes are deleted, the summary stats are not effectively lost during the next poll because nodes cache their data. Gaps can still appear in charts if nodes are restarted (as their cache is zeroed out). (cherry picked from commit 63a537a17839ef23b0cd4cd7d62e708319374b61) Co-authored-by: filippomachi --- CHANGELOG.next.asciidoc | 1 + .../_meta/test/expected_event_7.17.json | 97 +++++++ .../_meta/test/expected_event_8.17.json | 97 +++++++ .../_meta/test/expected_event_xpack_7.17.json | 97 +++++++ .../_meta/test/expected_event_xpack_8.17.json | 97 +++++++ .../_meta/test/node_stats_empty.json | 4 + .../_meta/test/node_stats_v717.json | 76 +++++ .../test/node_stats_v717_field_as_string.json | 76 +++++ .../_meta/test/node_stats_v817.json | 164 +++++++++++ .../test/node_stats_v817_missing_block.json | 160 +++++++++++ .../test/node_stats_v817_missing_fields.json | 163 +++++++++++ .../elasticsearch/index_summary/data.go | 264 +++++++++++++----- .../elasticsearch/index_summary/data_test.go | 125 ++++++++- .../index_summary/index_summary.go | 28 +- .../index_summary/index_summary_test.go | 35 +++ metricbeat/module/elasticsearch/testing.go | 83 +++++- 16 files changed, 1461 insertions(+), 106 deletions(-) create mode 100644 metricbeat/module/elasticsearch/index_summary/_meta/test/expected_event_7.17.json create mode 100644 metricbeat/module/elasticsearch/index_summary/_meta/test/expected_event_8.17.json create mode 100644 metricbeat/module/elasticsearch/index_summary/_meta/test/expected_event_xpack_7.17.json create mode 100644 metricbeat/module/elasticsearch/index_summary/_meta/test/expected_event_xpack_8.17.json create mode 100644 metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_empty.json create mode 100644 metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v717.json create mode 100644 metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v717_field_as_string.json create mode 100644 metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v817.json create mode 100644 metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v817_missing_block.json create mode 100644 metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v817_missing_fields.json create mode 100644 metricbeat/module/elasticsearch/index_summary/index_summary_test.go diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 6a1154e001b2..b3712cebfa19 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -75,6 +75,7 @@ otherwise no tag is added. {issue}42208[42208] {pull}42403[42403] *Metricbeat* +- Change index summary metricset to use `_nodes/stats` API instead of `_stats` API to avoid data gaps. {pull}45049[45049] - Add support for `_nodes/stats` URIs that work with legacy versions of Elasticsearch {pull}44307[44307] - Setting period for counter cache for Prometheus remote_write at least to 60sec {pull}38553[38553] - Remove fallback to the node limit for the `kubernetes.pod.cpu.usage.limit.pct` and `kubernetes.pod.memory.usage.limit.pct` metrics calculation diff --git a/metricbeat/module/elasticsearch/index_summary/_meta/test/expected_event_7.17.json b/metricbeat/module/elasticsearch/index_summary/_meta/test/expected_event_7.17.json new file mode 100644 index 000000000000..e622a4f26b2d --- /dev/null +++ b/metricbeat/module/elasticsearch/index_summary/_meta/test/expected_event_7.17.json @@ -0,0 +1,97 @@ +{ + "RootFields": { + "service": { + "name": "elasticsearch" + } + }, + "ModuleFields": { + "cluster": { + "id": "1234", + "name": "helloworld" + } + }, + "MetricSetFields": { + "primaries": { + "docs": { + "count": 464, + "deleted": 252 + }, + "store": { + "size": { + "bytes": 85621934 + }, + "total_data_set_size": { + "bytes": 85621934 + } + }, + "indexing": { + "index": { + "count": 390, + "time": { + "ms": 1815 + } + } + }, + "search": { + "query": { + "count": 313, + "time": { + "ms": 806 + } + } + }, + "segments": { + "count": 80, + "memory": { + "bytes": 114024 + } + } + }, + "total": { + "docs": { + "count": 464, + "deleted": 252 + }, + "store": { + "size": { + "bytes": 85621934 + }, + "total_data_set_size": { + "bytes": 85621934 + } + }, + "indexing": { + "index": { + "count": 390, + "time": { + "ms": 1815 + } + } + }, + "search": { + "query": { + "count": 313, + "time": { + "ms": 806 + } + } + }, + "segments": { + "count": 80, + "memory": { + "bytes": 114024 + } + } + } + }, + "Index": ".monitoring-es-8-mb", + "ID": "", + "Namespace": "", + "Timestamp": "0001-01-01T00:00:00Z", + "Error": null, + "Host": "", + "Service": "", + "Took": 0, + "Period": 0, + "DisableTimeSeries": false +} diff --git a/metricbeat/module/elasticsearch/index_summary/_meta/test/expected_event_8.17.json b/metricbeat/module/elasticsearch/index_summary/_meta/test/expected_event_8.17.json new file mode 100644 index 000000000000..82d3cf3778d0 --- /dev/null +++ b/metricbeat/module/elasticsearch/index_summary/_meta/test/expected_event_8.17.json @@ -0,0 +1,97 @@ +{ + "RootFields": { + "service": { + "name": "elasticsearch" + } + }, + "ModuleFields": { + "cluster": { + "id": "1234", + "name": "helloworld" + } + }, + "MetricSetFields": { + "primaries": { + "docs": { + "count": 8030785507, + "deleted": 23527 + }, + "indexing": { + "index": { + "count": 56600767530, + "time": { + "ms": 5360597433 + } + } + }, + "search": { + "query": { + "count": 7898882196, + "time": { + "ms": 5848049597 + } + } + }, + "segments": { + "count": 11284, + "memory": { + "bytes": 0 + } + }, + "store": { + "size": { + "bytes": 1686972455265 + }, + "total_data_set_size": { + "bytes": 1686972455265 + } + } + }, + "total": { + "docs": { + "count": 8030785507, + "deleted": 23527 + }, + "indexing": { + "index": { + "count": 56600767530, + "time": { + "ms": 5360597433 + } + } + }, + "search": { + "query": { + "count": 7898882196, + "time": { + "ms": 5848049597 + } + } + }, + "segments": { + "count": 11284, + "memory": { + "bytes": 0 + } + }, + "store": { + "size": { + "bytes": 1686972455265 + }, + "total_data_set_size": { + "bytes": 1686972455265 + } + } + } + }, + "Index": ".monitoring-es-8-mb", + "ID": "", + "Namespace": "", + "Timestamp": "0001-01-01T00:00:00Z", + "Error": null, + "Host": "", + "Service": "", + "Took": 0, + "Period": 0, + "DisableTimeSeries": false +} diff --git a/metricbeat/module/elasticsearch/index_summary/_meta/test/expected_event_xpack_7.17.json b/metricbeat/module/elasticsearch/index_summary/_meta/test/expected_event_xpack_7.17.json new file mode 100644 index 000000000000..997f5805c0be --- /dev/null +++ b/metricbeat/module/elasticsearch/index_summary/_meta/test/expected_event_xpack_7.17.json @@ -0,0 +1,97 @@ +{ + "RootFields": { + "service": { + "name": "elasticsearch" + } + }, + "ModuleFields": { + "cluster": { + "id": "1234", + "name": "helloworld" + } + }, + "MetricSetFields": { + "primaries": { + "docs": { + "count": 464, + "deleted": 252 + }, + "store": { + "size": { + "bytes": 85621934 + }, + "total_data_set_size": { + "bytes": 85621934 + } + }, + "indexing": { + "index": { + "count": 390, + "time": { + "ms": 1815 + } + } + }, + "search": { + "query": { + "count": 313, + "time": { + "ms": 806 + } + } + }, + "segments": { + "count": 80, + "memory": { + "bytes": 114024 + } + } + }, + "total": { + "docs": { + "count": 464, + "deleted": 252 + }, + "store": { + "size": { + "bytes": 85621934 + }, + "total_data_set_size": { + "bytes": 85621934 + } + }, + "indexing": { + "index": { + "count": 390, + "time": { + "ms": 1815 + } + } + }, + "search": { + "query": { + "count": 313, + "time": { + "ms": 806 + } + } + }, + "segments": { + "count": 80, + "memory": { + "bytes": 114024 + } + } + } + }, + "Index": "", + "ID": "", + "Namespace": "", + "Timestamp": "0001-01-01T00:00:00Z", + "Error": null, + "Host": "", + "Service": "", + "Took": 0, + "Period": 0, + "DisableTimeSeries": false +} diff --git a/metricbeat/module/elasticsearch/index_summary/_meta/test/expected_event_xpack_8.17.json b/metricbeat/module/elasticsearch/index_summary/_meta/test/expected_event_xpack_8.17.json new file mode 100644 index 000000000000..472f271b0403 --- /dev/null +++ b/metricbeat/module/elasticsearch/index_summary/_meta/test/expected_event_xpack_8.17.json @@ -0,0 +1,97 @@ +{ + "RootFields": { + "service": { + "name": "elasticsearch" + } + }, + "ModuleFields": { + "cluster": { + "id": "1234", + "name": "helloworld" + } + }, + "MetricSetFields": { + "primaries": { + "docs": { + "count": 8030785507, + "deleted": 23527 + }, + "indexing": { + "index": { + "count": 56600767530, + "time": { + "ms": 5360597433 + } + } + }, + "search": { + "query": { + "count": 7898882196, + "time": { + "ms": 5848049597 + } + } + }, + "segments": { + "count": 11284, + "memory": { + "bytes": 0 + } + }, + "store": { + "size": { + "bytes": 1686972455265 + }, + "total_data_set_size": { + "bytes": 1686972455265 + } + } + }, + "total": { + "docs": { + "count": 8030785507, + "deleted": 23527 + }, + "indexing": { + "index": { + "count": 56600767530, + "time": { + "ms": 5360597433 + } + } + }, + "search": { + "query": { + "count": 7898882196, + "time": { + "ms": 5848049597 + } + } + }, + "segments": { + "count": 11284, + "memory": { + "bytes": 0 + } + }, + "store": { + "size": { + "bytes": 1686972455265 + }, + "total_data_set_size": { + "bytes": 1686972455265 + } + } + } + }, + "Index": "", + "ID": "", + "Namespace": "", + "Timestamp": "0001-01-01T00:00:00Z", + "Error": null, + "Host": "", + "Service": "", + "Took": 0, + "Period": 0, + "DisableTimeSeries": false +} diff --git a/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_empty.json b/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_empty.json new file mode 100644 index 000000000000..e166c1b38f70 --- /dev/null +++ b/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_empty.json @@ -0,0 +1,4 @@ +{ + "nodes": { + } +} diff --git a/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v717.json b/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v717.json new file mode 100644 index 000000000000..af103a7260ef --- /dev/null +++ b/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v717.json @@ -0,0 +1,76 @@ +{ + "nodes" : { + "iyBjmE-eSviHPDdmjKXyeQ" : { + "indices" : { + "docs" : { + "count" : 18, + "deleted" : 119 + }, + "store" : { + "size_in_bytes" : 120986, + "total_data_set_size_in_bytes" : 120986 + }, + "indexing" : { + "index_total" : 135, + "index_time_in_millis" : 181 + }, + "search" : { + "query_total" : 28, + "query_time_in_millis" : 440 + }, + "segments" : { + "count" : 49, + "memory_in_bytes" : 32540 + } + } + }, + "vF3ak-83RKu_020pnVZJ_w" : { + "indices" : { + "docs" : { + "count" : 365, + "deleted" : 14 + }, + "store" : { + "size_in_bytes" : 42727990, + "total_data_set_size_in_bytes" : 42727990 + }, + "indexing" : { + "index_total" : 65, + "index_time_in_millis" : 959 + }, + "search" : { + "query_total" : 83, + "query_time_in_millis" : 95 + }, + "segments" : { + "count" : 12, + "memory_in_bytes" : 31024 + } + } + }, + "7-qiV2KLSSyZ74aKfCe6bg" : { + "indices" : { + "docs" : { + "count" : 81, + "deleted" : 119 + }, + "store" : { + "size_in_bytes" : 42772958, + "total_data_set_size_in_bytes" : 42772958 + }, + "indexing" : { + "index_total" : 190, + "index_time_in_millis" : 675 + }, + "search" : { + "query_total" : 202, + "query_time_in_millis" : 271 + }, + "segments" : { + "count" : 19, + "memory_in_bytes" : 50460 + } + } + } + } +} diff --git a/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v717_field_as_string.json b/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v717_field_as_string.json new file mode 100644 index 000000000000..081662792593 --- /dev/null +++ b/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v717_field_as_string.json @@ -0,0 +1,76 @@ +{ + "nodes" : { + "iyBjmE-eSviHPDdmjKXyeQ" : { + "indices" : { + "docs" : { + "count" : 18, + "deleted" : 119 + }, + "store" : { + "size_in_bytes" : 120986, + "total_data_set_size_in_bytes" : 120986 + }, + "indexing" : { + "index_total" : 135, + "index_time_in_millis" : 181 + }, + "search" : { + "query_total" : 28, + "query_time_in_millis" : 440 + }, + "segments" : { + "count" : 49, + "memory_in_bytes" : 32540 + } + } + }, + "vF3ak-83RKu_020pnVZJ_w" : { + "indices" : { + "docs" : { + "count" : 365, + "deleted" : 14 + }, + "store" : { + "size_in_bytes" : "42727990", + "total_data_set_size_in_bytes" : 42727990 + }, + "indexing" : { + "index_total" : 65, + "index_time_in_millis" : 959 + }, + "search" : { + "query_total" : 83, + "query_time_in_millis" : 95 + }, + "segments" : { + "count" : 12, + "memory_in_bytes" : 31024 + } + } + }, + "7-qiV2KLSSyZ74aKfCe6bg" : { + "indices" : { + "docs" : { + "count" : 81, + "deleted" : 119 + }, + "store" : { + "size_in_bytes" : 42772958, + "total_data_set_size_in_bytes" : 42772958 + }, + "indexing" : { + "index_total" : 190, + "index_time_in_millis" : 675 + }, + "search" : { + "query_total" : 202, + "query_time_in_millis" : 271 + }, + "segments" : { + "count" : 19, + "memory_in_bytes" : 50460 + } + } + } + } +} diff --git a/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v817.json b/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v817.json new file mode 100644 index 000000000000..d6969abd27d7 --- /dev/null +++ b/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v817.json @@ -0,0 +1,164 @@ +{ + "nodes": { + "Hwq8Kg1eRNaFnFJKrKoqjA": { + "indices": { + "docs": { + "count": 1730135320, + "deleted": 0, + "total_size_in_bytes": 388140418237 + }, + "store": { + "size_in_bytes": 388140454876, + "total_data_set_size_in_bytes": 388140454876 + }, + "indexing": { + "index_total": 0, + "index_time_in_millis": 0 + }, + "search": { + "query_total": 1595587408, + "query_time_in_millis": 461298337 + }, + "segments": { + "count": 91, + "memory_in_bytes": 0 + }, + "bulk": { + "total_operations": 0, + "total_time_in_millis": 0, + "total_size_in_bytes": 0, + "avg_time_in_millis": 0, + "avg_size_in_bytes": 0 + } + } + }, + "ZmPOU7owRnOR4kTkRahVUg": { + "indices": { + "docs": { + "count": 1770383894, + "deleted": 0, + "total_size_in_bytes": 402572306308 + }, + "store": { + "size_in_bytes": 402572342569, + "total_data_set_size_in_bytes": 402572342569 + }, + "indexing": { + "index_total": 0, + "index_time_in_millis": 0 + }, + "search": { + "query_total": 1468260676, + "query_time_in_millis": 417207984 + }, + "segments": { + "count": 90, + "memory_in_bytes": 0 + }, + "bulk": { + "total_operations": 0, + "total_time_in_millis": 0, + "total_size_in_bytes": 0, + "avg_time_in_millis": 0, + "avg_size_in_bytes": 0 + } + } + }, + "5lbmiBszSxahvsDAs8jwUg": { + "indices": { + "docs": { + "count": 1422510642, + "deleted": 7521, + "total_size_in_bytes": 277974136298 + }, + "store": { + "size_in_bytes": 278444418475, + "total_data_set_size_in_bytes": 278444418475 + }, + "indexing": { + "index_total": 17581495402, + "index_time_in_millis": 1621090717 + }, + "search": { + "query_total": 1464783588, + "query_time_in_millis": 1634551313 + }, + "segments": { + "count": 3802, + "memory_in_bytes": 0 + }, + "bulk": { + "total_operations": 29982373, + "total_time_in_millis": 1658665229, + "total_size_in_bytes": 28791047343797, + "avg_time_in_millis": 0, + "avg_size_in_bytes": 938940 + } + } + }, + "5rnp4uRrScygfEv1At_NuQ": { + "indices": { + "docs": { + "count": 1245022583, + "deleted": 15098, + "total_size_in_bytes": 246021449595 + }, + "store": { + "size_in_bytes": 246053805084, + "total_data_set_size_in_bytes": 246053805084 + }, + "indexing": { + "index_total": 19072011163, + "index_time_in_millis": 1839353503 + }, + "search": { + "query_total": 1717052931, + "query_time_in_millis": 1657131632 + }, + "segments": { + "count": 3411, + "memory_in_bytes": 0 + }, + "bulk": { + "total_operations": 31937349, + "total_time_in_millis": 1876634225, + "total_size_in_bytes": 31286022361033, + "avg_time_in_millis": 0, + "avg_size_in_bytes": 968960 + } + } + }, + "E5Y9e0ZTRNmMhlL-XBPzcw": { + "indices": { + "docs": { + "count": 1862733068, + "deleted": 908, + "total_size_in_bytes": 371144474256 + }, + "store": { + "size_in_bytes": 371761434261, + "total_data_set_size_in_bytes": 371761434261 + }, + "indexing": { + "index_total": 19947260965, + "index_time_in_millis": 1900153213 + }, + "search": { + "query_total": 1653197593, + "query_time_in_millis": 1677860331 + }, + "segments": { + "count": 3890, + "memory_in_bytes": 0 + }, + "bulk": { + "total_operations": 34665061, + "total_time_in_millis": 1937237991, + "total_size_in_bytes": 32589352616465, + "avg_time_in_millis": 0, + "avg_size_in_bytes": 922777 + } + } + } + } +} diff --git a/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v817_missing_block.json b/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v817_missing_block.json new file mode 100644 index 000000000000..d7e5cdecd7b6 --- /dev/null +++ b/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v817_missing_block.json @@ -0,0 +1,160 @@ +{ + "nodes": { + "Hwq8Kg1eRNaFnFJKrKoqjA": { + "indices": { + "docs": { + "count": 1730135320, + "deleted": 0, + "total_size_in_bytes": 388140418237 + }, + "store": { + "size_in_bytes": 388140454876, + "total_data_set_size_in_bytes": 388140454876 + }, + "indexing": { + "index_total": 0, + "index_time_in_millis": 0 + }, + "search": { + "query_total": 1595587408, + "query_time_in_millis": 461298337 + }, + "bulk": { + "total_operations": 0, + "total_time_in_millis": 0, + "total_size_in_bytes": 0, + "avg_time_in_millis": 0, + "avg_size_in_bytes": 0 + } + } + }, + "ZmPOU7owRnOR4kTkRahVUg": { + "indices": { + "docs": { + "count": 1770383894, + "deleted": 0, + "total_size_in_bytes": 402572306308 + }, + "store": { + "size_in_bytes": 402572342569, + "total_data_set_size_in_bytes": 402572342569 + }, + "indexing": { + "index_total": 0, + "index_time_in_millis": 0 + }, + "search": { + "query_total": 1468260676, + "query_time_in_millis": 417207984 + }, + "segments": { + "count": 90, + "memory_in_bytes": 0 + }, + "bulk": { + "total_operations": 0, + "total_time_in_millis": 0, + "total_size_in_bytes": 0, + "avg_time_in_millis": 0, + "avg_size_in_bytes": 0 + } + } + }, + "5lbmiBszSxahvsDAs8jwUg": { + "indices": { + "docs": { + "count": 1422510642, + "deleted": 7521, + "total_size_in_bytes": 277974136298 + }, + "store": { + "size_in_bytes": 278444418475, + "total_data_set_size_in_bytes": 278444418475 + }, + "indexing": { + "index_total": 17581495402, + "index_time_in_millis": 1621090717 + }, + "search": { + "query_total": 1464783588, + "query_time_in_millis": 1634551313 + }, + "segments": { + "count": 3802, + "memory_in_bytes": 0 + }, + "bulk": { + "total_operations": 29982373, + "total_time_in_millis": 1658665229, + "total_size_in_bytes": 28791047343797, + "avg_time_in_millis": 0, + "avg_size_in_bytes": 938940 + } + } + }, + "5rnp4uRrScygfEv1At_NuQ": { + "indices": { + "docs": { + "count": 1245022583, + "deleted": 15098, + "total_size_in_bytes": 246021449595 + }, + "store": { + "size_in_bytes": 246053805084, + "total_data_set_size_in_bytes": 246053805084 + }, + "indexing": { + "index_total": 19072011163, + "index_time_in_millis": 1839353503 + }, + "search": { + "query_total": 1717052931, + "query_time_in_millis": 1657131632 + }, + "segments": { + "count": 3411, + "memory_in_bytes": 0 + }, + "bulk": { + "total_operations": 31937349, + "total_time_in_millis": 1876634225, + "total_size_in_bytes": 31286022361033, + "avg_time_in_millis": 0, + "avg_size_in_bytes": 968960 + } + } + }, + "E5Y9e0ZTRNmMhlL-XBPzcw": { + "indices": { + "docs": { + "count": 1862733068, + "deleted": 908, + "total_size_in_bytes": 371144474256 + }, + "store": { + "size_in_bytes": 371761434261, + "total_data_set_size_in_bytes": 371761434261 + }, + "indexing": { + "index_total": 19947260965, + "index_time_in_millis": 1900153213 + }, + "search": { + "query_total": 1653197593, + "query_time_in_millis": 1677860331 + }, + "segments": { + "count": 3890, + "memory_in_bytes": 0 + }, + "bulk": { + "total_operations": 34665061, + "total_time_in_millis": 1937237991, + "total_size_in_bytes": 32589352616465, + "avg_time_in_millis": 0, + "avg_size_in_bytes": 922777 + } + } + } + } +} diff --git a/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v817_missing_fields.json b/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v817_missing_fields.json new file mode 100644 index 000000000000..7ee4284c9e76 --- /dev/null +++ b/metricbeat/module/elasticsearch/index_summary/_meta/test/node_stats_v817_missing_fields.json @@ -0,0 +1,163 @@ +{ + "nodes": { + "Hwq8Kg1eRNaFnFJKrKoqjA": { + "indices": { + "docs": { + "deleted": 0, + "total_size_in_bytes": 388140418237 + }, + "store": { + "size_in_bytes": 388140454876, + "total_data_set_size_in_bytes": 388140454876 + }, + "indexing": { + "index_total": 0, + "index_time_in_millis": 0 + }, + "search": { + "query_total": 1595587408, + "query_time_in_millis": 461298337 + }, + "segments": { + "count": 91, + "memory_in_bytes": 0 + }, + "bulk": { + "total_operations": 0, + "total_time_in_millis": 0, + "total_size_in_bytes": 0, + "avg_time_in_millis": 0, + "avg_size_in_bytes": 0 + } + } + }, + "ZmPOU7owRnOR4kTkRahVUg": { + "indices": { + "docs": { + "count": 1770383894, + "deleted": 0, + "total_size_in_bytes": 402572306308 + }, + "store": { + "size_in_bytes": 402572342569, + "total_data_set_size_in_bytes": 402572342569 + }, + "indexing": { + "index_total": 0, + "index_time_in_millis": 0 + }, + "search": { + "query_total": 1468260676, + "query_time_in_millis": 417207984 + }, + "segments": { + "count": 90, + "memory_in_bytes": 0 + }, + "bulk": { + "total_operations": 0, + "total_time_in_millis": 0, + "total_size_in_bytes": 0, + "avg_time_in_millis": 0, + "avg_size_in_bytes": 0 + } + } + }, + "5lbmiBszSxahvsDAs8jwUg": { + "indices": { + "docs": { + "count": 1422510642, + "deleted": 7521, + "total_size_in_bytes": 277974136298 + }, + "store": { + "size_in_bytes": 278444418475, + "total_data_set_size_in_bytes": 278444418475 + }, + "indexing": { + "index_total": 17581495402, + "index_time_in_millis": 1621090717 + }, + "search": { + "query_total": 1464783588, + "query_time_in_millis": 1634551313 + }, + "segments": { + "count": 3802, + "memory_in_bytes": 0 + }, + "bulk": { + "total_operations": 29982373, + "total_time_in_millis": 1658665229, + "total_size_in_bytes": 28791047343797, + "avg_time_in_millis": 0, + "avg_size_in_bytes": 938940 + } + } + }, + "5rnp4uRrScygfEv1At_NuQ": { + "indices": { + "docs": { + "count": 1245022583, + "deleted": 15098, + "total_size_in_bytes": 246021449595 + }, + "store": { + "size_in_bytes": 246053805084, + "total_data_set_size_in_bytes": 246053805084 + }, + "indexing": { + "index_total": 19072011163, + "index_time_in_millis": 1839353503 + }, + "search": { + "query_total": 1717052931, + "query_time_in_millis": 1657131632 + }, + "segments": { + "count": 3411, + "memory_in_bytes": 0 + }, + "bulk": { + "total_operations": 31937349, + "total_time_in_millis": 1876634225, + "total_size_in_bytes": 31286022361033, + "avg_time_in_millis": 0, + "avg_size_in_bytes": 968960 + } + } + }, + "E5Y9e0ZTRNmMhlL-XBPzcw": { + "indices": { + "docs": { + "count": 1862733068, + "deleted": 908, + "total_size_in_bytes": 371144474256 + }, + "store": { + "size_in_bytes": 371761434261, + "total_data_set_size_in_bytes": 371761434261 + }, + "indexing": { + "index_total": 19947260965, + "index_time_in_millis": 1900153213 + }, + "search": { + "query_total": 1653197593, + "query_time_in_millis": 1677860331 + }, + "segments": { + "count": 3890, + "memory_in_bytes": 0 + }, + "bulk": { + "total_operations": 34665061, + "total_time_in_millis": 1937237991, + "total_size_in_bytes": 32589352616465, + "avg_time_in_millis": 0, + "avg_size_in_bytes": 922777 + } + } + } + } +} diff --git a/metricbeat/module/elasticsearch/index_summary/data.go b/metricbeat/module/elasticsearch/index_summary/data.go index abd1d02d01df..e4a26d5e5488 100644 --- a/metricbeat/module/elasticsearch/index_summary/data.go +++ b/metricbeat/module/elasticsearch/index_summary/data.go @@ -30,82 +30,202 @@ import ( "github.com/elastic/beats/v7/metricbeat/module/elasticsearch" ) -var ( - schema = s.Schema{ - "primaries": c.Dict("primaries", indexSummaryDict), - "total": c.Dict("total", indexSummaryDict), - } -) +type nodeStatsWrapper struct { + Nodes map[string]interface{} `json:"nodes"` +} -var indexSummaryDict = s.Schema{ - "docs": c.Dict("docs", s.Schema{ - "count": c.Int("count"), - "deleted": c.Int("deleted"), +var nodeItemSchema = s.Schema{ + "indices": c.Dict("indices", s.Schema{ + "docs": c.Dict("docs", s.Schema{ + "count": c.Int("count", s.Required), + "deleted": c.Int("deleted", s.Required), + }, c.DictRequired), + "store": c.Dict("store", s.Schema{ + "size": s.Object{ + "bytes": c.Int("size_in_bytes", s.Required), + }, + "total_data_set_size": s.Object{ + "bytes": c.Int("total_data_set_size_in_bytes", s.Required), + }, + }, c.DictRequired), + "indexing": c.Dict("indexing", s.Schema{ + "index": s.Object{ + "count": c.Int("index_total", s.Required), + "time": s.Object{ + "ms": c.Int("index_time_in_millis", s.Required), + }, + }, + }, c.DictRequired), + "search": c.Dict("search", s.Schema{ + "query": s.Object{ + "count": c.Int("query_total", s.Required), + "time": s.Object{ + "ms": c.Int("query_time_in_millis", s.Required), + }, + }, + }, c.DictRequired), + "segments": c.Dict("segments", s.Schema{ + "count": c.Int("count", s.Required), + "memory": s.Object{ + "bytes": c.Int("memory_in_bytes", s.Required), + }, + }, c.DictRequired), + "bulk": c.Dict("bulk", s.Schema{ + "operations": s.Object{ + "count": c.Int("total_operations", s.Required), + }, + "time": s.Object{ + "avg": s.Object{ + "bytes": c.Int("avg_size_in_bytes", s.Required), + }, + }, + "size": s.Object{ + "bytes": c.Int("total_size_in_bytes", s.Required), + }, + }, c.DictOptional), }), - "store": c.Dict("store", s.Schema{ - "size": s.Object{ - "bytes": c.Int("size_in_bytes"), - }, - "total_data_set_size": s.Object{ - "bytes": c.Int("total_data_set_size_in_bytes", s.Optional), - }, - }), - "segments": c.Dict("segments", s.Schema{ - "count": c.Int("count"), - "memory": s.Object{ - "bytes": c.Int("memory_in_bytes"), - }, - }), - "indexing": indexingDict, - "bulk": bulkStatsDict, - "search": searchDict, } -var indexingDict = c.Dict("indexing", s.Schema{ - "index": s.Object{ - "count": c.Int("index_total"), - "time": s.Object{ - "ms": c.Int("index_time_in_millis"), - }, - }, -}) - -var searchDict = c.Dict("search", s.Schema{ - "query": s.Object{ - "count": c.Int("query_total"), - "time": s.Object{ - "ms": c.Int("query_time_in_millis"), - }, - }, -}) - -var bulkStatsDict = c.Dict("bulk", s.Schema{ - "operations": s.Object{ - "count": c.Int("total_operations"), - }, - "time": s.Object{ - "avg": s.Object{ - "bytes": c.Int("avg_size_in_bytes"), - }, - }, - "size": s.Object{ - "bytes": c.Int("total_size_in_bytes"), - }, -}, c.DictOptional) - -func eventMapping(r mb.ReporterV2, info elasticsearch.Info, content []byte, isXpack bool) error { - var all struct { - Data map[string]interface{} `json:"_all"` +type IndexSummaryMetricSet struct { + Primaries IndexSummary `json:"primaries"` + Total IndexSummary `json:"total"` +} + +type IndexSummary struct { + Docs DocsSection `json:"docs"` + Store StoreSection `json:"store"` + Indexing IndexingSection `json:"indexing"` + Search SearchSection `json:"search"` + Segments SegmentSection `json:"segments"` +} + +type DocsSection struct { + Count int64 `json:"count"` + Deleted int64 `json:"deleted"` +} + +type StoreSection struct { + Size struct { + Bytes int64 `json:"bytes"` + } `json:"size"` + TotalDataSetSize struct { + Bytes int64 `json:"bytes"` + } `json:"total_data_set_size"` +} + +type IndexingSection struct { + Index struct { + Count int64 `json:"count"` + Time struct { + Ms int64 `json:"ms"` + } `json:"time"` + } `json:"index"` +} + +type SearchSection struct { + Query struct { + Count int64 `json:"count"` + Time struct { + Ms int64 `json:"ms"` + } `json:"time"` + } `json:"query"` +} + +type SegmentSection struct { + Count int64 `json:"count"` + Memory struct { + Bytes int64 `json:"bytes"` + } `json:"memory"` +} + +func eventMapping(r mb.ReporterV2, info elasticsearch.Info, content []byte, isXPack bool) error { + var wrapper nodeStatsWrapper + if err := json.Unmarshal(content, &wrapper); err != nil { + return fmt.Errorf("failure parsing NodeStats API response: %w", err) } - err := json.Unmarshal(content, &all) - if err != nil { - return fmt.Errorf("failure parsing Elasticsearch Stats API response: %w", err) + if len(wrapper.Nodes) == 0 { + return fmt.Errorf("no nodes found in NodeStats response") + } + + var total IndexSummary + for nodeKey, raw := range wrapper.Nodes { + err := addNodeMetrics(raw, &total) + if err != nil { + return fmt.Errorf("error processing node %q: %w", nodeKey, err) + } + } + + event := buildEvent(&info, &total, isXPack) + r.Event(event) + return nil +} + +func addNodeMetrics(rawNode interface{}, summary *IndexSummary) error { + nodeMap, ok := rawNode.(map[string]interface{}) + if !ok { + return fmt.Errorf("node is not a map") } - fields, err := schema.Apply(all.Data, s.FailOnRequired) + validated, err := nodeItemSchema.Apply(nodeMap, s.FailOnRequired) if err != nil { - return fmt.Errorf("failure applying stats schema: %w", err) + return err + } + + incrementValue := func(dst *int64, path ...string) { + if v, err := getInt64(validated, path...); err == nil { + *dst += v + } + } + + // Docs + incrementValue(&summary.Docs.Count, "indices", "docs", "count") + incrementValue(&summary.Docs.Deleted, "indices", "docs", "deleted") + + // Store + incrementValue(&summary.Store.Size.Bytes, "indices", "store", "size", "bytes") + incrementValue(&summary.Store.TotalDataSetSize.Bytes, "indices", "store", "total_data_set_size", "bytes") + + // Indexing + incrementValue(&summary.Indexing.Index.Count, "indices", "indexing", "index", "count") + incrementValue(&summary.Indexing.Index.Time.Ms, "indices", "indexing", "index", "time", "ms") + + // Search + incrementValue(&summary.Search.Query.Count, "indices", "search", "query", "count") + incrementValue(&summary.Search.Query.Time.Ms, "indices", "search", "query", "time", "ms") + + // Segments + incrementValue(&summary.Segments.Count, "indices", "segments", "count") + incrementValue(&summary.Segments.Memory.Bytes, "indices", "segments", "memory", "bytes") + + return nil +} + +func getInt64(m mapstr.M, path ...string) (int64, error) { + current := interface{}(m) + for _, key := range path { + mm, ok := current.(mapstr.M) + if !ok { + return 0, fmt.Errorf("expected mapstr.M at %q, got %T", key, current) + } + val, ok := mm[key] + if !ok { + return 0, fmt.Errorf("missing key: %q", key) + } + current = val + } + + i, ok := current.(int64) + if !ok { + return 0, fmt.Errorf("expected int64 at path %v, got %T", path, current) + } + return i, nil +} + +func buildEvent(info *elasticsearch.Info, summary *IndexSummary, isXPack bool) mb.Event { + eventNew := map[string]interface{}{ + "primaries": summary, + "total": summary, } var event mb.Event @@ -116,16 +236,12 @@ func eventMapping(r mb.ReporterV2, info elasticsearch.Info, content []byte, isXp _, _ = event.ModuleFields.Put("cluster.name", info.ClusterName) _, _ = event.ModuleFields.Put("cluster.id", info.ClusterID) - event.MetricSetFields = fields + event.MetricSetFields = eventNew - // xpack.enabled in config using standalone metricbeat writes to `.monitoring` instead of `metricbeat-*` - // When using Agent, the index name is overwritten anyways. - if isXpack { + if isXPack { index := elastic.MakeXPackMonitoringIndexName(elastic.Elasticsearch) event.Index = index } - r.Event(event) - - return nil + return event } diff --git a/metricbeat/module/elasticsearch/index_summary/data_test.go b/metricbeat/module/elasticsearch/index_summary/data_test.go index 3df0e61b2698..a43e151493bc 100644 --- a/metricbeat/module/elasticsearch/index_summary/data_test.go +++ b/metricbeat/module/elasticsearch/index_summary/data_test.go @@ -20,9 +20,9 @@ package index_summary import ( - "io/ioutil" "net/http" "net/http/httptest" + "os" "testing" "github.com/stretchr/testify/require" @@ -48,7 +48,7 @@ func createEsMuxer(license string) *http.ServeMux { http.NotFound(w, r) } - input, _ := ioutil.ReadFile("../index/_meta/test/root.710.json") + input, _ := os.ReadFile("../index/_meta/test/root.710.json") w.Write(input) } licenseHandler := func(w http.ResponseWriter, r *http.Request) { @@ -62,7 +62,7 @@ func createEsMuxer(license string) *http.ServeMux { mux.Handle("/_xpack/license", http.HandlerFunc(licenseHandler)) // for before 7.0 mux.Handle("/", http.HandlerFunc(rootHandler)) mux.Handle("/_stats", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - content, _ := ioutil.ReadFile("../index/_meta/test/stats.700-alpha1.json") + content, _ := os.ReadFile("../index/_meta/test/stats.700-alpha1.json") w.Write(content) })) @@ -82,17 +82,124 @@ func TestData(t *testing.T) { } func TestMapper(t *testing.T) { - elasticsearch.TestMapperWithInfo(t, "../index/_meta/test/stats.*.json", eventMapping) + elasticsearch.TestMapperWithInfo(t, "_meta/test/node_stats_v*17.json", eventMapping) +} + +func TestSummaryFromNodeStatsWithExpectedEventsV817(t *testing.T) { + elasticsearch.TestMapperWithExpectedEvents( + t, + "_meta/test/node_stats_v817.json", + []string{ + "_meta/test/expected_event_8.17.json", + }, + elasticsearch.Info{ + ClusterID: "1234", + ClusterName: "helloworld", + }, + true, + eventMapping, + ) +} + +func TestSummaryMissingField(t *testing.T) { + elasticsearch.TestMapperExpectingError( + t, + "_meta/test/node_stats_v817_missing_fields.json", + elasticsearch.Info{ + ClusterID: "1234", + ClusterName: "helloworld", + }, + true, + "error processing node \"Hwq8Kg1eRNaFnFJKrKoqjA\": key `indices.docs.count` not found", + eventMapping, + ) +} + +func TestSummaryMissingBlock(t *testing.T) { + elasticsearch.TestMapperExpectingError( + t, + "_meta/test/node_stats_v817_missing_block.json", + elasticsearch.Info{ + ClusterID: "1234", + ClusterName: "helloworld", + }, + true, + "error processing node \"Hwq8Kg1eRNaFnFJKrKoqjA\": key `indices.segments` not found", + eventMapping, + ) +} + +func TestSummaryWrongFieldType_String(t *testing.T) { + elasticsearch.TestMapperExpectingError( + t, + "_meta/test/node_stats_v717_field_as_string.json", + elasticsearch.Info{ + ClusterID: "1234", + ClusterName: "helloworld", + }, + true, + "error processing node \"vF3ak-83RKu_020pnVZJ_w\": wrong format in `indices.store.size_in_bytes`: expected integer, found string", + eventMapping, + ) +} + +func TestSummaryFromNodeStatsWithExpectedEventsV717(t *testing.T) { + elasticsearch.TestMapperWithExpectedEvents( + t, + "_meta/test/node_stats_v717.json", + []string{ + "_meta/test/expected_event_7.17.json", + }, + elasticsearch.Info{ + ClusterID: "1234", + ClusterName: "helloworld", + }, + true, + eventMapping, + ) +} + +func TestSummaryFromNodeStatsWithExpectedEventsXPackV817(t *testing.T) { + elasticsearch.TestMapperWithExpectedEvents( + t, + "_meta/test/node_stats_v817.json", + []string{ + "_meta/test/expected_event_xpack_8.17.json", + }, + elasticsearch.Info{ + ClusterID: "1234", + ClusterName: "helloworld", + }, + false, + eventMapping, + ) +} + +func TestSummaryFromNodeStatsWithExpectedEventsXPackV717(t *testing.T) { + elasticsearch.TestMapperWithExpectedEvents( + t, + "_meta/test/node_stats_v717.json", + []string{ + "_meta/test/expected_event_xpack_7.17.json", + }, + elasticsearch.Info{ + ClusterID: "1234", + ClusterName: "helloworld", + }, + false, + eventMapping, + ) } func TestEmpty(t *testing.T) { - input, err := ioutil.ReadFile("../index/_meta/test/empty.512.json") - require.NoError(t, err) + input, errReading := os.ReadFile("_meta/test/node_stats_empty.json") + require.NoError(t, errReading) reporter := &mbtest.CapturingReporterV2{} - eventMapping(reporter, info, input, true) - require.Empty(t, reporter.GetErrors()) - require.Equal(t, 1, len(reporter.GetEvents())) + err := eventMapping(reporter, info, input, true) + + require.ErrorContains(t, err, "no nodes found in NodeStats response") + require.Equal(t, 0, len(reporter.GetEvents())) } func getConfig(host string) map[string]interface{} { diff --git a/metricbeat/module/elasticsearch/index_summary/index_summary.go b/metricbeat/module/elasticsearch/index_summary/index_summary.go index 7a2c8bbcd7e9..105c179b1b17 100644 --- a/metricbeat/module/elasticsearch/index_summary/index_summary.go +++ b/metricbeat/module/elasticsearch/index_summary/index_summary.go @@ -24,8 +24,6 @@ import ( "github.com/elastic/beats/v7/metricbeat/mb" "github.com/elastic/beats/v7/metricbeat/mb/parse" "github.com/elastic/beats/v7/metricbeat/module/elasticsearch" - - "github.com/elastic/elastic-agent-libs/version" ) // init registers the MetricSet with the central registry. @@ -38,10 +36,9 @@ func init() { } const ( - statsPath = "/_stats" + nodeStatsPath = "/_nodes/stats" - onlyClusterLevel = "level=cluster" - allowClosedIndices = "&forbid_closed_indices=false" + nodeStatsParameters = "level=node&filter_path=nodes.*.indices.docs,nodes.*.indices.indexing.index_total,nodes.*.indices.indexing.index_time_in_millis,nodes.*.indices.search.query_total,nodes.*.indices.search.query_time_in_millis,nodes.*.indices.segments.count,nodes.*.indices.segments.memory_in_bytes,nodes.*.indices.store.size_in_bytes,nodes.*.indices.store.total_data_set_size_in_bytes" ) var ( @@ -59,7 +56,7 @@ type MetricSet struct { // New create a new instance of the MetricSet func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Get the stats from the local node - ms, err := elasticsearch.NewMetricSet(base, statsPath) + ms, err := elasticsearch.NewMetricSet(base, nodeStatsPath) if err != nil { return nil, err } @@ -76,16 +73,16 @@ func (m *MetricSet) Fetch(r mb.ReporterV2) error { return nil } - info, err := elasticsearch.GetInfo(m.HTTP, m.HostData().SanitizedURI+statsPath) + info, err := elasticsearch.GetInfo(m.HTTP, m.HostData().SanitizedURI+nodeStatsPath) if err != nil { return fmt.Errorf("failed to get info from Elasticsearch: %w", err) } - if err := m.updateServicePath(*info.Version.Number); err != nil { + if err := m.updateServicePath(); err != nil { return err } - content, err := m.HTTP.FetchContent() + content, err := m.FetchContent() if err != nil { return err } @@ -93,8 +90,8 @@ func (m *MetricSet) Fetch(r mb.ReporterV2) error { return eventMapping(r, info, content, m.XPackEnabled) } -func (m *MetricSet) updateServicePath(esVersion version.V) error { - p, err := getServicePath(esVersion) +func (m *MetricSet) updateServicePath() error { + p, err := getServicePath() if err != nil { return err } @@ -103,17 +100,14 @@ func (m *MetricSet) updateServicePath(esVersion version.V) error { return nil } -func getServicePath(esVersion version.V) (string, error) { - currPath := statsPath +func getServicePath() (string, error) { + currPath := nodeStatsPath u, err := url.Parse(currPath) if err != nil { return "", err } - u.RawQuery += onlyClusterLevel - if !esVersion.LessThan(elasticsearch.BulkStatsAvailableVersion) { - u.RawQuery += allowClosedIndices - } + u.RawQuery += nodeStatsParameters return u.String(), nil } diff --git a/metricbeat/module/elasticsearch/index_summary/index_summary_test.go b/metricbeat/module/elasticsearch/index_summary/index_summary_test.go new file mode 100644 index 000000000000..e61d26db4304 --- /dev/null +++ b/metricbeat/module/elasticsearch/index_summary/index_summary_test.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +//go:build !integration + +package index_summary + +import ( + "testing" +) + +func TestGetServicePath(t *testing.T) { + expectedPath := "/_nodes/stats?level=node&filter_path=nodes.*.indices.docs,nodes.*.indices.indexing.index_total,nodes.*.indices.indexing.index_time_in_millis,nodes.*.indices.search.query_total,nodes.*.indices.search.query_time_in_millis,nodes.*.indices.segments.count,nodes.*.indices.segments.memory_in_bytes,nodes.*.indices.store.size_in_bytes,nodes.*.indices.store.total_data_set_size_in_bytes" + path, err := getServicePath() + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if path != expectedPath { + t.Errorf("expected path %q, got %q", expectedPath, path) + } +} diff --git a/metricbeat/module/elasticsearch/testing.go b/metricbeat/module/elasticsearch/testing.go index 7ade81649e85..84d95a09130c 100644 --- a/metricbeat/module/elasticsearch/testing.go +++ b/metricbeat/module/elasticsearch/testing.go @@ -20,10 +20,14 @@ package elasticsearch import ( - "io/ioutil" + "encoding/json" + "fmt" + "os" "path/filepath" "testing" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "github.com/elastic/beats/v7/metricbeat/helper" @@ -43,7 +47,7 @@ func TestMapper(t *testing.T, glob string, mapper func(mb.ReporterV2, []byte) er for _, f := range files { t.Run(f, func(t *testing.T) { - input, err := ioutil.ReadFile(f) + input, err := os.ReadFile(f) require.NoError(t, err) reporter := &mbtest.CapturingReporterV2{} @@ -60,7 +64,7 @@ func TestMapperWithInfo(t *testing.T, glob string, mapper func(mb.ReporterV2, In files, err := filepath.Glob(glob) require.NoError(t, err) // Makes sure glob matches at least 1 file - require.True(t, len(files) > 0) + require.True(t, len(files) > 0, "Glob should match at least one file") info := Info{ ClusterID: "1234", @@ -69,18 +73,85 @@ func TestMapperWithInfo(t *testing.T, glob string, mapper func(mb.ReporterV2, In for _, f := range files { t.Run(f, func(t *testing.T) { - input, err := ioutil.ReadFile(f) + input, err := os.ReadFile(f) require.NoError(t, err) reporter := &mbtest.CapturingReporterV2{} err = mapper(reporter, info, input, true) require.NoError(t, err) + require.True(t, len(reporter.GetEvents()) >= 1) require.Equal(t, 0, len(reporter.GetErrors())) }) } } +func TestMapperWithExpectedEvents( + t *testing.T, + inputPath string, + expectedFiles []string, + info Info, + isXPack bool, + mapper func(mb.ReporterV2, Info, []byte, bool) error, +) { + input, err := os.ReadFile(inputPath) + require.NoError(t, err) + + reporter := &mbtest.CapturingReporterV2{} + err = mapper(reporter, info, input, isXPack) + require.NoError(t, err) + + events := reporter.GetEvents() + + expected := loadExpectedEventsFromFiles(t, expectedFiles) + require.Equal(t, len(expected), len(events), "Number of events mismatch") + + for i, ev := range events { + actualBytes, err := json.Marshal(ev) + require.NoError(t, err) + + var actual map[string]interface{} + err = json.Unmarshal(actualBytes, &actual) + require.NoError(t, err) + + assert.Equal(t, expected[i], actual, fmt.Sprintf("Mismatch in event #%d", i)) + } +} + +func TestMapperExpectingError( + t *testing.T, + inputPath string, + info Info, + isXPack bool, + errorMessage string, + mapper func(mb.ReporterV2, Info, []byte, bool) error, +) { + input, err := os.ReadFile(inputPath) + require.NoError(t, err) + + reporter := &mbtest.CapturingReporterV2{} + err = mapper(reporter, info, input, isXPack) + require.ErrorContains(t, err, errorMessage) + + events := reporter.GetEvents() + require.Equal(t, 0, len(events), "Number of events mismatch") +} + +func loadExpectedEventsFromFiles(t *testing.T, files []string) []map[string]interface{} { + expected := make([]map[string]interface{}, 0, len(files)) + for _, f := range files { + content, err := os.ReadFile(f) + require.NoError(t, err) + + var ev map[string]interface{} + err = json.Unmarshal(content, &ev) + require.NoError(t, err) + + expected = append(expected, ev) + } + return expected +} + // TestMapperWithMetricSetAndInfo tests mapping methods with Info fields func TestMapperWithMetricSetAndInfo(t *testing.T, glob string, ms MetricSetAPI, mapper func(mb.ReporterV2, MetricSetAPI, Info, []byte, bool) error) { files, err := filepath.Glob(glob) @@ -95,7 +166,7 @@ func TestMapperWithMetricSetAndInfo(t *testing.T, glob string, ms MetricSetAPI, for _, f := range files { t.Run(f, func(t *testing.T) { - input, err := ioutil.ReadFile(f) + input, err := os.ReadFile(f) require.NoError(t, err) reporter := &mbtest.CapturingReporterV2{} @@ -127,7 +198,7 @@ func TestMapperWithHttpHelper(t *testing.T, glob string, httpClient *helper.HTTP for _, f := range files { t.Run(f, func(t *testing.T) { - input, err := ioutil.ReadFile(f) + input, err := os.ReadFile(f) require.NoError(t, err) reporter := &mbtest.CapturingReporterV2{} From a93e2c664dfdb39253d6e836b0f97da587d2a429 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:28:18 +0200 Subject: [PATCH 23/45] chore: bump github.com/prometheus/prometheus to v0.304.1 (#45159) (#45179) * [chore] bump github.com/prometheus/prometheus to v0.304.1 * make notice (cherry picked from commit 621c6c3ea4d156fe46f1c928714fe69794a15cb9) # Conflicts: # go.mod # go.sum Co-authored-by: Andrzej Stencel --- NOTICE.txt | 96 +++++++++++----------- go.mod | 35 ++++---- go.sum | 97 +++++++++++------------ metricbeat/helper/prometheus/textparse.go | 9 +-- 4 files changed, 113 insertions(+), 124 deletions(-) diff --git a/NOTICE.txt b/NOTICE.txt index bcc94eafa022..4ddcaa98220a 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -1742,11 +1742,11 @@ SOFTWARE. -------------------------------------------------------------------------------- Dependency : github.com/Azure/azure-sdk-for-go/sdk/azcore -Version: v1.17.0 +Version: v1.18.0 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/azcore@v1.17.0/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/azcore@v1.18.0/LICENSE.txt: MIT License @@ -1773,11 +1773,11 @@ SOFTWARE -------------------------------------------------------------------------------- Dependency : github.com/Azure/azure-sdk-for-go/sdk/azidentity -Version: v1.8.2 +Version: v1.9.0 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/azidentity@v1.8.2/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/azidentity@v1.9.0/LICENSE.txt: MIT License @@ -16477,15 +16477,15 @@ SOFTWARE. -------------------------------------------------------------------------------- Dependency : github.com/go-resty/resty/v2 -Version: v2.13.1 +Version: v2.16.5 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/go-resty/resty/v2@v2.13.1/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/go-resty/resty/v2@v2.16.5/LICENSE: The MIT License (MIT) -Copyright (c) 2015-2023 Jeevanandam M., https://myjeeva.com +Copyright (c) 2015-2024 Jeevanandam M., https://myjeeva.com Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -18171,11 +18171,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : github.com/googleapis/gax-go/v2 -Version: v2.14.0 +Version: v2.14.1 Licence type (autodetected): BSD-3-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/googleapis/gax-go/v2@v2.14.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/googleapis/gax-go/v2@v2.14.1/LICENSE: Copyright 2016, Google Inc. All rights reserved. @@ -19304,11 +19304,11 @@ Exhibit B - "Incompatible With Secondary Licenses" Notice -------------------------------------------------------------------------------- Dependency : github.com/hashicorp/nomad/api -Version: v0.0.0-20240717122358-3d93bd3778f3 +Version: v0.0.0-20241218080744-e3ac00f30eec Licence type (autodetected): MPL-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/hashicorp/nomad/api@v0.0.0-20240717122358-3d93bd3778f3/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/hashicorp/nomad/api@v0.0.0-20241218080744-e3ac00f30eec/LICENSE: Copyright (c) 2015 HashiCorp, Inc. @@ -20894,11 +20894,11 @@ Contents of probable licence file $GOMODCACHE/github.com/microsoft/wmi@v0.25.1/L -------------------------------------------------------------------------------- Dependency : github.com/miekg/dns -Version: v1.1.62 +Version: v1.1.65 Licence type (autodetected): BSD -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/miekg/dns@v1.1.62/COPYRIGHT: +Contents of probable licence file $GOMODCACHE/github.com/miekg/dns@v1.1.65/COPYRIGHT: Copyright 2009 The Go Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. @@ -22387,11 +22387,11 @@ Contents of probable licence file $GOMODCACHE/github.com/prometheus/procfs@v0.16 -------------------------------------------------------------------------------- Dependency : github.com/prometheus/prometheus -Version: v0.300.1 +Version: v0.304.1 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/prometheus/prometheus@v0.300.1/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/prometheus/prometheus@v0.304.1/LICENSE: Apache License Version 2.0, January 2004 @@ -27281,11 +27281,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : golang.org/x/exp -Version: v0.0.0-20241108190413-2d47ceb2692f +Version: v0.0.0-20250106191152-7588d65b2ba8 Licence type (autodetected): BSD-3-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/golang.org/x/exp@v0.0.0-20241108190413-2d47ceb2692f/LICENSE: +Contents of probable licence file $GOMODCACHE/golang.org/x/exp@v0.0.0-20250106191152-7588d65b2ba8/LICENSE: Copyright 2009 The Go Authors. @@ -27577,11 +27577,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : golang.org/x/time -Version: v0.8.0 +Version: v0.11.0 Licence type (autodetected): BSD-3-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/golang.org/x/time@v0.8.0/LICENSE: +Contents of probable licence file $GOMODCACHE/golang.org/x/time@v0.11.0/LICENSE: Copyright 2009 The Go Authors. @@ -27651,11 +27651,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : google.golang.org/api -Version: v0.214.0 +Version: v0.230.0 Licence type (autodetected): BSD-3-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/google.golang.org/api@v0.214.0/LICENSE: +Contents of probable licence file $GOMODCACHE/google.golang.org/api@v0.230.0/LICENSE: Copyright (c) 2011 Google Inc. All rights reserved. @@ -30059,11 +30059,11 @@ Contents of probable licence file $GOMODCACHE/cel.dev/expr@v0.23.1/LICENSE: -------------------------------------------------------------------------------- Dependency : cloud.google.com/go/auth -Version: v0.13.0 +Version: v0.16.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/cloud.google.com/go/auth@v0.13.0/LICENSE: +Contents of probable licence file $GOMODCACHE/cloud.google.com/go/auth@v0.16.0/LICENSE: Apache License @@ -30271,11 +30271,11 @@ Contents of probable licence file $GOMODCACHE/cloud.google.com/go/auth@v0.13.0/L -------------------------------------------------------------------------------- Dependency : cloud.google.com/go/auth/oauth2adapt -Version: v0.2.6 +Version: v0.2.8 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/cloud.google.com/go/auth/oauth2adapt@v0.2.6/LICENSE: +Contents of probable licence file $GOMODCACHE/cloud.google.com/go/auth/oauth2adapt@v0.2.8/LICENSE: Apache License @@ -32727,11 +32727,11 @@ SOFTWARE -------------------------------------------------------------------------------- Dependency : github.com/Azure/azure-sdk-for-go/sdk/internal -Version: v1.10.0 +Version: v1.11.1 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/internal@v1.10.0/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/!azure/azure-sdk-for-go/sdk/internal@v1.11.1/LICENSE.txt: MIT License @@ -34873,11 +34873,11 @@ Contents of probable licence file $GOMODCACHE/github.com/!azure!a!d/microsoft-au -------------------------------------------------------------------------------- Dependency : github.com/AzureAD/microsoft-authentication-library-for-go -Version: v1.4.0 +Version: v1.4.2 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/!azure!a!d/microsoft-authentication-library-for-go@v1.4.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/!azure!a!d/microsoft-authentication-library-for-go@v1.4.2/LICENSE: MIT License @@ -36017,11 +36017,11 @@ THE SOFTWARE. -------------------------------------------------------------------------------- Dependency : github.com/alecthomas/units -Version: v0.0.0-20240626203959-61d1e3462e30 +Version: v0.0.0-20240927000941-0f3dac36c52b Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/alecthomas/units@v0.0.0-20240626203959-61d1e3462e30/COPYING: +Contents of probable licence file $GOMODCACHE/github.com/alecthomas/units@v0.0.0-20240927000941-0f3dac36c52b/COPYING: Copyright (C) 2014 Alec Thomas @@ -46249,11 +46249,11 @@ Contents of probable licence file $GOMODCACHE/github.com/go-openapi/jsonpointer@ -------------------------------------------------------------------------------- Dependency : github.com/go-openapi/jsonreference -Version: v0.20.4 +Version: v0.21.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/go-openapi/jsonreference@v0.20.4/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/go-openapi/jsonreference@v0.21.0/LICENSE: Apache License @@ -49223,11 +49223,11 @@ Contents of probable licence file $GOMODCACHE/github.com/google/martian/v3@v3.3. -------------------------------------------------------------------------------- Dependency : github.com/google/pprof -Version: v0.0.0-20241029153458-d1b30febd7db +Version: v0.0.0-20241210010833-40e02aabc2ad Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/google/pprof@v0.0.0-20241029153458-d1b30febd7db/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/google/pprof@v0.0.0-20241210010833-40e02aabc2ad/LICENSE: Apache License @@ -49435,11 +49435,11 @@ Contents of probable licence file $GOMODCACHE/github.com/google/pprof@v0.0.0-202 -------------------------------------------------------------------------------- Dependency : github.com/google/s2a-go -Version: v0.1.8 +Version: v0.1.9 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/google/s2a-go@v0.1.8/LICENSE.md: +Contents of probable licence file $GOMODCACHE/github.com/google/s2a-go@v0.1.9/LICENSE.md: Apache License @@ -49896,11 +49896,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : github.com/googleapis/enterprise-certificate-proxy -Version: v0.3.4 +Version: v0.3.6 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/googleapis/enterprise-certificate-proxy@v0.3.4/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/googleapis/enterprise-certificate-proxy@v0.3.6/LICENSE: Apache License @@ -54163,11 +54163,11 @@ OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- Dependency : github.com/keybase/go-keychain -Version: v0.0.0-20231219164618-57a3676c3af6 +Version: v0.0.1 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/keybase/go-keychain@v0.0.0-20231219164618-57a3676c3af6/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/keybase/go-keychain@v0.0.1/LICENSE: The MIT License (MIT) @@ -57982,11 +57982,11 @@ Contents of probable licence file $GOMODCACHE/github.com/oklog/ulid@v1.3.1/LICEN -------------------------------------------------------------------------------- Dependency : github.com/oklog/ulid/v2 -Version: v2.0.2 +Version: v2.1.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/oklog/ulid/v2@v2.0.2/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/oklog/ulid/v2@v2.1.0/LICENSE: Apache License Version 2.0, January 2004 @@ -60111,12 +60111,12 @@ Contents of probable licence file $GOMODCACHE/github.com/prometheus/client_golan -------------------------------------------------------------------------------- -Dependency : github.com/prometheus/common/sigv4 -Version: v0.1.0 +Dependency : github.com/prometheus/sigv4 +Version: v0.1.2 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/prometheus/common/sigv4@v0.1.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/prometheus/sigv4@v0.1.2/LICENSE: Apache License Version 2.0, January 2004 @@ -60323,11 +60323,11 @@ Contents of probable licence file $GOMODCACHE/github.com/prometheus/common/sigv4 -------------------------------------------------------------------------------- Dependency : github.com/redis/go-redis/v9 -Version: v9.7.0 +Version: v9.7.3 Licence type (autodetected): BSD-2-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/redis/go-redis/v9@v9.7.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/redis/go-redis/v9@v9.7.3/LICENSE: Copyright (c) 2013 The github.com/redis/go-redis Authors. All rights reserved. diff --git a/go.mod b/go.mod index c4141970ae8e..aaf287413b92 100644 --- a/go.mod +++ b/go.mod @@ -90,7 +90,7 @@ require ( github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75 github.com/h2non/filetype v1.1.1 github.com/hashicorp/go-retryablehttp v0.7.7 - github.com/hashicorp/nomad/api v0.0.0-20240717122358-3d93bd3778f3 + github.com/hashicorp/nomad/api v0.0.0-20241218080744-e3ac00f30eec github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 github.com/insomniacslk/dhcp v0.0.0-20220119180841-3c283ff8b7dd github.com/jonboulle/clockwork v0.2.2 @@ -99,7 +99,7 @@ require ( github.com/lib/pq v1.10.3 github.com/magefile/mage v1.15.0 github.com/mattn/go-colorable v0.1.13 - github.com/miekg/dns v1.1.62 + github.com/miekg/dns v1.1.65 github.com/mitchellh/gox v1.0.1 github.com/mitchellh/hashstructure v1.1.0 github.com/mitchellh/mapstructure v1.5.0 @@ -131,9 +131,9 @@ require ( golang.org/x/sync v0.15.0 golang.org/x/sys v0.33.0 golang.org/x/text v0.26.0 - golang.org/x/time v0.8.0 + golang.org/x/time v0.11.0 golang.org/x/tools v0.33.0 - google.golang.org/api v0.214.0 + google.golang.org/api v0.230.0 google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 // indirect google.golang.org/grpc v1.73.0 google.golang.org/protobuf v1.36.6 @@ -151,8 +151,8 @@ require ( cloud.google.com/go v0.116.0 cloud.google.com/go/compute v1.29.0 cloud.google.com/go/redis v1.17.2 - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2 + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.9.0 github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs v1.3.1 github.com/Azure/azure-sdk-for-go/sdk/monitor/query/azmetrics v1.1.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/consumption/armconsumption v1.1.0 @@ -188,11 +188,11 @@ require ( github.com/foxcpp/go-mockdns v0.0.0-20201212160233-ede2f9158d15 github.com/go-ldap/ldap/v3 v3.4.6 github.com/go-ole/go-ole v1.2.6 - github.com/go-resty/resty/v2 v2.13.1 + github.com/go-resty/resty/v2 v2.16.5 github.com/gofrs/uuid/v5 v5.2.0 github.com/golang-jwt/jwt/v5 v5.2.2 github.com/google/cel-go v0.25.0 - github.com/googleapis/gax-go/v2 v2.14.0 + github.com/googleapis/gax-go/v2 v2.14.1 github.com/gorilla/handlers v1.5.1 github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.5.0 @@ -207,7 +207,7 @@ require ( github.com/otiai10/copy v1.12.0 github.com/pierrec/lz4/v4 v4.1.22 github.com/pkg/xattr v0.4.9 - github.com/prometheus/prometheus v0.300.1 + github.com/prometheus/prometheus v0.304.1 github.com/shirou/gopsutil/v4 v4.25.5 github.com/teambition/rrule-go v1.8.2 github.com/tklauser/go-sysconf v0.3.12 @@ -229,7 +229,7 @@ require ( go.opentelemetry.io/collector/pdata v1.35.0 go.opentelemetry.io/collector/receiver v1.35.0 go.uber.org/mock v0.5.0 - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f + golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 golang.org/x/term v0.32.0 google.golang.org/genproto/googleapis/api v0.0.0-20250519155744-55703ea1f237 gopkg.in/natefinch/lumberjack.v2 v2.2.1 @@ -239,15 +239,15 @@ require ( require ( aqwari.net/xml v0.0.0-20210331023308-d9421b293817 // indirect cel.dev/expr v0.23.1 // indirect - cloud.google.com/go/auth v0.13.0 // indirect - cloud.google.com/go/auth/oauth2adapt v0.2.6 // indirect + cloud.google.com/go/auth v0.16.0 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect cloud.google.com/go/compute/metadata v0.6.0 // indirect cloud.google.com/go/iam v1.2.2 // indirect cloud.google.com/go/longrunning v0.6.2 // indirect code.cloudfoundry.org/gofileutils v0.0.0-20170111115228-4d0c80011a0f // indirect github.com/Azure/azure-amqp-common-go/v4 v4.2.0 // indirect github.com/Azure/azure-pipeline-go v0.2.3 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect github.com/Azure/go-amqp v1.3.0 // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect github.com/Azure/go-autorest/autorest/adal v0.9.24 // indirect @@ -256,7 +256,7 @@ require ( github.com/Azure/go-autorest/logger v0.2.1 // indirect github.com/Azure/go-autorest/tracing v0.6.0 // indirect github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.4.0 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 // indirect @@ -266,7 +266,6 @@ require ( github.com/apache/arrow/go/v15 v15.0.2 // indirect github.com/apache/thrift v0.20.0 // indirect github.com/armon/go-radix v1.0.0 // indirect - github.com/aws/aws-sdk-go v1.55.7 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 // indirect @@ -317,7 +316,7 @@ require ( github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect - github.com/go-openapi/jsonreference v0.20.4 // indirect + github.com/go-openapi/jsonreference v0.21.0 // indirect github.com/go-openapi/swag v0.23.0 // indirect github.com/go-viper/mapstructure/v2 v2.3.0 // indirect github.com/gobwas/glob v0.2.3 // indirect @@ -332,9 +331,9 @@ require ( github.com/google/go-querystring v1.1.0 // indirect github.com/google/go-tpm v0.9.5 // indirect github.com/google/licenseclassifier v0.0.0-20221004142553-c1ed8fcf4bab // indirect - github.com/google/s2a-go v0.1.8 // 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.4 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect github.com/hashicorp/cronexpr v1.1.2 // indirect diff --git a/go.sum b/go.sum index 4fca85e5f68d..407c50b7c693 100644 --- a/go.sum +++ b/go.sum @@ -6,10 +6,10 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= -cloud.google.com/go/auth v0.13.0 h1:8Fu8TZy167JkW8Tj3q7dIkr2v4cndv41ouecJx0PAHs= -cloud.google.com/go/auth v0.13.0/go.mod h1:COOjD9gwfKNKz+IIduatIhYJQIc0mG3H102r/EMxX6Q= -cloud.google.com/go/auth/oauth2adapt v0.2.6 h1:V6a6XDu2lTwPZWOawrAa9HUK+DB2zfJyTuciBG5hFkU= -cloud.google.com/go/auth/oauth2adapt v0.2.6/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= +cloud.google.com/go/auth v0.16.0 h1:Pd8P1s9WkcrBE2n/PhAwKsdrR35V3Sg2II9B+ndM3CU= +cloud.google.com/go/auth v0.16.0/go.mod h1:1howDHJ5IETh/LwYs3ZxvlkXF48aSqqJUM+5o02dNOI= +cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= +cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= cloud.google.com/go/bigquery v1.65.0 h1:ZZ1EOJMHTYf6R9lhxIXZJic1qBD4/x9loBIS+82moUs= cloud.google.com/go/bigquery v1.65.0/go.mod h1:9WXejQ9s5YkTW4ryDYzKXBooL78u5+akWGXgJqQkY6A= cloud.google.com/go/compute v1.29.0 h1:Lph6d8oPi38NHkOr6S55Nus/Pbbcp37m/J0ohgKAefs= @@ -54,14 +54,14 @@ github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVt github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k= github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU= github.com/Azure/azure-sdk-for-go v68.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 h1:g0EZJwz7xkXQiZAI5xi9f3WWFYBlX1CPTrR+NDToRkQ= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0/go.mod h1:XCW7KnZet0Opnr7HccfUw1PLc4CjHqpcaxW8DHklNkQ= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2 h1:F0gBpfdPLGsw+nsgk6aqqkZS1jiixa5WwFe3fk/T3Ys= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2/go.mod h1:SqINnQ9lVVdRlyC8cd1lCI0SdX4n2paeABd2K8ggfnE= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.9.0 h1:OVoM452qUFBrX+URdH3VpR299ma4kfom0yB0URYky9g= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.9.0/go.mod h1:kUjrAo8bgEwLeZ/CmHqNl3Z/kPm7y6FKfxxK0izYUg4= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 h1:ywEEhmNahHBihViHepv3xPBn1663uRv2t2q/ESv9seY= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0/go.mod h1:iZDifYGJTIgIIkYRNWPENUnqx6bJ2xnSDFI2tjwZNuY= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs v1.3.1 h1:4mb4mIE2yDkBqvlmZr/xhZ/e0+Bkht6C4wbipLHnh3k= github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs v1.3.1/go.mod h1:QuMSx40eszn65tKXrzlWuGFRmZVCbloLXGXqct1RIoI= github.com/Azure/azure-sdk-for-go/sdk/monitor/query/azmetrics v1.1.0 h1:X/C/tY3dxwsuFnSNArmTWKr0O6P59SRY6VsUcIkefEw= @@ -123,8 +123,8 @@ github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 h1:mFRzDkZVAjdal+ github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.0 h1:MUkXAnvvDHgvPItl0nBj0hgk0f7hnnQbGm0h0+YxbN4= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.0/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= +github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 h1:ErKg/3iS1AKcTkf3yixlZ54f9U1rljCkQyEXWUnIUxc= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0/go.mod h1:yAZHSGnqScoU556rBOVkwLze6WP5N+U11RHuWaGVxwY= @@ -159,8 +159,8 @@ github.com/akavel/rsrc v0.8.0 h1:zjWn7ukO9Kc5Q62DOJCcxGpXC18RawVtYAGdz2aLlfw= github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20240626203959-61d1e3462e30 h1:t3eaIm0rUkzbrIewtiFmMK5RXHej2XnoXNhxVsAYUfg= -github.com/alecthomas/units v0.0.0-20240626203959-61d1e3462e30/go.mod h1:fvzegU4vN3H1qMT+8wDmzjAcDONcgo2/SZ/TyfdUOFs= +github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b h1:mimo19zliBX/vSQ6PWWSL9lK8qwHozUj03+zLoEB8O0= +github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b/go.mod h1:fvzegU4vN3H1qMT+8wDmzjAcDONcgo2/SZ/TyfdUOFs= github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74 h1:Kk6a4nehpJ3UuJRqlA3JxYxBZEqCeOmATOvrbT4p9RA= github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74/go.mod h1:cEWa1LVoE5KvSD9ONXsZrj0z6KqySlCCNKHlLzbqAt4= github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= @@ -488,14 +488,14 @@ github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= -github.com/go-openapi/jsonreference v0.20.4 h1:bKlDxQxQJgwpUSgOENiMPzCTBVuc7vTdXSSgNeAhojU= -github.com/go-openapi/jsonreference v0.20.4/go.mod h1:5pZJyJP2MnYCpoeoMAql78cCHauHj0V9Lhc506VOpw4= +github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= +github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI= github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow= -github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= -github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= +github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM= +github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= github.com/go-sourcemap/sourcemap v2.1.2+incompatible h1:0b/xya7BKGhXuqFESKM4oIiRo9WOt2ebz7KxfreD6ug= github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= @@ -593,10 +593,10 @@ github.com/google/licenseclassifier v0.0.0-20221004142553-c1ed8fcf4bab/go.mod h1 github.com/google/licenseclassifier/v2 v2.0.0-alpha.1/go.mod h1:YAgBGGTeNDMU+WfIgaFvjZe4rudym4f6nIn8ZH5X+VM= github.com/google/martian/v3 v3.3.3 h1:DIhPTQrbPkgs2yJYdXU/eNACCG5DVQjySNRNlflZ9Fc= github.com/google/martian/v3 v3.3.3/go.mod h1:iEPrYcgCF7jA9OtScMFQyAlZZ4YXTKEtJ1E6RWzmBA0= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= -github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= -github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= +github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad h1:a6HEuzUHeKH6hwfN/ZoQgRgVIWFJljSWa/zetS2WTvg= +github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= +github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -604,10 +604,10 @@ github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.3.1/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.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= -github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= -github.com/googleapis/gax-go/v2 v2.14.0 h1:f+jMrjBPl+DL9nI4IQzLUxMq7XrAqFYB7hBPqMNIe8o= -github.com/googleapis/gax-go/v2 v2.14.0/go.mod h1:lhBCnjdLrWRaPvLWhmc8IS24m9mr07qSYnHncrgo+zk= +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/gax-go/v2 v2.14.1 h1:hb0FFeiPaQskmvakKu5EbCbpntQn48jyHuvrkurSS/Q= +github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75 h1:f0n1xnMSmBLzVfsMMvriDyA75NB/oBgILX2GcHXIQzY= @@ -654,8 +654,8 @@ github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKe github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= -github.com/hashicorp/nomad/api v0.0.0-20240717122358-3d93bd3778f3 h1:fgVfQ4AC1avVOnu2cfms8VAiD8lUq3vWI8mTocOXN/w= -github.com/hashicorp/nomad/api v0.0.0-20240717122358-3d93bd3778f3/go.mod h1:svtxn6QnrQ69P23VvIWMR34tg3vmwLz4UdUzm1dSCgE= +github.com/hashicorp/nomad/api v0.0.0-20241218080744-e3ac00f30eec h1:+YBzb977VrmffaCX/OBm17dEVJUcWn5dW+eqs3aIJ/A= +github.com/hashicorp/nomad/api v0.0.0-20241218080744-e3ac00f30eec/go.mod h1:svtxn6QnrQ69P23VvIWMR34tg3vmwLz4UdUzm1dSCgE= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95 h1:S4qyfL2sEm5Budr4KVMyEniCy+PbS55651I/a+Kn/NQ= github.com/hectane/go-acl v0.0.0-20190604041725-da78bae5fc95/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= @@ -703,8 +703,8 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= -github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6 h1:IsMZxCuZqKuao2vNdfD82fjjgPLfyHLpR41Z88viRWs= -github.com/keybase/go-keychain v0.0.0-20231219164618-57a3676c3af6/go.mod h1:3VeWNIJaW+O5xpRQbPp0Ybqu1vJd/pm7s2F473HRrkw= +github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU= +github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= @@ -768,8 +768,8 @@ github.com/microsoft/go-mssqldb v1.8.2/go.mod h1:vp38dT33FGfVotRiTmDo3bFyaHq+p3L github.com/microsoft/wmi v0.25.1 h1:sQv9hCEHtW5K6yEVL78T6XGRMGxk4aTpcJwCiB5rLN0= github.com/microsoft/wmi v0.25.1/go.mod h1:1zbdSF0A+5OwTUII5p3hN7/K6KF2m3o27pSG6Y51VU8= github.com/miekg/dns v1.1.22/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= -github.com/miekg/dns v1.1.62 h1:cN8OuEF1/x5Rq6Np+h1epln8OiyPWV+lROx9LxcGgIQ= -github.com/miekg/dns v1.1.62/go.mod h1:mvDlcItzm+br7MToIKqkglaGhlFMHJ9DTNNWONWXbNQ= +github.com/miekg/dns v1.1.65 h1:0+tIPHzUW0GCge7IiK3guGP57VAw7hoPDfApjkMD1Fc= +github.com/miekg/dns v1.1.65/go.mod h1:Dzw9769uoKVaLuODMDZz9M6ynFU6Em65csPuoi8G0ck= github.com/mileusna/useragent v1.3.4 h1:MiuRRuvGjEie1+yZHO88UBYg8YBC/ddF6T7F56i3PCk= github.com/mileusna/useragent v1.3.4/go.mod h1:3d8TOmwL/5I8pJjyVDteHtgDGcefrFUX4ccGOMKNYYc= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= @@ -826,8 +826,9 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= -github.com/oklog/ulid/v2 v2.0.2 h1:r4fFzBm+bv0wNKNh5eXTwU7i85y5x+uwkxCUTNVQqLc= github.com/oklog/ulid/v2 v2.0.2/go.mod h1:mtBL0Qe/0HAx6/a4Z30qxVIAL1eQDweXq5lxOEiwQ68= +github.com/oklog/ulid/v2 v2.1.0 h1:+9lhoxAP56we25tyYETBBY1YLA2SaoLvUFgrP2miPJU= +github.com/oklog/ulid/v2 v2.1.0/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0 h1:Ix8l273rp3QzYgXSR+c8d1fTG7UPgYkOSELPhiY/YGw= @@ -893,19 +894,19 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.65.0 h1:QDwzd+G1twt//Kwj/Ww6E9FQq1iVMmODnILtW1t2VzE= github.com/prometheus/common v0.65.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= -github.com/prometheus/common/sigv4 v0.1.0 h1:qoVebwtwwEhS85Czm2dSROY5fTo2PAPEVdDeppTwGX4= -github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57JrvHu9k5YwTjsNtI= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/prometheus/prometheus v0.300.1 h1:9KKcTTq80gkzmXW0Et/QCFSrBPgmwiS3Hlcxc6o8KlM= -github.com/prometheus/prometheus v0.300.1/go.mod h1:gtTPY/XVyCdqqnjA3NzDMb0/nc5H9hOu1RMame+gHyM= +github.com/prometheus/prometheus v0.304.1 h1:e4kpJMb2Vh/PcR6LInake+ofcvFYHT+bCfmBvOkaZbY= +github.com/prometheus/prometheus v0.304.1/go.mod h1:ioGx2SGKTY+fLnJSQCdTHqARVldGNS8OlIe3kvp98so= +github.com/prometheus/sigv4 v0.1.2 h1:R7570f8AoM5YnTUPFm3mjZH5q2k4D+I/phCWvZ4PXG8= +github.com/prometheus/sigv4 v0.1.2/go.mod h1:GF9fwrvLgkQwDdQ5BXeV9XUSCH/IPNqzvAoaohfjqMU= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/redis/go-redis/v9 v9.7.0 h1:HhLSs+B6O021gwzl+locl0zEDnyNkxMtf/Z3NNBMa9E= -github.com/redis/go-redis/v9 v9.7.0/go.mod h1:f6zhXITC7JUJIlPEiBOTXxJgPLdZcA93GewI7inzyWw= +github.com/redis/go-redis/v9 v9.7.3 h1:YpPyAayJV+XErNsatSElgRZZVCwXX9QzkKYNvO7x0wM= +github.com/redis/go-redis/v9 v9.7.3/go.mod h1:bGUrSggJ9X9GUmZpZNEOQKaANxSGgOEBRltRTZHSvrA= github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= @@ -1242,12 +1243,11 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM= golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= +golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -1289,7 +1289,6 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw= golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1351,7 +1350,6 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1362,7 +1360,6 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= -golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1375,12 +1372,10 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= -golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= +golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -1408,8 +1403,8 @@ golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhS golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= -google.golang.org/api v0.214.0 h1:h2Gkq07OYi6kusGOaT/9rnNljuXmqPnaig7WGPmKbwA= -google.golang.org/api v0.214.0/go.mod h1:bYPpLG8AyeMWwDU6NXoB00xC0DFkikVvd5MfwoxjLqE= +google.golang.org/api v0.230.0 h1:2u1hni3E+UXAXrONrrkfWpi/V6cyKVAbfGVeGtC3OxM= +google.golang.org/api v0.230.0/go.mod h1:aqvtoMk7YkiXx+6U12arQFExiRV9D/ekvMCwCd/TksQ= 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/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= diff --git a/metricbeat/helper/prometheus/textparse.go b/metricbeat/helper/prometheus/textparse.go index 3301394c5f9c..d823a9eec52e 100644 --- a/metricbeat/helper/prometheus/textparse.go +++ b/metricbeat/helper/prometheus/textparse.go @@ -567,12 +567,8 @@ func ParseMetricFamilies(b []byte, contentType string, ts time.Time, logger *log t := defTime _, tp, v := parser.Series() - var ( - lset labels.Labels - mets string - ) - - mets = parser.Metric(&lset) + var lset labels.Labels + parser.Labels(&lset) if !lset.Has(labels.MetricName) { // missing metric name from labels.MetricName, skip. @@ -580,7 +576,6 @@ func ParseMetricFamilies(b []byte, contentType string, ts time.Time, logger *log } var lbls strings.Builder - lbls.Grow(len(mets)) var labelPairs = []*labels.Label{} var qv string // value of le or quantile label for _, l := range lset.Copy() { From 24f211f873a81a8f6c3f0d8aab9ef695a2901273 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 7 Jul 2025 19:08:09 +0000 Subject: [PATCH 24/45] [updatecli] update elastic stack version for testing 9.1.0-728f6093 (#45196) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: Update snapshot.yml Made with ❤️️ by updatecli * chore: Update snapshot.yml Made with ❤️️ by updatecli --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- testing/environments/snapshot.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/testing/environments/snapshot.yml b/testing/environments/snapshot.yml index 0b4646138072..32ffc7089048 100644 --- a/testing/environments/snapshot.yml +++ b/testing/environments/snapshot.yml @@ -2,7 +2,7 @@ services: elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:9.1.0-2ea4374b-SNAPSHOT + image: docker.elastic.co/elasticsearch/elasticsearch:9.1.0-728f6093-SNAPSHOT # When extend is used it merges healthcheck.tests, see: # https://github.com/docker/compose/issues/8962 # healthcheck: @@ -37,7 +37,7 @@ services: - "./docker/elasticsearch/users_roles:/usr/share/elasticsearch/config/users_roles" logstash: - image: docker.elastic.co/logstash/logstash:9.1.0-2ea4374b-SNAPSHOT + image: docker.elastic.co/logstash/logstash:9.1.0-728f6093-SNAPSHOT healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9600/_node/stats"] retries: 600 @@ -50,7 +50,7 @@ services: - 5055:5055 kibana: - image: docker.elastic.co/kibana/kibana:9.1.0-2ea4374b-SNAPSHOT + image: docker.elastic.co/kibana/kibana:9.1.0-728f6093-SNAPSHOT environment: - "ELASTICSEARCH_USERNAME=kibana_system_user" - "ELASTICSEARCH_PASSWORD=testing" From 68ae9e4aac72185c6576d6107a6bc2b6794b6eba Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 8 Jul 2025 09:05:07 +0200 Subject: [PATCH 25/45] codeowners: update .github folder (#45186) (#45211) For some reason the precedence is not correct here :/ (cherry picked from commit 77cd2393e723daf5d935eb4d0da5323c152cd767) Co-authored-by: Victor Martinez --- .github/CODEOWNERS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 0499af5319f8..51a34279ffbe 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -22,7 +22,8 @@ CHANGELOG* # Sub-directories/files ownership. Remember that order matters; the last matching pattern takes the most precedence. /.buildkite @elastic/observablt-ci @elastic/observablt-ci-contractors /.ci/ @elastic/elastic-agent-data-plane @elastic/observablt-ci @elastic/observablt-ci-contractors -/.github/ @elastic/observablt-ci @elastic/observablt-ci-contractors +/.github/actions @elastic/observablt-ci @elastic/observablt-ci-contractors +/.github/workflows @elastic/observablt-ci @elastic/observablt-ci-contractors /.github/CODEOWNERS @elastic/beats-tech-leads /auditbeat/ @elastic/sec-linux-platform /deploy/ @elastic/elastic-agent-data-plane From 0d4b607e4256306ebf18e567dcb21863633e3f49 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 8 Jul 2025 10:57:09 +0200 Subject: [PATCH 26/45] Fix EvtVarTypeAnsiString conversion in winlogbeat (#44026) (#45231) * Naive first fix * Fix import order * Update strings_windows.go * Update CHANGELOG.next.asciidoc --------- (cherry picked from commit 6e1d4ea57a9e8ea6ce352e2df0eb2c67e7c4d6ea) Co-authored-by: Altair Co-authored-by: Marc Guasch --- CHANGELOG.next.asciidoc | 1 + winlogbeat/sys/strings_windows.go | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index b3712cebfa19..a0d6239609fa 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -302,6 +302,7 @@ otherwise no tag is added. {issue}42208[42208] {pull}42403[42403] - Reset EventLog if error EOF is encountered. {pull}42826[42826] - Implement backoff on error retrial. {pull}42826[42826] - Fix boolean key in security pipelines and sync pipelines with integration. {pull}43027[43027] +- Fix EvtVarTypeAnsiString conversion {pull}44026[44026] *Elastic Logging Plugin* diff --git a/winlogbeat/sys/strings_windows.go b/winlogbeat/sys/strings_windows.go index 0ce8b09f5d63..bdfa4c897c68 100644 --- a/winlogbeat/sys/strings_windows.go +++ b/winlogbeat/sys/strings_windows.go @@ -18,6 +18,7 @@ package sys import ( + "bytes" "sync" "golang.org/x/sys/windows" @@ -48,6 +49,8 @@ func initANSIDecoder() *encoding.Decoder { } func ANSIBytesToString(enc []byte) (string, error) { - out, err := getCachedANSIDecoder().Bytes(enc) + // Trim to the null terminator + prefix, _, _ := bytes.Cut(enc, []byte("\x00")) + out, err := getCachedANSIDecoder().Bytes(prefix) return string(out), err } From b4246737f29f2c10ec75f2f2bc1fe75fcdddc919 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 8 Jul 2025 17:01:08 +0000 Subject: [PATCH 27/45] chore: Update snapshot.yml (#45236) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made with ❤️️ by updatecli Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- testing/environments/snapshot.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/testing/environments/snapshot.yml b/testing/environments/snapshot.yml index 32ffc7089048..1a98d24f6d66 100644 --- a/testing/environments/snapshot.yml +++ b/testing/environments/snapshot.yml @@ -2,7 +2,7 @@ services: elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:9.1.0-728f6093-SNAPSHOT + image: docker.elastic.co/elasticsearch/elasticsearch:9.1.0-72f08610-SNAPSHOT # When extend is used it merges healthcheck.tests, see: # https://github.com/docker/compose/issues/8962 # healthcheck: @@ -37,7 +37,7 @@ services: - "./docker/elasticsearch/users_roles:/usr/share/elasticsearch/config/users_roles" logstash: - image: docker.elastic.co/logstash/logstash:9.1.0-728f6093-SNAPSHOT + image: docker.elastic.co/logstash/logstash:9.1.0-72f08610-SNAPSHOT healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9600/_node/stats"] retries: 600 @@ -50,7 +50,7 @@ services: - 5055:5055 kibana: - image: docker.elastic.co/kibana/kibana:9.1.0-728f6093-SNAPSHOT + image: docker.elastic.co/kibana/kibana:9.1.0-72f08610-SNAPSHOT environment: - "ELASTICSEARCH_USERNAME=kibana_system_user" - "ELASTICSEARCH_PASSWORD=testing" From 860ace2d7f0511d029e202ce17c09b82fc9a539d Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 8 Jul 2025 17:12:43 +0000 Subject: [PATCH 28/45] otelmap: handle conversion of struct types (#45234) (#45240) The otelmap package does not handle struct types properly, the convertion of a struct results in a string error. To follow the libbeat behavior, handle struct types the same way, by serializing to json and back, resulting in a map of keys and values. (cherry picked from commit 2685f9c8d6b56d934ff29da93a86f042778d1adf) Co-authored-by: Mauri de Souza Meneguzzo --- libbeat/otelbeat/otelmap/otelmap.go | 38 +++++++++++++++++++- libbeat/otelbeat/otelmap/otelmap_test.go | 44 +++++++++++++++++------- 2 files changed, 69 insertions(+), 13 deletions(-) diff --git a/libbeat/otelbeat/otelmap/otelmap.go b/libbeat/otelbeat/otelmap/otelmap.go index 50487d66a56c..45e2e913f4e5 100644 --- a/libbeat/otelbeat/otelmap/otelmap.go +++ b/libbeat/otelbeat/otelmap/otelmap.go @@ -19,6 +19,8 @@ package otelmap import ( + "encoding" + "encoding/json" "fmt" "reflect" "time" @@ -86,6 +88,13 @@ func ConvertNonPrimitive[T mapstrOrMap](m T) { s = append(s, time.Time(i).UTC().Format("2006-01-02T15:04:05.000Z")) } m[key] = s + case encoding.TextMarshaler: + text, err := x.MarshalText() + if err != nil { + m[key] = fmt.Sprintf("error converting %T to string: %s", x, err) + continue + } + m[key] = string(text) case []bool, []string, []float32, []float64, []int, []int8, []int16, []int32, []int64, []uint, []uint8, []uint16, []uint32, []uint64: ref := reflect.ValueOf(x) @@ -97,6 +106,17 @@ func ConvertNonPrimitive[T mapstrOrMap](m T) { case nil, string, int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, float32, float64, bool: default: ref := reflect.ValueOf(x) + if ref.Kind() == reflect.Struct { + var im map[string]any + err := marshalUnmarshal(x, &im) + if err != nil { + m[key] = fmt.Sprintf("error encoding struct to map: %s", err) + continue + } + ConvertNonPrimitive(im) + m[key] = im + break + } if ref.Kind() == reflect.Slice || ref.Kind() == reflect.Array { s := make([]any, ref.Len()) for i := 0; i < ref.Len(); i++ { @@ -114,8 +134,24 @@ func ConvertNonPrimitive[T mapstrOrMap](m T) { m[key] = s break // we figured out the type, so we don't need the unknown type case } - m[key] = fmt.Sprintf("unknown type: %T", x) } } } + +// marshalUnmarshal converts an interface to a mapstr.M by marshalling to JSON +// then unmarshalling the JSON object into a mapstr.M. +// Copied from libbeat/common/event.go +func marshalUnmarshal(in interface{}, out interface{}) error { + // Decode and encode as JSON to normalize the types. + marshaled, err := json.Marshal(in) + if err != nil { + return fmt.Errorf("error marshalling to JSON: %w", err) + } + err = json.Unmarshal(marshaled, out) + if err != nil { + return fmt.Errorf("error unmarshalling from JSON: %w", err) + } + + return nil +} diff --git a/libbeat/otelbeat/otelmap/otelmap_test.go b/libbeat/otelbeat/otelmap/otelmap_test.go index 5d2b19bd35fa..b7cd618edfa3 100644 --- a/libbeat/otelbeat/otelmap/otelmap_test.go +++ b/libbeat/otelbeat/otelmap/otelmap_test.go @@ -273,12 +273,28 @@ func TestFromMapstrSliceCommonTime(t *testing.T) { assert.Equal(t, want, inputMap) } +type structWithTextMarshaler struct { + Value string `json:"value"` +} + +func (s *structWithTextMarshaler) MarshalText() ([]byte, error) { + return []byte("marshalled:" + s.Value), nil +} + func TestFromMapstrWithNestedData(t *testing.T) { input := mapstr.M{ "any_array": [3]any{1, "string", 3}, "any_slice": []any{5.1, 6.2}, "bool_array": [2]bool{true, false}, "bool_slice": []bool{false, true}, + "struct": struct { + Value string `json:"value"` + }{ + Value: "string", + }, + "struct_with_text_marshaler": &structWithTextMarshaler{ + Value: "string", + }, "inner": []mapstr.M{ { "inner_int": 42, @@ -287,6 +303,14 @@ func TestFromMapstrWithNestedData(t *testing.T) { {"string": "string"}, {"number": 12.3}, }, + "inner_struct": struct { + Value string `json:"value"` + }{ + Value: "string", + }, + "inner_struct_with_text_marshaler": &structWithTextMarshaler{ + Value: "string", + }, }, { "inner_int": 43, @@ -306,6 +330,10 @@ func TestFromMapstrWithNestedData(t *testing.T) { "any_slice": []any{5.1, 6.2}, "bool_array": []any{true, false}, "bool_slice": []any{false, true}, + "struct": map[string]any{ + "value": "string", + }, + "struct_with_text_marshaler": "marshalled:string", "inner": []any{ map[string]any{ "inner_int": 42, @@ -314,6 +342,10 @@ func TestFromMapstrWithNestedData(t *testing.T) { map[string]any{"string": "string"}, map[string]any{"number": 12.3}, }, + "inner_struct": map[string]any{ + "value": "string", + }, + "inner_struct_with_text_marshaler": "marshalled:string", }, map[string]any{ "inner_int": 43, @@ -363,24 +395,12 @@ func TestToMapstr(t *testing.T) { assert.Equal(t, want, got) } -type unknown struct { - Value int `json:"value"` -} - func TestUnknownType(t *testing.T) { inputMap := mapstr.M{ - "unknown": unknown{42}, - "nested": mapstr.M{ - "unknown": unknown{43}, - }, "unknown_map": map[string]int{"key": 42}, } expected := mapstr.M{ - "unknown": "unknown type: otelmap.unknown", - "nested": map[string]any{ - "unknown": "unknown type: otelmap.unknown", - }, "unknown_map": "unknown type: map[string]int", } From c468fab0448e1fa51ae3b8a4844bd35de93e4c04 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 9 Jul 2025 06:56:13 +0200 Subject: [PATCH 29/45] [Metricbeat] Fix CPU/disk/network visualizations in EC2 overview dashboard (#45117) (#45250) Updates the CPU/disk/network metric field names in the "[Metricbeat AWS] EC2 Overview" dashboard. The "[Metricbeat AWS] EC2 Overview" dashboard that comes with the AWS modules was still using the old metric field names that are no longer in use, resulting in a dashboard with multiple empty visualizations. Here are the current changes: | Old | New | Formatter | | ---------------------------- | ---------------------------- | --------- | | `aws.ec2.cpu.total.pct` | `host.cpu.usage` | `percent` | | `aws.ec2.diskio.read.bytes` | `host.disk.read.bytes` | `bytes` | | `aws.ec2.diskio.write.bytes` | `host.disk.write.bytes` | `bytes` | | `aws.ec2.network.in.bytes` | `host.network.ingress.bytes` | `bytes` | | `aws.ec2.network.out.bytes` | `host.network.egress.bytes` | `bytes` | --------- (cherry picked from commit b8fb93227ed534ba1df491e0226cd6a24b42ad66) Co-authored-by: Maurizio Branca Co-authored-by: kaiyan-sheng --- .../15818fd0-f7f9-11e8-af03-c999c9dea608-ecs.json | 4 ++-- .../233b3400-f7f9-11e8-af03-c999c9dea608-ecs.json | 4 ++-- .../be8828d0-f7f6-11e8-af03-c999c9dea608-ecs.json | 6 +++--- .../f1db6ec0-f7f8-11e8-af03-c999c9dea608-ecs.json | 4 ++-- .../fed59380-f7f8-11e8-af03-c999c9dea608-ecs.json | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/15818fd0-f7f9-11e8-af03-c999c9dea608-ecs.json b/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/15818fd0-f7f9-11e8-af03-c999c9dea608-ecs.json index 670c31181bf2..87b1d3b82e2b 100644 --- a/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/15818fd0-f7f9-11e8-af03-c999c9dea608-ecs.json +++ b/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/15818fd0-f7f9-11e8-af03-c999c9dea608-ecs.json @@ -35,13 +35,13 @@ "color": "rgba(104,188,0,1)", "fill": "0", "filter": "", - "formatter": "number", + "formatter": "bytes", "id": "61ca57f1-469d-11e7-af02-69e470af7417", "label": "AWS EC2 Network In Bytes", "line_width": "2", "metrics": [ { - "field": "aws.ec2.network.in.bytes", + "field": "host.network.ingress.bytes", "id": "61ca57f2-469d-11e7-af02-69e470af7417", "type": "avg" } diff --git a/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/233b3400-f7f9-11e8-af03-c999c9dea608-ecs.json b/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/233b3400-f7f9-11e8-af03-c999c9dea608-ecs.json index be71f39e84c2..2804f096a2b9 100644 --- a/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/233b3400-f7f9-11e8-af03-c999c9dea608-ecs.json +++ b/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/233b3400-f7f9-11e8-af03-c999c9dea608-ecs.json @@ -35,13 +35,13 @@ "color": "rgba(104,188,0,1)", "fill": "0", "filter": "", - "formatter": "number", + "formatter": "bytes", "id": "61ca57f1-469d-11e7-af02-69e470af7417", "label": "AWS EC2 Network Out Bytes", "line_width": "2", "metrics": [ { - "field": "aws.ec2.network.out.bytes", + "field": "host.network.egress.bytes", "id": "61ca57f2-469d-11e7-af02-69e470af7417", "type": "avg" } diff --git a/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/be8828d0-f7f6-11e8-af03-c999c9dea608-ecs.json b/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/be8828d0-f7f6-11e8-af03-c999c9dea608-ecs.json index 9f36cb956cde..6c302b7e438e 100644 --- a/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/be8828d0-f7f6-11e8-af03-c999c9dea608-ecs.json +++ b/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/be8828d0-f7f6-11e8-af03-c999c9dea608-ecs.json @@ -40,7 +40,7 @@ "line_width": 1, "metrics": [ { - "field": "aws.ec2.cpu.total.pct", + "field": "host.cpu.usage", "id": "61ca57f2-469d-11e7-af02-69e470af7417", "type": "avg" } @@ -54,7 +54,7 @@ "steps": 0, "terms_field": "cloud.instance.id", "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", - "terms_size": "5" + "terms_size": "10" } ], "show_grid": 1, @@ -76,4 +76,4 @@ "type": "visualization", "updated_at": "2021-08-04T16:30:33.734Z", "version": "WzMzOTcsMV0=" -} \ No newline at end of file +} diff --git a/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/f1db6ec0-f7f8-11e8-af03-c999c9dea608-ecs.json b/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/f1db6ec0-f7f8-11e8-af03-c999c9dea608-ecs.json index 9de20a8d0dbe..2a0f3c07fdbb 100644 --- a/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/f1db6ec0-f7f8-11e8-af03-c999c9dea608-ecs.json +++ b/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/f1db6ec0-f7f8-11e8-af03-c999c9dea608-ecs.json @@ -38,13 +38,13 @@ "language": "kuery", "query": "" }, - "formatter": "number", + "formatter": "bytes", "id": "61ca57f1-469d-11e7-af02-69e470af7417", "label": "AWS EC2 DiskIO Read Bytes", "line_width": "2", "metrics": [ { - "field": "aws.ec2.diskio.read.bytes", + "field": "host.disk.read.bytes", "id": "61ca57f2-469d-11e7-af02-69e470af7417", "type": "avg" } diff --git a/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/fed59380-f7f8-11e8-af03-c999c9dea608-ecs.json b/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/fed59380-f7f8-11e8-af03-c999c9dea608-ecs.json index b328eaae2bb9..7cc4935abe93 100644 --- a/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/fed59380-f7f8-11e8-af03-c999c9dea608-ecs.json +++ b/x-pack/metricbeat/module/aws/_meta/kibana/7/visualization/fed59380-f7f8-11e8-af03-c999c9dea608-ecs.json @@ -35,13 +35,13 @@ "color": "rgba(104,188,0,1)", "fill": "0", "filter": "", - "formatter": "number", + "formatter": "bytes", "id": "61ca57f1-469d-11e7-af02-69e470af7417", "label": "AWS EC2 DiskIO Write Bytes", "line_width": "2", "metrics": [ { - "field": "aws.ec2.diskio.write.bytes", + "field": "host.disk.write.bytes", "id": "61ca57f2-469d-11e7-af02-69e470af7417", "type": "avg" } From 66df4e1bcf9db7dbb95b82c35fa7d06123e4f5f1 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 9 Jul 2025 09:37:06 -0600 Subject: [PATCH 30/45] [AutoOps] Include Missing Total Size (#45205) (#45253) This includes the 'total' data set size in addition to just the size in bytes. (cherry picked from commit d7e07b016abb7ff326d423d545fd683ca887dcfa) Co-authored-by: Chris Earle --- x-pack/metricbeat/module/autoops_es/node_stats/data.go | 3 ++- x-pack/metricbeat/module/autoops_es/node_stats/data_test.go | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/x-pack/metricbeat/module/autoops_es/node_stats/data.go b/x-pack/metricbeat/module/autoops_es/node_stats/data.go index bc9e5855fae0..7e82e5d8ff6d 100644 --- a/x-pack/metricbeat/module/autoops_es/node_stats/data.go +++ b/x-pack/metricbeat/module/autoops_es/node_stats/data.go @@ -37,7 +37,8 @@ var ( "count": c.Int("count", s.IgnoreAllErrors), }, c.DictOptional), "store": c.Dict("store", s.Schema{ - "size_in_bytes": c.Int("size_in_bytes", s.IgnoreAllErrors), + "size_in_bytes": c.Int("size_in_bytes", s.IgnoreAllErrors), + "total_data_set_size_in_bytes": c.Int("total_data_set_size_in_bytes", s.IgnoreAllErrors), }, c.DictOptional), "indexing": c.Dict("indexing", s.Schema{ "index_total": c.Int("index_total", s.IgnoreAllErrors), diff --git a/x-pack/metricbeat/module/autoops_es/node_stats/data_test.go b/x-pack/metricbeat/module/autoops_es/node_stats/data_test.go index 7a9722f480e1..aa4620bafa4b 100644 --- a/x-pack/metricbeat/module/autoops_es/node_stats/data_test.go +++ b/x-pack/metricbeat/module/autoops_es/node_stats/data_test.go @@ -89,6 +89,7 @@ func expectValidParsedDetailed(t *testing.T, data metricset.FetcherData[NodesSta require.ElementsMatch(t, []string{"data_content", "data_hot", "ingest", "master", "remote_cluster_client", "transform"}, node1MetricSet["roles"]) require.EqualValues(t, 2337, auto_ops_testing.GetObjectValue(node1MetricSet, "indices.docs.count")) require.EqualValues(t, 45203023, auto_ops_testing.GetObjectValue(node1MetricSet, "indices.store.size_in_bytes")) + require.EqualValues(t, 45203023, auto_ops_testing.GetObjectValue(node1MetricSet, "indices.store.total_data_set_size_in_bytes")) require.EqualValues(t, 1390859, auto_ops_testing.GetObjectValue(node1MetricSet, "indices.indexing.index_total")) require.EqualValues(t, 942011, auto_ops_testing.GetObjectValue(node1MetricSet, "indices.indexing.index_time_in_millis")) require.EqualValues(t, 164, auto_ops_testing.GetObjectValue(node1MetricSet, "indices.indexing.index_failed")) @@ -128,7 +129,6 @@ func expectValidParsedDetailed(t *testing.T, data metricset.FetcherData[NodesSta // some ignored values require.Nil(t, auto_ops_testing.GetObjectValue(node1MetricSet, "indices.shard_stats")) - require.Nil(t, auto_ops_testing.GetObjectValue(node1MetricSet, "indices.store.total_data_set_size_in_bytes")) } func expectValidParsedDetailedWithNoCache(t *testing.T, data metricset.FetcherData[NodesStats]) { From dcddb751cf3b5a9d6d09ceed149246d90d3e6b07 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 9 Jul 2025 19:30:43 +0000 Subject: [PATCH 31/45] chore: Update snapshot.yml (#45265) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made with ❤️️ by updatecli Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- testing/environments/snapshot.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/testing/environments/snapshot.yml b/testing/environments/snapshot.yml index 1a98d24f6d66..830183004815 100644 --- a/testing/environments/snapshot.yml +++ b/testing/environments/snapshot.yml @@ -2,7 +2,7 @@ services: elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:9.1.0-72f08610-SNAPSHOT + image: docker.elastic.co/elasticsearch/elasticsearch:9.1.0-4679d887-SNAPSHOT # When extend is used it merges healthcheck.tests, see: # https://github.com/docker/compose/issues/8962 # healthcheck: @@ -37,7 +37,7 @@ services: - "./docker/elasticsearch/users_roles:/usr/share/elasticsearch/config/users_roles" logstash: - image: docker.elastic.co/logstash/logstash:9.1.0-72f08610-SNAPSHOT + image: docker.elastic.co/logstash/logstash:9.1.0-4679d887-SNAPSHOT healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9600/_node/stats"] retries: 600 @@ -50,7 +50,7 @@ services: - 5055:5055 kibana: - image: docker.elastic.co/kibana/kibana:9.1.0-72f08610-SNAPSHOT + image: docker.elastic.co/kibana/kibana:9.1.0-4679d887-SNAPSHOT environment: - "ELASTICSEARCH_USERNAME=kibana_system_user" - "ELASTICSEARCH_PASSWORD=testing" From dfb07b313d8000bf55ae9fb1832bdf3883da4b18 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 9 Jul 2025 22:39:07 -0600 Subject: [PATCH 32/45] [AutoOps] Cleanup Version Mismatch Error (#45266) (#45276) This improves the Version Mismatch error to make it easier to debug. (cherry picked from commit 0c330d4a0c03acc76832f067fd4649430167b57a) Co-authored-by: Chris Earle --- .../module/autoops_es/events/error_event.go | 5 +++++ .../autoops_es/events/error_event_test.go | 10 ++++++++++ .../autoops_es/metricset/cluster_info.go | 6 ++++-- .../module/autoops_es/utils/version.go | 18 ++++++++++++++++++ 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 x-pack/metricbeat/module/autoops_es/utils/version.go diff --git a/x-pack/metricbeat/module/autoops_es/events/error_event.go b/x-pack/metricbeat/module/autoops_es/events/error_event.go index 6682a41b50ad..d352e6af911c 100644 --- a/x-pack/metricbeat/module/autoops_es/events/error_event.go +++ b/x-pack/metricbeat/module/autoops_es/events/error_event.go @@ -106,5 +106,10 @@ func getHTTPResponseBodyInfo(err error) (int, string, string) { return 0, "CLUSTER_NOT_READY", clusterErr.Message } + var versionErr *utils.VersionMismatchError + if errors.As(err, &versionErr) { + return 0, "VERSION_MISMATCH", fmt.Sprintf("expected %s, got %s", versionErr.ExpectedVersion, versionErr.ActualVersion) + } + return 0, "UNKNOWN_ERROR", "" } diff --git a/x-pack/metricbeat/module/autoops_es/events/error_event_test.go b/x-pack/metricbeat/module/autoops_es/events/error_event_test.go index 9eba8919b0ee..d2cf42252b0b 100644 --- a/x-pack/metricbeat/module/autoops_es/events/error_event_test.go +++ b/x-pack/metricbeat/module/autoops_es/events/error_event_test.go @@ -89,6 +89,16 @@ func TestGetHTTPResponseBodyInfo(t *testing.T) { expectedCode: "CLUSTER_NOT_READY", expectedBody: "Cluster not ready", }, + { + name: "Error is of type VersionMismatchError", + inputError: &utils.VersionMismatchError{ + ExpectedVersion: "7.10.0", + ActualVersion: "7.9.3", + }, + expectedStatus: 0, + expectedCode: "VERSION_MISMATCH", + expectedBody: "expected 7.10.0, got 7.9.3", + }, { name: "Error is not of a known type", inputError: errors.New("some other error"), diff --git a/x-pack/metricbeat/module/autoops_es/metricset/cluster_info.go b/x-pack/metricbeat/module/autoops_es/metricset/cluster_info.go index 043d747f486e..176dc38df973 100644 --- a/x-pack/metricbeat/module/autoops_es/metricset/cluster_info.go +++ b/x-pack/metricbeat/module/autoops_es/metricset/cluster_info.go @@ -5,7 +5,6 @@ package metricset import ( - "fmt" "os" "time" @@ -46,7 +45,10 @@ func GetInfo(m *elasticsearch.MetricSet) (*utils.ClusterInfo, error) { func checkEsVersion(esVersion *libversion.V, errChan chan error) error { if esVersion.LessThan(minVersion) { isVersionChecked = true - err := fmt.Errorf("version %s is less than the minimum required version %s", esVersion.String(), minVersion) + err := &utils.VersionMismatchError{ + ExpectedVersion: minVersion.String(), + ActualVersion: esVersion.String(), + } errChan <- err return err } diff --git a/x-pack/metricbeat/module/autoops_es/utils/version.go b/x-pack/metricbeat/module/autoops_es/utils/version.go new file mode 100644 index 000000000000..05f8ce9425a3 --- /dev/null +++ b/x-pack/metricbeat/module/autoops_es/utils/version.go @@ -0,0 +1,18 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package utils + +import ( + "fmt" +) + +type VersionMismatchError struct { + ExpectedVersion string + ActualVersion string +} + +func (e *VersionMismatchError) Error() string { + return fmt.Sprintf("version mismatch: expected %s, got %s", e.ExpectedVersion, e.ActualVersion) +} From bc6d7763b5ffc38637a926b1a8e2ecbc2e06d755 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 10 Jul 2025 05:20:33 +0000 Subject: [PATCH 33/45] [9.1](backport #45245) mod: update elastic/mito to version v1.22.0 (#45278) * mod: update elastic/mito to version v1.22.0 (#45245) This adds support for: * v2 optional types: unwrap * v2 two-variable comprehensions (cherry picked from commit c8d20e2eef87b5b3a5bfcff496c7327557223895) * remove irrelevant changelog entries --------- Co-authored-by: Dan Kortschak --- CHANGELOG.next.asciidoc | 1 + NOTICE.txt | 4 +- docs/reference/filebeat/filebeat-input-cel.md | 158 +++++++++--------- go.mod | 2 +- go.sum | 4 +- x-pack/filebeat/input/cel/input.go | 2 + x-pack/filebeat/input/cel/input_test.go | 34 ++++ 7 files changed, 121 insertions(+), 84 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index a0d6239609fa..e781ae78b2fd 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -472,6 +472,7 @@ otherwise no tag is added. {issue}42208[42208] {pull}42403[42403] - Segregated `max_workers` from `batch_size` in the azure-blob-storage input. {issue}44491[44491] {pull}44992[44992] - Add support for relationship expansion to EntraID entity analytics provider. {issue}43324[43324] {pull}44761[44761] - Update CEL mito extensions to v1.21.0. {issue}40762[40762] {pull}45107[45107] +- Update CEL mito extensions to v1.22.0. {pull}45245[45245] *Auditbeat* diff --git a/NOTICE.txt b/NOTICE.txt index 4ddcaa98220a..cda1612cee94 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -15556,11 +15556,11 @@ limitations under the License. -------------------------------------------------------------------------------- Dependency : github.com/elastic/mito -Version: v1.21.0 +Version: v1.22.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/elastic/mito@v1.21.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/elastic/mito@v1.22.0/LICENSE: Apache License diff --git a/docs/reference/filebeat/filebeat-input-cel.md b/docs/reference/filebeat/filebeat-input-cel.md index a85ff352c02f..3531e8d18016 100644 --- a/docs/reference/filebeat/filebeat-input-cel.md +++ b/docs/reference/filebeat/filebeat-input-cel.md @@ -117,7 +117,7 @@ After completion of a program’s execution it should return a single object wit 1. The `events` field must be present, but may be empty or null. If it is not empty, it must only have objects as elements. The field should be an array, but in the case of an error condition in the CEL program it is acceptable to return a single object instead of an array; this will will be wrapped as an array for publication and an error will be logged. If the single object contains a key, "error", the error value will be used to update the status of the input to report to Elastic Agent. This can be used to more rapidly respond to API failures. 2. If `cursor` is present it must be either be a single object or an array with the same length as events; each element *i* of the `cursor` will be the details for obtaining the events at and beyond event *i* in the `events` array. If the `cursor` is a single object it is will be the details for obtaining events after the last event in the `events` array and will only be retained on successful publication of all the events in the `events` array. -3. If `rate_limit` is present it must be a map with numeric fields `rate` and `burst`. The `rate_limit` field may also have a string `error` field and other fields which will be logged. If it has an `error` field, the `rate` and `burst` will not be used to set rate limit behavior. The [Limit](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Limit), and [Okta Rate Limit policy](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#OktaRateLimit) and [Draft Rate Limit policy](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#DraftRateLimit) documentation show how to construct this field. +3. If `rate_limit` is present it must be a map with numeric fields `rate` and `burst`. The `rate_limit` field may also have a string `error` field and other fields which will be logged. If it has an `error` field, the `rate` and `burst` will not be used to set rate limit behavior. The [Limit](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#Limit), and [Okta Rate Limit policy](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#OktaRateLimit) and [Draft Rate Limit policy](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#DraftRateLimit) documentation show how to construct this field. 4. The evaluation is repeated with the new state, after removing the events field, if the "want_more" field is present and true, and a non-zero events array is returned. If the "want_more" field is present after a failed evaluation, it is set to false. @@ -133,122 +133,122 @@ The CEL input will log the complete state after evaluation when logging at the D As noted above the `cel` input provides functions, macros, and global variables to extend the language. -* [AWS v4 request signing](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#AWS) +* [AWS v4 request signing](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#AWS) * [Sign AWS from env](https://pkg.go.dev/github.com/elastic/mito/lib#hdr-Sign_AWS_from_env-AWS) * [Sign AWS from shared credentials](https://pkg.go.dev/github.com/elastic/mito/lib#hdr-Sign_AWS_from_shared_credentials-AWS) * [Sign AWS from static credentials](https://pkg.go.dev/github.com/elastic/mito/lib#hdr-Sign_AWS_from_static_credentials-AWS) -* [Collections](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Collections) +* [Collections](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#Collections) - * [Collate](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Collate-Collections) - * [Drop](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Drop-Collections) - * [Drop Empty](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Drop_Empty-Collections) - * [Flatten](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Flatten-Collections) - * [Front](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Front-Collections) - * [Keys](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Keys-Collections) - * [Max](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Max-Collections) - * [Min](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Min-Collections) - * [Sum](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Sum-Collections) - * [Tail](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Tail-Collections) - * [Values](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Values-Collections) - * [With](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-With-Collections) - * [With Replace](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-With_Replace-Collections) - * [With Update](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-With_Update-Collections) - * [Zip](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Zip-Collections) + * [Collate](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Collate-Collections) + * [Drop](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Drop-Collections) + * [Drop Empty](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Drop_Empty-Collections) + * [Flatten](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Flatten-Collections) + * [Front](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Front-Collections) + * [Keys](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Keys-Collections) + * [Max](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Max-Collections) + * [Min](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Min-Collections) + * [Sum](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Sum-Collections) + * [Tail](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Tail-Collections) + * [Values](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Values-Collections) + * [With](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-With-Collections) + * [With Replace](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-With_Replace-Collections) + * [With Update](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-With_Update-Collections) + * [Zip](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Zip-Collections) -* [Crypto](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Crypto) +* [Crypto](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#Crypto) - * [Base64](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Base64-Crypto) - * [Base64 Decode](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Base64_Decode-Crypto) - * [Base64 Raw](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Base64_Raw-Crypto) - * [Base64 Raw Decode](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Base64_Raw_Decode-Crypto) - * [Hex](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Hex-Crypto) - * [Hex Decode](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Hex_Decode-Crypto) - * [MD5](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-MD5-Crypto) - * [SHA-1](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-SHA_1-Crypto) - * [SHA-256](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-SHA_256-Crypto) - * [HMAC](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-HMAC-Crypto) - * [UUID](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-UUID-Crypto) + * [Base64](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Base64-Crypto) + * [Base64 Decode](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Base64_Decode-Crypto) + * [Base64 Raw](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Base64_Raw-Crypto) + * [Base64 Raw Decode](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Base64_Raw_Decode-Crypto) + * [Hex](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Hex-Crypto) + * [Hex Decode](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Hex_Decode-Crypto) + * [MD5](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-MD5-Crypto) + * [SHA-1](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-SHA_1-Crypto) + * [SHA-256](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-SHA_256-Crypto) + * [HMAC](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-HMAC-Crypto) + * [UUID](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-UUID-Crypto) -* [File](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#File) — the file extension is initialized with MIME handlers for "application/gzip", ["application/x-ndjson"](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#NDJSON), ["application/zip"](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Zip), ["text/csv; header=absent"](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#CSVNoHeader), and ["text/csv; header=present"](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#CSVHeader). +* [File](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#File) — the file extension is initialized with MIME handlers for "application/gzip", ["application/x-ndjson"](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#NDJSON), ["application/zip"](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#Zip), ["text/csv; header=absent"](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#CSVNoHeader), and ["text/csv; header=present"](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#CSVHeader). - * [Dir](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Dir-File) - * [File](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-File-File) + * [Dir](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Dir-File) + * [File](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-File-File) -* [HTTP](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#HTTP) +* [HTTP](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#HTTP) - * [HEAD](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-HEAD-HTTP) - * [GET](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-GET-HTTP) - * [GET Request](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-GET_Request-HTTP) - * [POST](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-POST-HTTP) - * [POST Request](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-POST_Request-HTTP) - * [Request](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Request-HTTP) - * [Basic Authentication](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Basic_Authentication-HTTP) - * [Do Request](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Do_Request-HTTP) - * [Parse URL](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Parse_URL-HTTP) - * [Format URL](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Format_URL-HTTP) - * [Parse Query](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Parse_Query-HTTP) - * [Format Query](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Format_Query-HTTP) + * [HEAD](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-HEAD-HTTP) + * [GET](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-GET-HTTP) + * [GET Request](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-GET_Request-HTTP) + * [POST](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-POST-HTTP) + * [POST Request](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-POST_Request-HTTP) + * [Request](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Request-HTTP) + * [Basic Authentication](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Basic_Authentication-HTTP) + * [Do Request](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Do_Request-HTTP) + * [Parse URL](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Parse_URL-HTTP) + * [Format URL](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Format_URL-HTTP) + * [Parse Query](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Parse_Query-HTTP) + * [Format Query](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Format_Query-HTTP) -* [JSON](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#JSON) +* [JSON](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#JSON) - * [Encode JSON](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Encode_JSON-JSON) - * [Decode JSON](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Decode_JSON-JSON) - * [Decode JSON Stream](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Decode_JSON_Stream-JSON) + * [Encode JSON](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Encode_JSON-JSON) + * [Decode JSON](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Decode_JSON-JSON) + * [Decode JSON Stream](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Decode_JSON_Stream-JSON) -* [XML](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#XML) — the XML extension is initialized with XML schema definitions provided via the `xsd` configuration option. +* [XML](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#XML) — the XML extension is initialized with XML schema definitions provided via the `xsd` configuration option. - * [Decode XML](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Decode_XML-XML) + * [Decode XML](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Decode_XML-XML) -* [Limit](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Limit) — the rate limit extension is initialized with [Okta (as "okta")](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#OktaRateLimit) and the [Draft Rate Limit (as "draft")](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#DraftRateLimit) policies. +* [Limit](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#Limit) — the rate limit extension is initialized with [Okta (as "okta")](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#OktaRateLimit) and the [Draft Rate Limit (as "draft")](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#DraftRateLimit) policies. - * [Rate Limit](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Rate_Limit-Limit) + * [Rate Limit](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Rate_Limit-Limit) -* [MIME](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#MIME) — the MIME extension is initialized with MIME handlers for "application/gzip", ["application/x-ndjson"](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#NDJSON), ["application/zip"](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Zip), ["text/csv; header=absent"](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#CSVNoHeader), and ["text/csv; header=present"](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#CSVHeader). +* [MIME](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#MIME) — the MIME extension is initialized with MIME handlers for "application/gzip", ["application/x-ndjson"](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#NDJSON), ["application/zip"](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#Zip), ["text/csv; header=absent"](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#CSVNoHeader), and ["text/csv; header=present"](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#CSVHeader). - * [MIME](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-MIME-MIME) + * [MIME](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-MIME-MIME) -* [Regexp](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Regexp) — the regular expression extension is initialized with the patterns specified in the user input configuration via the `regexp` field. +* [Regexp](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#Regexp) — the regular expression extension is initialized with the patterns specified in the user input configuration via the `regexp` field. - * [RE Match](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-RE_Match) - * [RE Find](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-RE_Find) - * [RE Find All](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-RE_Find_All) - * [RE Find Submatch](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-RE_Find_Submatch) - * [RE Find All Submatch](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-RE_Find_All_Submatch) - * [RE Replace All](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-RE_Replace_All) + * [RE Match](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-RE_Match) + * [RE Find](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-RE_Find) + * [RE Find All](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-RE_Find_All) + * [RE Find Submatch](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-RE_Find_Submatch) + * [RE Find All Submatch](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-RE_Find_All_Submatch) + * [RE Replace All](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-RE_Replace_All) -* [Printf](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Printf) +* [Printf](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#Printf) - * [Sprintf](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Sprintf-Printf) + * [Sprintf](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Sprintf-Printf) -* [Strings](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Strings) +* [Strings](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#Strings) - * [String Methods](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-String_Methods-Strings) - * [String List Methods](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-String_List_Methods-Strings) - * [Bytes Methods](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Bytes_Methods-Strings) + * [String Methods](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-String_Methods-Strings) + * [String List Methods](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-String_List_Methods-Strings) + * [Bytes Methods](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Bytes_Methods-Strings) -* [Time](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Time) +* [Time](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#Time) - * [Format](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Format-Time) - * [Parse Time](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Parse_Time-Time) - * [Global Variables](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Global_Variables-Time) + * [Format](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Format-Time) + * [Parse Time](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Parse_Time-Time) + * [Global Variables](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Global_Variables-Time) -* [Try](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Try) +* [Try](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#Try) - * [Try](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Try-Try) - * [Is Error](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Is_Error-Try) + * [Try](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Try-Try) + * [Is Error](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Is_Error-Try) -* [Debug](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#Debug) — the debug handler registers a logger with the name extension `cel_debug` and calls to the CEL `debug` function are emitted to that logger. +* [Debug](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#Debug) — the debug handler registers a logger with the name extension `cel_debug` and calls to the CEL `debug` function are emitted to that logger. - * [Debug](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#hdr-Debug) + * [Debug](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#hdr-Debug) In addition to the extensions provided in the packages listed above, a global variable `useragent` is also provided which gives the user CEL program access to the filebeat user-agent string. By default, this value is assigned to all requests' user-agent headers unless the CEL program has already set the user-agent header value. Programs wishing to not provide a user-agent, should set this header to the empty string, `""`. Host environment variables are made available via the global map `env`. Only environment variables that have been allow listed via the `allowed_environment` configuration list are visible to the CEL program. -The CEL environment enables the [optional types](https://pkg.go.dev/github.com/google/cel-go/cel#OptionalTypes) library using the version defined [here](https://pkg.go.dev/github.com/elastic/mito@v1.21.0/lib#OptionalTypesVersion). +The CEL environment enables the [optional types](https://pkg.go.dev/github.com/google/cel-go/cel#OptionalTypes) library using the version defined [here](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#OptionalTypesVersion) and the [two-variable comprehensions extensions](https://pkg.go.dev/github.com/google/cel-go/ext#TwoVarComprehensions) library using the version defined [here](https://pkg.go.dev/github.com/elastic/mito@v1.22.0/lib#TwoVarComprehensionVersion). Additionally, it supports authentication via Basic Authentication, Digest Authentication or OAuth2. diff --git a/go.mod b/go.mod index aaf287413b92..a3fbf6949c58 100644 --- a/go.mod +++ b/go.mod @@ -180,7 +180,7 @@ require ( github.com/elastic/go-freelru v0.16.0 github.com/elastic/go-quark v0.3.0 github.com/elastic/go-sfdc v0.0.0-20241010131323-8e176480d727 - github.com/elastic/mito v1.21.0 + github.com/elastic/mito v1.22.0 github.com/elastic/mock-es v0.0.0-20240712014503-e5b47ece0015 github.com/elastic/sarama v1.19.1-0.20250603175145-7672917f26b6 github.com/elastic/tk-btf v0.1.0 diff --git a/go.sum b/go.sum index 407c50b7c693..a01529c83509 100644 --- a/go.sum +++ b/go.sum @@ -408,8 +408,8 @@ github.com/elastic/gopacket v1.1.20-0.20241002174017-e8c5fda595e6 h1:VgOx6omXIMK github.com/elastic/gopacket v1.1.20-0.20241002174017-e8c5fda595e6/go.mod h1:riddUzxTSBpJXk3qBHtYr4qOhFhT6k/1c0E3qkQjQpA= github.com/elastic/gosigar v0.14.3 h1:xwkKwPia+hSfg9GqrCUKYdId102m9qTJIIr7egmK/uo= github.com/elastic/gosigar v0.14.3/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= -github.com/elastic/mito v1.21.0 h1:4Xr3D9pyjzxK/EnJooy9an/7jGXMhPCF2t+/O4GzDwQ= -github.com/elastic/mito v1.21.0/go.mod h1:h1V+8B62+DXsu0TstJkjsTh5ewJIDJlwzxPkP3HBM9s= +github.com/elastic/mito v1.22.0 h1:DW4RkO+PLwSbKVF5ijYzi0ug+TKzLL+DVJRzbOPbzQ0= +github.com/elastic/mito v1.22.0/go.mod h1:h1V+8B62+DXsu0TstJkjsTh5ewJIDJlwzxPkP3HBM9s= github.com/elastic/mock-es v0.0.0-20240712014503-e5b47ece0015 h1:z8cC8GASpPo8yKlbnXI36HQ/BM9wYjhBPNbDjAWm0VU= github.com/elastic/mock-es v0.0.0-20240712014503-e5b47ece0015/go.mod h1:qH9DX/Dmflz6EAtaks/+2SsdQzecVAKE174Zl66hk7E= github.com/elastic/pkcs8 v1.0.0 h1:HhitlUKxhN288kcNcYkjW6/ouvuwJWd9ioxpjnD9jVA= diff --git a/x-pack/filebeat/input/cel/input.go b/x-pack/filebeat/input/cel/input.go index 6321e2ac7215..e6e580dbe925 100644 --- a/x-pack/filebeat/input/cel/input.go +++ b/x-pack/filebeat/input/cel/input.go @@ -38,6 +38,7 @@ import ( "github.com/google/cel-go/cel" "github.com/google/cel-go/common/decls" "github.com/google/cel-go/common/types" + "github.com/google/cel-go/ext" "google.golang.org/protobuf/types/known/structpb" v2 "github.com/elastic/beats/v7/filebeat/input/v2" @@ -1063,6 +1064,7 @@ func newProgram(ctx context.Context, src, root string, vars map[string]string, c opts := []cel.EnvOption{ cel.VariableDecls(decls.NewVariable(root, types.DynType)), cel.OptionalTypes(cel.OptionalTypesVersion(lib.OptionalTypesVersion)), + ext.TwoVarComprehensions(ext.TwoVarComprehensionsVersion(lib.OptionalTypesVersion)), lib.AWS(), lib.Collections(), lib.Crypto(), diff --git a/x-pack/filebeat/input/cel/input_test.go b/x-pack/filebeat/input/cel/input_test.go index fd398380694b..b73f16414158 100644 --- a/x-pack/filebeat/input/cel/input_test.go +++ b/x-pack/filebeat/input/cel/input_test.go @@ -496,6 +496,40 @@ var inputTests = []struct { {"message": "AWS4-HMAC-SHA256 Credential=id/20091110/region/service/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date;x-amz-security-token, Signature=ad27046c0009e06c6626e6009ba2af96027f4893b7a190ab67aaec85becb25cd"}, }, }, + { + // This test exists purely to demonstrate that the lib is available. + name: "optional_types_v2", + config: map[string]interface{}{ + "interval": 1, + "program": `{"events": [{ + "message": optional.unwrap([optional.of(42), optional.none()]).encode_json(), + }]}`, + "state": nil, + "resource": map[string]interface{}{ + "url": "", + }, + }, + want: []map[string]interface{}{ + {"message": "[42]"}, + }, + }, + { + // This test exists purely to demonstrate that the lib is available. + name: "two_var_comprehension_v2", + config: map[string]interface{}{ + "interval": 1, + "program": `{"events": [{ + "message": {'hello': 'world'}.transformMap(k, v, v + '!').encode_json(), + }]}`, + "state": nil, + "resource": map[string]interface{}{ + "url": "", + }, + }, + want: []map[string]interface{}{ + {"message": `{"hello":"world!"}`}, + }, + }, // FS-based tests. { From 94788e2ec40fc3fac58d16e140c03a3b95fba304 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 10 Jul 2025 11:51:59 +0200 Subject: [PATCH 34/45] [Heartbeat] Add base64 encoding option to inline monitors (#45100) (#45259) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add base64 encoding option to inline monitors * Fix linter * Fix linter * Remove unused Decode() method * Fix linter * Add changelog (cherry picked from commit 2266395d99a80086a82f0fce1da9df89b53c3345) Co-authored-by: Emilio Alvarez Piñeiro <95703246+emilioalvap@users.noreply.github.com> --- CHANGELOG.next.asciidoc | 1 + .../monitors/browser/source/inline.go | 24 ++++++++- .../monitors/browser/source/local.go | 4 ++ .../monitors/browser/source/project.go | 11 ++-- .../monitors/browser/source/source.go | 1 + .../monitors/browser/source/zipurl.go | 4 ++ .../heartbeat/monitors/browser/sourcejob.go | 6 ++- .../monitors/browser/sourcejob_test.go | 50 +++++++++++++++++++ .../monitors/browser/synthexec/synthexec.go | 32 ++---------- .../browser/synthexec/synthexec_test.go | 27 +++++++++- 10 files changed, 126 insertions(+), 34 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index e781ae78b2fd..ac6fa3a6e0b1 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -262,6 +262,7 @@ otherwise no tag is added. {issue}42208[42208] {pull}42403[42403] - Added maintenance windows support for Heartbeat. {pull}41508[41508] - Add missing dependencies to ubi9-minimal distro. {pull}44556[44556] +- Add base64 encoding option to inline monitors. {pull}45100[45100] *Metricbeat* diff --git a/x-pack/heartbeat/monitors/browser/source/inline.go b/x-pack/heartbeat/monitors/browser/source/inline.go index cc3ac4f78b54..74dac89ee961 100644 --- a/x-pack/heartbeat/monitors/browser/source/inline.go +++ b/x-pack/heartbeat/monitors/browser/source/inline.go @@ -6,12 +6,14 @@ package source import ( + "encoding/base64" "fmt" "regexp" ) type InlineSource struct { - Script string `config:"script"` + Script string `config:"script"` + Encoding string `config:"encoding"` BaseSource } @@ -22,6 +24,10 @@ func (s *InlineSource) Validate() error { return ErrNoInlineScript } + if s.Encoding != "" && s.Encoding != "base64" { + return fmt.Errorf("unsupported encoding: %v", s.Encoding) + } + return nil } @@ -36,3 +42,19 @@ func (s *InlineSource) Workdir() string { func (s *InlineSource) Close() error { return nil } + +func (s *InlineSource) Decode() error { + // Don't decode if flag is missing + if s.Encoding != "base64" { + return nil + } + + decoded, err := base64.StdEncoding.DecodeString(s.Script) + if err != nil { + return fmt.Errorf("error decoding from base64: %w", err) + } + + s.Script = string(decoded) + + return nil +} diff --git a/x-pack/heartbeat/monitors/browser/source/local.go b/x-pack/heartbeat/monitors/browser/source/local.go index 7455655d4990..3efb403b8189 100644 --- a/x-pack/heartbeat/monitors/browser/source/local.go +++ b/x-pack/heartbeat/monitors/browser/source/local.go @@ -32,3 +32,7 @@ func (l *LocalSource) Workdir() string { func (l *LocalSource) Close() error { return ecserr.NewUnsupportedMonitorTypeError(ErrLocalUnsupportedType) } + +func (l *LocalSource) Decode() error { + return nil +} diff --git a/x-pack/heartbeat/monitors/browser/source/project.go b/x-pack/heartbeat/monitors/browser/source/project.go index 7c11de311345..26fbbf20935c 100644 --- a/x-pack/heartbeat/monitors/browser/source/project.go +++ b/x-pack/heartbeat/monitors/browser/source/project.go @@ -11,7 +11,6 @@ import ( "encoding/json" "fmt" "io" - "io/ioutil" "os" "os/exec" "path/filepath" @@ -55,7 +54,7 @@ func (p *ProjectSource) Fetch() error { return err } - tf, err := ioutil.TempFile(os.TempDir(), "elastic-synthetics-zip-") + tf, err := os.CreateTemp(os.TempDir(), "elastic-synthetics-zip-") if err != nil { return fmt.Errorf("could not create tmpfile for project monitor source: %w", err) } @@ -67,7 +66,7 @@ func (p *ProjectSource) Fetch() error { return err } - p.TargetDirectory, err = ioutil.TempDir(os.TempDir(), "elastic-synthetics-unzip-") + p.TargetDirectory, err = os.MkdirTemp(os.TempDir(), "elastic-synthetics-unzip-") if err != nil { return fmt.Errorf("could not make temp dir for unzipping project source: %w", err) } @@ -132,7 +131,7 @@ func setupProjectDir(workdir string) error { if err != nil { return err } - err = ioutil.WriteFile(filepath.Join(workdir, "package.json"), pkgJsonContent, defaultMod) + err = os.WriteFile(filepath.Join(workdir, "package.json"), pkgJsonContent, defaultMod) if err != nil { return err } @@ -173,3 +172,7 @@ func runSimpleCommand(cmd *exec.Cmd, dir string) error { logp.L().Infof("Ran %s (%d) got '%s': (%s) as (%d/%d)", cmd, cmd.ProcessState.ExitCode(), string(output), err, syscall.Getuid(), syscall.Geteuid()) return err } + +func (p *ProjectSource) Decode() error { + return nil +} diff --git a/x-pack/heartbeat/monitors/browser/source/source.go b/x-pack/heartbeat/monitors/browser/source/source.go index 21be17b5621f..6501fffe414c 100644 --- a/x-pack/heartbeat/monitors/browser/source/source.go +++ b/x-pack/heartbeat/monitors/browser/source/source.go @@ -54,6 +54,7 @@ type ISource interface { Fetch() error Workdir() string Close() error + Decode() error } type BaseSource struct { diff --git a/x-pack/heartbeat/monitors/browser/source/zipurl.go b/x-pack/heartbeat/monitors/browser/source/zipurl.go index 748b5a8acbf1..148b6af084b2 100644 --- a/x-pack/heartbeat/monitors/browser/source/zipurl.go +++ b/x-pack/heartbeat/monitors/browser/source/zipurl.go @@ -32,3 +32,7 @@ func (z *ZipURLSource) Workdir() string { func (z *ZipURLSource) Close() error { return ecserr.NewUnsupportedMonitorTypeError(ErrZipURLUnsupportedType) } + +func (z *ZipURLSource) Decode() error { + return nil +} diff --git a/x-pack/heartbeat/monitors/browser/sourcejob.go b/x-pack/heartbeat/monitors/browser/sourcejob.go index 697e51abf51a..e191d5d2131c 100644 --- a/x-pack/heartbeat/monitors/browser/sourcejob.go +++ b/x-pack/heartbeat/monitors/browser/sourcejob.go @@ -44,6 +44,10 @@ func NewSourceJob(rawCfg *config.C) (*SourceJob, error) { if err != nil { return nil, ErrBadConfig(err) } + err = s.browserCfg.Source.Active().Decode() + if err != nil { + return nil, ErrBadConfig(err) + } return s, nil } @@ -164,7 +168,7 @@ func (sj *SourceJob) jobs() []jobs.Job { var j jobs.Job isScript := sj.browserCfg.Source.Inline != nil - ctx := context.WithValue(sj.ctx, synthexec.SynthexecTimeout, sj.browserCfg.Timeout+30*time.Second) + ctx := context.WithValue(sj.ctx, synthexec.SynthexecTimeoutKey, sj.browserCfg.Timeout+30*time.Second) sFields := sj.StdFields() if isScript { diff --git a/x-pack/heartbeat/monitors/browser/sourcejob_test.go b/x-pack/heartbeat/monitors/browser/sourcejob_test.go index 0e6127d354a7..23567b7f12de 100644 --- a/x-pack/heartbeat/monitors/browser/sourcejob_test.go +++ b/x-pack/heartbeat/monitors/browser/sourcejob_test.go @@ -6,6 +6,7 @@ package browser import ( + "encoding/base64" "encoding/json" "fmt" "path" @@ -355,3 +356,52 @@ func TestFilterDevFlags(t *testing.T) { }) } } + +func TestSourceDecoding(t *testing.T) { + script := "a script" + encoded := base64.StdEncoding.EncodeToString([]byte(script)) + timeout := 30 + cfg := conf.MustNewConfigFrom(mapstr.M{ + "name": "My Name", + "id": "myId", + "source": mapstr.M{ + "inline": mapstr.M{ + "script": encoded, + "encoding": "base64", + }, + }, + "timeout": timeout, + }) + s, e := NewSourceJob(cfg) + require.NoError(t, e) + require.NotNil(t, s) + require.Equal(t, script, s.browserCfg.Source.Inline.Script) + require.Equal(t, "", s.Workdir()) + + e = s.Close() + require.NoError(t, e) +} + +func TestDisabledSourceDecoding(t *testing.T) { + script := "a script" + encoded := base64.StdEncoding.EncodeToString([]byte(script)) + timeout := 30 + cfg := conf.MustNewConfigFrom(mapstr.M{ + "name": "My Name", + "id": "myId", + "source": mapstr.M{ + "inline": mapstr.M{ + "script": encoded, + }, + }, + "timeout": timeout, + }) + s, e := NewSourceJob(cfg) + require.NoError(t, e) + require.NotNil(t, s) + require.Equal(t, encoded, s.browserCfg.Source.Inline.Script) + require.Equal(t, "", s.Workdir()) + + e = s.Close() + require.NoError(t, e) +} diff --git a/x-pack/heartbeat/monitors/browser/synthexec/synthexec.go b/x-pack/heartbeat/monitors/browser/synthexec/synthexec.go index 3c0139557f5f..0f88e859c59d 100644 --- a/x-pack/heartbeat/monitors/browser/synthexec/synthexec.go +++ b/x-pack/heartbeat/monitors/browser/synthexec/synthexec.go @@ -15,7 +15,6 @@ import ( "os" "os/exec" "path/filepath" - "regexp" "runtime" "strings" "sync" @@ -43,7 +42,9 @@ type FilterJourneyConfig struct { // where these are unsupported var platformCmdMutate func(*SynthCmd) = func(*SynthCmd) {} -var SynthexecTimeout struct{} +type SynthexecTimeout string + +var SynthexecTimeoutKey = SynthexecTimeout("synthexec_timeout") // ProjectJob will run a single journey by name from the given project. func ProjectJob(ctx context.Context, projectPath string, params mapstr.M, filterJourneys FilterJourneyConfig, fields stdfields.StdMonitorFields, extraArgs ...string) (jobs.Job, error) { @@ -249,7 +250,7 @@ func runCmd( } // Get timeout from parent ctx - timeout, _ := ctx.Value(SynthexecTimeout).(time.Duration) + timeout, _ := ctx.Value(SynthexecTimeoutKey).(time.Duration) ctx, cancel := context.WithTimeout(ctx, timeout) go func() { <-ctx.Done() @@ -278,7 +279,7 @@ func runCmd( logp.L().Warn("Error executing command '%s' (%d): %s", cmd, cmd.ProcessState.ExitCode(), err) if errors.Is(ctx.Err(), context.DeadlineExceeded) { - timeout, _ := ctx.Value(SynthexecTimeout).(time.Duration) + timeout, _ := ctx.Value(SynthexecTimeoutKey).(time.Duration) cmdError = ECSErrToSynthError(ecserr.NewCmdTimeoutStatusErr(timeout, cmd.String())) } else { cmdError = ECSErrToSynthError(ecserr.NewBadCmdStatusErr(cmd.ProcessState.ExitCode(), cmd.String())) @@ -345,29 +346,6 @@ func lineToSynthEventFactory(typ string) func(bytes []byte, text string) (res *S } } -var emptyStringRegexp = regexp.MustCompile(`^\s*$`) - -// jsonToSynthEvent can take a line from the scanner and transform it into a *SynthEvent. Will return -// nil res on empty lines. -func jsonToSynthEvent(bytes []byte, text string) (res *SynthEvent, err error) { - // Skip empty lines - if emptyStringRegexp.Match(bytes) { - return nil, nil - } - - res = &SynthEvent{} - err = json.Unmarshal(bytes, res) - - if err != nil { - return nil, err - } - - if res.Type == "" { - return nil, fmt.Errorf("unmarshal succeeded, but no type found for: %s", text) - } - return res, err -} - // getNpmRoot gets the closest ancestor path that contains package.json. func getNpmRoot(path string) (string, error) { return getNpmRootIn(path, path) diff --git a/x-pack/heartbeat/monitors/browser/synthexec/synthexec_test.go b/x-pack/heartbeat/monitors/browser/synthexec/synthexec_test.go index 28158c24a1e3..cb33ff3f9f21 100644 --- a/x-pack/heartbeat/monitors/browser/synthexec/synthexec_test.go +++ b/x-pack/heartbeat/monitors/browser/synthexec/synthexec_test.go @@ -8,10 +8,12 @@ package synthexec import ( "context" + "encoding/json" "fmt" "os" "os/exec" "path/filepath" + "regexp" "runtime" "testing" "time" @@ -98,6 +100,29 @@ func TestJsonToSynthEvent(t *testing.T) { } } +var emptyStringRegexp = regexp.MustCompile(`^\s*$`) + +// jsonToSynthEvent can take a line from the scanner and transform it into a *SynthEvent. Will return +// nil res on empty lines. +func jsonToSynthEvent(bytes []byte, text string) (res *SynthEvent, err error) { + // Skip empty lines + if emptyStringRegexp.Match(bytes) { + return nil, nil + } + + res = &SynthEvent{} + err = json.Unmarshal(bytes, res) + + if err != nil { + return nil, err + } + + if res.Type == "" { + return nil, fmt.Errorf("unmarshal succeeded, but no type found for: %s", text) + } + return res, err +} + func goCmd(args ...string) *exec.Cmd { goBinary := "go" // relative by default // GET the GOROOT if defined, this helps in scenarios where @@ -182,7 +207,7 @@ func runAndCollect(t *testing.T, cmd *exec.Cmd, stdinStr string, cmdTimeout time cwd, err := os.Getwd() require.NoError(t, err) cmd.Dir = filepath.Join(cwd, "testcmd") - ctx := context.WithValue(context.TODO(), SynthexecTimeout, cmdTimeout) + ctx := context.WithValue(context.TODO(), SynthexecTimeoutKey, cmdTimeout) mpx, err := runCmd(ctx, &SynthCmd{cmd}, &stdinStr, nil, FilterJourneyConfig{}) require.NoError(t, err) From 7e007a1be4001908a4beeedf159f9a0dda4b42c8 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 10 Jul 2025 15:27:55 +0200 Subject: [PATCH 35/45] fix: asdf issues with updatecli in the tool-versions (#45286) (#45291) (cherry picked from commit 68600b701fb305dc4e6a50e11ec91df66f953efb) Co-authored-by: Victor Martinez --- .github/workflows/bump-elastic-stack-snapshot.yml | 2 +- .github/workflows/bump-golang.yml | 2 +- .github/workflows/updatecli-compose.yml | 4 ++-- .tool-versions => .updatecli-version | 0 4 files changed, 4 insertions(+), 4 deletions(-) rename .tool-versions => .updatecli-version (100%) diff --git a/.github/workflows/bump-elastic-stack-snapshot.yml b/.github/workflows/bump-elastic-stack-snapshot.yml index 2752ee145547..4009331d1787 100644 --- a/.github/workflows/bump-elastic-stack-snapshot.yml +++ b/.github/workflows/bump-elastic-stack-snapshot.yml @@ -38,7 +38,7 @@ jobs: slack-channel-id: "#ingest-notifications" slack-message: ":traffic_cone: updatecli failed for `${{ github.repository }}@${{ github.ref_name }}`, @robots-ci please look what's going on " slack-send-when: "failure" - version-file: .tool-versions + version-file: .updatecli-version env: BRANCH: ${{ matrix.branch }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/bump-golang.yml b/.github/workflows/bump-golang.yml index 87da09ef5000..bdbb3775d28a 100644 --- a/.github/workflows/bump-golang.yml +++ b/.github/workflows/bump-golang.yml @@ -29,6 +29,6 @@ jobs: slack-channel-id: "#ingest-notifications" slack-message: ":traffic_cone: updatecli failed for `${{ github.repository }}@${{ github.ref_name }}`, @robots-ci please look what's going on " slack-send-when: "failure" - version-file: .tool-versions + version-file: .updatecli-version env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/updatecli-compose.yml b/.github/workflows/updatecli-compose.yml index d3406a615106..9283048f1b9f 100644 --- a/.github/workflows/updatecli-compose.yml +++ b/.github/workflows/updatecli-compose.yml @@ -32,7 +32,7 @@ jobs: slack-channel-id: "#ingest-notifications" slack-message: ":traffic_cone: updatecli failed for `${{ github.repository }}@${{ github.ref_name }}`, @robots-ci please look what's going on " slack-send-when: "failure" - version-file: .tool-versions + version-file: .updatecli-version env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -43,6 +43,6 @@ jobs: slack-channel-id: "#ingest-notifications" slack-message: ":traffic_cone: updatecli failed for `${{ github.repository }}@${{ github.ref_name }}`, @robots-ci please look what's going on " slack-send-when: "failure" - version-file: .tool-versions + version-file: .updatecli-version env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.tool-versions b/.updatecli-version similarity index 100% rename from .tool-versions rename to .updatecli-version From 7597661d27bf0e3a5bd42c9ff27bd2583231cb83 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 10 Jul 2025 17:56:08 +0000 Subject: [PATCH 36/45] [kafka] Handle configuration errors (#45128) (#45283) * [kafka] Handle configuration errors (cherry picked from commit 23f4491cca3ede2ca396e03e2bdb8fb954c566a8) Co-authored-by: Khushi Jain --- libbeat/outputs/kafka/client.go | 7 +- libbeat/outputs/kafka/config.go | 4 + .../outputs/kafka/kafka_integration_test.go | 98 +++++++++++++++++++ 3 files changed, 108 insertions(+), 1 deletion(-) diff --git a/libbeat/outputs/kafka/client.go b/libbeat/outputs/kafka/client.go index 9944c5878671..e4eac456c620 100644 --- a/libbeat/outputs/kafka/client.go +++ b/libbeat/outputs/kafka/client.go @@ -392,6 +392,11 @@ func (r *msgRef) fail(msg *message, err error) { len(msg.key)+len(msg.value)) r.client.observer.PermanentErrors(1) + // drop event if it exceeds size larger than max_message_bytes + case strings.Contains(err.Error(), "Attempt to produce message larger than configured Producer.MaxMessageBytes"): + r.client.log.Errorf("Kafka (topic=%v): dropping message as it exceeds max_mesage_bytes:", msg.topic) + r.client.observer.PermanentErrors(1) + case isAuthError(err): r.client.log.Errorf("Kafka (topic=%v): authorisation error: %s", msg.topic, err) r.client.observer.PermanentErrors(1) @@ -404,7 +409,7 @@ func (r *msgRef) fail(msg *message, err error) { default: r.failed = append(r.failed, msg.data) if r.err == nil { - // Don't overwrite an existing error. This way at tne end of the batch + // Don't overwrite an existing error. This way at the end of the batch // we report the first error that we saw, rather than the last one. r.err = err } diff --git a/libbeat/outputs/kafka/config.go b/libbeat/outputs/kafka/config.go index bf0b0a86d023..97bffd011fc6 100644 --- a/libbeat/outputs/kafka/config.go +++ b/libbeat/outputs/kafka/config.go @@ -185,6 +185,10 @@ func (c *kafkaConfig) Validate() error { return errors.New("either 'topic' or 'topics' must be defined") } + if len(c.Headers) != 0 && c.Version < kafka.Version("0.11") { + return errors.New("including headers is not supported for kafka versions < 0.11") + } + // When running under Elastic-Agent we do not support dynamic topic // selection, so `topics` is not supported and `topic` is treated as an // plain string diff --git a/libbeat/outputs/kafka/kafka_integration_test.go b/libbeat/outputs/kafka/kafka_integration_test.go index dbf55cf5b40c..91f88eb6d326 100644 --- a/libbeat/outputs/kafka/kafka_integration_test.go +++ b/libbeat/outputs/kafka/kafka_integration_test.go @@ -31,6 +31,9 @@ import ( "time" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "go.uber.org/zap/zapcore" + "go.uber.org/zap/zaptest/observer" "github.com/elastic/sarama" @@ -41,6 +44,7 @@ import ( _ "github.com/elastic/beats/v7/libbeat/outputs/codec/json" "github.com/elastic/beats/v7/libbeat/outputs/outest" "github.com/elastic/elastic-agent-libs/config" + "github.com/elastic/elastic-agent-libs/logp" "github.com/elastic/elastic-agent-libs/logp/logptest" "github.com/elastic/elastic-agent-libs/mapstr" ) @@ -347,6 +351,100 @@ func TestKafkaPublish(t *testing.T) { } } +func TestKafkaErrors(t *testing.T) { + id := strconv.Itoa(rand.Int()) + testTopic := fmt.Sprintf("test-libbeat-%s", id) + + tests := []struct { + title string + config map[string]interface{} + topic string + events []eventInfo + errorMessage string + }{ + { + "message of size large than `max_message_bytes` must be dropped", + map[string]interface{}{ + "max_message_bytes": "10", + }, + testTopic, + single(mapstr.M{ + "host": "test-host-random-message-which-is-long-enough", + "message": id, + }), + "dropping message as it exceeds max_mesage_bytes", + }, + } + + defaultConfig := map[string]interface{}{ + "hosts": []string{getTestKafkaHost()}, + "topic": testTopic, + "timeout": "1s", + } + + for _, test := range tests { + + cfg := makeConfig(t, defaultConfig) + if test.config != nil { + err := cfg.Merge(makeConfig(t, test.config)) + if err != nil { + t.Fatal(err) + } + } + + observed, zapLogs := observer.New(zapcore.DebugLevel) + logger, err := logp.ConfigureWithCoreLocal(logp.Config{}, observed) + require.NoError(t, err) + + grp, err := makeKafka(nil, beat.Info{Beat: "libbeat", IndexPrefix: "testbeat", Logger: logger}, outputs.NewNilObserver(), cfg) + if err != nil { + t.Fatal(err) + } + + output, ok := grp.Clients[0].(*client) + assert.True(t, ok, "grp.Clients[0] didn't contain a ptr to client") + if err := output.Connect(context.Background()); err != nil { + t.Fatal(err) + } + assert.Equal(t, output.index, "testbeat") + defer output.Close() + + // publish test events + var wg sync.WaitGroup + for i := range test.events { + batch := outest.NewBatch(test.events[i].events...) + batch.OnSignal = func(_ outest.BatchSignal) { + wg.Done() + } + + wg.Add(1) + err := output.Publish(context.Background(), batch) + if err != nil { + t.Fatal(err) + } + } + + // wait for all published batches to be ACKed + wg.Wait() + + t.Cleanup(func() { + if t.Failed() { + t.Logf("Debug Logs:\n") + for _, log := range zapLogs.TakeAll() { + data, err := json.Marshal(log) + if err != nil { + t.Errorf("failed encoding log as JSON: %s", err) + } + t.Logf("%s", string(data)) + } + return + } + }) + assert.GreaterOrEqual(t, zapLogs.FilterMessageSnippet(test.errorMessage).Len(), 1) + } + +} + func validateJSON(t *testing.T, value []byte, events []beat.Event) string { var decoded map[string]interface{} err := json.Unmarshal(value, &decoded) From be7a9aee3f9d77955f8636d9e0b10aae4f824129 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 10 Jul 2025 14:29:20 -0400 Subject: [PATCH 37/45] Support both take over configurations (#45222) (#45293) The take over mode configuration changed format, this commit makes both formats accepted with no change on how the feature works. --------- (cherry picked from commit f72b33d4e1a04ea461eb09373f3a7dd9c93d0f6a) Co-authored-by: Tiago Queiroz Co-authored-by: Anderson Queiroz Co-authored-by: Colleen McGinnis Co-authored-by: Craig MacKenzie --- CHANGELOG.next.asciidoc | 2 +- .../filebeat/filebeat-input-filestream.md | 5 +- filebeat/input/filestream/config.go | 10 +-- filebeat/input/filestream/config_test.go | 5 +- filebeat/input/filestream/input.go | 4 +- .../internal/input-logfile/manager.go | 70 +++++++++++++-- .../internal/input-logfile/manager_test.go | 86 +++++++++++++++++++ filebeat/input/filestream/prospector.go | 2 +- filebeat/input/v2/compat/compat_test.go | 1 - filebeat/tests/integration/filestream_test.go | 10 +++ .../take-over/happy-path-log-input.yml | 3 +- 11 files changed, 175 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index ac6fa3a6e0b1..052724fe4ecf 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -439,7 +439,7 @@ otherwise no tag is added. {issue}42208[42208] {pull}42403[42403] - Journald `include_matches.match` now accepts `+` to represent a logical disjunction (OR) {issue}40185[40185] {pull}42517[42517] - The journald input is now generally available. {pull}42107[42107] - Add metrics for number of events and pages published by HTTPJSON input. {issue}42340[42340] {pull}42442[42442] -- Filestram take over now supports taking over states from other Filestream inputs and dynamic loading of inputs (autodiscover and Elastic-Agent). {issue}42472[42472] {issue}42884[42884] {pull}42624[42624] +- Filestream take over now supports taking over states from other Filestream inputs and dynamic loading of inputs (autodiscover and Elastic Agent). There is a new syntax for the configuration, but the previous one can still be used. {issue}42472[42472] {issue}42884[42884] {pull}42624[42624] - Add `etw` input fallback to attach an already existing session. {pull}42847[42847] - Update CEL mito extensions to v1.17.0. {pull}42851[42851] - Winlog input now can report its status to Elastic-Agent {pull}43089[43089] diff --git a/docs/reference/filebeat/filebeat-input-filestream.md b/docs/reference/filebeat/filebeat-input-filestream.md index 980bf6131995..0ce959023b86 100644 --- a/docs/reference/filebeat/filebeat-input-filestream.md +++ b/docs/reference/filebeat/filebeat-input-filestream.md @@ -354,13 +354,16 @@ The `take over` mode can work correctly only if the source (taken from) inputs a `take_over.enabled: true` requires the `filestream` to have a unique ID. :::: - This `take over` mode was created to enable smooth migration from deprecated `log` inputs to the new `filestream` inputs and to allow changing `filestream` input IDs without data re-ingestion. See [*Migrate `log` input configurations to `filestream`*](/reference/filebeat/migrate-to-filestream.md) for more details about the migration process. +The previous configuration format `take_over: true`, while +deprecated, is still supported to migrate state from the `log` input +to `filestream`. + ::::{warning} The `take over` mode is still in beta, however, it should be generally safe to use. :::: diff --git a/filebeat/input/filestream/config.go b/filebeat/input/filestream/config.go index c98e6e3acd1b..72da75092451 100644 --- a/filebeat/input/filestream/config.go +++ b/filebeat/input/filestream/config.go @@ -25,6 +25,7 @@ import ( "github.com/dustin/go-humanize" + loginp "github.com/elastic/beats/v7/filebeat/input/filestream/internal/input-logfile" "github.com/elastic/beats/v7/libbeat/common/match" "github.com/elastic/beats/v7/libbeat/reader/parser" "github.com/elastic/beats/v7/libbeat/reader/readfile" @@ -49,18 +50,15 @@ type config struct { IgnoreOlder time.Duration `config:"ignore_older"` IgnoreInactive ignoreInactiveType `config:"ignore_inactive"` Rotation *conf.Namespace `config:"rotation"` - TakeOver takeOverConfig `config:"take_over"` + // TakeOver is also independently parsed by InputManager.Create + // (see internal/input-logfile/manager.go). + TakeOver loginp.TakeOverConfig `config:"take_over"` // AllowIDDuplication is used by InputManager.Create // (see internal/input-logfile/manager.go). AllowIDDuplication bool `config:"allow_deprecated_id_duplication"` } -type takeOverConfig struct { - Enabled bool `config:"enabled"` - FromIDs []string `config:"from_ids"` -} - type closerConfig struct { OnStateChange stateChangeCloserConfig `config:"on_state_change"` Reader readerCloserConfig `config:"reader"` diff --git a/filebeat/input/filestream/config_test.go b/filebeat/input/filestream/config_test.go index a4cbe576fe96..93b9c1d5173d 100644 --- a/filebeat/input/filestream/config_test.go +++ b/filebeat/input/filestream/config_test.go @@ -26,6 +26,7 @@ import ( "github.com/stretchr/testify/require" "go.uber.org/zap/zaptest/observer" + loginp "github.com/elastic/beats/v7/filebeat/input/filestream/internal/input-logfile" conf "github.com/elastic/elastic-agent-libs/config" "github.com/elastic/elastic-agent-libs/logp" ) @@ -40,7 +41,7 @@ func TestConfigValidate(t *testing.T) { t.Run("take_over requires ID", func(t *testing.T) { c := config{ Paths: []string{"/foo/bar"}, - TakeOver: takeOverConfig{Enabled: true}, + TakeOver: loginp.TakeOverConfig{Enabled: true}, } err := c.Validate() assert.Error(t, err, "take_over.enabled can only be true if ID is set") @@ -50,7 +51,7 @@ func TestConfigValidate(t *testing.T) { c := config{ Paths: []string{"/foo/bar"}, ID: "some id", - TakeOver: takeOverConfig{Enabled: true}, + TakeOver: loginp.TakeOverConfig{Enabled: true}, } err := c.Validate() assert.NoError(t, err) diff --git a/filebeat/input/filestream/input.go b/filebeat/input/filestream/input.go index 3e657b0a83ac..c4cca14b0dbb 100644 --- a/filebeat/input/filestream/input.go +++ b/filebeat/input/filestream/input.go @@ -64,7 +64,7 @@ type filestream struct { encodingFactory encoding.EncodingFactory closerConfig closerConfig parsers parser.Config - takeOver takeOverConfig + takeOver loginp.TakeOverConfig } // Plugin creates a new filestream input plugin for creating a stateful input. @@ -91,6 +91,8 @@ func configure(cfg *conf.C, log *logp.Logger) (loginp.Prospector, loginp.Harvest return nil, nil, err } + config.TakeOver.LogWarnings(log) + prospector, err := newProspector(config, log) if err != nil { return nil, nil, fmt.Errorf("cannot create prospector: %w", err) diff --git a/filebeat/input/filestream/internal/input-logfile/manager.go b/filebeat/input/filestream/internal/input-logfile/manager.go index 6e817c092a18..f7a7eb889c05 100644 --- a/filebeat/input/filestream/internal/input-logfile/manager.go +++ b/filebeat/input/filestream/internal/input-logfile/manager.go @@ -151,14 +151,11 @@ func (cim *InputManager) Create(config *conf.C) (inp v2.Input, retErr error) { settings := struct { // All those values are duplicated from the Filestream configuration - ID string `config:"id"` - CleanInactive time.Duration `config:"clean_inactive"` - HarvesterLimit uint64 `config:"harvester_limit"` - AllowIDDuplication bool `config:"allow_deprecated_id_duplication"` - TakeOver struct { - Enabled bool `config:"enabled"` - FromIDs []string `config:"from_ids"` - } `config:"take_over"` + ID string `config:"id"` + CleanInactive time.Duration `config:"clean_inactive"` + HarvesterLimit uint64 `config:"harvester_limit"` + AllowIDDuplication bool `config:"allow_deprecated_id_duplication"` + TakeOver TakeOverConfig `config:"take_over"` }{ CleanInactive: cim.DefaultCleanTimeout, } @@ -325,3 +322,60 @@ func (i *sourceIdentifier) ID(s Source) string { func (i *sourceIdentifier) MatchesInput(id string) bool { return strings.HasPrefix(id, i.prefix) } + +// TakeOverConfig is the configuration for the take over mode. +// It allows the Filestream input to take over states from the log +// input or other Filestream inputs +type TakeOverConfig struct { + Enabled bool `config:"enabled"` + // Filestream IDs to take over states + FromIDs []string `config:"from_ids"` + + // legacyFormat is set to true when `Unpack` detects + // the legacy configuration format. It is used by + // `LogWarnings` to log warnings + legacyFormat bool +} + +func (t *TakeOverConfig) Unpack(value any) error { + switch v := value.(type) { + case bool: + t.Enabled = v + t.legacyFormat = true + case map[string]any: + rawEnabled := v["enabled"] + enabled, ok := rawEnabled.(bool) + if !ok { + return fmt.Errorf("cannot parse '%[1]v' (type %[1]T) as bool", rawEnabled) + } + t.Enabled = enabled + + rawFromIDs, exists := v["from_ids"] + if !exists { + return nil + } + + fromIDs, ok := rawFromIDs.([]any) + if !ok { + return fmt.Errorf("cannot parse '%[1]v' (type %[1]T) as []any", rawFromIDs) + } + for _, el := range fromIDs { + strEl, ok := el.(string) + if !ok { + return fmt.Errorf("cannot parse '%[1]v' (type %[1]T) as string", el) + } + t.FromIDs = append(t.FromIDs, strEl) + } + + default: + return fmt.Errorf("cannot parse '%[1]v' (type %[1]T)", value) + } + + return nil +} + +func (t *TakeOverConfig) LogWarnings(logger *logp.Logger) { + if t.legacyFormat { + logger.Warn("using 'take_over: true' is deprecated, use the new format: 'take_over.enabled: true'") + } +} diff --git a/filebeat/input/filestream/internal/input-logfile/manager_test.go b/filebeat/input/filestream/internal/input-logfile/manager_test.go index e8b80fb59044..58e014dba0a0 100644 --- a/filebeat/input/filestream/internal/input-logfile/manager_test.go +++ b/filebeat/input/filestream/internal/input-logfile/manager_test.go @@ -434,3 +434,89 @@ func newBufferLogger() (*logp.Logger, *bytes.Buffer) { })) return log, buf } + +func TestTakeOverConfigUnpack(t *testing.T) { + testCases := map[string]struct { + cfgYAML string + expected TakeOverConfig + expectErr bool + }{ + "legacy mode enabled": { + cfgYAML: `take_over: true`, + expected: TakeOverConfig{ + Enabled: true, + legacyFormat: true, + }, + }, + "legacy mode disabled": { + cfgYAML: `take_over: false`, + expected: TakeOverConfig{ + Enabled: false, + legacyFormat: true, + }, + }, + "new mode enabled": { + cfgYAML: ` +take_over: + enabled: true`, + expected: TakeOverConfig{ + Enabled: true, + }, + }, + "new mode disabled": { + cfgYAML: ` +take_over: + enabled: false`, + expected: TakeOverConfig{ + Enabled: false, + }, + }, + "new mode with IDs": { + cfgYAML: ` +take_over: + enabled: true + from_ids: ["foo", "bar"]`, + expected: TakeOverConfig{ + Enabled: true, + FromIDs: []string{"foo", "bar"}, + }, + }, + "take_over not defined": { + cfgYAML: "", + expectErr: false, + }, + "invalid new config": { + cfgYAML: "take_over.enabled: 42", + expectErr: true, + }, + "invalid from_ids elements ": { + cfgYAML: "take_over.from_ids: [\"foo\", 42]", + expectErr: true, + }, + "invalid from_ids type ": { + cfgYAML: "take_over.from_ids: false", + expectErr: true, + }, + "invalid legacy config": { + cfgYAML: "take_over: 42", + expectErr: true, + }, + } + + for name, tc := range testCases { + t.Run(name, func(t *testing.T) { + cfg := config.MustNewConfigFrom(tc.cfgYAML) + outer := struct { + TakeOver TakeOverConfig `config:"take_over"` + }{} + err := cfg.Unpack(&outer) + if tc.expectErr { + require.Error(t, err, "Unpack must fail") + } else { + require.NoError(t, err, "Unpack must succeed") + } + + assert.Equal(t, tc.expected, outer.TakeOver, "TakeOverConfig was not parsed correctly") + }) + } +} diff --git a/filebeat/input/filestream/prospector.go b/filebeat/input/filestream/prospector.go index 40856ca3c02d..dabcec62e0fd 100644 --- a/filebeat/input/filestream/prospector.go +++ b/filebeat/input/filestream/prospector.go @@ -81,7 +81,7 @@ type fileProspector struct { ignoreInactiveSince ignoreInactiveType cleanRemoved bool stateChangeCloser stateChangeCloserConfig - takeOver takeOverConfig + takeOver loginp.TakeOverConfig } func (p *fileProspector) Init( diff --git a/filebeat/input/v2/compat/compat_test.go b/filebeat/input/v2/compat/compat_test.go index 3995c85f185d..a8c2265f6779 100644 --- a/filebeat/input/v2/compat/compat_test.go +++ b/filebeat/input/v2/compat/compat_test.go @@ -110,7 +110,6 @@ paths: prospector: scanner: symlinks: true -take_over: true type: test `, inputID) diff --git a/filebeat/tests/integration/filestream_test.go b/filebeat/tests/integration/filestream_test.go index 5b7102bddaf4..d4dadb3ef557 100644 --- a/filebeat/tests/integration/filestream_test.go +++ b/filebeat/tests/integration/filestream_test.go @@ -589,6 +589,11 @@ func TestFilestreamTakeOverFromFilestream(t *testing.T) { "expected-registry-happy-path.json"), "Entries in the registry are different from the expectation", ) + + deprecationLog := "using 'take_over: true' is deprecated, use the new format: 'take_over.enabled: true'" + if filebeat.LogContains(deprecationLog) { + t.Fatalf("deprecation log %q must not be present when using the new syntax", deprecationLog) + } } func TestFilestreamTakeOverFromLogInput(t *testing.T) { @@ -655,6 +660,11 @@ func TestFilestreamTakeOverFromLogInput(t *testing.T) { "expected-registry-happy-path-log-input.json"), "Entries in the registry are different from the expectation", ) + + deprecationLog := "using 'take_over: true' is deprecated, use the new format: 'take_over.enabled: true'" + if !filebeat.LogContains(deprecationLog) { + t.Fatalf("did not find the deprecation log %q", deprecationLog) + } } func requireRegistryEntryRemoved(t *testing.T, workDir, identity string) { diff --git a/filebeat/tests/integration/testdata/take-over/happy-path-log-input.yml b/filebeat/tests/integration/testdata/take-over/happy-path-log-input.yml index f8962abdabab..b3463a436152 100644 --- a/filebeat/tests/integration/testdata/take-over/happy-path-log-input.yml +++ b/filebeat/tests/integration/testdata/take-over/happy-path-log-input.yml @@ -4,8 +4,7 @@ filebeat.inputs: - {{.testdata}}/take-over/*.log {{ if .takeOver }} id: take-over-from-log-input - take_over: - enabled: true + take_over: true file_identity.fingerprint: ~ prospector: scanner: From 22f4a140004d10868349d5d2280fe528ced53537 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 10 Jul 2025 20:17:10 +0000 Subject: [PATCH 38/45] chore: Update snapshot.yml (#45294) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made with ❤️️ by updatecli Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- testing/environments/snapshot.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/testing/environments/snapshot.yml b/testing/environments/snapshot.yml index 830183004815..b5ebcbec5de0 100644 --- a/testing/environments/snapshot.yml +++ b/testing/environments/snapshot.yml @@ -2,7 +2,7 @@ services: elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:9.1.0-4679d887-SNAPSHOT + image: docker.elastic.co/elasticsearch/elasticsearch:9.1.0-434b09c2-SNAPSHOT # When extend is used it merges healthcheck.tests, see: # https://github.com/docker/compose/issues/8962 # healthcheck: @@ -37,7 +37,7 @@ services: - "./docker/elasticsearch/users_roles:/usr/share/elasticsearch/config/users_roles" logstash: - image: docker.elastic.co/logstash/logstash:9.1.0-4679d887-SNAPSHOT + image: docker.elastic.co/logstash/logstash:9.1.0-434b09c2-SNAPSHOT healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9600/_node/stats"] retries: 600 @@ -50,7 +50,7 @@ services: - 5055:5055 kibana: - image: docker.elastic.co/kibana/kibana:9.1.0-4679d887-SNAPSHOT + image: docker.elastic.co/kibana/kibana:9.1.0-434b09c2-SNAPSHOT environment: - "ELASTICSEARCH_USERNAME=kibana_system_user" - "ELASTICSEARCH_PASSWORD=testing" From 2b2f807b1dca41c78ea24cdd070fc5cdd1a73977 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 11 Jul 2025 09:42:10 +0000 Subject: [PATCH 39/45] [9.1](backport #45145) [beatreceivers] Introduce otel mode for metricbeat (#45312) * [beatreceivers] Introduce otel mode for metricbeat (#45145) --- dev-tools/mage/build.go | 6 + .../otelbeat/beatconverter/beatconverter.go | 2 +- .../providers/fbprovider/fbprovider.go | 50 +----- .../providers/fbprovider/fbprovider_test.go | 16 +- .../providers/mbprovider/mbprovider.go | 55 ++++++ .../providers/mbprovider/mbprovider_test.go | 125 +++++++++++++ libbeat/otelbeat/providers/providers.go | 69 +++++++ libbeat/tests/integration/framework.go | 1 + x-pack/filebeat/cmd/otelcmd_enabled.go | 3 +- x-pack/filebeat/magefile.go | 4 +- x-pack/libbeat/common/otelbeat/otel.go | 15 +- x-pack/metricbeat/cmd/otelcmd_disabled.go | 15 ++ x-pack/metricbeat/cmd/otelcmd_enabled.go | 17 ++ x-pack/metricbeat/cmd/root.go | 1 + x-pack/metricbeat/docker-compose.yml | 8 + x-pack/metricbeat/magefile.go | 28 ++- x-pack/metricbeat/metricbeat-otel.yml | 26 +++ .../metricbeat/tests/integration/otel_test.go | 168 ++++++++++++++++++ 18 files changed, 539 insertions(+), 70 deletions(-) create mode 100644 libbeat/otelbeat/providers/mbprovider/mbprovider.go create mode 100644 libbeat/otelbeat/providers/mbprovider/mbprovider_test.go create mode 100644 libbeat/otelbeat/providers/providers.go create mode 100644 x-pack/metricbeat/cmd/otelcmd_disabled.go create mode 100644 x-pack/metricbeat/cmd/otelcmd_enabled.go create mode 100644 x-pack/metricbeat/metricbeat-otel.yml create mode 100644 x-pack/metricbeat/tests/integration/otel_test.go diff --git a/dev-tools/mage/build.go b/dev-tools/mage/build.go index d4ed8aaaf95e..ced63a6625d9 100644 --- a/dev-tools/mage/build.go +++ b/dev-tools/mage/build.go @@ -198,6 +198,12 @@ func GolangCrossBuild(params BuildArgs) error { return Build(params) } +func BuildOTel() error { + args := DefaultBuildArgs() + args.ExtraFlags = append(args.ExtraFlags, "-tags", "otelbeat") + return Build(args) +} + // Build invokes "go build" to produce a binary. func Build(params BuildArgs) error { fmt.Println(">> build: Building", params.Name) diff --git a/libbeat/otelbeat/beatconverter/beatconverter.go b/libbeat/otelbeat/beatconverter/beatconverter.go index 56ce20a060b5..0088ac891b78 100644 --- a/libbeat/otelbeat/beatconverter/beatconverter.go +++ b/libbeat/otelbeat/beatconverter/beatconverter.go @@ -29,7 +29,7 @@ import ( ) // list of supported beatreceivers -var supportedReceivers = []string{"filebeatreceiver"} // Add more beat receivers to this list when we add support +var supportedReceivers = []string{"filebeatreceiver", "metricbeatreceiver"} // Add more beat receivers to this list when we add support type converter struct{} diff --git a/libbeat/otelbeat/providers/fbprovider/fbprovider.go b/libbeat/otelbeat/providers/fbprovider/fbprovider.go index 50ba26bdf900..3e677e868fae 100644 --- a/libbeat/otelbeat/providers/fbprovider/fbprovider.go +++ b/libbeat/otelbeat/providers/fbprovider/fbprovider.go @@ -19,67 +19,35 @@ package fbprovider import ( "context" - "fmt" - "path/filepath" - "strings" "go.opentelemetry.io/collector/confmap" - "github.com/elastic/beats/v7/libbeat/cfgfile" + "github.com/elastic/beats/v7/libbeat/otelbeat/providers" ) const schemeName = "fb" -type provider struct{} +type fbProvider struct{} -// The Provider provides configuration, and allows to watch/monitor for changes. +// NewFactory returns a provider factory that loads filebeat configuration func NewFactory() confmap.ProviderFactory { return confmap.NewProviderFactory(newProvider) } func newProvider(confmap.ProviderSettings) confmap.Provider { - return &provider{} + return &fbProvider{} } // Retrieve retrieves the beat configuration file and constructs otel config -func (fmp *provider) Retrieve(_ context.Context, uri string, _ confmap.WatcherFunc) (*confmap.Retrieved, error) { - if !strings.HasPrefix(uri, schemeName+":") { - return nil, fmt.Errorf("%q uri is not supported by %q provider", uri, schemeName) - } - - // Load filebeat config file - cfg, err := cfgfile.Load(filepath.Clean(uri[len(schemeName)+1:]), nil) - if err != nil { - return nil, err - } - - var receiverMap map[string]any - err = cfg.Unpack(&receiverMap) - if err != nil { - return nil, err - } - - // filebeat specific configuration is defined here - cfgMap := map[string]any{ - "receivers": map[string]any{ - "filebeatreceiver": receiverMap, - }, - "service": map[string]any{ - "pipelines": map[string]any{ - "logs": map[string]any{ - "receivers": []string{"filebeatreceiver"}, - }, - }, - }, - } - - return confmap.NewRetrieved(cfgMap) +// uri here is the filepath of the beat config +func (*fbProvider) Retrieve(_ context.Context, uri string, _ confmap.WatcherFunc) (*confmap.Retrieved, error) { + return providers.LoadConfig(uri, schemeName) } -func (*provider) Scheme() string { +func (*fbProvider) Scheme() string { return schemeName } -func (*provider) Shutdown(context.Context) error { +func (*fbProvider) Shutdown(context.Context) error { return nil } diff --git a/libbeat/otelbeat/providers/fbprovider/fbprovider_test.go b/libbeat/otelbeat/providers/fbprovider/fbprovider_test.go index 6e4512fc4463..b2f5df08e3fe 100644 --- a/libbeat/otelbeat/providers/fbprovider/fbprovider_test.go +++ b/libbeat/otelbeat/providers/fbprovider/fbprovider_test.go @@ -21,6 +21,7 @@ import ( "context" _ "embed" "os" + "path/filepath" "testing" "github.com/stretchr/testify/assert" @@ -101,21 +102,18 @@ service: ` func TestFileBeatProvider(t *testing.T) { - p := provider{} + p := fbProvider{} t.Run("test filebeat provider", func(t *testing.T) { - tempFile, err := os.CreateTemp("", "filebeat.yml") - require.NoError(t, err, "error creating temp file") - defer os.Remove(tempFile.Name()) // Clean up the file after we're done - defer tempFile.Close() + tempDir := t.TempDir() - content := []byte(beatsConfig) - _, err = tempFile.Write(content) - require.NoError(t, err, "error creating temp file") + tempFileName := filepath.Join(tempDir, "filebeat.yml") + err := os.WriteFile(tempFileName, []byte(beatsConfig), 0666) + require.NoError(t, err, "error writing to temp file") // prefix file path with fb: - ret, err := p.Retrieve(context.Background(), "fb:"+tempFile.Name(), nil) + ret, err := p.Retrieve(context.Background(), "fb:"+tempFileName, nil) require.NoError(t, err) retValue, err := ret.AsRaw() diff --git a/libbeat/otelbeat/providers/mbprovider/mbprovider.go b/libbeat/otelbeat/providers/mbprovider/mbprovider.go new file mode 100644 index 000000000000..d1dbaecd328e --- /dev/null +++ b/libbeat/otelbeat/providers/mbprovider/mbprovider.go @@ -0,0 +1,55 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package mbprovider + +import ( + "context" + + "go.opentelemetry.io/collector/confmap" + + "github.com/elastic/beats/v7/libbeat/otelbeat/providers" +) + +const schemeName = "mb" + +type mbProvider struct{} + +// NewFactory returns a provider factory that loads metricbeat configuration +func NewFactory() confmap.ProviderFactory { + return confmap.NewProviderFactory(newProvider) +} + +func newProvider(confmap.ProviderSettings) confmap.Provider { + return &mbProvider{} +} + +// Retrieve retrieves the beat configuration file and constructs otel config +// uri here is the filepath of the beat config +func (*mbProvider) Retrieve(_ context.Context, uri string, _ confmap.WatcherFunc) (*confmap.Retrieved, error) { + return providers.LoadConfig(uri, schemeName) +} + +// Scheme returns the scheme name +func (*mbProvider) Scheme() string { + return schemeName +} + +// Shutdown is a noop, it always returns nil +func (*mbProvider) Shutdown(context.Context) error { + return nil +} diff --git a/libbeat/otelbeat/providers/mbprovider/mbprovider_test.go b/libbeat/otelbeat/providers/mbprovider/mbprovider_test.go new file mode 100644 index 000000000000..2ae7e247965b --- /dev/null +++ b/libbeat/otelbeat/providers/mbprovider/mbprovider_test.go @@ -0,0 +1,125 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package mbprovider + +import ( + "context" + _ "embed" + "os" + "path/filepath" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "go.opentelemetry.io/collector/confmap" + + "gopkg.in/yaml.v2" +) + +var beatsConfig = ` +metricbeat.modules: + - module: system + metricsets: + - cpu # CPU usage + - load # CPU load averages + enabled: true + period: 10s + processes: ['.*'] + + +output: + elasticsearch: + hosts: ["https://localhost:9200"] + username: elastic + password: changeme + index: form-otel-exporter + ssl.enabled: false +` + +var expectedOutput = ` +receivers: + metricbeatreceiver: + metricbeat: + modules: + - module: system + enabled: true + metricsets: + - cpu + - load + processes: ['.*'] + period: 10s + path: + config: . + data: ./data + home: . + logs: ./logs + output: + elasticsearch: + hosts: ["https://localhost:9200"] + username: elastic + password: changeme + index: form-otel-exporter + ssl: + enabled: false + +service: + pipelines: + logs: + receivers: + - "metricbeatreceiver" +` + +func TestMetricbeatProvider(t *testing.T) { + p := mbProvider{} + + t.Run("test metricbeat provider", func(t *testing.T) { + + tempDir := t.TempDir() + + tempFileName := filepath.Join(tempDir, "metricbeat.yml") + err := os.WriteFile(tempFileName, []byte(beatsConfig), 0666) + require.NoError(t, err, "error writing to temp file") + + // prefix file path with mb: + ret, err := p.Retrieve(context.Background(), "mb:"+tempFileName, nil) + require.NoError(t, err) + + retValue, err := ret.AsRaw() + require.NoError(t, err) + expOutput := newFromYamlString(t, expectedOutput) + + // convert it into a common type + want, err := yaml.Marshal(expOutput.ToStringMap()) + require.NoError(t, err) + got, err := yaml.Marshal(retValue) + require.NoError(t, err) + + assert.Equal(t, string(want), string(got)) + assert.NoError(t, p.Shutdown(context.Background())) + }) + +} + +func newFromYamlString(t *testing.T, input string) *confmap.Conf { + t.Helper() + var rawConf map[string]any + err := yaml.Unmarshal([]byte(input), &rawConf) + require.NoError(t, err) + + return confmap.NewFromStringMap(rawConf) +} diff --git a/libbeat/otelbeat/providers/providers.go b/libbeat/otelbeat/providers/providers.go new file mode 100644 index 000000000000..adef7052e090 --- /dev/null +++ b/libbeat/otelbeat/providers/providers.go @@ -0,0 +1,69 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package providers + +import ( + "fmt" + "path/filepath" + "strings" + + "go.opentelemetry.io/collector/confmap" + + "github.com/elastic/beats/v7/libbeat/cfgfile" +) + +var schemeMap = map[string]string{ + "fb": "filebeatreceiver", + "mb": "metricbeatreceiver", +} + +// LoadConfig loads beat configuration based on provided scheme-name and uri path +func LoadConfig(uri string, schemeName string) (*confmap.Retrieved, error) { + if !strings.HasPrefix(uri, schemeName+":") { + return nil, fmt.Errorf("%q uri is not supported by %q provider", uri, schemeName) + } + + // Load beat config file + cfg, err := cfgfile.Load(filepath.Clean(uri[len(schemeName)+1:]), nil) + if err != nil { + return nil, err + } + + var receiverMap map[string]any + err = cfg.Unpack(&receiverMap) + if err != nil { + return nil, err + } + + receiverName := schemeMap[schemeName] + // beat specific configuration is defined here + cfgMap := map[string]any{ + "receivers": map[string]any{ + receiverName: receiverMap, + }, + "service": map[string]any{ + "pipelines": map[string]any{ + "logs": map[string]any{ + "receivers": []string{receiverName}, + }, + }, + }, + } + + return confmap.NewRetrieved(cfgMap) +} diff --git a/libbeat/tests/integration/framework.go b/libbeat/tests/integration/framework.go index 86c3b868e9c9..ba1d8bbd0a5e 100644 --- a/libbeat/tests/integration/framework.go +++ b/libbeat/tests/integration/framework.go @@ -690,6 +690,7 @@ func createTempDir(t *testing.T) string { // using the default test credentials or the corresponding environment // variables. func EnsureESIsRunning(t *testing.T) { + t.Helper() esURL := GetESURL(t, "http") ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(500*time.Second)) diff --git a/x-pack/filebeat/cmd/otelcmd_enabled.go b/x-pack/filebeat/cmd/otelcmd_enabled.go index 09bf09cdade2..110ae9f589c7 100644 --- a/x-pack/filebeat/cmd/otelcmd_enabled.go +++ b/x-pack/filebeat/cmd/otelcmd_enabled.go @@ -7,11 +7,10 @@ package cmd import ( - fbcmd "github.com/elastic/beats/v7/filebeat/cmd" cmd "github.com/elastic/beats/v7/libbeat/cmd" "github.com/elastic/beats/v7/x-pack/libbeat/common/otelbeat" ) func addOTelCommand(command *cmd.BeatsRootCmd) { - command.AddCommand(otelbeat.OTelCmd(fbcmd.Name)) + command.AddCommand(otelbeat.OTelCmd(Name)) } diff --git a/x-pack/filebeat/magefile.go b/x-pack/filebeat/magefile.go index 91fb608c31d5..ab82a5b0745a 100644 --- a/x-pack/filebeat/magefile.go +++ b/x-pack/filebeat/magefile.go @@ -45,9 +45,7 @@ func Build() error { // BuildOTel builds the Beat binary with OTel sub command func BuildOTel() error { - args := devtools.DefaultBuildArgs() - args.ExtraFlags = append(args.ExtraFlags, "-tags", "otelbeat") - return devtools.Build(args) + return devtools.BuildOTel() } // BuildSystemTestBinary builds a binary instrumented for use with Python system tests. diff --git a/x-pack/libbeat/common/otelbeat/otel.go b/x-pack/libbeat/common/otelbeat/otel.go index f338584cde9a..ea0502f83532 100644 --- a/x-pack/libbeat/common/otelbeat/otel.go +++ b/x-pack/libbeat/common/otelbeat/otel.go @@ -17,12 +17,15 @@ import ( "github.com/elastic/beats/v7/libbeat/otelbeat/beatconverter" "github.com/elastic/beats/v7/libbeat/otelbeat/providers/fbprovider" + "github.com/elastic/beats/v7/libbeat/otelbeat/providers/mbprovider" + "github.com/elastic/beats/v7/libbeat/version" "github.com/elastic/beats/v7/x-pack/filebeat/fbreceiver" - "github.com/elastic/elastic-agent-libs/logp" + "github.com/elastic/beats/v7/x-pack/metricbeat/mbreceiver" ) var schemeMap = map[string]string{ - "filebeat": "fb", + "filebeat": "fb", + "metricbeat": "mb", } func OTelCmd(beatname string) *cobra.Command { @@ -31,8 +34,6 @@ func OTelCmd(beatname string) *cobra.Command { Use: "otel", Hidden: true, RunE: func(cmd *cobra.Command, args []string) error { - logger := logp.NewLogger(beatname + "-otel-mode") - logger.Info("This mode is experimental and unsupported") // get beat configuration file beatCfg, _ := cmd.Flags().GetString("config") @@ -48,7 +49,7 @@ func OTelCmd(beatname string) *cobra.Command { }, } - command.Flags().String("config", beatname+"-otel.yml", "path to filebeat config file") + command.Flags().String("config", beatname+"-otel.yml", "path to "+beatname+" config file") return command } @@ -56,6 +57,7 @@ func OTelCmd(beatname string) *cobra.Command { func getComponent() (otelcol.Factories, error) { receivers, err := otelcol.MakeFactoryMap( fbreceiver.NewFactory(), + mbreceiver.NewFactory(), ) if err != nil { return otelcol.Factories{}, nil //nolint:nilerr //ignoring this error @@ -81,7 +83,7 @@ func getCollectorSettings(filename string) otelcol.CollectorSettings { info := component.BuildInfo{ Command: "otel", Description: "Beats OTel", - Version: "9.0.0", + Version: version.GetDefaultVersion(), } return otelcol.CollectorSettings{ @@ -92,6 +94,7 @@ func getCollectorSettings(filename string) otelcol.CollectorSettings { URIs: []string{filename}, ProviderFactories: []confmap.ProviderFactory{ fbprovider.NewFactory(), + mbprovider.NewFactory(), }, ConverterFactories: []confmap.ConverterFactory{ beatconverter.NewFactory(), diff --git a/x-pack/metricbeat/cmd/otelcmd_disabled.go b/x-pack/metricbeat/cmd/otelcmd_disabled.go new file mode 100644 index 000000000000..af7e1424dd0a --- /dev/null +++ b/x-pack/metricbeat/cmd/otelcmd_disabled.go @@ -0,0 +1,15 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +//go:build !otelbeat + +package cmd + +import ( + cmd "github.com/elastic/beats/v7/libbeat/cmd" +) + +func addOTelCommand(command *cmd.BeatsRootCmd) { + // No-op +} diff --git a/x-pack/metricbeat/cmd/otelcmd_enabled.go b/x-pack/metricbeat/cmd/otelcmd_enabled.go new file mode 100644 index 000000000000..afbb9e4dfa20 --- /dev/null +++ b/x-pack/metricbeat/cmd/otelcmd_enabled.go @@ -0,0 +1,17 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +//go:build otelbeat + +package cmd + +import ( + cmd "github.com/elastic/beats/v7/libbeat/cmd" + "github.com/elastic/beats/v7/x-pack/libbeat/common/otelbeat" +) + +func addOTelCommand(command *cmd.BeatsRootCmd) { + // Name here is the name of the beat + command.AddCommand(otelbeat.OTelCmd(Name)) +} diff --git a/x-pack/metricbeat/cmd/root.go b/x-pack/metricbeat/cmd/root.go index 76ca40ddf131..30d3d8386466 100644 --- a/x-pack/metricbeat/cmd/root.go +++ b/x-pack/metricbeat/cmd/root.go @@ -54,6 +54,7 @@ func Initialize() *cmd.BeatsRootCmd { rootCmd.PersistentPreRun = func(cmd *cobra.Command, args []string) { management.ConfigTransform.SetTransform(metricbeatCfg) } + addOTelCommand(rootCmd) return rootCmd } diff --git a/x-pack/metricbeat/docker-compose.yml b/x-pack/metricbeat/docker-compose.yml index 9f74541f834b..0857759502cd 100644 --- a/x-pack/metricbeat/docker-compose.yml +++ b/x-pack/metricbeat/docker-compose.yml @@ -1,6 +1,14 @@ version: '2.3' services: + # This is a proxy used to block "docker-compose up" until all services are healthy. + # See: https://github.com/docker/compose/issues/4369 + proxy_dep: + image: busybox + depends_on: + elasticsearch: { condition: service_healthy } + kibana: { condition: service_healthy } + beat: build: ../../metricbeat environment: diff --git a/x-pack/metricbeat/magefile.go b/x-pack/metricbeat/magefile.go index 6fded2c4e737..739d4359bf97 100644 --- a/x-pack/metricbeat/magefile.go +++ b/x-pack/metricbeat/magefile.go @@ -52,6 +52,11 @@ func Build() error { return devtools.Build(args) } +// BuildOTel builds the Beat binary with OTel sub command +func BuildOTel() error { + return devtools.BuildOTel() +} + // GolangCrossBuild build the Beat binary inside of the golang-builder. // Do not use directly, use crossBuild instead. func GolangCrossBuild() error { @@ -235,13 +240,27 @@ func IntegTest() { // Use TEST_TAGS=tag1,tag2 to add additional build tags. // Use MODULE=module to run only tests for `module`. func GoIntegTest(ctx context.Context) error { + + // define modules if os.Getenv("CI") == "true" { mg.Deps(devtools.DefineModules) } if !devtools.IsInIntegTestEnv() { + // build integration test binary with otel sub command + devtools.BuildSystemTestOTelBinary() + args := devtools.DefaultGoTestIntegrationFromHostArgs() + // ES_USER must be admin in order for the Go Integration tests to function because they require + // indices:data/read/search + args.Env["ES_USER"] = args.Env["ES_SUPERUSER_USER"] + args.Env["ES_PASS"] = args.Env["ES_SUPERUSER_PASS"] + // run integration test from home directory + args.Packages = []string{"./tests/integration/"} + devtools.GoIntegTestFromHost(ctx, args) + mg.SerialDeps(Fields, Dashboards) } + return devtools.GoTestIntegrationForModule(ctx) } @@ -252,15 +271,8 @@ func GoIntegTest(ctx context.Context) error { // Use TEST_TAGS=tag1,tag2 to add additional build tags. // Use MODULE=module to run only tests for `module`. func GoFIPSOnlyIntegTest(ctx context.Context) error { - if os.Getenv("CI") == "true" { - mg.Deps(devtools.DefineModules) - } - - if !devtools.IsInIntegTestEnv() { - mg.SerialDeps(Fields, Dashboards) - } os.Setenv("GODEBUG", "fips140=only") - return devtools.GoTestIntegrationForModule(ctx) + return GoIntegTest(ctx) } // PythonIntegTest executes the python system tests in the integration diff --git a/x-pack/metricbeat/metricbeat-otel.yml b/x-pack/metricbeat/metricbeat-otel.yml new file mode 100644 index 000000000000..14c2a1a11423 --- /dev/null +++ b/x-pack/metricbeat/metricbeat-otel.yml @@ -0,0 +1,26 @@ +metricbeat.modules: +- module: system + metricsets: + - cpu # CPU usage + - load # CPU load averages + - memory # Memory usage + - network # Network IO + - process # Per process metrics + - process_summary # Process summary + - uptime # System Uptime + - socket_summary # Socket summary + enabled: true + period: 10s + processes: ['.*'] + + +output: + elasticsearch: + hosts: ["https://localhost:9200"] + username: elastic + password: changeme + +setup.kibana: + host: https://localhost:5601 + username: elastic + password: changeme diff --git a/x-pack/metricbeat/tests/integration/otel_test.go b/x-pack/metricbeat/tests/integration/otel_test.go new file mode 100644 index 000000000000..49c997ca27ab --- /dev/null +++ b/x-pack/metricbeat/tests/integration/otel_test.go @@ -0,0 +1,168 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +//go:build integration + +package integration + +import ( + "bytes" + "context" + "fmt" + "net/http" + "strings" + "testing" + "text/template" + "time" + + "github.com/gofrs/uuid/v5" + "github.com/google/go-cmp/cmp" + "github.com/stretchr/testify/require" + + "github.com/elastic/beats/v7/libbeat/tests/integration" + "github.com/elastic/elastic-agent-libs/mapstr" + "github.com/elastic/elastic-agent-libs/testing/estools" +) + +func TestMetricbeatOTelE2E(t *testing.T) { + integration.EnsureESIsRunning(t) + + host := integration.GetESURL(t, "http") + user := host.User.Username() + password, _ := host.User.Password() + + // create a random uuid and make sure it doesn't contain dashes/ + namespace := strings.ReplaceAll(uuid.Must(uuid.NewV4()).String(), "-", "") + + type options struct { + Index string + ESURL string + Username string + Password string + MonitoringPort int + } + + var beatsCfgFile = ` +metricbeat: + modules: + - module: system + enabled: true + period: 1s + processes: + - '.*' + metricsets: + - cpu +output: + elasticsearch: + hosts: + - {{ .ESURL }} + username: {{ .Username }} + password: {{ .Password }} + index: {{ .Index }} +queue.mem.flush.timeout: 0s +setup.template.enabled: false +processors: + - add_host_metadata: ~ + - add_cloud_metadata: ~ + - add_docker_metadata: ~ + - add_kubernetes_metadata: ~ +http.host: localhost +http.port: {{.MonitoringPort}} +` + + // start metricbeat in otel mode + metricbeatOTel := integration.NewBeat( + t, + "metricbeat-otel", + "../../metricbeat.test", + "otel", + ) + + optionsValue := options{ + ESURL: fmt.Sprintf("%s://%s", host.Scheme, host.Host), + Username: user, + Password: password, + MonitoringPort: 5078, + } + + var configBuffer bytes.Buffer + optionsValue.Index = "logs-integration-mbreceiver-" + namespace + require.NoError(t, template.Must(template.New("config").Parse(beatsCfgFile)).Execute(&configBuffer, optionsValue)) + + metricbeatOTel.WriteConfigFile(configBuffer.String()) + metricbeatOTel.Start() + defer metricbeatOTel.Stop() + + var mbConfigBuffer bytes.Buffer + optionsValue.Index = "logs-integration-mb-" + namespace + optionsValue.MonitoringPort = 5079 + require.NoError(t, template.Must(template.New("config").Parse(beatsCfgFile)).Execute(&mbConfigBuffer, optionsValue)) + metricbeat := integration.NewBeat(t, "metricbeat", "../../metricbeat.test") + metricbeat.WriteConfigFile(mbConfigBuffer.String()) + metricbeat.Start() + defer metricbeat.Stop() + + // prepare to query ES + es := integration.GetESClient(t, "http") + + // Make sure find the logs + var metricbeatDocs estools.Documents + var otelDocs estools.Documents + var err error + require.Eventually(t, + func() bool { + findCtx, findCancel := context.WithTimeout(context.Background(), 10*time.Second) + defer findCancel() + + otelDocs, err = estools.GetAllLogsForIndexWithContext(findCtx, es, ".ds-logs-integration-mbreceiver-"+namespace+"*") + require.NoError(t, err) + + metricbeatDocs, err = estools.GetAllLogsForIndexWithContext(findCtx, es, ".ds-logs-integration-mb-"+namespace+"*") + require.NoError(t, err) + + return otelDocs.Hits.Total.Value >= 1 && metricbeatDocs.Hits.Total.Value >= 1 + }, + 2*time.Minute, 1*time.Second, "Expected at least one ingested metric event, got metricbeat: %d, otel: %d", metricbeatDocs.Hits.Total.Value, otelDocs.Hits.Total.Value) + + otelDoc := otelDocs.Hits.Hits[0] + metricbeatDoc := metricbeatDocs.Hits.Hits[0] + assertMapstrKeysEqual(t, otelDoc.Source, metricbeatDoc.Source, []string{}, "expected documents keys to be equal") + assertMonitoring(t, optionsValue.MonitoringPort) +} + +func assertMonitoring(t *testing.T, port int) { + address := fmt.Sprintf("http://localhost:%d", port) + r, err := http.Get(address) //nolint:noctx,bodyclose,gosec // fine for tests + require.NoError(t, err) + require.Equal(t, http.StatusOK, r.StatusCode, "incorrect status code") + + r, err = http.Get(address + "/stats") //nolint:noctx,bodyclose // fine for tests + require.NoError(t, err) + require.Equal(t, http.StatusOK, r.StatusCode, "incorrect status code") + + r, err = http.Get(address + "/not-exist") //nolint:noctx,bodyclose // fine for tests + require.NoError(t, err) + require.Equal(t, http.StatusNotFound, r.StatusCode, "incorrect status code") +} + +func assertMapstrKeysEqual(t *testing.T, m1, m2 mapstr.M, ignoredFields []string, msg string) { + t.Helper() + // Delete all ignored fields. + for _, f := range ignoredFields { + _ = m1.Delete(f) + _ = m2.Delete(f) + } + + flatM1 := m1.Flatten() + flatM2 := m2.Flatten() + + for k := range flatM1 { + flatM1[k] = "" + } + for k := range flatM2 { + flatM2[k] = "" + } + + require.Zero(t, cmp.Diff(flatM1, flatM2), msg) +} From ad02b1e0588357c45baa9e106c17d1d5dfc5b6b8 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 11 Jul 2025 15:15:20 +0200 Subject: [PATCH 40/45] stresstest.sh takes optional go build flags (#45316) (#45321) (cherry picked from commit 081d9ac0f0279ae915f6edda2f151871a2fd5e99) Co-authored-by: Anderson Queiroz --- script/stresstest.sh | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/script/stresstest.sh b/script/stresstest.sh index 4053e87f5e06..87181308db91 100755 --- a/script/stresstest.sh +++ b/script/stresstest.sh @@ -5,13 +5,16 @@ set -e function usage() { - echo "Usage: $0 [package_path] TestName [stress options...]" + echo "Usage: $0 [--tags tag1,tag2,...] [package_path] TestName [stress options...]" echo "" + echo "--tags: Optional comma-separated list of build tags" echo "package_path: Path to the Go package containing the tests." echo "TestName: Regular expression to match the test to run, equivalent to -test.run." echo "[stress options]: Options to pass to the stress command." echo "" - echo "Example: $0 ./libbeat/common/backoff ^TestBackoff$ -p 32" + echo "Examples:" + echo " $0 ./libbeat/common/backoff ^TestBackoff$ -p 32" + echo " $0 --tags integration ./libbeat/common/backoff ^TestBackoff$ -p 32" } if [[ "$1" == "--help" || "$1" == "-h" ]]; then @@ -19,6 +22,18 @@ if [[ "$1" == "--help" || "$1" == "-h" ]]; then exit 0 fi +# Parse optional --tags parameter +build_tags="" +if [[ "$1" == "--tags" ]]; then + if [[ $# -lt 2 ]]; then + echo "Error: --tags requires a value." + usage + exit 1 + fi + build_tags="$2" + shift 2 +fi + if [[ $# -lt 2 ]]; then echo "Error: Missing arguments." usage @@ -32,12 +47,16 @@ if [ ! -d "$1" ]; then fi test_package_path=${1} -test_exec_file="$(basename $test_package_path).test" +test_exec_file="$(basename "$test_package_path").test" test_regex=${2} stress_options=("${@:3}") cd "$test_package_path" rm "$test_exec_file" 2>/dev/null || true -go test -c -o "./$test_exec_file" +if [[ -n "$build_tags" ]]; then + go test -tags "$build_tags" -c -o "./$test_exec_file" +else + go test -c -o "./$test_exec_file" +fi trap 'rm "./$test_exec_file" 2>/dev/null || true' EXIT INT TERM go run golang.org/x/tools/cmd/stress@latest "${stress_options[@]}" "./$test_exec_file" -test.run "$test_regex" -test.v From 9457aabe1d2e547d42825906a3fcf57e6ff51602 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Jul 2025 18:54:28 +0000 Subject: [PATCH 41/45] chore: Update snapshot.yml (#45330) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made with ❤️️ by updatecli Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- testing/environments/snapshot.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/testing/environments/snapshot.yml b/testing/environments/snapshot.yml index b5ebcbec5de0..03148e97fcb0 100644 --- a/testing/environments/snapshot.yml +++ b/testing/environments/snapshot.yml @@ -2,7 +2,7 @@ services: elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:9.1.0-434b09c2-SNAPSHOT + image: docker.elastic.co/elasticsearch/elasticsearch:9.1.0-bd4b0f7d-SNAPSHOT # When extend is used it merges healthcheck.tests, see: # https://github.com/docker/compose/issues/8962 # healthcheck: @@ -37,7 +37,7 @@ services: - "./docker/elasticsearch/users_roles:/usr/share/elasticsearch/config/users_roles" logstash: - image: docker.elastic.co/logstash/logstash:9.1.0-434b09c2-SNAPSHOT + image: docker.elastic.co/logstash/logstash:9.1.0-bd4b0f7d-SNAPSHOT healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9600/_node/stats"] retries: 600 @@ -50,7 +50,7 @@ services: - 5055:5055 kibana: - image: docker.elastic.co/kibana/kibana:9.1.0-434b09c2-SNAPSHOT + image: docker.elastic.co/kibana/kibana:9.1.0-bd4b0f7d-SNAPSHOT environment: - "ELASTICSEARCH_USERNAME=kibana_system_user" - "ELASTICSEARCH_PASSWORD=testing" From 980781f55d113617b046ccc32aaae1345410ba2a Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Mon, 14 Jul 2025 16:24:37 +0530 Subject: [PATCH 42/45] fix mage:goIntegTest for x-pack/metricbeat (#45362) (cherry picked from commit 367df184b3ec04ca3b557899a939e3d1bbe502c4) --- x-pack/metricbeat/magefile.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/x-pack/metricbeat/magefile.go b/x-pack/metricbeat/magefile.go index 739d4359bf97..e569fff07c95 100644 --- a/x-pack/metricbeat/magefile.go +++ b/x-pack/metricbeat/magefile.go @@ -256,7 +256,10 @@ func GoIntegTest(ctx context.Context) error { args.Env["ES_PASS"] = args.Env["ES_SUPERUSER_PASS"] // run integration test from home directory args.Packages = []string{"./tests/integration/"} - devtools.GoIntegTestFromHost(ctx, args) + err := devtools.GoIntegTestFromHost(ctx, args) + if err != nil { + return err + } mg.SerialDeps(Fields, Dashboards) } From 9401f679ebe72f9c185aba517ecfc4fd13ff6950 Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Tue, 15 Jul 2025 12:32:58 +0530 Subject: [PATCH 43/45] add getesclient --- libbeat/tests/integration/framework.go | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/libbeat/tests/integration/framework.go b/libbeat/tests/integration/framework.go index ba1d8bbd0a5e..50b02401fc56 100644 --- a/libbeat/tests/integration/framework.go +++ b/libbeat/tests/integration/framework.go @@ -23,6 +23,7 @@ import ( "bufio" "bytes" "context" + "crypto/tls" "encoding/json" "errors" "fmt" @@ -42,6 +43,7 @@ import ( "testing" "time" + "github.com/elastic/go-elasticsearch/v7" "github.com/gofrs/uuid/v5" "github.com/stretchr/testify/require" ) @@ -717,6 +719,32 @@ func EnsureESIsRunning(t *testing.T) { } } +func GetESClient(t *testing.T, scheme string) *elasticsearch.Client { + t.Helper() + esURL := GetESURL(t, scheme) + + u := esURL.User.Username() + p, _ := esURL.User.Password() + + // prepare to query ES + esCfg := elasticsearch.Config{ + Addresses: []string{fmt.Sprintf("%s://%s", esURL.Scheme, esURL.Host)}, + Username: u, + Password: p, + Transport: &http.Transport{ + TLSClientConfig: &tls.Config{ + InsecureSkipVerify: true, //nolint:gosec // this is only for testing + }, + }, + } + es, err := elasticsearch.NewClient(esCfg) + if err != nil { + t.Fatalf("could not get elasticsearch client due to: %v", err) + } + return es + +} + func (b *BeatProc) FileContains(filename string, match string) string { file, err := os.Open(filename) require.NoErrorf(b.t, err, "error opening: %s", filename) From 220c25c8b7a7ab7163dd2bd284e37a1031fbcbc7 Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Tue, 15 Jul 2025 12:34:21 +0530 Subject: [PATCH 44/45] add getesclient --- libbeat/tests/integration/framework.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libbeat/tests/integration/framework.go b/libbeat/tests/integration/framework.go index 50b02401fc56..d9797e7b2bd0 100644 --- a/libbeat/tests/integration/framework.go +++ b/libbeat/tests/integration/framework.go @@ -43,7 +43,7 @@ import ( "testing" "time" - "github.com/elastic/go-elasticsearch/v7" + "github.com/elastic/go-elasticsearch/v8" "github.com/gofrs/uuid/v5" "github.com/stretchr/testify/require" ) From 559ed19d85034764a9359c2639b584a86925fe7a Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Tue, 15 Jul 2025 12:37:25 +0530 Subject: [PATCH 45/45] Unblock CI: Update kafka dependency openjdk11 to openjdk17 --- testing/environments/docker/kafka/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/environments/docker/kafka/Dockerfile b/testing/environments/docker/kafka/Dockerfile index 2dad2e6886ca..e67d220f5dae 100644 --- a/testing/environments/docker/kafka/Dockerfile +++ b/testing/environments/docker/kafka/Dockerfile @@ -10,7 +10,7 @@ ENV KAFKA_VERSION=3.6.0 ENV _JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true" ENV TERM=linux -RUN apt-get update && apt-get install -y curl openjdk-11-jre-headless netcat-openbsd +RUN apt-get update && apt-get install -y curl openjdk-17-jre-headless netcat-openbsd RUN mkdir -p ${KAFKA_LOGS_DIR} && mkdir -p ${KAFKA_HOME} && \ curl -J -L -s -f -o - https://github.com/kadwanev/retry/releases/download/1.0.1/retry-1.0.1.tar.gz | tar xfz - -C /usr/local/bin && \