Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New component: GeoIP processor #32663

Closed
2 tasks
michalpristas opened this issue Apr 24, 2024 · 11 comments
Closed
2 tasks

New component: GeoIP processor #32663

michalpristas opened this issue Apr 24, 2024 · 11 comments
Labels
Accepted Component New component has been sponsored

Comments

@michalpristas
Copy link
Contributor

michalpristas commented Apr 24, 2024

The purpose and use-cases of the new component

The GeoIP processors adds information about the geographical location of IP addresses, based on data from the MaxMind GeoLite2 databases.

Example configuration for the component

Location of this database should be configurable and stored on disk.
For the ability to fetch we need a an account ID, license key and endpoint where to fetch it from.

Based on above we can have configuration like so:

  • database: path to a local file
  • account_id: account ID used to fetch
  • license_key: license key used to fetch
  • permalink: permalink generated used to fetch
  • field: field where ip is loaded from. default should probably be source.address (handle non ip e.g uri or .sock gracefully)
  • target_field: namespaced target e.g source.geo
  • auto_update: true

one of these needs to be used, if license key is specified and path is omitted we should try to fetch database and store it locally.
if path is specified, file does not exists and we have a license key we should fetch and place it at the specified location.
it path is specified, no license key we use this file

in case auto_update is enabled we should fetch database (in case account id, license and permalink are specified)
other way we either won't enrich or enrich with _geoip_expired_database

all other cases are erroneous.

mapping of service fields to semconv. As these fields are not part of SemConv yet i'm sticking to ECS definition that was donated. These would be subkeys to a target defined by target_field

Service field SemConv/ECS Example
ip address 12.34.56.78
city_name geo.city_name Seattle
country_name geo.country_name United States
continent_code geo.continent_code NA
continent_name geo.continent_name North America
country_code2 geo.country_iso_code US
postal_code geo.postal_code 98106
region_name geo.region_name Washington
region_code geo.region_code WA
region_iso_code* geo.region_iso_code US-WA
timezone geo.timezone America/Los_Angeles
location* geo.location {"lat": 47.6062, "lon": -122.3321}
latitude geo.location.lat 47.6062
longitude geo.location.lon -122.3321
domain domain example.com
asn as.number 98765
as_org as.organization.name OpenTelemetry - CNCF
isp mmdb.isp InterLink Supra LLC
dma_code mmdb.dma_code 819
organization mmdb.organization OpenTelemetry - CNCF

Telemetry data types supported

Logs, metrics, traces.

Is this a vendor-specific component?

  • This is a vendor-specific component
  • If this is a vendor-specific component, I am proposing to contribute and support it as a representative of the vendor.

Code Owner(s)

@michalpristas

Sponsor (optional)

@andrzej-stencel

Additional context

This proposal is based on this Elasticsearch processor: https://www.elastic.co/guide/en/elasticsearch/reference/current/geoip-processor.html

Other alternative i considered is to skip fetching part and use only local database. this would require user to handle updating expired databases.

@michalpristas michalpristas added enhancement New feature or request needs triage New item requiring triage labels Apr 24, 2024
@felixbarny
Copy link
Contributor

Similar to Elasticsearch's geoip processor, we should automatically fetch a default geo ip database (without having to specify an account id and license key) if there's at least one pipeline with a geoip processor.

@felixbarny
Copy link
Contributor

Fetching from a default URL might be a little more complex so we should look at that as a separate enhancement.

Elasticsearch's geoip processor fetches the geo ip database from https://geoip.elastic.co/v1/database. However, I'm not sure if we could just re-use the same URL, it could have some licensing implications. Longer-term, we can discuss having a similar mirror hosted by cncf. Another thing to note is that fetching the database requires to accept MaxMind's terms and conditions, which Elasticsearch's geoip processor does by default. But we also need to check if it's safe to do that via the OSS OTel collector distro.

@dakrone could you chime in on the licensing aspects of the MaxMind database, our mirror, and how we could enable a default download of the geo ip database in the OTel collector?

@crobert-1
Copy link
Member

Hello @michalpristas, thanks for filing. To make sure I understand, is this intended to be a new processor, or an enhancement to one that already exists?

@michalpristas
Copy link
Contributor Author

a new one, sorry i haven't find a way how to make it clear

@crobert-1 crobert-1 added Sponsor Needed New component seeking sponsor and removed enhancement New feature or request labels Apr 24, 2024
@crobert-1
Copy link
Member

crobert-1 commented Apr 24, 2024

a new one, sorry i haven't find a way how to make it clear

Not a problem, I've updated the labels on the issue accordingly 👍 (I'm not sure what option you used to create this issue, but creating one using the New component proposal will give the proper labels and information to fill out, for future reference)

@andrzej-stencel andrzej-stencel changed the title [processors] GeoIP processor New component: GeoIP processor May 17, 2024
@andrzej-stencel
Copy link
Member

andrzej-stencel commented May 17, 2024

I can sponsor this component, but let's discuss in an upcoming SIG whether the community feels we want to add it to Contrib.

Some random thoughts:

  • This processor is designed to work with a database from a specific IP geolocation provider (MaxMind). I wouldn't go as far as to say it's a "vendor" component, but definitely opinionated. You could imagine users wanting to do IP geolocation via other providers.
  • The geoip database fetching part of the processor feels to me a bit more like a candidate for an extension. You probably want just one database and one update/fetching mechanism even if you configure more than one processor in your config.
  • The telemetry conversion part of this processor feels like it could belong to the OTTL/Transform processor, which already has syntax to specify resource/record attributes, extraction and other transformations that might be needed before and/or after the geoip lookup.
    • Is it possible, or has there been a discussion on extensibility of OTTL via external components (like extensions, or maybe "ottl providers")? The "GeoIP" function could either be a part of core OTTL, or maybe "provided" to OTTL via an extension point.

@andrzej-stencel andrzej-stencel removed the needs triage New item requiring triage label May 17, 2024
@djaglowski
Copy link
Member

If I'm not mistaken, this would be the first component which depends directly on a dependency with a license of its own. Ideally we would define an extension interface that could be implemented by other geoip providers, so that use of the component does not strictly require the MaxMind database & license.

@michalpristas
Copy link
Contributor Author

Agreed this should also work woth open source alternatives e.g https://github.com/geoacumen/geoacumen-country

@andrzej-stencel andrzej-stencel added Accepted Component New component has been sponsored and removed Sponsor Needed New component seeking sponsor labels May 23, 2024
@cwegener
Copy link
Contributor

Is it possible, or has there been a discussion on extensibility of OTTL via external components (like extensions, or maybe "ottl providers")? The "GeoIP" function could either be a part of core OTTL, or maybe "provided" to OTTL via an extension point.

This sounds very compelling. Could such an "OTTL extension point" open up the simple and flexible implementation of custom "enrichment" functions? (I think the GeoIP functionality in this issue here is very much an example of such enrichment)

andrzej-stencel pushed a commit that referenced this issue May 28, 2024
**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->

Initial skeleton implementation of the GeoIP processor described in
issue
#32663.
Full implementation will follow in future PRs.

The PR adds a NOP implementation for the metrics, traces and logs
processor. The configuration is an initial proposal, in future changes a
default provider will be defined.

The processor/geoipprocessor/internal/conventions/attributes.go will
temporally (until available in SemConv) specify the attributes that the
processor will add.

**Link to tracking Issue:** <Issue number if applicable>

#32663

**Testing:** <Describe what testing was performed and which tests were
added.>

**Documentation:** <Describe the documentation added.>
@david-drake
Copy link

Another provider that provides excellent geolocation data that would be great for support: https://ipinfo.io/products/free-ip-database

There are enterprise subscriptions available as well, similar to MaxMind.

andrzej-stencel pushed a commit that referenced this issue Jun 5, 2024
**Description:** <Describe what has changed.>
This is the initial implementation of the GeoIP processor. Note that it
will still be a NOP (No Operation) from the user's perspective, as no
Geo data providers are implemented [nor can be configured
yet](#33268).
However, this implementation aims to provide an overview of the
processor's logic.

The logic is the same for all signals (traces, metrics, and logs). For
each signal, the processor follows these steps:

1. Locate an IP address attribute within the resource attributes. If not
found, continue; if parsing the IP fails, return an error. By default,
the IP address must be included within the `source.address` attribute
key, see:
https://github.com/open-telemetry/semantic-conventions/blob/v1.26.0/docs/general/attributes.md#source
2. Retrieve the geo-location metadata associated with the IP address
using the available GeoProviders. At the moment, no additional check is
done on the attributes returned by the providers. In a future PR, the
processor will need to validate that all attributes follow the Geo
semantic conventions.
 3. Append the set of geo attributes to the resource attributes. 

The `processor/geoipprocessor/internal/provider/geoipprovider.go` file
contains an initial interface proposal for the Geo providers. A mock
implementation can be found in the geoip_processor_test.go file.

**Link to tracking Issue:**
#32663

**Testing:** Unit tests for the signals process

**Documentation:** Should we update the README with the available
configuration once it becomes operational?

---------

Co-authored-by: Tiffany Hrabusa <30397949+tiffany76@users.noreply.github.com>
andrzej-stencel pushed a commit that referenced this issue Jun 27, 2024
**Description:** <Describe what has changed.> This PR adds an initial
implementation for the MaxMind GeoIP provider for later usage in the
`geoipprocessor`. The processor is still a nop, as no provider can be
configured yet. Providers configuration will be added in
#33268.

- Internal package for temporal attributes conventions reference (should
be removed in favor of
open-telemetry/semantic-conventions#1116):
`processor/geoipprocessor/internal/convention/attributes.go`
- [geoip2-golang](https://github.com/oschwald/geoip2-golang) package
used as a client for data retrieval. See recommended MaxMind clients:
https://dev.maxmind.com/geoip/docs/databases#api-clients

**Link to tracking Issue:** <Issue number if applicable>
#32663

**Testing:** <Describe what testing was performed and which tests were
added.> Database files are generated before running the unit tests
[using MaxMind
writer.](https://github.com/maxmind/MaxMind-DB/tree/0a9c1aa26cd7b91bee2efe27e7d174797d8211a6/test-data#how-to-generate-test-data).
The generation time of those files seems not to be an issue (0.189s):

```
$ go test -v
=== RUN   TestInvalidNewProvider
--- PASS: TestInvalidNewProvider (0.00s)
=== RUN   TestProviderLocation
=== PAUSE TestProviderLocation
=== CONT  TestProviderLocation
=== RUN   TestProviderLocation/nil_IP_address
=== RUN   TestProviderLocation/unsupported_database_type
=== RUN   TestProviderLocation/no_IP_metadata_in_database
=== RUN   TestProviderLocation/all_attributes_should_be_present_for_IPv4_using_GeoLite2-City_database
=== RUN   TestProviderLocation/subset_attributes_for_IPv6_IP_using_GeoIP2-City_database
--- PASS: TestProviderLocation (0.00s)
    --- PASS: TestProviderLocation/nil_IP_address (0.00s)
    --- PASS: TestProviderLocation/unsupported_database_type (0.00s)
    --- PASS: TestProviderLocation/no_IP_metadata_in_database (0.00s)
    --- PASS: TestProviderLocation/all_attributes_should_be_present_for_IPv4_using_GeoLite2-City_database (0.00s)
    --- PASS: TestProviderLocation/subset_attributes_for_IPv6_IP_using_GeoIP2-City_database (0.00s)
PASS
ok  	github.com/open-telemetry/opentelemetry-collector-contrib/processor/geoipprocessor/internal/provider/maxmindprovider	0.189s
```

Testing database files are removed on sucessful test execution.

**Documentation:** <Describe the documentation added.> README.md file
tomasmota pushed a commit to SpringerPE/opentelemetry-collector-contrib that referenced this issue Jul 1, 2024
**Description:** <Describe what has changed.> This PR adds an initial
implementation for the MaxMind GeoIP provider for later usage in the
`geoipprocessor`. The processor is still a nop, as no provider can be
configured yet. Providers configuration will be added in
open-telemetry#33268.

- Internal package for temporal attributes conventions reference (should
be removed in favor of
open-telemetry/semantic-conventions#1116):
`processor/geoipprocessor/internal/convention/attributes.go`
- [geoip2-golang](https://github.com/oschwald/geoip2-golang) package
used as a client for data retrieval. See recommended MaxMind clients:
https://dev.maxmind.com/geoip/docs/databases#api-clients

**Link to tracking Issue:** <Issue number if applicable>
open-telemetry#32663

**Testing:** <Describe what testing was performed and which tests were
added.> Database files are generated before running the unit tests
[using MaxMind
writer.](https://github.com/maxmind/MaxMind-DB/tree/0a9c1aa26cd7b91bee2efe27e7d174797d8211a6/test-data#how-to-generate-test-data).
The generation time of those files seems not to be an issue (0.189s):

```
$ go test -v
=== RUN   TestInvalidNewProvider
--- PASS: TestInvalidNewProvider (0.00s)
=== RUN   TestProviderLocation
=== PAUSE TestProviderLocation
=== CONT  TestProviderLocation
=== RUN   TestProviderLocation/nil_IP_address
=== RUN   TestProviderLocation/unsupported_database_type
=== RUN   TestProviderLocation/no_IP_metadata_in_database
=== RUN   TestProviderLocation/all_attributes_should_be_present_for_IPv4_using_GeoLite2-City_database
=== RUN   TestProviderLocation/subset_attributes_for_IPv6_IP_using_GeoIP2-City_database
--- PASS: TestProviderLocation (0.00s)
    --- PASS: TestProviderLocation/nil_IP_address (0.00s)
    --- PASS: TestProviderLocation/unsupported_database_type (0.00s)
    --- PASS: TestProviderLocation/no_IP_metadata_in_database (0.00s)
    --- PASS: TestProviderLocation/all_attributes_should_be_present_for_IPv4_using_GeoLite2-City_database (0.00s)
    --- PASS: TestProviderLocation/subset_attributes_for_IPv6_IP_using_GeoIP2-City_database (0.00s)
PASS
ok  	github.com/open-telemetry/opentelemetry-collector-contrib/processor/geoipprocessor/internal/provider/maxmindprovider	0.189s
```

Testing database files are removed on sucessful test execution.

**Documentation:** <Describe the documentation added.> README.md file
lalith47 pushed a commit to lalith47/opentelemetry-collector-contrib that referenced this issue Jul 1, 2024
**Description:** <Describe what has changed.> This PR adds an initial
implementation for the MaxMind GeoIP provider for later usage in the
`geoipprocessor`. The processor is still a nop, as no provider can be
configured yet. Providers configuration will be added in
open-telemetry#33268.

- Internal package for temporal attributes conventions reference (should
be removed in favor of
open-telemetry/semantic-conventions#1116):
`processor/geoipprocessor/internal/convention/attributes.go`
- [geoip2-golang](https://github.com/oschwald/geoip2-golang) package
used as a client for data retrieval. See recommended MaxMind clients:
https://dev.maxmind.com/geoip/docs/databases#api-clients

**Link to tracking Issue:** <Issue number if applicable>
open-telemetry#32663

**Testing:** <Describe what testing was performed and which tests were
added.> Database files are generated before running the unit tests
[using MaxMind
writer.](https://github.com/maxmind/MaxMind-DB/tree/0a9c1aa26cd7b91bee2efe27e7d174797d8211a6/test-data#how-to-generate-test-data).
The generation time of those files seems not to be an issue (0.189s):

```
$ go test -v
=== RUN   TestInvalidNewProvider
--- PASS: TestInvalidNewProvider (0.00s)
=== RUN   TestProviderLocation
=== PAUSE TestProviderLocation
=== CONT  TestProviderLocation
=== RUN   TestProviderLocation/nil_IP_address
=== RUN   TestProviderLocation/unsupported_database_type
=== RUN   TestProviderLocation/no_IP_metadata_in_database
=== RUN   TestProviderLocation/all_attributes_should_be_present_for_IPv4_using_GeoLite2-City_database
=== RUN   TestProviderLocation/subset_attributes_for_IPv6_IP_using_GeoIP2-City_database
--- PASS: TestProviderLocation (0.00s)
    --- PASS: TestProviderLocation/nil_IP_address (0.00s)
    --- PASS: TestProviderLocation/unsupported_database_type (0.00s)
    --- PASS: TestProviderLocation/no_IP_metadata_in_database (0.00s)
    --- PASS: TestProviderLocation/all_attributes_should_be_present_for_IPv4_using_GeoLite2-City_database (0.00s)
    --- PASS: TestProviderLocation/subset_attributes_for_IPv6_IP_using_GeoIP2-City_database (0.00s)
PASS
ok  	github.com/open-telemetry/opentelemetry-collector-contrib/processor/geoipprocessor/internal/provider/maxmindprovider	0.189s
```

Testing database files are removed on sucessful test execution.

**Documentation:** <Describe the documentation added.> README.md file
mackjmr added a commit to DataDog/opentelemetry-collector-contrib that referenced this issue Jul 3, 2024
* fix(deps): update module github.com/datadog/agent-payload/v5 to v5.0.121 (#33373)

[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/DataDog/agent-payload/v5](https://togithub.com/DataDog/agent-payload)
| `v5.0.120` -> `v5.0.121` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fDataDog%2fagent-payload%2fv5/v5.0.121?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fDataDog%2fagent-payload%2fv5/v5.0.121?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fDataDog%2fagent-payload%2fv5/v5.0.120/v5.0.121?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fDataDog%2fagent-payload%2fv5/v5.0.120/v5.0.121?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>DataDog/agent-payload
(github.com/DataDog/agent-payload/v5)</summary>

###
[`v5.0.121`](https://togithub.com/DataDog/agent-payload/releases/tag/v5.0.121)

[Compare
Source](https://togithub.com/DataDog/agent-payload/compare/v5.0.120...v5.0.121)

#### What's Changed

- Add ManifestCollector tags by
[@&#8203;aureleoules](https://togithub.com/aureleoules) in
[https://github.com/DataDog/agent-payload/pull/318](https://togithub.com/DataDog/agent-payload/pull/318)

**Full Changelog**:
https://github.com/DataDog/agent-payload/compare/v5.0.120...v5.0.121

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zODguMSIsInVwZGF0ZWRJblZlciI6IjM3LjM4OC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>

* [googlecloudspannerreceiver] Mark the component as unmaintained (#33382)

Linked to #32651

Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>

* [chore] [receiver/kubeletstats] move utilization metrics in standalone helper func (#33335)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
`kubeletstats` receiver performs the CPU metrics addition
in the
[`addCPUMetrics`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.101.0/receiver/kubeletstatsreceiver/internal/kubelet/cpu.go#L13)
helper function.
This function calls respectively the
[`addCPUUsageMetric`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.101.0/receiver/kubeletstatsreceiver/internal/kubelet/cpu.go#L21)
and the
[`addCPUTimeMetric`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.101.0/receiver/kubeletstatsreceiver/internal/kubelet/cpu.go#L37).
However the
[`addCPUUsageMetric`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.101.0/receiver/kubeletstatsreceiver/internal/kubelet/cpu.go#L21)
adds not only the `*.usage` metric but some `*utilization` ones as well.

This change moves the addition of the `*utilization` metrics
to a standalone `addCPUUtilizationMetrics` helper function.

**Link to tracking Issue:** <Issue number if applicable> -

**Testing:** <Describe what testing was performed and which tests were
added.> -

**Documentation:** <Describe the documentation added.> -

---------

Signed-off-by: ChrsMark <chrismarkou92@gmail.com>

* fix(deps): update module google.golang.org/api to v0.183.0 (#33381)

[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[google.golang.org/api](https://togithub.com/googleapis/google-api-go-client)
| `v0.182.0` -> `v0.183.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fapi/v0.183.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fapi/v0.183.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fapi/v0.182.0/v0.183.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fapi/v0.182.0/v0.183.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>googleapis/google-api-go-client
(google.golang.org/api)</summary>

###
[`v0.183.0`](https://togithub.com/googleapis/google-api-go-client/releases/tag/v0.183.0)

[Compare
Source](https://togithub.com/googleapis/google-api-go-client/compare/v0.182.0...v0.183.0)

##### Features

- **all:** Auto-regenerate discovery clients
([#&#8203;2611](https://togithub.com/googleapis/google-api-go-client/issues/2611))
([1de148b](https://togithub.com/googleapis/google-api-go-client/commit/1de148b049cad72efb924df7f3435bcbca7d214f))
- **all:** Auto-regenerate discovery clients
([#&#8203;2616](https://togithub.com/googleapis/google-api-go-client/issues/2616))
([5f21214](https://togithub.com/googleapis/google-api-go-client/commit/5f21214e2284f5162d89383f528326325091796c))
- **all:** Auto-regenerate discovery clients
([#&#8203;2617](https://togithub.com/googleapis/google-api-go-client/issues/2617))
([08fdd71](https://togithub.com/googleapis/google-api-go-client/commit/08fdd71cae0bbfd16ed7e13a00c8bc7dd596ce94))
- **all:** Auto-regenerate discovery clients
([#&#8203;2619](https://togithub.com/googleapis/google-api-go-client/issues/2619))
([c7f1614](https://togithub.com/googleapis/google-api-go-client/commit/c7f161413cf50b50db98ba483afc2f2344e0896f))
- **all:** Auto-regenerate discovery clients
([#&#8203;2622](https://togithub.com/googleapis/google-api-go-client/issues/2622))
([0077748](https://togithub.com/googleapis/google-api-go-client/commit/007774894a48d24634ace7b9e09def4d61433f7f))

##### Bug Fixes

- Add another temporary dep on genproto
([#&#8203;2614](https://togithub.com/googleapis/google-api-go-client/issues/2614))
([4f98211](https://togithub.com/googleapis/google-api-go-client/commit/4f9821115b5b14b2a32a4cdcbbb84bed018dac2c)),
refs
[#&#8203;2559](https://togithub.com/googleapis/google-api-go-client/issues/2559)
[#&#8203;2613](https://togithub.com/googleapis/google-api-go-client/issues/2613)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zODguMSIsInVwZGF0ZWRJblZlciI6IjM3LjM4OC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>

* [chore] run make gengithub (#33385)

* [cmd/configschema] Remove `cmd/configschema` (#33384)

Removes the deprecated `cmd/configschema`.

The command is not used in our repository and is a source of dependency pain

Closes https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/30187

* [chore] Remove use of `confighttp.ClientConfig.RoundTripper` (#33371)

**Description:**

* lokiexporter and sumologicexporter: Neither need to use this field for
their tests, it can be replaced without loss of functionality with
another config field.
* oauth2clientextension: This should directly rely on the `http.Client`
interface.
* ecstaskobserver docs: I don't think there was ever a way to unmarshal
this field, so there shouldn't be a doc for how to configure it.

**Link to tracking Issue:**

Soft required for
https://github.com/open-telemetry/opentelemetry-collector/pull/10310 so
we don't use deprecated APIs.

* Adding Proxy support for Datadog Exporter (#33316)

**Description:** Support the ProxyUrl parameter for the Datadog Exporter

ptal @mx-psi @songy23

* [chore] update go to 1.21.11/1.22.4 (#33386)

Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
Co-authored-by: Pablo Baeyens <pablo.baeyens@datadoghq.com>

* [receiver/gitproviderreceiver] add branch time, commit, and line metrics (#32812)

**Description:**

Adds the following branch based metrics.
* git.repository.branch.time
* git.repository.branch.commit.aheadby.count
* git.repository.branch.commit.behindby.count
* git.repository.branch.line.deletion.count
* git.repository.branch.line.addition.count
 
Additionally brings this receiver very close to the source version in
the Liatrio Distro. Brings the testing up to par as well. After this
pull request is merged, I'd like to move this component to alpha status
so it can be built within the contrib binary and used by others. Once in
alpha, I'd like to bring over the newest metric (repository.cve.count),
bring over the GitLab scraper, and potentially propose a new component I
developed to work in-tandem with this receiver, the GitHub App
Authentication extension.

**Link to tracking Issue:**

 #22028

**Testing:** Brings testing inline with source and include scrape
testing.

**Documentation:**

Updated the documentation to reflect the additional metrics.

---------

Co-authored-by: Curtis Robert <crobert@splunk.com>

* [exporter/coralogix] feat: allow setting application name from custom  resource attributes (#33218)

**Description:** 

allow setting application name from cx.application.name and
cx.subsystem.name attributes. To support simplified use case, such as:

```yaml
receivers:
  filelog/nginx:
    include:
      - '/tmp/tmp.log'
    include_file_path: true
    include_file_name: false
    start_at: end
    resource: 
      cx.subsystem.name: nginx
  filelog/access-log:
    include:
      - '/tmp/access.log'
    include_file_path: true
    include_file_name: false
    resource: 
      cx.subsystem.name: access-log
exporters:
  coralogix:
    domain: 'coralogix.com'
    private_key: "XXX"
    application_name: 'app_name'
    timeout: 30s
service:
  pipelines:
    logs:
      receivers: [filelog/nginx, filelog/access-log]
      exporters: [coralogix]
```

**Link to tracking Issue:** <Issue number if applicable>

https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33217

**Testing:** <Describe what testing was performed and which tests were
added.>
- unit tests
- manually tested

**Documentation:** <Describe the documentation added.>

- updated docs

---------

Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com>

* fix(deps): update module github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common to v1.0.936 (#33358)

[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common](https://togithub.com/tencentcloud/tencentcloud-sdk-go)
| `v1.0.931` -> `v1.0.936` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2ftencentcloud%2ftencentcloud-sdk-go%2ftencentcloud%2fcommon/v1.0.936?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2ftencentcloud%2ftencentcloud-sdk-go%2ftencentcloud%2fcommon/v1.0.936?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2ftencentcloud%2ftencentcloud-sdk-go%2ftencentcloud%2fcommon/v1.0.931/v1.0.936?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2ftencentcloud%2ftencentcloud-sdk-go%2ftencentcloud%2fcommon/v1.0.931/v1.0.936?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>tencentcloud/tencentcloud-sdk-go
(github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common)</summary>

###
[`v1.0.936`](https://togithub.com/tencentcloud/tencentcloud-sdk-go/blob/HEAD/CHANGELOG.md#Release-v10936)

[Compare
Source](https://togithub.com/tencentcloud/tencentcloud-sdk-go/compare/v1.0.935...v1.0.936)

#### 物联网通信(iotcloud) 版本:2021-04-08

##### 第 11 次发布

发布时间:2024-06-05 01:47:50

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-   [DescribeFirmware](https://cloud.tencent.com/document/api/634/73630)

    -   新增出参:UserDefined

修改数据结构:

-
[FirmwareInfo](https://cloud.tencent.com/document/api/634/71973#FirmwareInfo)

    -   新增成员:UserDefined

#### 物联网通信(iotcloud) 版本:2018-06-14

#### 物联网开发平台(iotexplorer) 版本:2019-04-23

##### 第 65 次发布

发布时间:2024-06-05 01:48:26

本次发布包含了以下内容:

改善已有的文档。

修改数据结构:

-
[FirmwareInfo](https://cloud.tencent.com/document/api/1081/34988#FirmwareInfo)

    -   新增成员:UserDefined

#### 流计算 Oceanus(oceanus) 版本:2019-04-22

##### 第 56 次发布

发布时间:2024-06-05 02:02:33

本次发布包含了以下内容:

改善已有的文档。

修改数据结构:

-   [Cluster](https://cloud.tencent.com/document/api/849/52010#Cluster)

    -   新增成员:ResourceType

#### 音速达直播音乐版权引擎(yinsuda) 版本:2022-05-27

##### 第 19 次发布

发布时间:2024-06-05 02:38:46

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-
[DescribeKTVMusicAccompanySegmentUrlVip](https://cloud.tencent.com/document/api/1592/102622)

    -   新增入参:RoomId

修改数据结构:

-
[LiveVipTradeInfo](https://cloud.tencent.com/document/api/1592/76191#LiveVipTradeInfo)

- <font color="#dd0000">**修改成员**:</font>TradeSerialNo, AppName, UserId,
RoomId, VipDays, Status, CreateTime

-
[LiveVipUserInfo](https://cloud.tencent.com/document/api/1592/76191#LiveVipUserInfo)

- <font color="#dd0000">**修改成员**:</font>RoomId, LiveVipEndTime,
LiveVipStatus

- [UserInfo](https://cloud.tencent.com/document/api/1592/76191#UserInfo)

- <font color="#dd0000">**修改成员**:</font>AppName, UserId,
LiveVipUserInfo, UserType

###
[`v1.0.935`](https://togithub.com/tencentcloud/tencentcloud-sdk-go/blob/HEAD/CHANGELOG.md#Release-v10935)

[Compare
Source](https://togithub.com/tencentcloud/tencentcloud-sdk-go/compare/v1.0.934...v1.0.935)

#### T-Sec-DDoS防护(Anti-DDoS)(antiddos) 版本:2020-03-09

##### 第 67 次发布

发布时间:2024-06-04 01:07:52

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-
[DescribeListBGPInstances](https://cloud.tencent.com/document/api/297/95346)

    -   新增入参:FilterZoneIdList

修改数据结构:

-
[BGPInstance](https://cloud.tencent.com/document/api/297/95396#BGPInstance)

    -   新增成员:ZoneId

#### 云数据库 MySQL(cdb) 版本:2017-03-20

##### 第 158 次发布

发布时间:2024-06-04 01:16:12

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-
[AdjustCdbProxyAddress](https://cloud.tencent.com/document/api/236/90589)

    -   新增入参:AutoLoadBalance, AccessMode

-
[CreateCdbProxyAddress](https://cloud.tencent.com/document/api/236/90586)

    -   新增入参:AutoLoadBalance, AccessMode

-
[DescribeProxySupportParam](https://cloud.tencent.com/document/api/236/90584)

    -   新增出参:SupportAutoLoadBalance, SupportAccessMode

修改数据结构:

-
[ProxyAddress](https://cloud.tencent.com/document/api/236/15878#ProxyAddress)

    -   新增成员:AccessMode, AutoLoadBalance

-
[ProxyInst](https://cloud.tencent.com/document/api/236/15878#ProxyInst)

    -   新增成员:InstNodeId, InstNodeRole

#### 域名注册(domain) 版本:2018-08-08

##### 第 38 次发布

发布时间:2024-06-04 01:35:42

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-
[ReservedPreDomains](https://cloud.tencent.com/document/api/242/103887)

    -   新增入参:IsAutoPay, IsBidAutoPay

#### 腾讯电子签企业版(ess) 版本:2020-11-11

##### 第 174 次发布

发布时间:2024-06-04 01:41:39

本次发布包含了以下内容:

改善已有的文档。

新增接口:

-
[CreateUserMobileChangeUrl](https://cloud.tencent.com/document/api/1323/106775)

#### 微服务引擎(tse) 版本:2020-12-07

##### 第 68 次发布

发布时间:2024-06-04 02:26:13

本次发布包含了以下内容:

改善已有的文档。

修改数据结构:

-
[KongUpstreamInfo](https://cloud.tencent.com/document/api/1364/54942#KongUpstreamInfo)

    -   新增成员:ScfIsBase64Encoded, ScfIsIntegratedResponse

#### 微服务平台 TSF(tsf) 版本:2018-03-26

##### 第 107 次发布

发布时间:2024-06-04 02:27:15

本次发布包含了以下内容:

改善已有的文档。

修改接口:

- [DeleteApplication](https://cloud.tencent.com/document/api/649/36093)

    -   新增入参:SyncDeleteImageRepository

-
[DescribeMicroservices](https://cloud.tencent.com/document/api/649/36084)

    -   新增入参:ConfigCenterInstanceId

- [DescribeStatistics](https://cloud.tencent.com/document/api/649/70427)

    -   新增入参:ConfigCenterInstanceId

修改数据结构:

-
[ConfigRelease](https://cloud.tencent.com/document/api/649/36099#ConfigRelease)

    -   新增成员:DaulStatus

-
[TsfConfigCenter](https://cloud.tencent.com/document/api/649/36099#TsfConfigCenter)

    -   新增成员:CurrentVersion, TargetVersion

#### 向量数据库(vdb) 版本:2023-06-16

##### 第 1 次发布

发布时间:2024-06-03 15:48:04

本次发布包含了以下内容:

改善已有的文档。

新增接口:

-
[DescribeInstances](https://cloud.tencent.com/document/api/1709/106756)

新增数据结构:

-
[InstanceInfo](https://cloud.tencent.com/document/api/1709/106757#InstanceInfo)
- [Network](https://cloud.tencent.com/document/api/1709/106757#Network)
-   [Tag](https://cloud.tencent.com/document/api/1709/106757#Tag)

#### Web 应用防火墙(waf) 版本:2018-01-25

##### 第 85 次发布

发布时间:2024-06-04 02:34:05

本次发布包含了以下内容:

改善已有的文档。

新增接口:

-
[ModifyApiSecEventChange](https://cloud.tencent.com/document/api/627/106776)

新增数据结构:

-
[ApiSecKey](https://cloud.tencent.com/document/api/627/53609#ApiSecKey)

#### 数据开发治理平台 WeData(wedata) 版本:2021-08-20

##### 第 91 次发布

发布时间:2024-06-04 02:35:39

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-   [UploadContent](https://cloud.tencent.com/document/api/1267/93282)

    -   新增入参:ProjectId

###
[`v1.0.934`](https://togithub.com/tencentcloud/tencentcloud-sdk-go/blob/HEAD/CHANGELOG.md#Release-v10934)

[Compare
Source](https://togithub.com/tencentcloud/tencentcloud-sdk-go/compare/v1.0.933...v1.0.934)

#### 消息队列 RocketMQ 版(trocket) 版本:2023-03-08

##### 第 15 次发布

发布时间:2024-06-03 02:23:52

本次发布包含了以下内容:

改善已有的文档。

新增接口:

-
[DescribeFusionInstanceList](https://cloud.tencent.com/document/api/1493/106745)

新增数据结构:

-
[FusionInstanceItem](https://cloud.tencent.com/document/api/1493/96031#FusionInstanceItem)
-
[InstanceItemExtraInfo](https://cloud.tencent.com/document/api/1493/96031#InstanceItemExtraInfo)

#### 实时音视频(trtc) 版本:2019-07-22

##### 第 76 次发布

发布时间:2024-06-03 02:25:00

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-
[DescribeAITranscription](https://cloud.tencent.com/document/api/647/106493)

    -   新增入参:SdkAppId, SessionId

    -   新增出参:TaskId, SessionId

-
[StartAITranscription](https://cloud.tencent.com/document/api/647/106492)

    -   新增入参:SessionId

修改数据结构:

-
[RecognizeConfig](https://cloud.tencent.com/document/api/647/44055#RecognizeConfig)

    -   新增成员:Model

###
[`v1.0.933`](https://togithub.com/tencentcloud/tencentcloud-sdk-go/blob/HEAD/CHANGELOG.md#Release-v10933)

[Compare
Source](https://togithub.com/tencentcloud/tencentcloud-sdk-go/compare/v1.0.932...v1.0.933)

#### 商业智能分析 BI(bi) 版本:2022-01-05

##### 第 12 次发布

发布时间:2024-05-31 01:10:46

本次发布包含了以下内容:

改善已有的文档。

修改数据结构:

- [UserInfo](https://cloud.tencent.com/document/api/590/73726#UserInfo)

    -   新增成员:AppUserId, AppUserName

-
[UserRoleListDataUserRoleInfo](https://cloud.tencent.com/document/api/590/73726#UserRoleListDataUserRoleInfo)

    -   新增成员:AppOpenUserId

#### 运维安全中心(堡垒机)(dasb) 版本:2019-10-18

##### 第 27 次发布

发布时间:2024-05-31 01:30:02

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-
[BindDeviceResource](https://cloud.tencent.com/document/api/1025/74792)

    -   新增入参:DomainId

-   [ModifyDevice](https://cloud.tencent.com/document/api/1025/86951)

    -   新增入参:DomainId

修改数据结构:

-
[Department](https://cloud.tencent.com/document/api/1025/74416#Department)

- <font color="#dd0000">**修改成员**:</font>Id, Name, Managers, ManagerUsers

-   [Device](https://cloud.tencent.com/document/api/1025/74416#Device)

    -   新增成员:DomainId, DomainName

-   [Group](https://cloud.tencent.com/document/api/1025/74416#Group)

- <font color="#dd0000">**修改成员**:</font>Id, Name, Department, Count

- [Resource](https://cloud.tencent.com/document/api/1025/74416#Resource)

    -   新增成员:DomainCount, UsedDomainCount

#### 数据湖计算 DLC(dlc) 版本:2021-01-25

##### 第 91 次发布

发布时间:2024-05-31 01:32:25

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-
[DescribeLakeFsInfo](https://cloud.tencent.com/document/api/1342/87873)

    -   新增出参:LakeFsInfos

新增数据结构:

-
[LakeFsInfo](https://cloud.tencent.com/document/api/1342/53778#LakeFsInfo)

#### 流计算 Oceanus(oceanus) 版本:2019-04-22

##### 第 55 次发布

发布时间:2024-05-31 01:58:53

本次发布包含了以下内容:

改善已有的文档。

新增数据结构:

-   [SubEks](https://cloud.tencent.com/document/api/849/52010#SubEks)

修改数据结构:

-   [Cluster](https://cloud.tencent.com/document/api/849/52010#Cluster)

    -   新增成员:Type, SubEks, AgentSerialId

-
[ClusterGroupSetItem](https://cloud.tencent.com/document/api/849/52010#ClusterGroupSetItem)

    -   新增成员:SubEks

    -   <font color="#dd0000">**修改成员**:</font>RunningCu, PayMode

#### 容器安全服务(tcss) 版本:2020-11-01

##### 第 62 次发布

发布时间:2024-05-31 02:10:49

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-
[CreateAssetImageScanSetting](https://cloud.tencent.com/document/api/1285/65591)

    -   新增入参:ExcludeImages

-
[DescribeAssetImageScanSetting](https://cloud.tencent.com/document/api/1285/65487)

    -   新增出参:ExcludeImages

-
[DescribeImageRegistryTimingScanTask](https://cloud.tencent.com/document/api/1285/65472)

    -   新增出参:ExcludeImageAssetIds

-
[UpdateImageRegistryTimingScanTask](https://cloud.tencent.com/document/api/1285/65457)

    -   新增入参:ExcludeImageAssetIds

#### Web 应用防火墙(waf) 版本:2018-01-25

##### 第 84 次发布

发布时间:2024-05-31 02:29:01

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-   [AddCustomRule](https://cloud.tencent.com/document/api/627/53608)

    -   新增入参:JobType, JobDateTime, Source, Label, Status, PageId

    -   <font color="#dd0000">**修改入参**:</font>ExpireTime

- [AddCustomWhiteRule](https://cloud.tencent.com/document/api/627/90325)

    -   新增入参:JobType, JobDateTime

-
[AddSpartaProtection](https://cloud.tencent.com/document/api/627/72689)

    -   新增入参:ProbeStatus

-   [DeleteCustomRule](https://cloud.tencent.com/document/api/627/97444)

    -   新增入参:DomainRuleIdList

    -   新增出参:Success

-
[DescribeCustomRuleList](https://cloud.tencent.com/document/api/627/97443)

    -   新增入参:DomainList

-   [ModifyCustomRule](https://cloud.tencent.com/document/api/627/97442)

    -   新增入参:JobType, JobDateTime, Source, Status, PageId

    -   新增出参:Success

-
[ModifyCustomRuleStatus](https://cloud.tencent.com/document/api/627/53599)

    -   新增入参:DomainRuleIdList

-
[ModifyCustomWhiteRule](https://cloud.tencent.com/document/api/627/90323)

    -   新增入参:JobType, JobDateTime

-
[ModifySpartaProtection](https://cloud.tencent.com/document/api/627/94309)

    -   新增入参:ProbeStatus

-   [UpsertCCRule](https://cloud.tencent.com/document/api/627/97646)

    -   新增入参:CreateTime

新增数据结构:

-   [CronJob](https://cloud.tencent.com/document/api/627/53609#CronJob)
-
[DomainRuleId](https://cloud.tencent.com/document/api/627/53609#DomainRuleId)
-
[JobDateTime](https://cloud.tencent.com/document/api/627/53609#JobDateTime)
-
[MiniExtendPkg](https://cloud.tencent.com/document/api/627/53609#MiniExtendPkg)
- [TimedJob](https://cloud.tencent.com/document/api/627/53609#TimedJob)

修改数据结构:

-
[BatchIpAccessControlItem](https://cloud.tencent.com/document/api/627/53609#BatchIpAccessControlItem)

    -   新增成员:CreateTime

-
[CCRuleItems](https://cloud.tencent.com/document/api/627/53609#CCRuleItems)

    -   新增成员:CreateTime

-
[CacheUrlItems](https://cloud.tencent.com/document/api/627/53609#CacheUrlItems)

    -   新增成员:ModifyTime, CreateTime

-
[DescribeAntiLeakageItem](https://cloud.tencent.com/document/api/627/53609#DescribeAntiLeakageItem)

    -   新增成员:ModifyTime

-
[DescribeCustomRulesRspRuleListItem](https://cloud.tencent.com/document/api/627/53609#DescribeCustomRulesRspRuleListItem)

    -   新增成员:JobType, JobDateTime, CronType, Label, PageId, Domain

-
[InstanceInfo](https://cloud.tencent.com/document/api/627/53609#InstanceInfo)

    -   新增成员:MiniExtendPkg, BillingItem

-
[IpAccessControlItem](https://cloud.tencent.com/document/api/627/53609#IpAccessControlItem)

    -   新增成员:CreateTime

- [RuleList](https://cloud.tencent.com/document/api/627/53609#RuleList)

    -   新增成员:CreateTime

-
[UserDomainInfo](https://cloud.tencent.com/document/api/627/53609#UserDomainInfo)

    -   新增成员:AlbType, BotStatus, ApiStatus

###
[`v1.0.932`](https://togithub.com/tencentcloud/tencentcloud-sdk-go/blob/HEAD/CHANGELOG.md#Release-v10932)

[Compare
Source](https://togithub.com/tencentcloud/tencentcloud-sdk-go/compare/v1.0.931...v1.0.932)

#### 日志服务(cls) 版本:2020-10-16

##### 第 93 次发布

发布时间:2024-05-30 01:22:05

本次发布包含了以下内容:

改善已有的文档。

修改接口:

- [DescribeLogContext](https://cloud.tencent.com/document/api/614/56448)

    -   新增入参:Query, From, To

#### DNSPod(dnspod) 版本:2021-03-23

##### 第 31 次发布

发布时间:2024-05-30 01:33:24

本次发布包含了以下内容:

改善已有的文档。

新增接口:

-
[ModifyDomainToGroup](https://cloud.tencent.com/document/api/1427/106668)

#### 腾讯云可观测平台(monitor) 版本:2018-07-24

##### 第 114 次发布

发布时间:2024-05-30 01:55:28

本次发布包含了以下内容:

改善已有的文档。

修改数据结构:

-
[AlarmPolicyRule](https://cloud.tencent.com/document/api/248/30354#AlarmPolicyRule)

    -   新增成员:IsLatenessMetric

-   [Metric](https://cloud.tencent.com/document/api/248/30354#Metric)

    -   新增成员:IsLatenessMetric

    -   <font color="#dd0000">**修改成员**:</font>Operators, Periods

#### 云数据库Redis(redis) 版本:2018-04-12

##### 第 75 次发布

发布时间:2024-05-30 02:02:41

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-   [CloneInstances](https://cloud.tencent.com/document/api/239/89391)

    -   新增入参:CloneTime

修改数据结构:

-
[InstanceSet](https://cloud.tencent.com/document/api/239/20022#InstanceSet)

    -   新增成员:BackupMode

#### 云开发 CloudBase(tcb) 版本:2018-06-08

##### 第 102 次发布

发布时间:2024-05-30 02:08:52

本次发布包含了以下内容:

改善已有的文档。

修改接口:

- [DescribeWxGateways](https://cloud.tencent.com/document/api/876/94386)

    -   新增入参:GatewayId

修改数据结构:

-
[GatewayItem](https://cloud.tencent.com/document/api/876/34822#GatewayItem)

- 新增成员:WxAppId, CanRenew, AutoRenewFlag, CanDowngrade, LongAccessId,
AccessDomain

    -   <font color="#dd0000">**修改成员**:</font>VersionNumLimit

#### 边缘安全加速平台(teo) 版本:2022-09-01

##### 第 81 次发布

发布时间:2024-05-29 19:42:22

本次发布包含了以下内容:

改善已有的文档。

修改数据结构:

-   [Rule](https://cloud.tencent.com/document/api/1552/80721#Rule)

    -   <font color="#dd0000">**修改成员**:</font>Actions

#### 边缘安全加速平台(teo) 版本:2022-01-06

#### T-Sec-安心平台(RP)(trp) 版本:2021-05-15

##### 第 34 次发布

发布时间:2024-05-30 02:20:31

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-   [CreateCodePack](https://cloud.tencent.com/document/api/1458/75028)

    -   新增入参:SceneCode

- [CreateCustomPack](https://cloud.tencent.com/document/api/1458/81464)

    -   新增入参:SceneCode

- [DescribeCodePacks](https://cloud.tencent.com/document/api/1458/75016)

    -   新增入参:SceneCode, Status

修改数据结构:

- [CodePack](https://cloud.tencent.com/document/api/1458/75030#CodePack)

    -   新增成员:SceneCode, CodeRule, UsedAmount, SerialStart, SerialEnd

-   [Job](https://cloud.tencent.com/document/api/1458/75030#Job)

    -   新增成员:ErrorMessage

- [PackSpec](https://cloud.tencent.com/document/api/1458/75030#PackSpec)

    -   新增成员:Unit, SceneCode

-   [ScanLog](https://cloud.tencent.com/document/api/1458/75030#ScanLog)

    -   新增成员:ProductLogo, Status, Verify

- <font color="#dd0000">**修改成员**:</font>Unionid, First, BatchId, Type,
MerchantName, ProductName

-
[TraceCode](https://cloud.tencent.com/document/api/1458/75030#TraceCode)

    -   新增成员:PackSpec, SceneCode, SerialCode

    -   <font color="#dd0000">**修改成员**:</font>AgentId, Level

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNzcuOCIsInVwZGF0ZWRJblZlciI6IjM3LjM4OC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com>

* [chore][exporter/elasticsearch]Extend benchmarks for mapping mode (#33391)

**Description:** Updates benchmarks to consider mapping mode. Mapping
mode has a big impact on the benchmark runs since each mapping mode is
implemented in a different way. This is a precursor to
https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33374
which aims to improve performance by optimizing allocations.

**Link to tracking Issue:**
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32504

**Testing:** <Describe what testing was performed and which tests were
added.> `cd integrationtest && go test -count=1 -bench=BenchmarkExporter
-run=^$ -v ./...`

<details>
<summary> Benchmark results from my personal PC</summary>

```
$ go test -count=1 -bench=BenchmarkExporter -run=^$ -v ./...                        [11:43:00]
goos: darwin
goarch: arm64
pkg: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter/integrationtest
BenchmarkExporter
BenchmarkExporter/logs/none/small_batch
BenchmarkExporter/logs/none/small_batch-10         	   19693	     62644 ns/op	    159633 events/s	   59476 B/op	     352 allocs/op
BenchmarkExporter/logs/none/medium_batch
BenchmarkExporter/logs/none/medium_batch-10        	    2174	    549870 ns/op	    181861 events/s	  586538 B/op	    3425 allocs/op
BenchmarkExporter/logs/none/large_batch
BenchmarkExporter/logs/none/large_batch-10         	     225	   5291466 ns/op	    188984 events/s	 5856818 B/op	   34148 allocs/op
BenchmarkExporter/logs/none/xlarge_batch
BenchmarkExporter/logs/none/xlarge_batch-10        	      22	  51000769 ns/op	    196075 events/s	58486725 B/op	  341268 allocs/op
BenchmarkExporter/logs/ecs/small_batch
BenchmarkExporter/logs/ecs/small_batch-10          	   31297	     38221 ns/op	    261637 events/s	   48742 B/op	     161 allocs/op
BenchmarkExporter/logs/ecs/medium_batch
BenchmarkExporter/logs/ecs/medium_batch-10         	    3559	    335623 ns/op	    297953 events/s	  479045 B/op	    1520 allocs/op
BenchmarkExporter/logs/ecs/large_batch
BenchmarkExporter/logs/ecs/large_batch-10          	     343	   3313594 ns/op	    301787 events/s	 4784951 B/op	   15102 allocs/op
BenchmarkExporter/logs/ecs/xlarge_batch
BenchmarkExporter/logs/ecs/xlarge_batch-10         	      34	  33257379 ns/op	    300685 events/s	47837431 B/op	  150861 allocs/op
BenchmarkExporter/logs/raw/small_batch
BenchmarkExporter/logs/raw/small_batch-10          	   22364	     54047 ns/op	    185025 events/s	   58119 B/op	     291 allocs/op
BenchmarkExporter/logs/raw/medium_batch
BenchmarkExporter/logs/raw/medium_batch-10         	    2452	    484758 ns/op	    206288 events/s	  572996 B/op	    2819 allocs/op
BenchmarkExporter/logs/raw/large_batch
BenchmarkExporter/logs/raw/large_batch-10          	     252	   4782239 ns/op	    209107 events/s	 5722459 B/op	   28098 allocs/op
BenchmarkExporter/logs/raw/xlarge_batch
BenchmarkExporter/logs/raw/xlarge_batch-10         	      25	  46517563 ns/op	    214973 events/s	57311327 B/op	  281046 allocs/op
BenchmarkExporter/traces/none/small_batch
BenchmarkExporter/traces/none/small_batch-10       	   18934	     64383 ns/op	    155321 events/s	   61103 B/op	     392 allocs/op
BenchmarkExporter/traces/none/medium_batch
BenchmarkExporter/traces/none/medium_batch-10      	    2078	    573554 ns/op	    174352 events/s	  602734 B/op	    3826 allocs/op
BenchmarkExporter/traces/none/large_batch
BenchmarkExporter/traces/none/large_batch-10       	     204	   5506740 ns/op	    181596 events/s	 6019500 B/op	   38163 allocs/op
BenchmarkExporter/traces/none/xlarge_batch
BenchmarkExporter/traces/none/xlarge_batch-10      	      21	  55099689 ns/op	    181489 events/s	60130968 B/op	  381435 allocs/op
BenchmarkExporter/traces/ecs/small_batch
BenchmarkExporter/traces/ecs/small_batch-10        	   18612	     64431 ns/op	    155204 events/s	   61111 B/op	     392 allocs/op
BenchmarkExporter/traces/ecs/medium_batch
BenchmarkExporter/traces/ecs/medium_batch-10       	    2086	    579508 ns/op	    172560 events/s	  602838 B/op	    3826 allocs/op
BenchmarkExporter/traces/ecs/large_batch
BenchmarkExporter/traces/ecs/large_batch-10        	     210	   5637313 ns/op	    177389 events/s	 6019330 B/op	   38168 allocs/op
BenchmarkExporter/traces/ecs/xlarge_batch
BenchmarkExporter/traces/ecs/xlarge_batch-10       	      20	  53797696 ns/op	    185882 events/s	60170108 B/op	  381418 allocs/op
BenchmarkExporter/traces/raw/small_batch
BenchmarkExporter/traces/raw/small_batch-10        	   19999	     64957 ns/op	    153949 events/s	   60193 B/op	     372 allocs/op
BenchmarkExporter/traces/raw/medium_batch
BenchmarkExporter/traces/raw/medium_batch-10       	    2197	    533394 ns/op	    187479 events/s	  592292 B/op	    3625 allocs/op
BenchmarkExporter/traces/raw/large_batch
BenchmarkExporter/traces/raw/large_batch-10        	     223	   5158606 ns/op	    193851 events/s	 5917039 B/op	   36155 allocs/op
BenchmarkExporter/traces/raw/xlarge_batch
BenchmarkExporter/traces/raw/xlarge_batch-10       	      22	  51159360 ns/op	    195468 events/s	59215624 B/op	  361363 allocs/op
PASS
ok  	github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter/integrationtest	93.126s
```
</details>

**Documentation:** <Describe the documentation added.> N/A

* [processor/geoip] Initial implementation (#33319)

**Description:** <Describe what has changed.>
This is the initial implementation of the GeoIP processor. Note that it
will still be a NOP (No Operation) from the user's perspective, as no
Geo data providers are implemented [nor can be configured
yet](https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33268).
However, this implementation aims to provide an overview of the
processor's logic.

The logic is the same for all signals (traces, metrics, and logs). For
each signal, the processor follows these steps:

1. Locate an IP address attribute within the resource attributes. If not
found, continue; if parsing the IP fails, return an error. By default,
the IP address must be included within the `source.address` attribute
key, see:
https://github.com/open-telemetry/semantic-conventions/blob/v1.26.0/docs/general/attributes.md#source
2. Retrieve the geo-location metadata associated with the IP address
using the available GeoProviders. At the moment, no additional check is
done on the attributes returned by the providers. In a future PR, the
processor will need to validate that all attributes follow the Geo
semantic conventions.
 3. Append the set of geo attributes to the resource attributes. 

The `processor/geoipprocessor/internal/provider/geoipprovider.go` file
contains an initial interface proposal for the Geo providers. A mock
implementation can be found in the geoip_processor_test.go file.

**Link to tracking Issue:**
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32663

**Testing:** Unit tests for the signals process

**Documentation:** Should we update the README with the available
configuration once it becomes operational?

---------

Co-authored-by: Tiffany Hrabusa <30397949+tiffany76@users.noreply.github.com>

* [exporter/Logzioexporter] bug fix export log attributes  (#33231)

**Description:** 
Fix bug where log attributes were not correctly exported

**Link to tracking Issue:** <Issue number if applicable>

https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/11409

**Testing:** <Describe what testing was performed and which tests were
added.>
Updated unit tests

**Documentation:** <Describe the documentation added.>
No documentation added

* [exporter/kafkaexporter] added an option to disable kerberos PA-FX-FAST negotiation (#33086)

**Description:** 
Added the `disable_fast_negotiation` configuration option for Kafka
Kerberos authentication. This option allows users to disable the
PA-FX-FAST negotiation, which can cause issues when Active Directory is
not configured to support it. This change ensures that Kafka Exporters
can function correctly in such environments.

**Link to tracking Issue:**
[26345](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/26345)

**Testing:** 
- Added unit tests to verify the behaviour of the
`disable_fast_negotiation` option in the `KerberosConfig` struct.
- Tests include scenarios where `disable_fast_negotiation` is set to
both `true` and `false`, ensuring that the configuration is correctly
applied.

**Documentation:** 
- Updated README files which describe the new configuration option
- Updated the changelog to reflect the addition of the
`disable_fast_negotiation` configuration option.

---------

Co-authored-by: Sean Marciniak <30928402+MovieStoreGuy@users.noreply.github.com>
Co-authored-by: Curtis Robert <crobert@splunk.com>

* [chore] make update-otel (#33396)

Addresses GHSA-c74f-6mfw-mm4v

---------

Signed-off-by: Pablo Baeyens <pablo.baeyens@datadoghq.com>

* [receiver/sqlserver] Add support for more database IO metrics (#32833)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
This adds more metrics (disabled by default) from the existing
`database_io` query. The values being scraped can be found
[here](https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-io-virtual-file-stats-transact-sql?view=sql-server-ver16).

**Link to tracking Issue:** <Issue number if applicable>
Continued work on #29865

**Testing:** <Describe what testing was performed and which tests were
added.>
Tests added. Also confirmed all expected metrics were properly scraped
manually.

* [chore] remove use of deprecated component.UnmarshalConfig (#33404)

**Description:**
Remove use of `component.UnmarshalConfig` 

this change only affects test code.

* [chore] Do not fail if JSON is not found in previous issue (#33395)

**Description:**

Avoid crashing when JSON section is not present in previous ISSUE

**Link to tracking Issue:**

#33388 

**Testing:**
```
act -j get_issues  -e <(echo '{"repository": {"owner": {"login": "your-github-username"}}}') -s GITHUB_TOKEN=<your-token>
```

* [exporter/elasticsearch] validate endpoints (#33350)

**Description:**

Check that Elasticsearch `endpoints` is a list of valid URLs during
config validation. This ensures that syntactically invalid endpoints
causes a fatal error during collector startup, rather than leading to a
persistent runtime error.

Previously, setting an endpoint without a scheme would lead to an error
at runtime when attempting a bulk request to Elasticsearch:

```
...
2024-06-04T10:30:23.244+0800    error
elasticsearchexporter/elasticsearch_bulk.go:313 bulk indexer flush error
{"kind": "exporter", "data_type": "traces", "name": "elasticsearch",
"error": "failed to execute the request: unsupported protocol scheme
\"\""}
...
```

Now the collector fails to start up:

```
$ make run
cd ./cmd/otelcontribcol && GO111MODULE=on go run --race . --config ../../local/config.yaml 
Error: invalid configuration: exporters::elasticsearch: invalid endpoint "localhost": invalid scheme "", expected "http" or "https"
2024/06/04 12:23:50 collector server run finished with error: invalid configuration: exporters::elasticsearch: invalid endpoint "localhost": invalid scheme "", expected "http" or "https"
exit status 1
make: *** [Makefile:255: run] Error 1
```

**Link to tracking Issue:**

N/A

**Testing:** <Describe what testing was performed and which tests were
added.>

**Documentation:**

N/A

* [chore] remove use of component.UnmarshalConfig (#33407)

Description:
Remove use of component.UnmarshalConfig

this change only affects test code.

Follow up to #33404

---------

Co-authored-by: Andrzej Stencel <andrzej.stencel@elastic.co>

* [chore] Clarify that cmd/otelcontribcol and top-level go.mod are not the sources of the contrib distro (#33409)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->

Documents the purpose of `cmd/otelcontribcol` and `cmd/oteltestbedcol`
in new READMEs and in comments on the builder manifests. Adds note to
top-level `go.mod`.

This is a common point of confusion and was recently confusing for users
on the aftermath of CVE-2024-36129

Counterpart to open-telemetry/opentelemetry-collector/pull/10351

---------

Co-authored-by: Armin Ruech <7052238+arminru@users.noreply.github.com>

* [chore] Add issues with waiting-for-code-owners label to the weekly report (#33330)

**Description:** 

Added the list of issues with the `waiting-for-code-owner` to the weekly
report

**Link to tracking Issue:** 

#32490

**Testing:**

Check the testing_actions.md file

**Documentation:**

I've added the docs/testing_actions.md file to describe how to test the
new functionality

---------

Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com>

* [CI] make update-otel (#32038)

**Description:** 
Seems like there were some bugs, which i wasn't very sure about.
It ran the `multimod` cmd with the wrong directory (at least in my
case).
On top of that i had to remove the `--commit-hash` flag, because per
definition it already gets the main branch, but you should have to
insert a commit-hash.
If not used at all it should just be the latest. Therefore
`OTEL_VERSION` and `OTEL_STABLE_VERSION` could be removed or could later
on be used to get the latest commit-hash (but has to be implemented).

The core-versions in `otelcontribcol/builder-config.yaml` and
`oteltestbedcol/builder-config.yaml` will be updated by using `sed`.
But these additional lines will only replace sth like:

`v0.97.1-0.20240327181407-1038b67c85a0`
and update it to:
`v0.98.0`

So if someone needs any kind of specific version-hash, he still would
have to change this manually.

This definitely is not a perfect solution for this issue (it just works
:sweat_smile: ) , so just tell me if there is something totally stupid
in this code.


**Link to tracking Issue:** 
- Resolves #21632 

**Testing:** <Describe what testing was performed and which tests were
added.>

**Documentation:** <Describe the documentation added.>

---------

Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>

* [chore][docs] Fix name of the Windows Event Log Receiver (#33295)

**Description:** <Describe what has changed.>
Changing "Windows Log Event Receiver" to "Windows Event Log Receiver" as
that is the official name. IBM docs is also linking out to this readme
so we need consistency.

https://www.ibm.com/docs/en/instana-observability/current?topic=opentelemetry-sending-data-instana-agent#enabling-tls-encryption-for-opentelemetry-ingestion

* [chore][processor/probabilisticsampler] Fix typo (#33418)

* [chore] Add sponsorship assignment requirement (#33299)

As discussed in the collector SIG today, I'm proposing language where
auto-assignment of a sponsor is only a given if the component is
proposed by a member of the project.

* [cmd/opampsupervisor,extension/opamp] Update opamp-go v0.15.0 (#33416)

**Description:**
* Updates opamp-go to v0.15.0

This change is breaking, in that an opamp server using v0.14.0 may be
incompatible with the changes introduced in v0.15.0 (this is due to
invalid UTF-8 sequences now being allowed in the agent's instance ID).

As part of this update, the preferred format for IDs in the opamp
extension's config has changed to UUID (any UUID is allowed, but
specifically v7 is preferred). I've allowed ULIDs to still be specified,
so older configurations should still work.

For the supervisor, I've changed the ULID generated to be a UUID. This
is a breaking change for the persistent state, but this component is in
developmen status, and breaking changes are expected.

**Testing:** 
Unit tests.
Tested connecting the supervisor to a management server using v0.15.0 of
OpAMP.

**Documentation:**
* Modified documentation to switch references to ULID to UUID

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>

* [cmd/opampsupervisor]: Add config validation (#32845)

**Description:**
* Refactor config to remove some pointers (using a "default config" +
override pattern lets us do this, which simplifies some code)
* Validate the config after loading it, and after getting a new config
from the opamp server

**Link to tracking Issue:** Closes #32843

**Testing:**
* Unit tests for config validation

* [chore] update core dep (#33417)

This brings in the rename of CreateSettings -> Settings and
NewNopCreateSettings -> NewNopSettings

---------

Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>

* [chore][pkg/stanza] skip rotation test on windows (#33429)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
Since other rotation related tests are skipped on Windows, I guess it
makes sense to skip this one too.
Related to
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/16331.

Spotted failure:
https://github.com/open-telemetry/opentelemetry-collector-contrib/actions/runs/9418728481/job/25946842048?pr=33428#step:6:848
(https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33428)


**Link to tracking Issue:** <Issue number if applicable>

**Testing:** <Describe what testing was performed and which tests were
added.>

**Documentation:** <Describe the documentation added.>

Signed-off-by: ChrsMark <chrismarkou92@gmail.com>

* [cmd/opampsupervisor] remove executable check for collector binary (#33431)

**Description:** <Describe what has changed.>
* Remove the check for if an executable bit is set on the collector
binary. Instead, we'll allow the supervisor to attempt to run it and
fail then.

**Link to tracking Issue:** Closes #33430

**Testing:**
* Unit tests

* [confmap/provider/secretsmanagerprovider] Add support for JSON secrets (#32861)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
- Fixes `invalid memory address or nil pointer dereference` error when I
included this component in `opentelemetry-lambda/collector` lambda
layer.
- Fixes #32143 AWS Secrets Manager - JSON Secret Support

**Link to tracking Issue:** #32143 

**Testing:** Added unit tests. Manually tested in AWS Lambda Layer with
opentelemetry-lambda

**Documentation:** Update changelog and secretsmanagerprovider README.

---------

Co-authored-by: Antoine Toulme <antoine@toulme.name>
Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>

* [chore][exporter/elasticsearch] Re-enable exporter test on Windows (#33434)


**Link to tracking Issue:** #10178 #14759

Co-authored-by: Curtis Robert <crobert@splunk.com>

* [chore] make gotidy lint (#33448)

Before this PR, main was broken for a few groups:

- receiver-3
- exporter-1
- exporter-3
- connector

Signed-off-by: Juraci Paixão Kröhling <juraci@kroehling.de>

---------

Signed-off-by: Juraci Paixão Kröhling <juraci@kroehling.de>

* [pkg/winperfcounters] Add option to re-create PDH query on each scrape. (#32799)

**Description:** This pull request adds a new option for
`receiver/windowsperfcounters` to allow re-creating a given counter
query on each scrape. This is useful to avoid some weird performance
counter corruption bugs that can occur on some versions of Windows.

The pull request does this by exposing a new setting (documented in
receiver's README) `counterConfig.recreateQuery bool` and a new public
`watcher` API in `pkg/winperfcounters` called `Reset()`.

The PR also modifies the `receiver/activedirectoryds` tests to stub the
`Reset()` API.

**Link to tracking Issue:** #32798 

**Testing:**
- Unit tests for `watcher`
- Unit tests for `windowsperfcounters_scraper`
- Manual testing on our affected systems to validate that the scrape
output is now valid

**Documentation:**
- Receiver documentation for new settings
- User-facing changelog for the setting
- API-facing changelog for the `watcher` API

* [chore] Fix pinging and labelling on new issues (#33437)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
The current behavior of pinging code owners and adding labels to new
issues is tied together. The existing logic was to only add a label and
ping code owners if the person filing the issue was **not** a code
owner. However, this can lead to issues lacking labels, and some code
owners not being properly notified of issues.

Recent example:
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33433
(There have been many examples of this, but I choose this one as I used
it for my investigation.)

This issue was filed by a code owner. The result was that no labels were
added, and the other three code owners were not notified.

I think it makes sense to at least add the label to the issue, and I
don't see much harm in the extra noise for the person filing the issue
to get a notification.

This change is essentially the same as
https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/30136,
just for new issues.

Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>

* [pkg/ottl] add `keep_matching_keys function` (#33337)

**Description:** This PR adds a `keep_matching_keys` function.
**Link to tracking Issue:** Resolves #32989 

**Testing:** Added unit and end to end tests. Tested manually with the
following config:

```yaml
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317

processors:
  transform:
    error_mode: ignore
    trace_statements:
      - context: span
        statements:
          - keep_matching_keys(attributes, "http.*")

exporters:
  debug:
    verbosity: detailed
  otlphttp:
    endpoint: ${env:DT_ENDPOINT}
    headers:
      Authorization: "Api-Token ${env:API_TOKEN}"

service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [transform]
      exporters: [otlphttp, debug]
```

Used the `telemetrygen` CLI to send traces with attributes to verify the
function was applied correctly:

```
telemetrygen traces --otlp-insecure --traces 10 --status-code Ok --span-duration 1s --telemetry-attributes http.foo=\"value1\" --telemetry-attributes http.bar=\"value2\" --telemetry-attributes foo=\"bar\"
```

**Documentation:** The documentation has been added to the function
explanations in the readme

---------

Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>
Co-authored-by: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com>

* [pkg/ottl] Support for append (#33017)

**Description:** 
Added new ottl function `append(target, Optional[single_value],
Optional[slice_value])`

Append function appends one or more values to an existing array if the
field already exists and it is an array.
It should convert scalar values into an array if the field exists but is
not an array
Creates an array containing the provided values if the field doesn’t
exist

Implemented this with few assumptions up for a discussion
- implemented this as a function modifying target rather than converter
returning merged arrays
- working with strings so far, resulting in `[]string` after concat
- merging integers, boolean... not implemented, as I haven't found use
for these use-cases, could be accomplished with retyping them later
after append produces `[]string`

**Link to tracking Issue:** [<Issue number if
applicable>](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32141)

**Testing:** 
Added unit tests with intended behavior
Tested also with this config
```yaml
receivers:
  filelog:
    include: [ system.log ]
    start_at: beginning

exporters:
  debug:
    verbosity: detailed
    sampling_initial: 10000
    sampling_thereafter: 10000

processors:
  transform:
    error_mode: ignore
    log_statements:
      - context: log
        statements: 
          - append(attributes["empty_tags"], "my empty value") # non existing field should be created
          - set(attributes["tags"], "my funky value") # init with single value
          - append(attributes["tags"], "my file value") # append to scalar value
          - set(attributes["tags_copy"], attributes["tags"]) # make a copy 
          - append(attributes["tags_copy"], "my third value") # append to slice
          - append(attributes["tags_copy"], values = ["my third value", "my last value"]) # append to slice

service:
  pipelines:
    logs:
      receivers: [filelog]
      processors: [transform]
      exporters:
        - debug
```

Expecting this result
```
Attributes:
  -> log.file.name: Str(system.log)
  -> empty_tags: Slice(["my empty value"])
  -> tags: Slice(["my funky value","my file value"])
  -> tags_copy: Slice(["my funky value","my file value","my third value"])
```

**Documentation:** updated README

---------

Co-authored-by: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com>
Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>

* [processor/deltatocumulative]: drop samples of streams exceeding limit (#33286)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
when at limit, the `telemetry` component recorded
`dps_dropped{reason="at-limit"}` and set the error to nil.

this in turn let `Aggregate` call `CopyTo` on a zero-valued (effectively
nil) `pmetric.NumberDataPoint`, leading to a panic due to nil-pointer
deref.

For this specific case, the metric is not tracked, given we are at limit
so we cannot CopyTo anything, because it does not exist.

Added signaling behavior to specifically drop those samples altogether.



**Link to tracking Issue:** <Issue number if applicable>
Fixes
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33285

**Testing:** added, `TestDrop`, `TestAggregate`

**Documentation:** not needed

* [chore] Fix windows tests (#33456)

Fixes tests in
https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/32799

* [pkg/stanza] add symlink related test for fileconsumer (#33428)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->

https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/32292
was closed due to inactivity. This PR resumes from there.

**Link to tracking Issue:** <Issue number if applicable>

**Testing:** <Describe what testing was performed and which tests were
added.>

**Documentation:** <Describe the documentation added.>


Co-authored-by: Shaunak Kashyap <ycombinator@gmail.com>

---------

Signed-off-by: ChrsMark <chrismarkou92@gmail.com>
Co-authored-by: Shaunak Kashyap <ycombinator@gmail.com>

* [extension/healthcheckv2] Add event aggregation logic (#32695)

**Description:** 
This PR is the second in a series to decompose
https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/30673
into more manageable pieces for review.

**Aggregator**

This PR introduces an aggregator data structure and event aggregation
logic for status events. The extension implements the `StatusWatcher`
optional interface, which the collector will call with a
`component.StatusEvent` for each change in component status. These
events will be aggregated by an aggregation function, and stored in the
aggregator.

The aggregator is a recursive data structure. At the top it contains the
overall status of the collector. At the next level, it contains the
statuses for each pipeline, and at the level below that, it contains the
statuses for each component in a pipeline. Each node in the data
structure is an aggregation the status events in the level below. The
overall collector status is the aggregation of the pipeline statuses,
and at the next level, the pipeline statuses are the aggregations of the
component statuses. The data structure allows you to query the status of
the collector overall, or for individual pipelines by name. There is
also a pub/sub mechanism used for streaming aggregated statuses.

**Aggregation Function**

The purpose of the aggregator is to aggregate events so that the most
relevant status event bubbles to the top. This allows us to get the
status of the collector overall or a pipeline through a simple lookup.
There is an aggregation function that determines the priority of events
and how they should be aggregated. In many cases, the result will be an
existing status event. In some cases a new event will be synthesized. In
order to match the behavior existing healthcheck extension, lifecycle
events (e.g. starting, stopping, etc) are prioritized over runtime
events. Next, error statuses are prioritized with PermanentErrors as
higher priority than RecoverableErrors, but this can vary based on user
provided configuration. If PermanentErrors are ignored by configuration,
but RecoverableErrors are included, then RecoverableErrors will take
priority over PermanentErrors.

The StatusWatcher interface receives immutable events of type
`component.StatusEvent`. Since we sometimes need to synthesize new
events during aggregation, an `Event` interface was introduced so that
the aggregator can use `component.StatusEvent` instances or instances of
events synthesized by the status package.

It's worth mentioning that there is [existing status event aggregation
logic](https://github.com/open-telemetry/opentelemetry-collector/blob/main/component/status.go#L101-L190)
in collector core, but it did not meet the needs of this extension. It
does not prioritize lifecycle events over error events, and it will
always prioritize permanent errors over recoverable. By prioritizing
lifecycle events over error events we can return a 503 when restarting a
collector rather than a 500 when a collector in a final state, such as
PermanentError. This is necessary to match the behavior of the existing
extension. Since users have the option to include or ignore recoverable
and permanent errors, we need the ability to prioritize them
accordingly. We can discuss what the fate of the aggregation code in
core should be.

**Examples**
Below are examples of overall collector and pipeline status that are
based on the aggregator data structure. The rendering of the examples
will come in a later PR. You can also look at the parent PR to see how
all of this fits together. Note that the pipeline status example is a
subtree of the overall collector status.

Overall collector status:

```json
{
    "start_time": "2024-01-18T17:27:12.570394-08:00",
    "healthy": true,
    "status": "StatusRecoverableError",
    "error": "rpc error: code = ResourceExhausted desc = resource exhausted",
    "status_time": "2024-01-18T17:27:32.572301-08:00",
    "components": {
        "extensions": {
            "healthy": true,
            "status": "StatusOK",
            "status_time": "2024-01-18T17:27:12.570428-08:00",
            "components": {
                "extension:healthcheckv2": {
                    "healthy": true,
                    "status": "StatusOK",
                    "status_time": "2024-01-18T17:27:12.570428-08:00"
                }
            }
        },
        "pipeline:metrics/grpc": {
            "healthy": true,
            "status": "StatusRecoverableError",
            "error": "rpc error: code = ResourceExhausted desc = resource exhausted",
            "status_time": "2024-01-18T17:27:32.572301-08:00",
            "components": {
                "exporter:otlp/staging": {
                    "healthy": true,
                    "status": "StatusRecoverableError",
                    "error": "rpc error: code = ResourceExhausted desc = resource exhausted",
                    "status_time": "2024-01-18T17:27:32.572301-08:00"
                },
                "processor:batch": {
                    "healthy": true,
                    "status": "StatusOK",
                    "status_time": "2024-01-18T17:27:12.571132-08:00"
                },
                "receiver:otlp": {
                    "healthy": true,
                    "status": "StatusOK",
                    "status_time": "2024-01-18T17:27:12.571576-08:00"
                }
            }
        },
        "pipeline:traces/http": {
            "healthy": true,
            "status": "StatusOK",
      …
mackjmr added a commit to DataDog/opentelemetry-collector-contrib that referenced this issue Jul 3, 2024
* [chore] [receiver/kubeletstats] move utilization metrics in standalone helper func (#33335)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
`kubeletstats` receiver performs the CPU metrics addition
in the
[`addCPUMetrics`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.101.0/receiver/kubeletstatsreceiver/internal/kubelet/cpu.go#L13)
helper function.
This function calls respectively the
[`addCPUUsageMetric`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.101.0/receiver/kubeletstatsreceiver/internal/kubelet/cpu.go#L21)
and the
[`addCPUTimeMetric`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.101.0/receiver/kubeletstatsreceiver/internal/kubelet/cpu.go#L37).
However the
[`addCPUUsageMetric`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.101.0/receiver/kubeletstatsreceiver/internal/kubelet/cpu.go#L21)
adds not only the `*.usage` metric but some `*utilization` ones as well.

This change moves the addition of the `*utilization` metrics
to a standalone `addCPUUtilizationMetrics` helper function.

**Link to tracking Issue:** <Issue number if applicable> -

**Testing:** <Describe what testing was performed and which tests were
added.> -

**Documentation:** <Describe the documentation added.> -

---------

Signed-off-by: ChrsMark <chrismarkou92@gmail.com>

* fix(deps): update module google.golang.org/api to v0.183.0 (#33381)

[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[google.golang.org/api](https://togithub.com/googleapis/google-api-go-client)
| `v0.182.0` -> `v0.183.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fapi/v0.183.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fapi/v0.183.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fapi/v0.182.0/v0.183.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fapi/v0.182.0/v0.183.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>googleapis/google-api-go-client
(google.golang.org/api)</summary>

###
[`v0.183.0`](https://togithub.com/googleapis/google-api-go-client/releases/tag/v0.183.0)

[Compare
Source](https://togithub.com/googleapis/google-api-go-client/compare/v0.182.0...v0.183.0)

##### Features

- **all:** Auto-regenerate discovery clients
([#&#8203;2611](https://togithub.com/googleapis/google-api-go-client/issues/2611))
([1de148b](https://togithub.com/googleapis/google-api-go-client/commit/1de148b049cad72efb924df7f3435bcbca7d214f))
- **all:** Auto-regenerate discovery clients
([#&#8203;2616](https://togithub.com/googleapis/google-api-go-client/issues/2616))
([5f21214](https://togithub.com/googleapis/google-api-go-client/commit/5f21214e2284f5162d89383f528326325091796c))
- **all:** Auto-regenerate discovery clients
([#&#8203;2617](https://togithub.com/googleapis/google-api-go-client/issues/2617))
([08fdd71](https://togithub.com/googleapis/google-api-go-client/commit/08fdd71cae0bbfd16ed7e13a00c8bc7dd596ce94))
- **all:** Auto-regenerate discovery clients
([#&#8203;2619](https://togithub.com/googleapis/google-api-go-client/issues/2619))
([c7f1614](https://togithub.com/googleapis/google-api-go-client/commit/c7f161413cf50b50db98ba483afc2f2344e0896f))
- **all:** Auto-regenerate discovery clients
([#&#8203;2622](https://togithub.com/googleapis/google-api-go-client/issues/2622))
([0077748](https://togithub.com/googleapis/google-api-go-client/commit/007774894a48d24634ace7b9e09def4d61433f7f))

##### Bug Fixes

- Add another temporary dep on genproto
([#&#8203;2614](https://togithub.com/googleapis/google-api-go-client/issues/2614))
([4f98211](https://togithub.com/googleapis/google-api-go-client/commit/4f9821115b5b14b2a32a4cdcbbb84bed018dac2c)),
refs
[#&#8203;2559](https://togithub.com/googleapis/google-api-go-client/issues/2559)
[#&#8203;2613](https://togithub.com/googleapis/google-api-go-client/issues/2613)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zODguMSIsInVwZGF0ZWRJblZlciI6IjM3LjM4OC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>

* [chore] run make gengithub (#33385)

* [cmd/configschema] Remove `cmd/configschema` (#33384)

Removes the deprecated `cmd/configschema`.

The command is not used in our repository and is a source of dependency pain

Closes https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/30187

* [chore] Remove use of `confighttp.ClientConfig.RoundTripper` (#33371)

**Description:**

* lokiexporter and sumologicexporter: Neither need to use this field for
their tests, it can be replaced without loss of functionality with
another config field.
* oauth2clientextension: This should directly rely on the `http.Client`
interface.
* ecstaskobserver docs: I don't think there was ever a way to unmarshal
this field, so there shouldn't be a doc for how to configure it.

**Link to tracking Issue:**

Soft required for
https://github.com/open-telemetry/opentelemetry-collector/pull/10310 so
we don't use deprecated APIs.

* Adding Proxy support for Datadog Exporter (#33316)

**Description:** Support the ProxyUrl parameter for the Datadog Exporter

ptal @mx-psi @songy23

* [chore] update go to 1.21.11/1.22.4 (#33386)

Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
Co-authored-by: Pablo Baeyens <pablo.baeyens@datadoghq.com>

* [receiver/gitproviderreceiver] add branch time, commit, and line metrics (#32812)

**Description:**

Adds the following branch based metrics.
* git.repository.branch.time
* git.repository.branch.commit.aheadby.count
* git.repository.branch.commit.behindby.count
* git.repository.branch.line.deletion.count
* git.repository.branch.line.addition.count
 
Additionally brings this receiver very close to the source version in
the Liatrio Distro. Brings the testing up to par as well. After this
pull request is merged, I'd like to move this component to alpha status
so it can be built within the contrib binary and used by others. Once in
alpha, I'd like to bring over the newest metric (repository.cve.count),
bring over the GitLab scraper, and potentially propose a new component I
developed to work in-tandem with this receiver, the GitHub App
Authentication extension.

**Link to tracking Issue:**

 #22028

**Testing:** Brings testing inline with source and include scrape
testing.

**Documentation:**

Updated the documentation to reflect the additional metrics.

---------

Co-authored-by: Curtis Robert <crobert@splunk.com>

* [exporter/coralogix] feat: allow setting application name from custom  resource attributes (#33218)

**Description:** 

allow setting application name from cx.application.name and
cx.subsystem.name attributes. To support simplified use case, such as:

```yaml
receivers:
  filelog/nginx:
    include:
      - '/tmp/tmp.log'
    include_file_path: true
    include_file_name: false
    start_at: end
    resource: 
      cx.subsystem.name: nginx
  filelog/access-log:
    include:
      - '/tmp/access.log'
    include_file_path: true
    include_file_name: false
    resource: 
      cx.subsystem.name: access-log
exporters:
  coralogix:
    domain: 'coralogix.com'
    private_key: "XXX"
    application_name: 'app_name'
    timeout: 30s
service:
  pipelines:
    logs:
      receivers: [filelog/nginx, filelog/access-log]
      exporters: [coralogix]
```

**Link to tracking Issue:** <Issue number if applicable>

https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33217

**Testing:** <Describe what testing was performed and which tests were
added.>
- unit tests
- manually tested

**Documentation:** <Describe the documentation added.>

- updated docs

---------

Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com>

* fix(deps): update module github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common to v1.0.936 (#33358)

[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common](https://togithub.com/tencentcloud/tencentcloud-sdk-go)
| `v1.0.931` -> `v1.0.936` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2ftencentcloud%2ftencentcloud-sdk-go%2ftencentcloud%2fcommon/v1.0.936?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2ftencentcloud%2ftencentcloud-sdk-go%2ftencentcloud%2fcommon/v1.0.936?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2ftencentcloud%2ftencentcloud-sdk-go%2ftencentcloud%2fcommon/v1.0.931/v1.0.936?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2ftencentcloud%2ftencentcloud-sdk-go%2ftencentcloud%2fcommon/v1.0.931/v1.0.936?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>tencentcloud/tencentcloud-sdk-go
(github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common)</summary>

###
[`v1.0.936`](https://togithub.com/tencentcloud/tencentcloud-sdk-go/blob/HEAD/CHANGELOG.md#Release-v10936)

[Compare
Source](https://togithub.com/tencentcloud/tencentcloud-sdk-go/compare/v1.0.935...v1.0.936)

#### 物联网通信(iotcloud) 版本:2021-04-08

##### 第 11 次发布

发布时间:2024-06-05 01:47:50

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-   [DescribeFirmware](https://cloud.tencent.com/document/api/634/73630)

    -   新增出参:UserDefined

修改数据结构:

-
[FirmwareInfo](https://cloud.tencent.com/document/api/634/71973#FirmwareInfo)

    -   新增成员:UserDefined

#### 物联网通信(iotcloud) 版本:2018-06-14

#### 物联网开发平台(iotexplorer) 版本:2019-04-23

##### 第 65 次发布

发布时间:2024-06-05 01:48:26

本次发布包含了以下内容:

改善已有的文档。

修改数据结构:

-
[FirmwareInfo](https://cloud.tencent.com/document/api/1081/34988#FirmwareInfo)

    -   新增成员:UserDefined

#### 流计算 Oceanus(oceanus) 版本:2019-04-22

##### 第 56 次发布

发布时间:2024-06-05 02:02:33

本次发布包含了以下内容:

改善已有的文档。

修改数据结构:

-   [Cluster](https://cloud.tencent.com/document/api/849/52010#Cluster)

    -   新增成员:ResourceType

#### 音速达直播音乐版权引擎(yinsuda) 版本:2022-05-27

##### 第 19 次发布

发布时间:2024-06-05 02:38:46

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-
[DescribeKTVMusicAccompanySegmentUrlVip](https://cloud.tencent.com/document/api/1592/102622)

    -   新增入参:RoomId

修改数据结构:

-
[LiveVipTradeInfo](https://cloud.tencent.com/document/api/1592/76191#LiveVipTradeInfo)

- <font color="#dd0000">**修改成员**:</font>TradeSerialNo, AppName, UserId,
RoomId, VipDays, Status, CreateTime

-
[LiveVipUserInfo](https://cloud.tencent.com/document/api/1592/76191#LiveVipUserInfo)

- <font color="#dd0000">**修改成员**:</font>RoomId, LiveVipEndTime,
LiveVipStatus

- [UserInfo](https://cloud.tencent.com/document/api/1592/76191#UserInfo)

- <font color="#dd0000">**修改成员**:</font>AppName, UserId,
LiveVipUserInfo, UserType

###
[`v1.0.935`](https://togithub.com/tencentcloud/tencentcloud-sdk-go/blob/HEAD/CHANGELOG.md#Release-v10935)

[Compare
Source](https://togithub.com/tencentcloud/tencentcloud-sdk-go/compare/v1.0.934...v1.0.935)

#### T-Sec-DDoS防护(Anti-DDoS)(antiddos) 版本:2020-03-09

##### 第 67 次发布

发布时间:2024-06-04 01:07:52

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-
[DescribeListBGPInstances](https://cloud.tencent.com/document/api/297/95346)

    -   新增入参:FilterZoneIdList

修改数据结构:

-
[BGPInstance](https://cloud.tencent.com/document/api/297/95396#BGPInstance)

    -   新增成员:ZoneId

#### 云数据库 MySQL(cdb) 版本:2017-03-20

##### 第 158 次发布

发布时间:2024-06-04 01:16:12

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-
[AdjustCdbProxyAddress](https://cloud.tencent.com/document/api/236/90589)

    -   新增入参:AutoLoadBalance, AccessMode

-
[CreateCdbProxyAddress](https://cloud.tencent.com/document/api/236/90586)

    -   新增入参:AutoLoadBalance, AccessMode

-
[DescribeProxySupportParam](https://cloud.tencent.com/document/api/236/90584)

    -   新增出参:SupportAutoLoadBalance, SupportAccessMode

修改数据结构:

-
[ProxyAddress](https://cloud.tencent.com/document/api/236/15878#ProxyAddress)

    -   新增成员:AccessMode, AutoLoadBalance

-
[ProxyInst](https://cloud.tencent.com/document/api/236/15878#ProxyInst)

    -   新增成员:InstNodeId, InstNodeRole

#### 域名注册(domain) 版本:2018-08-08

##### 第 38 次发布

发布时间:2024-06-04 01:35:42

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-
[ReservedPreDomains](https://cloud.tencent.com/document/api/242/103887)

    -   新增入参:IsAutoPay, IsBidAutoPay

#### 腾讯电子签企业版(ess) 版本:2020-11-11

##### 第 174 次发布

发布时间:2024-06-04 01:41:39

本次发布包含了以下内容:

改善已有的文档。

新增接口:

-
[CreateUserMobileChangeUrl](https://cloud.tencent.com/document/api/1323/106775)

#### 微服务引擎(tse) 版本:2020-12-07

##### 第 68 次发布

发布时间:2024-06-04 02:26:13

本次发布包含了以下内容:

改善已有的文档。

修改数据结构:

-
[KongUpstreamInfo](https://cloud.tencent.com/document/api/1364/54942#KongUpstreamInfo)

    -   新增成员:ScfIsBase64Encoded, ScfIsIntegratedResponse

#### 微服务平台 TSF(tsf) 版本:2018-03-26

##### 第 107 次发布

发布时间:2024-06-04 02:27:15

本次发布包含了以下内容:

改善已有的文档。

修改接口:

- [DeleteApplication](https://cloud.tencent.com/document/api/649/36093)

    -   新增入参:SyncDeleteImageRepository

-
[DescribeMicroservices](https://cloud.tencent.com/document/api/649/36084)

    -   新增入参:ConfigCenterInstanceId

- [DescribeStatistics](https://cloud.tencent.com/document/api/649/70427)

    -   新增入参:ConfigCenterInstanceId

修改数据结构:

-
[ConfigRelease](https://cloud.tencent.com/document/api/649/36099#ConfigRelease)

    -   新增成员:DaulStatus

-
[TsfConfigCenter](https://cloud.tencent.com/document/api/649/36099#TsfConfigCenter)

    -   新增成员:CurrentVersion, TargetVersion

#### 向量数据库(vdb) 版本:2023-06-16

##### 第 1 次发布

发布时间:2024-06-03 15:48:04

本次发布包含了以下内容:

改善已有的文档。

新增接口:

-
[DescribeInstances](https://cloud.tencent.com/document/api/1709/106756)

新增数据结构:

-
[InstanceInfo](https://cloud.tencent.com/document/api/1709/106757#InstanceInfo)
- [Network](https://cloud.tencent.com/document/api/1709/106757#Network)
-   [Tag](https://cloud.tencent.com/document/api/1709/106757#Tag)

#### Web 应用防火墙(waf) 版本:2018-01-25

##### 第 85 次发布

发布时间:2024-06-04 02:34:05

本次发布包含了以下内容:

改善已有的文档。

新增接口:

-
[ModifyApiSecEventChange](https://cloud.tencent.com/document/api/627/106776)

新增数据结构:

-
[ApiSecKey](https://cloud.tencent.com/document/api/627/53609#ApiSecKey)

#### 数据开发治理平台 WeData(wedata) 版本:2021-08-20

##### 第 91 次发布

发布时间:2024-06-04 02:35:39

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-   [UploadContent](https://cloud.tencent.com/document/api/1267/93282)

    -   新增入参:ProjectId

###
[`v1.0.934`](https://togithub.com/tencentcloud/tencentcloud-sdk-go/blob/HEAD/CHANGELOG.md#Release-v10934)

[Compare
Source](https://togithub.com/tencentcloud/tencentcloud-sdk-go/compare/v1.0.933...v1.0.934)

#### 消息队列 RocketMQ 版(trocket) 版本:2023-03-08

##### 第 15 次发布

发布时间:2024-06-03 02:23:52

本次发布包含了以下内容:

改善已有的文档。

新增接口:

-
[DescribeFusionInstanceList](https://cloud.tencent.com/document/api/1493/106745)

新增数据结构:

-
[FusionInstanceItem](https://cloud.tencent.com/document/api/1493/96031#FusionInstanceItem)
-
[InstanceItemExtraInfo](https://cloud.tencent.com/document/api/1493/96031#InstanceItemExtraInfo)

#### 实时音视频(trtc) 版本:2019-07-22

##### 第 76 次发布

发布时间:2024-06-03 02:25:00

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-
[DescribeAITranscription](https://cloud.tencent.com/document/api/647/106493)

    -   新增入参:SdkAppId, SessionId

    -   新增出参:TaskId, SessionId

-
[StartAITranscription](https://cloud.tencent.com/document/api/647/106492)

    -   新增入参:SessionId

修改数据结构:

-
[RecognizeConfig](https://cloud.tencent.com/document/api/647/44055#RecognizeConfig)

    -   新增成员:Model

###
[`v1.0.933`](https://togithub.com/tencentcloud/tencentcloud-sdk-go/blob/HEAD/CHANGELOG.md#Release-v10933)

[Compare
Source](https://togithub.com/tencentcloud/tencentcloud-sdk-go/compare/v1.0.932...v1.0.933)

#### 商业智能分析 BI(bi) 版本:2022-01-05

##### 第 12 次发布

发布时间:2024-05-31 01:10:46

本次发布包含了以下内容:

改善已有的文档。

修改数据结构:

- [UserInfo](https://cloud.tencent.com/document/api/590/73726#UserInfo)

    -   新增成员:AppUserId, AppUserName

-
[UserRoleListDataUserRoleInfo](https://cloud.tencent.com/document/api/590/73726#UserRoleListDataUserRoleInfo)

    -   新增成员:AppOpenUserId

#### 运维安全中心(堡垒机)(dasb) 版本:2019-10-18

##### 第 27 次发布

发布时间:2024-05-31 01:30:02

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-
[BindDeviceResource](https://cloud.tencent.com/document/api/1025/74792)

    -   新增入参:DomainId

-   [ModifyDevice](https://cloud.tencent.com/document/api/1025/86951)

    -   新增入参:DomainId

修改数据结构:

-
[Department](https://cloud.tencent.com/document/api/1025/74416#Department)

- <font color="#dd0000">**修改成员**:</font>Id, Name, Managers, ManagerUsers

-   [Device](https://cloud.tencent.com/document/api/1025/74416#Device)

    -   新增成员:DomainId, DomainName

-   [Group](https://cloud.tencent.com/document/api/1025/74416#Group)

- <font color="#dd0000">**修改成员**:</font>Id, Name, Department, Count

- [Resource](https://cloud.tencent.com/document/api/1025/74416#Resource)

    -   新增成员:DomainCount, UsedDomainCount

#### 数据湖计算 DLC(dlc) 版本:2021-01-25

##### 第 91 次发布

发布时间:2024-05-31 01:32:25

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-
[DescribeLakeFsInfo](https://cloud.tencent.com/document/api/1342/87873)

    -   新增出参:LakeFsInfos

新增数据结构:

-
[LakeFsInfo](https://cloud.tencent.com/document/api/1342/53778#LakeFsInfo)

#### 流计算 Oceanus(oceanus) 版本:2019-04-22

##### 第 55 次发布

发布时间:2024-05-31 01:58:53

本次发布包含了以下内容:

改善已有的文档。

新增数据结构:

-   [SubEks](https://cloud.tencent.com/document/api/849/52010#SubEks)

修改数据结构:

-   [Cluster](https://cloud.tencent.com/document/api/849/52010#Cluster)

    -   新增成员:Type, SubEks, AgentSerialId

-
[ClusterGroupSetItem](https://cloud.tencent.com/document/api/849/52010#ClusterGroupSetItem)

    -   新增成员:SubEks

    -   <font color="#dd0000">**修改成员**:</font>RunningCu, PayMode

#### 容器安全服务(tcss) 版本:2020-11-01

##### 第 62 次发布

发布时间:2024-05-31 02:10:49

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-
[CreateAssetImageScanSetting](https://cloud.tencent.com/document/api/1285/65591)

    -   新增入参:ExcludeImages

-
[DescribeAssetImageScanSetting](https://cloud.tencent.com/document/api/1285/65487)

    -   新增出参:ExcludeImages

-
[DescribeImageRegistryTimingScanTask](https://cloud.tencent.com/document/api/1285/65472)

    -   新增出参:ExcludeImageAssetIds

-
[UpdateImageRegistryTimingScanTask](https://cloud.tencent.com/document/api/1285/65457)

    -   新增入参:ExcludeImageAssetIds

#### Web 应用防火墙(waf) 版本:2018-01-25

##### 第 84 次发布

发布时间:2024-05-31 02:29:01

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-   [AddCustomRule](https://cloud.tencent.com/document/api/627/53608)

    -   新增入参:JobType, JobDateTime, Source, Label, Status, PageId

    -   <font color="#dd0000">**修改入参**:</font>ExpireTime

- [AddCustomWhiteRule](https://cloud.tencent.com/document/api/627/90325)

    -   新增入参:JobType, JobDateTime

-
[AddSpartaProtection](https://cloud.tencent.com/document/api/627/72689)

    -   新增入参:ProbeStatus

-   [DeleteCustomRule](https://cloud.tencent.com/document/api/627/97444)

    -   新增入参:DomainRuleIdList

    -   新增出参:Success

-
[DescribeCustomRuleList](https://cloud.tencent.com/document/api/627/97443)

    -   新增入参:DomainList

-   [ModifyCustomRule](https://cloud.tencent.com/document/api/627/97442)

    -   新增入参:JobType, JobDateTime, Source, Status, PageId

    -   新增出参:Success

-
[ModifyCustomRuleStatus](https://cloud.tencent.com/document/api/627/53599)

    -   新增入参:DomainRuleIdList

-
[ModifyCustomWhiteRule](https://cloud.tencent.com/document/api/627/90323)

    -   新增入参:JobType, JobDateTime

-
[ModifySpartaProtection](https://cloud.tencent.com/document/api/627/94309)

    -   新增入参:ProbeStatus

-   [UpsertCCRule](https://cloud.tencent.com/document/api/627/97646)

    -   新增入参:CreateTime

新增数据结构:

-   [CronJob](https://cloud.tencent.com/document/api/627/53609#CronJob)
-
[DomainRuleId](https://cloud.tencent.com/document/api/627/53609#DomainRuleId)
-
[JobDateTime](https://cloud.tencent.com/document/api/627/53609#JobDateTime)
-
[MiniExtendPkg](https://cloud.tencent.com/document/api/627/53609#MiniExtendPkg)
- [TimedJob](https://cloud.tencent.com/document/api/627/53609#TimedJob)

修改数据结构:

-
[BatchIpAccessControlItem](https://cloud.tencent.com/document/api/627/53609#BatchIpAccessControlItem)

    -   新增成员:CreateTime

-
[CCRuleItems](https://cloud.tencent.com/document/api/627/53609#CCRuleItems)

    -   新增成员:CreateTime

-
[CacheUrlItems](https://cloud.tencent.com/document/api/627/53609#CacheUrlItems)

    -   新增成员:ModifyTime, CreateTime

-
[DescribeAntiLeakageItem](https://cloud.tencent.com/document/api/627/53609#DescribeAntiLeakageItem)

    -   新增成员:ModifyTime

-
[DescribeCustomRulesRspRuleListItem](https://cloud.tencent.com/document/api/627/53609#DescribeCustomRulesRspRuleListItem)

    -   新增成员:JobType, JobDateTime, CronType, Label, PageId, Domain

-
[InstanceInfo](https://cloud.tencent.com/document/api/627/53609#InstanceInfo)

    -   新增成员:MiniExtendPkg, BillingItem

-
[IpAccessControlItem](https://cloud.tencent.com/document/api/627/53609#IpAccessControlItem)

    -   新增成员:CreateTime

- [RuleList](https://cloud.tencent.com/document/api/627/53609#RuleList)

    -   新增成员:CreateTime

-
[UserDomainInfo](https://cloud.tencent.com/document/api/627/53609#UserDomainInfo)

    -   新增成员:AlbType, BotStatus, ApiStatus

###
[`v1.0.932`](https://togithub.com/tencentcloud/tencentcloud-sdk-go/blob/HEAD/CHANGELOG.md#Release-v10932)

[Compare
Source](https://togithub.com/tencentcloud/tencentcloud-sdk-go/compare/v1.0.931...v1.0.932)

#### 日志服务(cls) 版本:2020-10-16

##### 第 93 次发布

发布时间:2024-05-30 01:22:05

本次发布包含了以下内容:

改善已有的文档。

修改接口:

- [DescribeLogContext](https://cloud.tencent.com/document/api/614/56448)

    -   新增入参:Query, From, To

#### DNSPod(dnspod) 版本:2021-03-23

##### 第 31 次发布

发布时间:2024-05-30 01:33:24

本次发布包含了以下内容:

改善已有的文档。

新增接口:

-
[ModifyDomainToGroup](https://cloud.tencent.com/document/api/1427/106668)

#### 腾讯云可观测平台(monitor) 版本:2018-07-24

##### 第 114 次发布

发布时间:2024-05-30 01:55:28

本次发布包含了以下内容:

改善已有的文档。

修改数据结构:

-
[AlarmPolicyRule](https://cloud.tencent.com/document/api/248/30354#AlarmPolicyRule)

    -   新增成员:IsLatenessMetric

-   [Metric](https://cloud.tencent.com/document/api/248/30354#Metric)

    -   新增成员:IsLatenessMetric

    -   <font color="#dd0000">**修改成员**:</font>Operators, Periods

#### 云数据库Redis(redis) 版本:2018-04-12

##### 第 75 次发布

发布时间:2024-05-30 02:02:41

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-   [CloneInstances](https://cloud.tencent.com/document/api/239/89391)

    -   新增入参:CloneTime

修改数据结构:

-
[InstanceSet](https://cloud.tencent.com/document/api/239/20022#InstanceSet)

    -   新增成员:BackupMode

#### 云开发 CloudBase(tcb) 版本:2018-06-08

##### 第 102 次发布

发布时间:2024-05-30 02:08:52

本次发布包含了以下内容:

改善已有的文档。

修改接口:

- [DescribeWxGateways](https://cloud.tencent.com/document/api/876/94386)

    -   新增入参:GatewayId

修改数据结构:

-
[GatewayItem](https://cloud.tencent.com/document/api/876/34822#GatewayItem)

- 新增成员:WxAppId, CanRenew, AutoRenewFlag, CanDowngrade, LongAccessId,
AccessDomain

    -   <font color="#dd0000">**修改成员**:</font>VersionNumLimit

#### 边缘安全加速平台(teo) 版本:2022-09-01

##### 第 81 次发布

发布时间:2024-05-29 19:42:22

本次发布包含了以下内容:

改善已有的文档。

修改数据结构:

-   [Rule](https://cloud.tencent.com/document/api/1552/80721#Rule)

    -   <font color="#dd0000">**修改成员**:</font>Actions

#### 边缘安全加速平台(teo) 版本:2022-01-06

#### T-Sec-安心平台(RP)(trp) 版本:2021-05-15

##### 第 34 次发布

发布时间:2024-05-30 02:20:31

本次发布包含了以下内容:

改善已有的文档。

修改接口:

-   [CreateCodePack](https://cloud.tencent.com/document/api/1458/75028)

    -   新增入参:SceneCode

- [CreateCustomPack](https://cloud.tencent.com/document/api/1458/81464)

    -   新增入参:SceneCode

- [DescribeCodePacks](https://cloud.tencent.com/document/api/1458/75016)

    -   新增入参:SceneCode, Status

修改数据结构:

- [CodePack](https://cloud.tencent.com/document/api/1458/75030#CodePack)

    -   新增成员:SceneCode, CodeRule, UsedAmount, SerialStart, SerialEnd

-   [Job](https://cloud.tencent.com/document/api/1458/75030#Job)

    -   新增成员:ErrorMessage

- [PackSpec](https://cloud.tencent.com/document/api/1458/75030#PackSpec)

    -   新增成员:Unit, SceneCode

-   [ScanLog](https://cloud.tencent.com/document/api/1458/75030#ScanLog)

    -   新增成员:ProductLogo, Status, Verify

- <font color="#dd0000">**修改成员**:</font>Unionid, First, BatchId, Type,
MerchantName, ProductName

-
[TraceCode](https://cloud.tencent.com/document/api/1458/75030#TraceCode)

    -   新增成员:PackSpec, SceneCode, SerialCode

    -   <font color="#dd0000">**修改成员**:</font>AgentId, Level

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNzcuOCIsInVwZGF0ZWRJblZlciI6IjM3LjM4OC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com>

* [chore][exporter/elasticsearch]Extend benchmarks for mapping mode (#33391)

**Description:** Updates benchmarks to consider mapping mode. Mapping
mode has a big impact on the benchmark runs since each mapping mode is
implemented in a different way. This is a precursor to
https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33374
which aims to improve performance by optimizing allocations.

**Link to tracking Issue:**
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32504

**Testing:** <Describe what testing was performed and which tests were
added.> `cd integrationtest && go test -count=1 -bench=BenchmarkExporter
-run=^$ -v ./...`

<details>
<summary> Benchmark results from my personal PC</summary>

```
$ go test -count=1 -bench=BenchmarkExporter -run=^$ -v ./...                        [11:43:00]
goos: darwin
goarch: arm64
pkg: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter/integrationtest
BenchmarkExporter
BenchmarkExporter/logs/none/small_batch
BenchmarkExporter/logs/none/small_batch-10         	   19693	     62644 ns/op	    159633 events/s	   59476 B/op	     352 allocs/op
BenchmarkExporter/logs/none/medium_batch
BenchmarkExporter/logs/none/medium_batch-10        	    2174	    549870 ns/op	    181861 events/s	  586538 B/op	    3425 allocs/op
BenchmarkExporter/logs/none/large_batch
BenchmarkExporter/logs/none/large_batch-10         	     225	   5291466 ns/op	    188984 events/s	 5856818 B/op	   34148 allocs/op
BenchmarkExporter/logs/none/xlarge_batch
BenchmarkExporter/logs/none/xlarge_batch-10        	      22	  51000769 ns/op	    196075 events/s	58486725 B/op	  341268 allocs/op
BenchmarkExporter/logs/ecs/small_batch
BenchmarkExporter/logs/ecs/small_batch-10          	   31297	     38221 ns/op	    261637 events/s	   48742 B/op	     161 allocs/op
BenchmarkExporter/logs/ecs/medium_batch
BenchmarkExporter/logs/ecs/medium_batch-10         	    3559	    335623 ns/op	    297953 events/s	  479045 B/op	    1520 allocs/op
BenchmarkExporter/logs/ecs/large_batch
BenchmarkExporter/logs/ecs/large_batch-10          	     343	   3313594 ns/op	    301787 events/s	 4784951 B/op	   15102 allocs/op
BenchmarkExporter/logs/ecs/xlarge_batch
BenchmarkExporter/logs/ecs/xlarge_batch-10         	      34	  33257379 ns/op	    300685 events/s	47837431 B/op	  150861 allocs/op
BenchmarkExporter/logs/raw/small_batch
BenchmarkExporter/logs/raw/small_batch-10          	   22364	     54047 ns/op	    185025 events/s	   58119 B/op	     291 allocs/op
BenchmarkExporter/logs/raw/medium_batch
BenchmarkExporter/logs/raw/medium_batch-10         	    2452	    484758 ns/op	    206288 events/s	  572996 B/op	    2819 allocs/op
BenchmarkExporter/logs/raw/large_batch
BenchmarkExporter/logs/raw/large_batch-10          	     252	   4782239 ns/op	    209107 events/s	 5722459 B/op	   28098 allocs/op
BenchmarkExporter/logs/raw/xlarge_batch
BenchmarkExporter/logs/raw/xlarge_batch-10         	      25	  46517563 ns/op	    214973 events/s	57311327 B/op	  281046 allocs/op
BenchmarkExporter/traces/none/small_batch
BenchmarkExporter/traces/none/small_batch-10       	   18934	     64383 ns/op	    155321 events/s	   61103 B/op	     392 allocs/op
BenchmarkExporter/traces/none/medium_batch
BenchmarkExporter/traces/none/medium_batch-10      	    2078	    573554 ns/op	    174352 events/s	  602734 B/op	    3826 allocs/op
BenchmarkExporter/traces/none/large_batch
BenchmarkExporter/traces/none/large_batch-10       	     204	   5506740 ns/op	    181596 events/s	 6019500 B/op	   38163 allocs/op
BenchmarkExporter/traces/none/xlarge_batch
BenchmarkExporter/traces/none/xlarge_batch-10      	      21	  55099689 ns/op	    181489 events/s	60130968 B/op	  381435 allocs/op
BenchmarkExporter/traces/ecs/small_batch
BenchmarkExporter/traces/ecs/small_batch-10        	   18612	     64431 ns/op	    155204 events/s	   61111 B/op	     392 allocs/op
BenchmarkExporter/traces/ecs/medium_batch
BenchmarkExporter/traces/ecs/medium_batch-10       	    2086	    579508 ns/op	    172560 events/s	  602838 B/op	    3826 allocs/op
BenchmarkExporter/traces/ecs/large_batch
BenchmarkExporter/traces/ecs/large_batch-10        	     210	   5637313 ns/op	    177389 events/s	 6019330 B/op	   38168 allocs/op
BenchmarkExporter/traces/ecs/xlarge_batch
BenchmarkExporter/traces/ecs/xlarge_batch-10       	      20	  53797696 ns/op	    185882 events/s	60170108 B/op	  381418 allocs/op
BenchmarkExporter/traces/raw/small_batch
BenchmarkExporter/traces/raw/small_batch-10        	   19999	     64957 ns/op	    153949 events/s	   60193 B/op	     372 allocs/op
BenchmarkExporter/traces/raw/medium_batch
BenchmarkExporter/traces/raw/medium_batch-10       	    2197	    533394 ns/op	    187479 events/s	  592292 B/op	    3625 allocs/op
BenchmarkExporter/traces/raw/large_batch
BenchmarkExporter/traces/raw/large_batch-10        	     223	   5158606 ns/op	    193851 events/s	 5917039 B/op	   36155 allocs/op
BenchmarkExporter/traces/raw/xlarge_batch
BenchmarkExporter/traces/raw/xlarge_batch-10       	      22	  51159360 ns/op	    195468 events/s	59215624 B/op	  361363 allocs/op
PASS
ok  	github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter/integrationtest	93.126s
```
</details>

**Documentation:** <Describe the documentation added.> N/A

* [processor/geoip] Initial implementation (#33319)

**Description:** <Describe what has changed.>
This is the initial implementation of the GeoIP processor. Note that it
will still be a NOP (No Operation) from the user's perspective, as no
Geo data providers are implemented [nor can be configured
yet](https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33268).
However, this implementation aims to provide an overview of the
processor's logic.

The logic is the same for all signals (traces, metrics, and logs). For
each signal, the processor follows these steps:

1. Locate an IP address attribute within the resource attributes. If not
found, continue; if parsing the IP fails, return an error. By default,
the IP address must be included within the `source.address` attribute
key, see:
https://github.com/open-telemetry/semantic-conventions/blob/v1.26.0/docs/general/attributes.md#source
2. Retrieve the geo-location metadata associated with the IP address
using the available GeoProviders. At the moment, no additional check is
done on the attributes returned by the providers. In a future PR, the
processor will need to validate that all attributes follow the Geo
semantic conventions.
 3. Append the set of geo attributes to the resource attributes. 

The `processor/geoipprocessor/internal/provider/geoipprovider.go` file
contains an initial interface proposal for the Geo providers. A mock
implementation can be found in the geoip_processor_test.go file.

**Link to tracking Issue:**
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32663

**Testing:** Unit tests for the signals process

**Documentation:** Should we update the README with the available
configuration once it becomes operational?

---------

Co-authored-by: Tiffany Hrabusa <30397949+tiffany76@users.noreply.github.com>

* [exporter/Logzioexporter] bug fix export log attributes  (#33231)

**Description:** 
Fix bug where log attributes were not correctly exported

**Link to tracking Issue:** <Issue number if applicable>

https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/11409

**Testing:** <Describe what testing was performed and which tests were
added.>
Updated unit tests

**Documentation:** <Describe the documentation added.>
No documentation added

* [exporter/kafkaexporter] added an option to disable kerberos PA-FX-FAST negotiation (#33086)

**Description:** 
Added the `disable_fast_negotiation` configuration option for Kafka
Kerberos authentication. This option allows users to disable the
PA-FX-FAST negotiation, which can cause issues when Active Directory is
not configured to support it. This change ensures that Kafka Exporters
can function correctly in such environments.

**Link to tracking Issue:**
[26345](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/26345)

**Testing:** 
- Added unit tests to verify the behaviour of the
`disable_fast_negotiation` option in the `KerberosConfig` struct.
- Tests include scenarios where `disable_fast_negotiation` is set to
both `true` and `false`, ensuring that the configuration is correctly
applied.

**Documentation:** 
- Updated README files which describe the new configuration option
- Updated the changelog to reflect the addition of the
`disable_fast_negotiation` configuration option.

---------

Co-authored-by: Sean Marciniak <30928402+MovieStoreGuy@users.noreply.github.com>
Co-authored-by: Curtis Robert <crobert@splunk.com>

* [chore] make update-otel (#33396)

Addresses GHSA-c74f-6mfw-mm4v

---------

Signed-off-by: Pablo Baeyens <pablo.baeyens@datadoghq.com>

* [receiver/sqlserver] Add support for more database IO metrics (#32833)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
This adds more metrics (disabled by default) from the existing
`database_io` query. The values being scraped can be found
[here](https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-io-virtual-file-stats-transact-sql?view=sql-server-ver16).

**Link to tracking Issue:** <Issue number if applicable>
Continued work on #29865

**Testing:** <Describe what testing was performed and which tests were
added.>
Tests added. Also confirmed all expected metrics were properly scraped
manually.

* [chore] remove use of deprecated component.UnmarshalConfig (#33404)

**Description:**
Remove use of `component.UnmarshalConfig` 

this change only affects test code.

* [chore] Do not fail if JSON is not found in previous issue (#33395)

**Description:**

Avoid crashing when JSON section is not present in previous ISSUE

**Link to tracking Issue:**

#33388 

**Testing:**
```
act -j get_issues  -e <(echo '{"repository": {"owner": {"login": "your-github-username"}}}') -s GITHUB_TOKEN=<your-token>
```

* [exporter/elasticsearch] validate endpoints (#33350)

**Description:**

Check that Elasticsearch `endpoints` is a list of valid URLs during
config validation. This ensures that syntactically invalid endpoints
causes a fatal error during collector startup, rather than leading to a
persistent runtime error.

Previously, setting an endpoint without a scheme would lead to an error
at runtime when attempting a bulk request to Elasticsearch:

```
...
2024-06-04T10:30:23.244+0800    error
elasticsearchexporter/elasticsearch_bulk.go:313 bulk indexer flush error
{"kind": "exporter", "data_type": "traces", "name": "elasticsearch",
"error": "failed to execute the request: unsupported protocol scheme
\"\""}
...
```

Now the collector fails to start up:

```
$ make run
cd ./cmd/otelcontribcol && GO111MODULE=on go run --race . --config ../../local/config.yaml 
Error: invalid configuration: exporters::elasticsearch: invalid endpoint "localhost": invalid scheme "", expected "http" or "https"
2024/06/04 12:23:50 collector server run finished with error: invalid configuration: exporters::elasticsearch: invalid endpoint "localhost": invalid scheme "", expected "http" or "https"
exit status 1
make: *** [Makefile:255: run] Error 1
```

**Link to tracking Issue:**

N/A

**Testing:** <Describe what testing was performed and which tests were
added.>

**Documentation:**

N/A

* [chore] remove use of component.UnmarshalConfig (#33407)

Description:
Remove use of component.UnmarshalConfig

this change only affects test code.

Follow up to #33404

---------

Co-authored-by: Andrzej Stencel <andrzej.stencel@elastic.co>

* [chore] Clarify that cmd/otelcontribcol and top-level go.mod are not the sources of the contrib distro (#33409)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->

Documents the purpose of `cmd/otelcontribcol` and `cmd/oteltestbedcol`
in new READMEs and in comments on the builder manifests. Adds note to
top-level `go.mod`.

This is a common point of confusion and was recently confusing for users
on the aftermath of CVE-2024-36129

Counterpart to open-telemetry/opentelemetry-collector/pull/10351

---------

Co-authored-by: Armin Ruech <7052238+arminru@users.noreply.github.com>

* [chore] Add issues with waiting-for-code-owners label to the weekly report (#33330)

**Description:** 

Added the list of issues with the `waiting-for-code-owner` to the weekly
report

**Link to tracking Issue:** 

#32490

**Testing:**

Check the testing_actions.md file

**Documentation:**

I've added the docs/testing_actions.md file to describe how to test the
new functionality

---------

Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com>

* [CI] make update-otel (#32038)

**Description:** 
Seems like there were some bugs, which i wasn't very sure about.
It ran the `multimod` cmd with the wrong directory (at least in my
case).
On top of that i had to remove the `--commit-hash` flag, because per
definition it already gets the main branch, but you should have to
insert a commit-hash.
If not used at all it should just be the latest. Therefore
`OTEL_VERSION` and `OTEL_STABLE_VERSION` could be removed or could later
on be used to get the latest commit-hash (but has to be implemented).

The core-versions in `otelcontribcol/builder-config.yaml` and
`oteltestbedcol/builder-config.yaml` will be updated by using `sed`.
But these additional lines will only replace sth like:

`v0.97.1-0.20240327181407-1038b67c85a0`
and update it to:
`v0.98.0`

So if someone needs any kind of specific version-hash, he still would
have to change this manually.

This definitely is not a perfect solution for this issue (it just works
:sweat_smile: ) , so just tell me if there is something totally stupid
in this code.


**Link to tracking Issue:** 
- Resolves #21632 

**Testing:** <Describe what testing was performed and which tests were
added.>

**Documentation:** <Describe the documentation added.>

---------

Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>

* [chore][docs] Fix name of the Windows Event Log Receiver (#33295)

**Description:** <Describe what has changed.>
Changing "Windows Log Event Receiver" to "Windows Event Log Receiver" as
that is the official name. IBM docs is also linking out to this readme
so we need consistency.

https://www.ibm.com/docs/en/instana-observability/current?topic=opentelemetry-sending-data-instana-agent#enabling-tls-encryption-for-opentelemetry-ingestion

* [chore][processor/probabilisticsampler] Fix typo (#33418)

* [chore] Add sponsorship assignment requirement (#33299)

As discussed in the collector SIG today, I'm proposing language where
auto-assignment of a sponsor is only a given if the component is
proposed by a member of the project.

* [cmd/opampsupervisor,extension/opamp] Update opamp-go v0.15.0 (#33416)

**Description:**
* Updates opamp-go to v0.15.0

This change is breaking, in that an opamp server using v0.14.0 may be
incompatible with the changes introduced in v0.15.0 (this is due to
invalid UTF-8 sequences now being allowed in the agent's instance ID).

As part of this update, the preferred format for IDs in the opamp
extension's config has changed to UUID (any UUID is allowed, but
specifically v7 is preferred). I've allowed ULIDs to still be specified,
so older configurations should still work.

For the supervisor, I've changed the ULID generated to be a UUID. This
is a breaking change for the persistent state, but this component is in
developmen status, and breaking changes are expected.

**Testing:** 
Unit tests.
Tested connecting the supervisor to a management server using v0.15.0 of
OpAMP.

**Documentation:**
* Modified documentation to switch references to ULID to UUID

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>

* [cmd/opampsupervisor]: Add config validation (#32845)

**Description:**
* Refactor config to remove some pointers (using a "default config" +
override pattern lets us do this, which simplifies some code)
* Validate the config after loading it, and after getting a new config
from the opamp server

**Link to tracking Issue:** Closes #32843

**Testing:**
* Unit tests for config validation

* [chore] update core dep (#33417)

This brings in the rename of CreateSettings -> Settings and
NewNopCreateSettings -> NewNopSettings

---------

Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>

* [chore][pkg/stanza] skip rotation test on windows (#33429)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
Since other rotation related tests are skipped on Windows, I guess it
makes sense to skip this one too.
Related to
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/16331.

Spotted failure:
https://github.com/open-telemetry/opentelemetry-collector-contrib/actions/runs/9418728481/job/25946842048?pr=33428#step:6:848
(https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/33428)


**Link to tracking Issue:** <Issue number if applicable>

**Testing:** <Describe what testing was performed and which tests were
added.>

**Documentation:** <Describe the documentation added.>

Signed-off-by: ChrsMark <chrismarkou92@gmail.com>

* [cmd/opampsupervisor] remove executable check for collector binary (#33431)

**Description:** <Describe what has changed.>
* Remove the check for if an executable bit is set on the collector
binary. Instead, we'll allow the supervisor to attempt to run it and
fail then.

**Link to tracking Issue:** Closes #33430

**Testing:**
* Unit tests

* [confmap/provider/secretsmanagerprovider] Add support for JSON secrets (#32861)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
- Fixes `invalid memory address or nil pointer dereference` error when I
included this component in `opentelemetry-lambda/collector` lambda
layer.
- Fixes #32143 AWS Secrets Manager - JSON Secret Support

**Link to tracking Issue:** #32143 

**Testing:** Added unit tests. Manually tested in AWS Lambda Layer with
opentelemetry-lambda

**Documentation:** Update changelog and secretsmanagerprovider README.

---------

Co-authored-by: Antoine Toulme <antoine@toulme.name>
Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>

* [chore][exporter/elasticsearch] Re-enable exporter test on Windows (#33434)


**Link to tracking Issue:** #10178 #14759

Co-authored-by: Curtis Robert <crobert@splunk.com>

* [chore] make gotidy lint (#33448)

Before this PR, main was broken for a few groups:

- receiver-3
- exporter-1
- exporter-3
- connector

Signed-off-by: Juraci Paixão Kröhling <juraci@kroehling.de>

---------

Signed-off-by: Juraci Paixão Kröhling <juraci@kroehling.de>

* [pkg/winperfcounters] Add option to re-create PDH query on each scrape. (#32799)

**Description:** This pull request adds a new option for
`receiver/windowsperfcounters` to allow re-creating a given counter
query on each scrape. This is useful to avoid some weird performance
counter corruption bugs that can occur on some versions of Windows.

The pull request does this by exposing a new setting (documented in
receiver's README) `counterConfig.recreateQuery bool` and a new public
`watcher` API in `pkg/winperfcounters` called `Reset()`.

The PR also modifies the `receiver/activedirectoryds` tests to stub the
`Reset()` API.

**Link to tracking Issue:** #32798 

**Testing:**
- Unit tests for `watcher`
- Unit tests for `windowsperfcounters_scraper`
- Manual testing on our affected systems to validate that the scrape
output is now valid

**Documentation:**
- Receiver documentation for new settings
- User-facing changelog for the setting
- API-facing changelog for the `watcher` API

* [chore] Fix pinging and labelling on new issues (#33437)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
The current behavior of pinging code owners and adding labels to new
issues is tied together. The existing logic was to only add a label and
ping code owners if the person filing the issue was **not** a code
owner. However, this can lead to issues lacking labels, and some code
owners not being properly notified of issues.

Recent example:
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33433
(There have been many examples of this, but I choose this one as I used
it for my investigation.)

This issue was filed by a code owner. The result was that no labels were
added, and the other three code owners were not notified.

I think it makes sense to at least add the label to the issue, and I
don't see much harm in the extra noise for the person filing the issue
to get a notification.

This change is essentially the same as
https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/30136,
just for new issues.

Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>

* [pkg/ottl] add `keep_matching_keys function` (#33337)

**Description:** This PR adds a `keep_matching_keys` function.
**Link to tracking Issue:** Resolves #32989 

**Testing:** Added unit and end to end tests. Tested manually with the
following config:

```yaml
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317

processors:
  transform:
    error_mode: ignore
    trace_statements:
      - context: span
        statements:
          - keep_matching_keys(attributes, "http.*")

exporters:
  debug:
    verbosity: detailed
  otlphttp:
    endpoint: ${env:DT_ENDPOINT}
    headers:
      Authorization: "Api-Token ${env:API_TOKEN}"

service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [transform]
      exporters: [otlphttp, debug]
```

Used the `telemetrygen` CLI to send traces with attributes to verify the
function was applied correctly:

```
telemetrygen traces --otlp-insecure --traces 10 --status-code Ok --span-duration 1s --telemetry-attributes http.foo=\"value1\" --telemetry-attributes http.bar=\"value2\" --telemetry-attributes foo=\"bar\"
```

**Documentation:** The documentation has been added to the function
explanations in the readme

---------

Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>
Co-authored-by: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com>

* [pkg/ottl] Support for append (#33017)

**Description:** 
Added new ottl function `append(target, Optional[single_value],
Optional[slice_value])`

Append function appends one or more values to an existing array if the
field already exists and it is an array.
It should convert scalar values into an array if the field exists but is
not an array
Creates an array containing the provided values if the field doesn’t
exist

Implemented this with few assumptions up for a discussion
- implemented this as a function modifying target rather than converter
returning merged arrays
- working with strings so far, resulting in `[]string` after concat
- merging integers, boolean... not implemented, as I haven't found use
for these use-cases, could be accomplished with retyping them later
after append produces `[]string`

**Link to tracking Issue:** [<Issue number if
applicable>](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32141)

**Testing:** 
Added unit tests with intended behavior
Tested also with this config
```yaml
receivers:
  filelog:
    include: [ system.log ]
    start_at: beginning

exporters:
  debug:
    verbosity: detailed
    sampling_initial: 10000
    sampling_thereafter: 10000

processors:
  transform:
    error_mode: ignore
    log_statements:
      - context: log
        statements: 
          - append(attributes["empty_tags"], "my empty value") # non existing field should be created
          - set(attributes["tags"], "my funky value") # init with single value
          - append(attributes["tags"], "my file value") # append to scalar value
          - set(attributes["tags_copy"], attributes["tags"]) # make a copy 
          - append(attributes["tags_copy"], "my third value") # append to slice
          - append(attributes["tags_copy"], values = ["my third value", "my last value"]) # append to slice

service:
  pipelines:
    logs:
      receivers: [filelog]
      processors: [transform]
      exporters:
        - debug
```

Expecting this result
```
Attributes:
  -> log.file.name: Str(system.log)
  -> empty_tags: Slice(["my empty value"])
  -> tags: Slice(["my funky value","my file value"])
  -> tags_copy: Slice(["my funky value","my file value","my third value"])
```

**Documentation:** updated README

---------

Co-authored-by: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com>
Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>

* [processor/deltatocumulative]: drop samples of streams exceeding limit (#33286)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
when at limit, the `telemetry` component recorded
`dps_dropped{reason="at-limit"}` and set the error to nil.

this in turn let `Aggregate` call `CopyTo` on a zero-valued (effectively
nil) `pmetric.NumberDataPoint`, leading to a panic due to nil-pointer
deref.

For this specific case, the metric is not tracked, given we are at limit
so we cannot CopyTo anything, because it does not exist.

Added signaling behavior to specifically drop those samples altogether.



**Link to tracking Issue:** <Issue number if applicable>
Fixes
https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33285

**Testing:** added, `TestDrop`, `TestAggregate`

**Documentation:** not needed

* [chore] Fix windows tests (#33456)

Fixes tests in
https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/32799

* [pkg/stanza] add symlink related test for fileconsumer (#33428)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->

https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/32292
was closed due to inactivity. This PR resumes from there.

**Link to tracking Issue:** <Issue number if applicable>

**Testing:** <Describe what testing was performed and which tests were
added.>

**Documentation:** <Describe the documentation added.>


Co-authored-by: Shaunak Kashyap <ycombinator@gmail.com>

---------

Signed-off-by: ChrsMark <chrismarkou92@gmail.com>
Co-authored-by: Shaunak Kashyap <ycombinator@gmail.com>

* [extension/healthcheckv2] Add event aggregation logic (#32695)

**Description:** 
This PR is the second in a series to decompose
https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/30673
into more manageable pieces for review.

**Aggregator**

This PR introduces an aggregator data structure and event aggregation
logic for status events. The extension implements the `StatusWatcher`
optional interface, which the collector will call with a
`component.StatusEvent` for each change in component status. These
events will be aggregated by an aggregation function, and stored in the
aggregator.

The aggregator is a recursive data structure. At the top it contains the
overall status of the collector. At the next level, it contains the
statuses for each pipeline, and at the level below that, it contains the
statuses for each component in a pipeline. Each node in the data
structure is an aggregation the status events in the level below. The
overall collector status is the aggregation of the pipeline statuses,
and at the next level, the pipeline statuses are the aggregations of the
component statuses. The data structure allows you to query the status of
the collector overall, or for individual pipelines by name. There is
also a pub/sub mechanism used for streaming aggregated statuses.

**Aggregation Function**

The purpose of the aggregator is to aggregate events so that the most
relevant status event bubbles to the top. This allows us to get the
status of the collector overall or a pipeline through a simple lookup.
There is an aggregation function that determines the priority of events
and how they should be aggregated. In many cases, the result will be an
existing status event. In some cases a new event will be synthesized. In
order to match the behavior existing healthcheck extension, lifecycle
events (e.g. starting, stopping, etc) are prioritized over runtime
events. Next, error statuses are prioritized with PermanentErrors as
higher priority than RecoverableErrors, but this can vary based on user
provided configuration. If PermanentErrors are ignored by configuration,
but RecoverableErrors are included, then RecoverableErrors will take
priority over PermanentErrors.

The StatusWatcher interface receives immutable events of type
`component.StatusEvent`. Since we sometimes need to synthesize new
events during aggregation, an `Event` interface was introduced so that
the aggregator can use `component.StatusEvent` instances or instances of
events synthesized by the status package.

It's worth mentioning that there is [existing status event aggregation
logic](https://github.com/open-telemetry/opentelemetry-collector/blob/main/component/status.go#L101-L190)
in collector core, but it did not meet the needs of this extension. It
does not prioritize lifecycle events over error events, and it will
always prioritize permanent errors over recoverable. By prioritizing
lifecycle events over error events we can return a 503 when restarting a
collector rather than a 500 when a collector in a final state, such as
PermanentError. This is necessary to match the behavior of the existing
extension. Since users have the option to include or ignore recoverable
and permanent errors, we need the ability to prioritize them
accordingly. We can discuss what the fate of the aggregation code in
core should be.

**Examples**
Below are examples of overall collector and pipeline status that are
based on the aggregator data structure. The rendering of the examples
will come in a later PR. You can also look at the parent PR to see how
all of this fits together. Note that the pipeline status example is a
subtree of the overall collector status.

Overall collector status:

```json
{
    "start_time": "2024-01-18T17:27:12.570394-08:00",
    "healthy": true,
    "status": "StatusRecoverableError",
    "error": "rpc error: code = ResourceExhausted desc = resource exhausted",
    "status_time": "2024-01-18T17:27:32.572301-08:00",
    "components": {
        "extensions": {
            "healthy": true,
            "status": "StatusOK",
            "status_time": "2024-01-18T17:27:12.570428-08:00",
            "components": {
                "extension:healthcheckv2": {
                    "healthy": true,
                    "status": "StatusOK",
                    "status_time": "2024-01-18T17:27:12.570428-08:00"
                }
            }
        },
        "pipeline:metrics/grpc": {
            "healthy": true,
            "status": "StatusRecoverableError",
            "error": "rpc error: code = ResourceExhausted desc = resource exhausted",
            "status_time": "2024-01-18T17:27:32.572301-08:00",
            "components": {
                "exporter:otlp/staging": {
                    "healthy": true,
                    "status": "StatusRecoverableError",
                    "error": "rpc error: code = ResourceExhausted desc = resource exhausted",
                    "status_time": "2024-01-18T17:27:32.572301-08:00"
                },
                "processor:batch": {
                    "healthy": true,
                    "status": "StatusOK",
                    "status_time": "2024-01-18T17:27:12.571132-08:00"
                },
                "receiver:otlp": {
                    "healthy": true,
                    "status": "StatusOK",
                    "status_time": "2024-01-18T17:27:12.571576-08:00"
                }
            }
        },
        "pipeline:traces/http": {
            "healthy": true,
            "status": "StatusOK",
            "status_time": "2024-01-18T17:27:12.571625-08:00",
            "components": {
                "exporter:otlphttp/staging": {
                    "healthy": true,
                    "status": "StatusOK",
                    "status_time": "2024-01-18T17:27:12.571615-08:00"
                },
                "processor:batch": {
                    "healthy": true,
                    "status": "StatusOK",
                    "status_time": "2024-01-18T17:27:12.571621-08:00"
                },
                "receiver:otlp": {
                    "healthy": true,
                    "status": "StatusOK",
                    "status_time": "2024-01-18T17:27:12.571625-08:00"
                }
            }
        }
    }
}
```
Status for pipeline `traces/http`:

```json
{
    "start_time": "2024-01-18T17:27:12.570394-08:00",
    "healthy": true,
    "status": "StatusOK",
    "status_time": "2024-01-18T17:27:12.571625-08:00",
    "components": {
        "exporter:otlphttp/staging": {
            "healthy": true,
            "status": "StatusOK",
            "status_time": "2024-01-18T17:27:12.571615-08:00"
        },
        "processor:batch": {
            "healthy": true,
            "status": "StatusOK",
            "status_time": "2024-01-18T17:27:12.571621-08:00"
        },
        "receiver:otlp": {
            "healthy": true,
            "status": "StatusOK",
            "status_time": "2024-01-18T17:27:12.571625-08:00"
        }
    }
}
```




**Link to tracking Issue:** #26661

**Testing:** Units / manual

**Documentation:** Comments, etc

---------

Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>

* [chore] bump dep to address cve (#33460)

Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>

* [pkg/ottl] Add debug logging (#33274)

**Description:**
Adds debug logging to `StatementSequence.Execute` to allow printing the
state of the `TransformContext` after each statement.

Example logs:

```
2024-05-28T16:19:29.198-0600    debug   ottl@v0.101.0/parser.go:265     initial TransformContext        {"kind": "processor", "name": "transform", "pipeline": "logs", "tCtx": {"resource": {"attributes": {}, "dropped_attribute_count": 0}, "instrumentation_scope": {"attributes": {}, "dropped_attribute_count": 0, "name": "", "version": ""}, "log_record": {"attributes": {"log.file.name": "test.log"}, "body": "test", "dropped_attribute_count": 0, "flags": 0, "observed_time_unix_nano": "2024-05-28 22:19:29.098833 +0000 UTC", "severity_number": 0, "severity_text": "", "span_id": "", "time_unix_nano": "1970-01-01 00:00:00 +0000 UTC", "trace_id": ""}, "cache": {}}}
2024-05-28T16:19:29.199-0600    debug   ottl@v0.101.0/parser.go:268     after transformation    {"kind": "processor", "name": "transform", "pipeline": "logs", "statement": "set(attributes[\"test\"], \"pass\")", "tCtx": {"resource": {"attributes": {}, "dropped_attribute_count": 0}, "instrumentation_scope": {"attributes": {}, "dropped_attribute_count": 0, "name": "", "version": ""}, "log_record": {"attributes": {"log.file.name": "test.log", "test": "pass"}, "body": "test", "dropped_attribute_coun…
@michalpristas
Copy link
Contributor Author

closing the issue. basic functionality was covered by #33451 and #33319

cparkins pushed a commit to AmadeusITGroup/opentelemetry-collector-contrib that referenced this issue Jul 11, 2024
…try#33201)

**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->

Initial skeleton implementation of the GeoIP processor described in
issue
open-telemetry#32663.
Full implementation will follow in future PRs.

The PR adds a NOP implementation for the metrics, traces and logs
processor. The configuration is an initial proposal, in future changes a
default provider will be defined.

The processor/geoipprocessor/internal/conventions/attributes.go will
temporally (until available in SemConv) specify the attributes that the
processor will add.

**Link to tracking Issue:** <Issue number if applicable>

open-telemetry#32663

**Testing:** <Describe what testing was performed and which tests were
added.>

**Documentation:** <Describe the documentation added.>
cparkins pushed a commit to AmadeusITGroup/opentelemetry-collector-contrib that referenced this issue Jul 11, 2024
**Description:** <Describe what has changed.>
This is the initial implementation of the GeoIP processor. Note that it
will still be a NOP (No Operation) from the user's perspective, as no
Geo data providers are implemented [nor can be configured
yet](open-telemetry#33268).
However, this implementation aims to provide an overview of the
processor's logic.

The logic is the same for all signals (traces, metrics, and logs). For
each signal, the processor follows these steps:

1. Locate an IP address attribute within the resource attributes. If not
found, continue; if parsing the IP fails, return an error. By default,
the IP address must be included within the `source.address` attribute
key, see:
https://github.com/open-telemetry/semantic-conventions/blob/v1.26.0/docs/general/attributes.md#source
2. Retrieve the geo-location metadata associated with the IP address
using the available GeoProviders. At the moment, no additional check is
done on the attributes returned by the providers. In a future PR, the
processor will need to validate that all attributes follow the Geo
semantic conventions.
 3. Append the set of geo attributes to the resource attributes. 

The `processor/geoipprocessor/internal/provider/geoipprovider.go` file
contains an initial interface proposal for the Geo providers. A mock
implementation can be found in the geoip_processor_test.go file.

**Link to tracking Issue:**
open-telemetry#32663

**Testing:** Unit tests for the signals process

**Documentation:** Should we update the README with the available
configuration once it becomes operational?

---------

Co-authored-by: Tiffany Hrabusa <30397949+tiffany76@users.noreply.github.com>
cparkins pushed a commit to AmadeusITGroup/opentelemetry-collector-contrib that referenced this issue Jul 11, 2024
**Description:** <Describe what has changed.> This PR adds an initial
implementation for the MaxMind GeoIP provider for later usage in the
`geoipprocessor`. The processor is still a nop, as no provider can be
configured yet. Providers configuration will be added in
open-telemetry#33268.

- Internal package for temporal attributes conventions reference (should
be removed in favor of
open-telemetry/semantic-conventions#1116):
`processor/geoipprocessor/internal/convention/attributes.go`
- [geoip2-golang](https://github.com/oschwald/geoip2-golang) package
used as a client for data retrieval. See recommended MaxMind clients:
https://dev.maxmind.com/geoip/docs/databases#api-clients

**Link to tracking Issue:** <Issue number if applicable>
open-telemetry#32663

**Testing:** <Describe what testing was performed and which tests were
added.> Database files are generated before running the unit tests
[using MaxMind
writer.](https://github.com/maxmind/MaxMind-DB/tree/0a9c1aa26cd7b91bee2efe27e7d174797d8211a6/test-data#how-to-generate-test-data).
The generation time of those files seems not to be an issue (0.189s):

```
$ go test -v
=== RUN   TestInvalidNewProvider
--- PASS: TestInvalidNewProvider (0.00s)
=== RUN   TestProviderLocation
=== PAUSE TestProviderLocation
=== CONT  TestProviderLocation
=== RUN   TestProviderLocation/nil_IP_address
=== RUN   TestProviderLocation/unsupported_database_type
=== RUN   TestProviderLocation/no_IP_metadata_in_database
=== RUN   TestProviderLocation/all_attributes_should_be_present_for_IPv4_using_GeoLite2-City_database
=== RUN   TestProviderLocation/subset_attributes_for_IPv6_IP_using_GeoIP2-City_database
--- PASS: TestProviderLocation (0.00s)
    --- PASS: TestProviderLocation/nil_IP_address (0.00s)
    --- PASS: TestProviderLocation/unsupported_database_type (0.00s)
    --- PASS: TestProviderLocation/no_IP_metadata_in_database (0.00s)
    --- PASS: TestProviderLocation/all_attributes_should_be_present_for_IPv4_using_GeoLite2-City_database (0.00s)
    --- PASS: TestProviderLocation/subset_attributes_for_IPv6_IP_using_GeoIP2-City_database (0.00s)
PASS
ok  	github.com/open-telemetry/opentelemetry-collector-contrib/processor/geoipprocessor/internal/provider/maxmindprovider	0.189s
```

Testing database files are removed on sucessful test execution.

**Documentation:** <Describe the documentation added.> README.md file
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Accepted Component New component has been sponsored
Projects
None yet
Development

No branches or pull requests

7 participants