Commit Graph

66 Commits

Author SHA1 Message Date
renovate[bot] 5fb35ce6e9
fix(deps): update module google.golang.org/protobuf to v1.35.2 (#11700)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[google.golang.org/protobuf](https://redirect.github.com/protocolbuffers/protobuf-go)
| `v1.35.1` -> `v1.35.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fprotobuf/v1.35.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fprotobuf/v1.35.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fprotobuf/v1.35.1/v1.35.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fprotobuf/v1.35.1/v1.35.2?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>protocolbuffers/protobuf-go
(google.golang.org/protobuf)</summary>

###
[`v1.35.2`](https://redirect.github.com/protocolbuffers/protobuf-go/releases/tag/v1.35.2)

[Compare
Source](https://redirect.github.com/protocolbuffers/protobuf-go/compare/v1.35.1...v1.35.2)

**Full Changelog**:
https://github.com/protocolbuffers/protobuf-go/compare/v1.35.1...v1.35.2

Maintenance:

[CL/623115](https://go-review.googlesource.com/c/protobuf/+/623115):
proto: refactor equal_test from explicit table to use makeMessages()
[CL/623116](https://go-review.googlesource.com/c/protobuf/+/623116):
encoding/prototext: use testmessages_test.go approach, too
[CL/623117](https://go-review.googlesource.com/c/protobuf/+/623117):
internal/testprotos/test: add nested message field with \[lazy=true]
[CL/624415](https://go-review.googlesource.com/c/protobuf/+/624415):
proto: switch messageset_test to use makeMessages() injection point
[CL/624416](https://go-review.googlesource.com/c/protobuf/+/624416):
internal/impl: fix TestMarshalMessageSetLazyRace (was a no-op!)

User-visible changes:

[CL/618395](https://go-review.googlesource.com/c/protobuf/+/618395):
encoding/protojson: allow missing value for Any of type Empty
[CL/618979](https://go-review.googlesource.com/c/protobuf/+/618979):
all: implement strip_enum_prefix editions feature
[CL/622575](https://go-review.googlesource.com/c/protobuf/+/622575):
testing/protocmp: document behavior when combining Ignore and Sort

</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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector).

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

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
2024-11-19 08:03:06 -08:00
OpenTelemetry Bot 43fbb04cea
[chore] Prepare release v1.20.0/v0.114.0 (#11692)
The following commands were run to prepare this release:
- make chlog-update VERSION=v1.20.0/v0.114.0
- make prepare-release PREVIOUS_VERSION=1[.]19[.]0
RELEASE_CANDIDATE=1.20.0 MODSET=stable
- make prepare-release PREVIOUS_VERSION=0[.]113[.]0
RELEASE_CANDIDATE=0.114.0 MODSET=beta

---------

Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
2024-11-18 11:42:17 -08:00
OpenTelemetry Bot 3da496be53
[chore] Prepare release v1.19.0/v0.113.0 (#11609)
The following commands were run to prepare this release:
- make chlog-update VERSION=v1.19.0/v0.113.0
- make prepare-release PREVIOUS_VERSION=1[.]18[.]0
RELEASE_CANDIDATE=1.19.0 MODSET=stable
- make prepare-release PREVIOUS_VERSION=0[.]112[.]0
RELEASE_CANDIDATE=0.113.0 MODSET=beta
2024-11-05 11:52:29 -08:00
VihasMakwana b6d0497e42
[internal/fanoutconsumer] extract fanoutconsumer into another package (#11543)
Resolves #11441
2024-10-27 10:48:31 -07:00
Nathan Baulch 42e6304f65
Fix typos (#11348)
Just thought I'd contribute some typo fixes I stumbled upon. Nothing
controversial (hopefully), just 72 simple fixes.

Use the following command to get a quick and dirty summary of the
specific corrections made:
```shell
git diff HEAD^! --word-diff-regex='\w+' -U0 \
  | grep -E '\[\-.*\-\]\{\+.*\+\}' \
  | sed -r 's/.*\[\-(.*)\-\]\{\+(.*)\+\}.*/\1 \2/' \
  | sort | uniq -c | sort -n
```

FWIW, the top typos are:
* invokable (16)
* subsciption (15)
* decison (7)
* reques (3)
* dissallow (3)
* documenation (3)
* locahost (3)
* prerequistes (2)
* assinged (2)
* extenions (2)

---------

Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
2024-10-09 15:43:52 -07:00
Matthieu MOREL 37f783308e
[chore]: enable require-error rule from testifylint (#11199)
#### Description

Testifylint is a linter that provides best practices with the use of
testify.

This PR enables
[require-error](https://github.com/Antonboom/testifylint?tab=readme-ov-file#require-error)
rule from [testifylint](https://github.com/Antonboom/testifylint)

Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-09-18 15:02:22 -07:00
Matthieu MOREL 9a6e105c87
[chore]: enable compares and negative-positive rules from testifylint (#11128)
#### Description

Testifylint is a linter that provides best practices with the use of
testify.

This PR enables
[compares](https://github.com/Antonboom/testifylint?tab=readme-ov-file#compares)
and
[negative-positive](https://github.com/Antonboom/testifylint?tab=readme-ov-file#negative-positive)
rules from [testifylint](https://github.com/Antonboom/testifylint)

Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-09-11 07:15:24 -07:00
Damien Mathieu 498c6bebde
[chore] Add profiles to fanoutconsumer (#10946)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

This adds profiles support in fanoutconsumer. That is required to be
able to handle profiles in the service graph.
As this is only changing internal modules, I am marking it as chore (and
skipping changelog entry).

<!-- Issue number if applicable -->
#### Link to tracking issue
https://github.com/open-telemetry/opentelemetry-collector/pull/10375

cc @mx-psi
2024-08-29 16:10:01 +02:00
Alex Boten fc28929061
move internal/testdata to pdata/testdata (#9885)
This reduces dependencies from the consumer package while making
testdata available across repos. It will allow us to remove duplicated
code and its a fairly small surface area.

Fixes
https://github.com/open-telemetry/opentelemetry-collector/issues/9886

---------

Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
2024-04-08 08:36:57 -07:00
Curtis Robert 8ee1f13743
[chore] Enable goleak for all (passing) tests (#9173)
**Description:**
It was suggested that we add the [goleak
package](https://pkg.go.dev/go.uber.org/goleak) to every test in core.
This change adds `goleak` to every package that is succeeds with goleak.
There a number that are not successful, the full list of which I've
posted in the bug.

I generated these files using a shell script to copy a template
`main_test.go` file into each package, then modified the package name.
I'm sure there was a better way to automate this, but it worked well
enough at this point. Here's the script:
 ```
cp ./main_test.go $1

PACKAGE_NAME=$(basename $1)

sed -i '' -e "s|package component|package $PACKAGE_NAME|g"
$1/main_test.go

pushd . && cd $1 && go mod tidy 
go test -v .
```
Usage example:
```
$ ./add_leak_test reciever/scrapererror
```


**Link to tracking Issue:**
#9165

**Testing:**
All added tests are passing, but there are a number failing. Note that there's no sign of `goleak` running until it fails.
2024-01-03 08:35:58 -08:00
Bogdan Drutu edf7aca852
Remove circular dependency between default otel and connector (#9095)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2023-12-13 23:50:35 -08:00
Daniel Jaglowski 7ec38e5c19
Fanout consumer does not need to mutate in some cases (#9062)
Follow up to
https://github.com/open-telemetry/opentelemetry-collector/pull/9053.

@dmitryax pointed out
[here](https://github.com/open-telemetry/opentelemetry-collector/pull/9053#discussion_r1420871665)
that the fanout consumer will pass original data to a non-mutating
consumer if any is available. This PR incorporates that point and
updates test expectations accordingly.
2023-12-11 10:04:37 -08:00
Daniel Jaglowski 7c58e71515
Fix bug where MutatesData would not correctly propogate through connectors (#9053)
This fixes two closely related problems. 
1. While fanoutconsumers do not themselves mutate data, they should
expose whether or not they are handing data off to consumers which may
do so. Otherwise, the service cannot correctly determine how to fan out
after a receiver. e.g. a receiver shared between two pipelines, one of
which contains an exporter or connector which mutates data.
2. Connectors can themselves mutate data but we were not taking this
into account when building the graph.
2023-12-09 09:44:55 -08:00
Dmitrii Anoshin ec07258743
[fanoutconsumer] [chore] Do not wrap one read-only consumer (#8689)
A follow-up optimization after merging
https://github.com/open-telemetry/opentelemetry-collector/pull/8634.

There is no need to create a fanout consumer for only one read-only
consumer. This introduces a behavior that closely resembles its previous
state, before the introduction of the readonly/mutable states.
2023-10-17 09:08:04 -07:00
Dmitrii Anoshin 8a385c22e5
[pdata] Enable the pdata mutation safeguards in the fanout consumers (#8634)
This change enables the runtime assertions to catch unintentional pdata
mutations in components claiming as non-mutating pdata. Without these
assertions, runtime errors may still occur, but thrown by unrelated
components, making it very difficult to troubleshoot.

This required introducing extra API to get the pdata mutability state:
- p[metric|trace|log].[Metrics|Traces|Logs].IsReadOnly()

Resolves:
https://github.com/open-telemetry/opentelemetry-collector/issues/6794
2023-10-16 11:12:50 -07:00
Matthew Wear fd72651e14
Add helpers to construct `connector.*Router`s for tests (#7673)
This PR adds helpers to `connectortest` to aid the construction of
`connector.*Router`s for testing connectors. This was implemented based
on @djaglowski's [comment
here](https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/21498#issuecomment-1542682841),
with some slight modifications. I found it more ergonomic to pass the
sink into the `WithTracesSink` (and similar) options. You usually want a
handle on the sink after creating the router. While it's possible to get
the sink out of the router after the fact, it's a little cumbersome.

These helpers will be useful for
https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/21498
and future connectors that need use of routers.

For example, here is a test with the consumer passed in:

```go
func TestFanoutTracesWithSink(t *testing.T) {
    var sink0, sink1 consumertest.TracesSink

    tr, err := NewTracesRouterSink(
        WithTracesSink(component.NewIDWithName(component.DataTypeTraces, "0"), &sink0),
        WithTracesSink(component.NewIDWithName(component.DataTypeTraces, "1"), &sink1),
    )

    require.NoError(t, err)
    require.Equal(t, 0, sink0.SpanCount())
    require.Equal(t, 0, sink1.SpanCount())

    td := testdata.GenerateTraces(1)
    err = tr.(consumer.Traces).ConsumeTraces(context.Background(), td)

    require.NoError(t, err)
    require.Equal(t, 1, sink0.SpanCount())
    require.Equal(t, 1, sink1.SpanCount())
}

```

The same test having to extract the consumer out after the fact:

```go
func TestFanoutTracesWithSink(t *testing.T) {
    traces0 := component.NewIDWithName(component.DataTypeTraces, "0")
    traces1 := component.NewIDWithName(component.DataTypeTraces, "1")

    tr, err := NewTracesRouterSink(
        WithTracesSink(traces0),
        WithTracesSink(traces1),
    )
   
    require.NoError(t, err)
   
    cons0, _ := tr.Consumer(traces0)
    sink0 := cons0.(*consumertest.TracesSink)
    cons1, _ := tr.Consumer(traces1)
    sink1 := cons1.(*consumertest.TracesSink)

    require.Equal(t, 0, sink0.SpanCount())
    require.Equal(t, 0, sink1.SpanCount())

    td := testdata.GenerateTraces(1)
    err = tr.(consumer.Traces).ConsumeTraces(context.Background(), td)

    require.NoError(t, err)
    require.Equal(t, 1, sink0.SpanCount())
    require.Equal(t, 1, sink1.SpanCount())}
}
```


**Link to tracking Issue:** 
#7672

**Testing:**
Unit tests

**Documentation:**
Source code comments

---------

Co-authored-by: Daniel Jaglowski <jaglows3@gmail.com>
2023-06-22 14:35:40 -07:00