Commit Graph

11 Commits

Author SHA1 Message Date
Daniel Jaglowski 178caa125e
[service/internal/graph] Add size throughput metrics (#13032)
Follows #12812

This PR adds the `size` metrics defined in the [Pipeline Component
Telemetry
RFC](https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/rfcs/component-universal-telemetry.md).
2025-05-20 11:45:33 +00:00
Daniel Jaglowski 279752c11f
[service/internal/graph] Measure telemetry as it is passed between pipeline components (#12812)
Depends on
https://github.com/open-telemetry/opentelemetry-collector/pull/12856

Resolves #12676

This is a reboot of #11311, incorporating metrics defined in the
[component telemetry
RFC](https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/rfcs/component-universal-telemetry.md)
and attributes added in #12617.

The basic pattern is:
- When building any pipeline component which produces data, wrap the
"next consumer" with instrumentation to measure the number of items
being passed. This wrapped consumer is then passed into the constructor
of the component.
- When building any pipeline component which consumes data, wrap the
component itself. This wrapped consumer is saved onto the graph node so
that it can be retrieved during graph assembly.

---------

Co-authored-by: Pablo Baeyens <pablo.baeyens@datadoghq.com>
2025-05-12 08:33:02 +00:00
Daniel Jaglowski dc8e2ddd9c
Permanently enable 'telemetry.newPipelineTelemetry' feature gate (#12856)
Discussed offline in relation to #12812

Introduction of this gate had some unintended side effects, such as
removing attributes from loggers.

---------

Co-authored-by: Jade Guiton <jade.guiton@datadoghq.com>
2025-04-17 15:57:35 +00:00
Matthieu MOREL cb5c3f4fb9
[chore]: fix staticcheck exclusions (#12792)
#### Description

Fixes staticcheck rules which where disabled with golangci-lint v2
upgrade

Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-04-02 20:07:55 +00:00
Jade Guiton 54c13a9217
Inject component-identifying scope attributes (#12617)
#### Description

Fork of #12384 to showcase how component attributes can be injected into
scope attributes instead of log/metric/span attributes. See that PR for
more context.

To see the diff from the previous PR, filter changes starting from the
"Prototype using scope attributes" commit.

#### Link to tracking issue
Resolves #12217 
Also incidentally resolves #12213 and resolves #12117

#### Testing
I updated the existing tests to check for scope attributes, and did some
manual testing with a debug exporter to check that the scope attributes
are added/removed properly.

---------

Co-authored-by: Pablo Baeyens <pbaeyens31+github@gmail.com>
2025-03-28 12:15:25 +00:00
Pablo Baeyens f87b93a8f9
[chore] Move LoggerWithout temporarily to internal package (#12334)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

Moves `LoggerWithout` to an internal package so that we can keep on
experimenting on it while mark component 1.0 on v0.121.0.

This does not need a changelog since the change has not been released

<!-- Issue number if applicable -->
#### Link to tracking issue
Updates #12217
2025-02-12 10:35:58 +00:00
Daniel Jaglowski 5d5fb21acf
Introduce component logger with appropriate attributes (#12259)
Implements the logger described in
https://github.com/open-telemetry/opentelemetry-collector/issues/12217

Alternative to #12057

Resolves #11814

`component/componentattribute`:
- Initializes new module
- Defines constants for component telemetry attribute keys
- Defines a `zapcore.Core` which can remove attributes from the root
logger

`service`:
- Rebases component instantiation on attribute sets
- Internal constructors for attribute sets for each component type
- Constructs loggers from `componentattribute`

`otlpreceiver`:
- Uses `componentattribute` to remove `otelcol.signal` attribute from
logger

`memorylimiter`:
- Uses `componentattribute` to remove `otelcol.signal`,
`otelcol.pipeline.id` and `otelcol.component.id` attributes from logger
2025-02-06 16:53:20 +00:00
Dmitrii Anoshin 9206c68ec2
Deprecate pipelineprofiles module in favor of xpipeline (#11888)
to allow adding more experimental data types.

Updates
https://github.com/open-telemetry/opentelemetry-collector/issues/11778
2024-12-13 23:23:06 +00:00
Dmitrii Anoshin 63d83d5e79
Deprecate consumerprofiles module in favor of xconsumer (#11779)
To allow adding more experimental data types. First step towards
https://github.com/open-telemetry/opentelemetry-collector/issues/11778
2024-12-12 22:09:02 +00:00
Bogdan Drutu 98a326a3c5
Move componentprofiles to pipelineprofiles (#11421)
Move componentprofiles to pipelineprofiles since only the signal
constant is defined in that package.

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2024-10-13 13:47:00 -07:00
Daniel Jaglowski 129508320c
[chore][graph] Separate node types (#11321)
Having spent some time on #11311, I think it may be time to start
refactoring this codebase into a more maintainable state. This PR just
moves the various types of nodes into separate files, which I think is a
bit more readable when considering changes.
2024-10-01 08:34:39 -07:00