Commit Graph

25 Commits

Author SHA1 Message Date
Roger Coll 0f0e1f64de
docs: none values should not take any value (#13141)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

Creating an empty Optional[T] type should not require the value.

See:
https://github.com/open-telemetry/opentelemetry-collector/blob/main/config/configoptional/optional.go#L109
2025-06-04 09:20:39 +00:00
Pablo Baeyens 29aaad3dfe
[chore] Generate codecov badge for all READMEs (#12962)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

<!-- Issue number if applicable -->

Adds a CodeCov status badge unless explicitly disabled.

I have disabled this in core until we roll this out in contrib to show
the Go SIG and move codecovgen to build tools

#### Link to tracking issue

Updates open-telemetry/opentelemetry-collector-contrib/issues/39583
2025-05-05 15:26:50 +00:00
Daniel Jaglowski ca612c0b64
[chore] Update attribute name in rfc (#12951)
Resolves
https://github.com/open-telemetry/opentelemetry-collector/issues/12916
2025-05-01 18:30:57 +00:00
Evan Bradley 901c395904
[chore] Create RFC for Optional config types (#12596)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

This RFC will help us explore the use cases Optional types solve and
move us toward a resolution for whether to adopt these in our config.

Related to #10266

---------

Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com>
Co-authored-by: Pablo Baeyens <pablo.baeyens@datadoghq.com>
2025-04-21 11:09:41 +00:00
Joshua MacDonald 97eb30721c
[chore] Two spelling lints. (#12892)
#### Description

The cSpell action has been flaky for two reasons, fixed here.
2025-04-18 22:10:40 +00:00
Bogdan Drutu 5ab47cb143
[chore] Fix playground example for env provider (#12848)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2025-04-16 03:08:47 +00:00
Daniel Jaglowski 2cab46e990
[chore] Propose additional attribute for 'otelcol.connector.produced.*' metrics (#12815)
Without this attribute, it's not possible to accurately understand how
data flows out of connectors.
2025-04-14 08:59:45 +00:00
Daniel Jaglowski 139d2ce30f
Add clarification about attribute types to Telemetry RFC (#12407)
As suggested in
https://github.com/open-telemetry/opentelemetry-collector/issues/12217#issuecomment-2648752916

Co-authored-by: Pablo Baeyens <pablo.baeyens@datadoghq.com>
2025-02-18 12:45:29 +00:00
Antoine Toulme f71fe2757f
[chore] fix metadata.yaml (#12387)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
fix metadata.yaml github_project, add a go:generate instruction to
confmap and a banner to README
2025-02-14 11:00:42 +00:00
Moritz Wiesinger 43087bdd92
[chore] add githubgen to enhance codeowners and issue templates (#11756)
### This PR
- adds the githubgen tool as a dependency in internal/tools
- uses githubgen to generate codeowners and issue template files
- updates lots of metadata files by
- taking the existing codeowners file and feeding the info from there
back into the component metadata.yaml files or creating new
metadata.yaml files where none existed yet
- adds distributions.yaml as a basis the mostly already existing
`distributions:` keys in metadata.yaml files (needed for githubgen to
work correctly)
- adds relevant make commands to make the githubgen tool usage mostly
transparent to users

This change is a prerequisite to be able to ping codeowners reliably
with automated tooling as a next step.


Part of #11562

---------

Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com>
2025-02-06 10:31:36 +00:00
Jade Guiton 1c4726a382
Amend Pipeline Component Telemetry RFC to add a "rejected" outcome (#11956)
### Context

The [Pipeline Component Telemetry
RFC](https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/rfcs/component-universal-telemetry.md)
was recently accepted (#11406). The document states the following
regarding error monitoring:
> For both [consumed and produced] metrics, an `outcome` attribute with
possible values `success` and `failure` should be automatically
recorded, corresponding to whether or not the corresponding function
call returned an error. Specifically, consumed measurements will be
recorded with `outcome` as `failure` when a call from the previous
component the `ConsumeX` function returns an error, and `success`
otherwise. Likewise, produced measurements will be recorded with
`outcome` as `failure` when a call to the next consumer's `ConsumeX`
function returns an error, and `success` otherwise.


[Observability requirements for stable pipeline
components](https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/component-stability.md#observability-requirements)
were also recently merged (#11772). The document states the following
regarding error monitoring:
> The goal is to be able to easily pinpoint the source of data loss in
the Collector pipeline, so this should either:
> - only include errors internal to the component, or;
> - allow distinguishing said errors from ones originating in an
external service, or propagated from downstream Collector components.

Because errors are typically propagated across `ConsumeX` calls in a
pipeline (except for components with an internal queue like
`processor/batch`), the error observability mechanism proposed by the
RFC implies that Pipeline Telemetry will record failures for every
component interface upstream of the component that actually emitted the
error, which does not match the goals set out in the observability
requirements, and makes it much harder to tell which component errors
are coming from from the emitted telemetry.

### Description

This PR amends the Pipeline Component Telemetry RFC with the following:
- restrict the `outcome=failure` value to cases where the error comes
from the very next component (the component on which `ConsumeX` was
called);
- add a third possible value for the `outcome` attribute: `rejected`,
for cases where an error observed at an interface comes from further
downstream (the component did not "fail", but its output was
"rejected");
- propose a mechanism to determine which of the two values should be
used.

The current proposal for the mechanism is for the pipeline
instrumentation layer to wrap errors in an unexported `downstream`
struct, which upstream layers could check for with `errors.As` to check
whether the error has already been "attributed" to a component. This is
the same mechanism currently used for tracking permanent vs. retryable
errors. Please check the diff for details.

### Possible alternatives

There are a few alternatives to this amendment, which were discussed as
part of the observability requirements PR:
- loosen the observability requirements for stable components to not
require distinguishing internal errors from downstream ones → makes it
harder to identify the source of an error;
- modify the way we use the `Consumer` API to no longer propagate errors
upstream → prevents proper propagation of backpressure through the
pipeline (although this is likely already a problem with the `batch`
prcessor);
- let component authors make their own custom telemetry to solve the
problem → higher barrier to entry, especially for people wanting to
opensource existing components.

---------

Co-authored-by: Pablo Baeyens <pablo.baeyens@datadoghq.com>
2025-01-28 12:41:10 +00:00
Curtis Robert df99547796
[chore][docs] Fix typos in Pipeline Component Telemetry RFC (#12181)
<!--Describe the documentation added.-->
#### Documentation
This is a documentation-only change to fix some typos in the Pipeline
Component Telemetry RFC doc.
2025-01-24 19:22:21 +00:00
Pablo Baeyens c400731605
[chore] RFC: Collector releases approvers group (#11577)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

<!-- Issue number if applicable -->

Proposal for creating a new `collector-release-approvers` group.

Announced at:
- #otel-collector-dev on 2024-10-30:
https://cloud-native.slack.com/archives/C07CCCMRXBK/p1730307025302339
- Collector SIG on 2024-11-05 (TBD)

The stakeholders for this PR are:
- @open-telemetry/collector-approvers
- @open-telemetry/collector-contrib-approvers

---------

Co-authored-by: Andrzej Stencel <andrzej.stencel@elastic.co>
2025-01-23 11:24:55 +00:00
Alex Boten 70fc33e408
[chore] update link checker to use lychee (#12041)
This was done in the [specification
repo](6c626defb7),
and allows us to use a github action instead of install npm packages as
part of the build process (which kept bringing security warnings back)

Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
2025-01-08 07:13:54 +00:00
Pablo Baeyens bc7af62057
[chore][docs/rfc] Add text regarding conversations (#11738)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

Based on the experience of this process going through once, I am
suggesting we make the following changes:

1. Require announcing the final comment period via a comment and on the
#otel-collector-dev channel.
2. Require that all conversations are resolved. Allow RFC author to
resolve any conversation, but require them to leave a comment explaining
why

<!-- Issue number if applicable -->
#### Link to tracking issue
Fixes #11737

Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
2024-12-04 12:07:43 +01:00
Daniel Jaglowski 79357e8c60
RFC - Pipeline Component Telemetry (#11406)
This PR adds a RFC for normalized telemetry across all pipeline
components. See
https://github.com/open-telemetry/opentelemetry-collector/issues/11343

edit by @mx-psi:
- Announced on #otel-collector-dev on 2024-10-23:
https://cloud-native.slack.com/archives/C07CCCMRXBK/p1729705290741179
- Announced on the Collector SIG meeting from 2024-10-30

---------

Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: William Dumont <william.dumont@grafana.com>
Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>
2024-11-27 13:58:45 +01:00
Pablo Baeyens 9cb0761ffe
[docs/rfc] Define RFC merge process (#11416)
#### Description

Define RFC merge process in the `docs/rfc/README.md`. This is meant to
be a tool for making decisions about hard stuff :)

---------

Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>
2024-10-17 15:06:15 -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
Tyler Helmuth dadc331464
[component] Component status reporting rfc (#10413)
#### Description
Adds an RFC for component status reporting. The main goal is to define
what component status reporting is, our current, implementation, and how
such a system interacts with a 1.0 component. When merged, the following
issues will be unblocked:
- https://github.com/open-telemetry/opentelemetry-collector/issues/9823
- https://github.com/open-telemetry/opentelemetry-collector/issues/10058
- https://github.com/open-telemetry/opentelemetry-collector/issues/9957
- https://github.com/open-telemetry/opentelemetry-collector/issues/9324
- https://github.com/open-telemetry/opentelemetry-collector/issues/6506

---------

Co-authored-by: Matthew Wear <matthew.wear@gmail.com>
Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com>
2024-08-22 15:14:49 -07:00
Evan Bradley 94199c8952
[chore][docs/rfc] Add RFC on confmap Provider configuration goals (#10776)
#### Description

This is a stripped-down version of
https://github.com/open-telemetry/opentelemetry-collector/pull/10121
that eschews implementation details in favor of answering questions
about _what_ we want to achieve instead of how we will achieve it. A
section from that PR has been reproduced here to cover a few approaches
for future discussions.
2024-08-07 10:43:12 -07:00
Pablo Baeyens 0001db2759
[confmap] Store original string in confmap.Conf (#10618)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

<!-- Issue number if applicable -->

- Adds new `expandedValue` struct that holds the original string
representation if available for values resolved from a provider.
- Removes any mention of `expandedValue` in the public API by adding a
`sanitize` step before returning any `Get`s or `ToStringMap`s.
- Adds new decoding hook that checks if the target field is of `string`
type and uses the string representation in that case.



#### Link to tracking issue

Fixes #10605, Fixes #10405, Fixes #10659

<!--Describe what testing was performed and which tests were added.-->
#### Testing

<!--Describe the documentation added.-->

This changes the behavior in some cases, I update the test cases.

#### Documentation

<!--Please delete paragraphs that you did not use before submitting.-->

| ENV value | ${ENV} before unification | ${ENV} in v0.105.0 (also
${env:ENV} before unification) | Value after this PR |

|----------------------------|----------------------------|---------------------------------------------------------|----------------------------|
| foo\nbar | foo\nbar | foo bar | foo\nbar |
| 1111:1111:1111:1111:1111:: | 1111:1111:1111:1111:1111:: | **Error** |
1111:1111:1111:1111:1111:: |
| "0123" | "0123" | 0123 | "0123" |
2024-07-25 10:06:08 +02:00
Damien Mathieu c60fb1dad2
RFC: Experimental profiling (#10375)
#### Description

This is an RFC discussing the proposed solution for adding the profiling
signal.
Follows
https://github.com/open-telemetry/opentelemetry-collector/issues/10207

PoC:
https://github.com/open-telemetry/opentelemetry-collector/pull/10307

cc @open-telemetry/profiling-triagers
@open-telemetry/profiling-approvers
@open-telemetry/profiling-maintainers
cc @open-telemetry/collector-approvers

---------

Co-authored-by: Christos Kalkanis <christos.kalkanis@elastic.co>
Co-authored-by: Pablo Baeyens <pablo.baeyens@datadoghq.com>
2024-06-28 10:25:54 +02:00
Tyler Helmuth 227101d6d4
[otelcol] rfc for how to log during startup (#10066)
#### Description

This is an RFC to help us decide how we want `otelcol` to provide a
logger before the primary logger is created. As we discuss I will update
the doc. Before this is merged we should have decided on a solution and
the Accepted Solution section must be updated.

Related to
https://github.com/open-telemetry/opentelemetry-collector/pull/10056

#### Link to tracking issue
This unblocks:
- https://github.com/open-telemetry/opentelemetry-collector/issues/9162
- https://github.com/open-telemetry/opentelemetry-collector/issues/5615

---------

Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com>
Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>
2024-05-06 08:48:14 -07:00
Pablo Baeyens fe582df553
[docs/rfc] RFC about environment variables (#9854)
**Description:** Adds an RFC about how environment variable resolution
should work
**Link to tracking Issue:** Fixes #9515, relates to:
- #8215
- #8565
- #9162
- #9531 
- #9532

---------

Co-authored-by: Alex Boten <223565+codeboten@users.noreply.github.com>
Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com>
2024-04-30 14:27:17 -07:00
Pablo Baeyens 2e9ce26ed6
[chore][docs] Move RFC to a new RFCs folder (#9828)
**Description:** Some housekeeping to organize the `docs` folder. I
intend to file a new RFC-ish soon.

**Link to tracking Issue:** Fixes #8893
2024-03-27 10:20:59 +01:00