@@ -25,9 +25,11 @@ import (
25
25
"gonum.org/v1/gonum/graph/topo"
26
26
27
27
"go.opentelemetry.io/collector/component"
28
+ "go.opentelemetry.io/collector/component/componentprofiles"
28
29
"go.opentelemetry.io/collector/component/componentstatus"
29
30
"go.opentelemetry.io/collector/connector"
30
31
"go.opentelemetry.io/collector/consumer"
32
+ "go.opentelemetry.io/collector/consumer/consumerprofiles"
31
33
"go.opentelemetry.io/collector/internal/fanoutconsumer"
32
34
"go.opentelemetry.io/collector/service/internal/builders"
33
35
"go.opentelemetry.io/collector/service/internal/capabilityconsumer"
@@ -40,10 +42,10 @@ type Settings struct {
40
42
Telemetry component.TelemetrySettings
41
43
BuildInfo component.BuildInfo
42
44
43
- ReceiverBuilder builders.Receiver
44
- ProcessorBuilder builders.Processor
45
- ExporterBuilder builders.Exporter
46
- ConnectorBuilder builders.Connector
45
+ ReceiverBuilder * builders.ReceiverBuilder
46
+ ProcessorBuilder * builders.ProcessorBuilder
47
+ ExporterBuilder * builders.ExporterBuilder
48
+ ConnectorBuilder * builders.ConnectorBuilder
47
49
48
50
// PipelineConfigs is a map of component.ID to PipelineConfig.
49
51
PipelineConfigs pipelines.Config
@@ -314,6 +316,10 @@ func (g *Graph) buildComponents(ctx context.Context, set Settings) error {
314
316
cc := capabilityconsumer .NewLogs (next .(consumer.Logs ), capability )
315
317
n .baseConsumer = cc
316
318
n .ConsumeLogsFunc = cc .ConsumeLogs
319
+ case componentprofiles .DataTypeProfiles :
320
+ cc := capabilityconsumer .NewProfiles (next .(consumerprofiles.Profiles ), capability )
321
+ n .baseConsumer = cc
322
+ n .ConsumeProfilesFunc = cc .ConsumeProfiles
317
323
}
318
324
case * fanOutNode :
319
325
nexts := g .nextConsumers (n .ID ())
@@ -336,6 +342,12 @@ func (g *Graph) buildComponents(ctx context.Context, set Settings) error {
336
342
consumers = append (consumers , next .(consumer.Logs ))
337
343
}
338
344
n .baseConsumer = fanoutconsumer .NewLogs (consumers )
345
+ case componentprofiles .DataTypeProfiles :
346
+ consumers := make ([]consumerprofiles.Profiles , 0 , len (nexts ))
347
+ for _ , next := range nexts {
348
+ consumers = append (consumers , next .(consumerprofiles.Profiles ))
349
+ }
350
+ n .baseConsumer = fanoutconsumer .NewProfiles (consumers )
339
351
}
340
352
}
341
353
if err != nil {
@@ -476,6 +488,7 @@ func (g *Graph) GetExporters() map[component.DataType]map[component.ID]component
476
488
exportersMap [component .DataTypeTraces ] = make (map [component.ID ]component.Component )
477
489
exportersMap [component .DataTypeMetrics ] = make (map [component.ID ]component.Component )
478
490
exportersMap [component .DataTypeLogs ] = make (map [component.ID ]component.Component )
491
+ exportersMap [componentprofiles .DataTypeProfiles ] = make (map [component.ID ]component.Component )
479
492
480
493
for _ , pg := range g .pipelines {
481
494
for _ , expNode := range pg .exporters {
@@ -538,6 +551,8 @@ func connectorStability(f connector.Factory, expType, recType component.Type) co
538
551
return f .TracesToMetricsStability ()
539
552
case component .DataTypeLogs :
540
553
return f .TracesToLogsStability ()
554
+ case componentprofiles .DataTypeProfiles :
555
+ return f .TracesToProfilesStability ()
541
556
}
542
557
case component .DataTypeMetrics :
543
558
switch recType {
@@ -547,6 +562,8 @@ func connectorStability(f connector.Factory, expType, recType component.Type) co
547
562
return f .MetricsToMetricsStability ()
548
563
case component .DataTypeLogs :
549
564
return f .MetricsToLogsStability ()
565
+ case componentprofiles .DataTypeProfiles :
566
+ return f .MetricsToProfilesStability ()
550
567
}
551
568
case component .DataTypeLogs :
552
569
switch recType {
@@ -556,6 +573,19 @@ func connectorStability(f connector.Factory, expType, recType component.Type) co
556
573
return f .LogsToMetricsStability ()
557
574
case component .DataTypeLogs :
558
575
return f .LogsToLogsStability ()
576
+ case componentprofiles .DataTypeProfiles :
577
+ return f .LogsToProfilesStability ()
578
+ }
579
+ case componentprofiles .DataTypeProfiles :
580
+ switch recType {
581
+ case component .DataTypeTraces :
582
+ return f .ProfilesToTracesStability ()
583
+ case component .DataTypeMetrics :
584
+ return f .ProfilesToMetricsStability ()
585
+ case component .DataTypeLogs :
586
+ return f .ProfilesToLogsStability ()
587
+ case componentprofiles .DataTypeProfiles :
588
+ return f .ProfilesToProfilesStability ()
559
589
}
560
590
}
561
591
return component .StabilityLevelUndefined
0 commit comments