You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, we build the processing chain by hard coding, which makes changes inconvenient. Every time we add a new component to the chain, we have to modify the source codes and make the building procedure more verbose and difficult to read. What looks like this:
// buildPipeline builds a event processing pipeline based on hard-code.func (a*Application) buildPipeline() error {
// TODO: Build pipeline via configuration to implement dependency injection// Initialize exportersotelExporterFactory:=a.componentsFactory.Exporters[otelexporter.Otel]
otelExporter:=otelExporterFactory.NewFunc(otelExporterFactory.Config, a.telemetry.Telemetry)
// Initialize all processors// 1. Kindling Metric Format ProcessorformatProcessorFactory:=a.componentsFactory.Processors[kindlingformatprocessor.ProcessorName]
formatProcessor:=formatProcessorFactory.NewFunc(formatProcessorFactory.Config, a.telemetry.Telemetry, otelExporter)
// 2. Kubernetes metadata processork8sProcessorFactory:=a.componentsFactory.Processors[k8sprocessor.K8sMetadata]
k8sMetadataProcessor:=k8sProcessorFactory.NewFunc(k8sProcessorFactory.Config, a.telemetry.Telemetry, formatProcessor)
// other initialization...a.analyzerManager=analyzerManagerudsReceiverFactory:=a.componentsFactory.Receivers[udsreceiver.Uds]
udsReceiver:=udsReceiverFactory.NewFunc(udsReceiverFactory.Config, a.telemetry.Telemetry, analyzerManager)
a.receiver=udsReceiverreturnnil
}
Although our processing chain is inspired by the pipeline of Opentelemetry-Collector, its building procedure can't be applied to ours directly. Because the pipeline is one direction for every processor while the processing chain is more like a directed acyclic graph in which every node has multiple fan-out directions.
I will work on this issue.
The text was updated successfully, but these errors were encountered:
Currently, we build the processing chain by hard coding, which makes changes inconvenient. Every time we add a new component to the chain, we have to modify the source codes and make the building procedure more verbose and difficult to read. What looks like this:
Although our processing chain is inspired by the pipeline of Opentelemetry-Collector, its building procedure can't be applied to ours directly. Because the pipeline is one direction for every processor while the processing chain is more like a directed acyclic graph in which every node has multiple fan-out directions.
I will work on this issue.
The text was updated successfully, but these errors were encountered: