Skip to content

Commit

Permalink
Add pipeline ID to the error message for unused connectors.
Browse files Browse the repository at this point in the history
  • Loading branch information
sudiptob2 committed Feb 18, 2025
1 parent 4397ebc commit bfa89c4
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 22 deletions.
21 changes: 19 additions & 2 deletions service/internal/graph/graph.go
Original file line number Diff line number Diff line change
Expand Up @@ -171,13 +171,13 @@ func (g *Graph) createNodes(set Settings) error {
if supportedUse {
continue
}
return fmt.Errorf("connector %q used as exporter in %s pipeline but not used in any supported receiver pipeline", connID, expType)
return fmt.Errorf("connector %q used as exporter in %s pipeline but not used in any supported receiver pipeline", connID, formatPipelineNameWithSignal(connectorsAsExporter[connID], expType))
}
for recType, supportedUse := range recTypes {
if supportedUse {
continue
}
return fmt.Errorf("connector %q used as receiver in %s pipeline but not used in any supported exporter pipeline", connID, recType)
return fmt.Errorf("connector %q used as receiver in %s pipeline but not used in any supported exporter pipeline", connID, formatPipelineNameWithSignal(connectorsAsReceiver[connID], recType))
}

for _, eID := range connectorsAsExporter[connID] {
Expand All @@ -196,6 +196,23 @@ func (g *Graph) createNodes(set Settings) error {
return nil
}

// formatPipelineNameWithSignal formats pipeline signal types with their names.
func formatPipelineNameWithSignal(pipelineIDs []pipeline.ID, signal pipeline.Signal) string {
var formatted string

for _, pid := range pipelineIDs {
if pid.Signal().String() == signal.String() {
if name := pid.Name(); name == "" {
formatted = pid.Signal().String()
} else {
formatted = fmt.Sprintf("%s/%s", pid.Signal().String(), name)
}
break
}
}
return formatted
}

func (g *Graph) createReceiver(pipelineID pipeline.ID, recvID component.ID) *receiverNode {
rcvrNode := newReceiverNode(pipelineID.Signal(), recvID)
if node := g.componentGraph.Node(rcvrNode.ID()); node != nil {
Expand Down
40 changes: 20 additions & 20 deletions service/internal/graph/graph_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1649,7 +1649,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: "connector \"bf\" used as exporter in traces pipeline but not used in any supported receiver pipeline",
expected: "connector \"bf\" used as exporter in traces/in pipeline but not used in any supported receiver pipeline",
},
{
name: "not_supported_connector_traces_metrics.yaml",
Expand All @@ -1672,7 +1672,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: "connector \"bf\" used as exporter in traces pipeline but not used in any supported receiver pipeline",
expected: "connector \"bf\" used as exporter in traces/in pipeline but not used in any supported receiver pipeline",
},
{
name: "not_supported_connector_traces_logs.yaml",
Expand All @@ -1695,7 +1695,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: "connector \"bf\" used as exporter in traces pipeline but not used in any supported receiver pipeline",
expected: "connector \"bf\" used as exporter in traces/in pipeline but not used in any supported receiver pipeline",
},
{
name: "not_supported_connector_traces_profiles.yaml",
Expand All @@ -1718,7 +1718,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: "connector \"bf\" used as exporter in traces pipeline but not used in any supported receiver pipeline",
expected: "connector \"bf\" used as exporter in traces/in pipeline but not used in any supported receiver pipeline",
},
{
name: "not_supported_connector_metrics_traces.yaml",
Expand All @@ -1741,7 +1741,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: "connector \"bf\" used as exporter in metrics pipeline but not used in any supported receiver pipeline",
expected: "connector \"bf\" used as exporter in metrics/in pipeline but not used in any supported receiver pipeline",
},
{
name: "not_supported_connector_metrics_metrics.yaml",
Expand All @@ -1764,7 +1764,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: "connector \"bf\" used as exporter in metrics pipeline but not used in any supported receiver pipeline",
expected: "connector \"bf\" used as exporter in metrics/in pipeline but not used in any supported receiver pipeline",
},
{
name: "not_supported_connector_metrics_logs.yaml",
Expand All @@ -1787,7 +1787,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: "connector \"bf\" used as exporter in metrics pipeline but not used in any supported receiver pipeline",
expected: "connector \"bf\" used as exporter in metrics/in pipeline but not used in any supported receiver pipeline",
},
{
name: "not_supported_connector_metrics_profiles.yaml",
Expand All @@ -1810,7 +1810,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: "connector \"bf\" used as exporter in metrics pipeline but not used in any supported receiver pipeline",
expected: "connector \"bf\" used as exporter in metrics/in pipeline but not used in any supported receiver pipeline",
},
{
name: "not_supported_connector_logs_traces.yaml",
Expand All @@ -1833,7 +1833,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: "connector \"bf\" used as exporter in logs pipeline but not used in any supported receiver pipeline",
expected: "connector \"bf\" used as exporter in logs/in pipeline but not used in any supported receiver pipeline",
},
{
name: "not_supported_connector_logs_metrics.yaml",
Expand All @@ -1856,7 +1856,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: "connector \"bf\" used as exporter in logs pipeline but not used in any supported receiver pipeline",
expected: "connector \"bf\" used as exporter in logs/in pipeline but not used in any supported receiver pipeline",
},
{
name: "not_supported_connector_logs_logs.yaml",
Expand All @@ -1879,7 +1879,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: "connector \"bf\" used as exporter in logs pipeline but not used in any supported receiver pipeline",
expected: "connector \"bf\" used as exporter in logs/in pipeline but not used in any supported receiver pipeline",
},
{
name: "not_supported_connector_logs_profiles.yaml",
Expand All @@ -1902,7 +1902,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: "connector \"bf\" used as exporter in logs pipeline but not used in any supported receiver pipeline",
expected: "connector \"bf\" used as exporter in logs/in pipeline but not used in any supported receiver pipeline",
},
{
name: "not_supported_connector_profiles_traces.yaml",
Expand All @@ -1925,7 +1925,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: "connector \"bf\" used as exporter in profiles pipeline but not used in any supported receiver pipeline",
expected: "connector \"bf\" used as exporter in profiles/in pipeline but not used in any supported receiver pipeline",
},
{
name: "not_supported_connector_profiles_metrics.yaml",
Expand All @@ -1948,7 +1948,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: "connector \"bf\" used as exporter in profiles pipeline but not used in any supported receiver pipeline",
expected: "connector \"bf\" used as exporter in profiles/in pipeline but not used in any supported receiver pipeline",
},
{
name: "not_supported_connector_profiles_logs.yaml",
Expand All @@ -1971,7 +1971,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: "connector \"bf\" used as exporter in profiles pipeline but not used in any supported receiver pipeline",
expected: "connector \"bf\" used as exporter in profiles/in pipeline but not used in any supported receiver pipeline",
},
{
name: "not_supported_connector_profiles_profiles.yaml",
Expand All @@ -1994,7 +1994,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: "connector \"bf\" used as exporter in profiles pipeline but not used in any supported receiver pipeline",
expected: "connector \"bf\" used as exporter in profiles/in pipeline but not used in any supported receiver pipeline",
},
{
name: "orphaned-connector-use-as-exporter",
Expand All @@ -2013,7 +2013,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewIDWithName("nop", "conn")},
},
},
expected: `connector "nop/conn" used as exporter in metrics pipeline but not used in any supported receiver pipeline`,
expected: `connector "nop/conn" used as exporter in metrics/in pipeline but not used in any supported receiver pipeline`,
},
{
name: "orphaned-connector-use-as-receiver",
Expand All @@ -2032,7 +2032,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: `connector "nop/conn" used as receiver in traces pipeline but not used in any supported exporter pipeline`,
expected: `connector "nop/conn" used as receiver in traces/out pipeline but not used in any supported exporter pipeline`,
},
{
name: "partially-orphaned-connector-use-as-exporter",
Expand All @@ -2059,7 +2059,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("mockforward")},
},
},
expected: `connector "mockforward" used as exporter in metrics pipeline but not used in any supported receiver pipeline`,
expected: `connector "mockforward" used as exporter in metrics/in pipeline but not used in any supported receiver pipeline`,
},
{
name: "partially-orphaned-connector-use-as-receiver",
Expand All @@ -2086,7 +2086,7 @@ func TestGraphBuildErrors(t *testing.T) {
Exporters: []component.ID{component.MustNewID("nop")},
},
},
expected: `connector "mockforward" used as receiver in traces pipeline but not used in any supported exporter pipeline`,
expected: `connector "mockforward" used as receiver in traces/out pipeline but not used in any supported exporter pipeline`,
},
{
name: "not_allowed_simple_cycle_traces.yaml",
Expand Down

0 comments on commit bfa89c4

Please sign in to comment.