opentelemetry-collector icon indicating copy to clipboard operation
opentelemetry-collector copied to clipboard

Implement pipeline instrumentation

Open jade-guiton-dd opened this issue 8 months ago • 5 comments
trafficstars

The "Pipeline Component Telemetry" RFC defines generic metrics and logs to monitor the data passing through the interface between pipeline components, as well as a mechanism for capturing this telemetry. It now needs to be implemented, probably as a wrapper around the Consumer interface inserted at the pipeline graph level.

This new telemetry should include the component-identifying attributes defined in the same RFC. Instead of rederiving these attributes, it should make use of the implementation of #12217.

jade-guiton-dd avatar Mar 19 '25 13:03 jade-guiton-dd

cc @djaglowski

If I'm not mistaken there isn't already an issue tracking this right?

jade-guiton-dd avatar Mar 19 '25 13:03 jade-guiton-dd

I don't think this can be considered completed until the "outcome = refused" case has been implemented. (To be clear: I do think it makes sense to put that in a separate PR since the implementation may be a bit subtle.)

jade-guiton-dd avatar May 12 '25 10:05 jade-guiton-dd

Just saw this issue and wanted to ask if this work will make metrics like otelcol_exporter_send_failed_<signal> being deprecated. Thanks!

iblancasa avatar Jun 04 '25 17:06 iblancasa

@iblancasa I don't think there's any concrete plans to do that yet, although it's something to think about considering the overlap in functionality.

I think the receiverhelper and processorhelper metrics could definitely be deprecated once we have confidence the pipeline metrics are usable (enabled by default, most users have support for instrumentation scope attributes, etc.). The exporterhelper metrics will still have value, since the pipeline metrics considers "successfully enqueued" to be outcome = success, even if the export operation fails later; but maybe we could remodel those metrics to look more like the pipeline metrics for consistency, as if the queue was its own (sub)component?

jade-guiton-dd avatar Jun 05 '25 10:06 jade-guiton-dd

@iblancasa I don't think there's any concrete plans to do that yet, although it's something to think about considering the overlap in functionality.

I see. And totally makes sense. It should be something to consider at some point.

I think the receiverhelper and processorhelper metrics could definitely be deprecated once we have confidence the pipeline metrics are usable (enabled by default, most users have support for instrumentation scope attributes, etc.). The exporterhelper metrics will still have value, since the pipeline metrics considers "successfully enqueued" to be outcome = success, even if the export operation fails later; but maybe we could remodel those metrics to look more like the pipeline metrics for consistency, as if the queue was its own (sub)component?

Very likely will be features that could not be observed from the pipelines (I guess). But yes, it can be a great idea to implement them in this way.

iblancasa avatar Jun 05 '25 10:06 iblancasa