Canvas & pipelines

Place and connect components, and organize them into pipelines.

The canvas is a graph editor. Components are nodes, and connections are edges. A connected chain of receivers, processors, and exporters forms a pipeline.

Work on the canvas

ActionHow
Add a componentDrag it from the palette onto the canvas.
Move a nodeDrag the node.
Connect two nodesDrag from a source node's output handle to a target node's input handle.
SelectSelect a node or edge.
Multi-selectShift-select multiple nodes.
PanDrag on empty canvas space.
ZoomScroll, or use the on-canvas controls.

Toolbar actions for the canvas:

  • Duplicate copies the selected nodes. Shortcut: Ctrl/Cmd+D.
  • Delete removes the selected nodes. Shortcut: Delete or Backspace.
  • Undo and Redo step through canvas changes. Shortcuts: Ctrl/Cmd+Z and Ctrl/Cmd+Shift+Z.

Clear canvas, which removes all components, is in the action cluster at the canvas's top right, next to Add pipeline.

Connection rules

Telflo enforces the collector's connection rules as you draw edges.

  • A receiver has outgoing connections only.
  • An exporter has incoming connections only.
  • A processor has incoming and outgoing connections. Several receivers can feed one processor, and one processor can feed several exporters.
  • A connector has both, in two different pipelines. The routing connector is the exception on its outgoing side: you draw its incoming connection, and its target pipelines come from its configuration.
  • An extension has no connections.

Invalid connections are refused as you draw them. See Validation.

Pipelines

A pipeline carries one signal type through a chain of components. Telflo supports the three OpenTelemetry signal types and custom-named pipelines.

  • traces, metrics, and logs
  • Custom names, such as traces/production, metrics/staging, or logs/audit

Edges define pipeline membership

Pipelines are defined by the edges you draw, not by the nodes alone.

  • Each edge belongs to one pipeline.
  • A single node, such as a shared batch processor, can belong to several pipelines.
  • Each pipeline is color-coded on the canvas.
  • The routing connector's outgoing route edges are the exception: they are derived from its configuration, not drawn. See Route with the routing connector.

Connect pipelines with a connector

A connector is the exporter of one pipeline and the receiver of another. It can change the signal type in between: the spanmetrics connector ends a traces pipeline and starts a metrics pipeline. It can also keep the signal type: the forward connector merges several same-signal pipelines into one, or fans one pipeline out into many, and the routing connector sends telemetry to different same-signal pipelines based on OTTL conditions. Neither forward nor routing can change the signal type; validation reports a connection across different signal types.

A connector joins two pipelinestracesotlpbatchotlpspansspanmetricsends traces · starts metricsmetricsmetricsotlphttpRED metrics (request · error · duration)generated from the spans above
The spanmetrics connector joins two pipelines: spans flow in from the traces pipeline, and request, error, and duration metrics flow out into the metrics pipeline.

For spanmetrics and forward, the target pipeline is decided by the edge you draw out of the connector. The routing connector works differently, as described next.

Route with the routing connector

The routing connector sends telemetry to different pipelines of the same signal type based on an ordered table of OTTL conditions. Its target pipelines are part of its configuration, not the graph, because the collector YAML names them in the route table as well as in each target pipeline's receivers, and the two must agree.

  1. Draw the incoming connection into the connector as usual. The connector's output handle cannot be dragged.
  2. Select the connector. For each route, choose its Target Pipelines, and under Fallback & Errors choose the Default Pipelines for telemetry that matches no route. The dropdowns list the canvas's pipelines of the connector's signal type, excluding the pipelines that feed it.

Telflo draws a dashed, read-only route edge from the connector to each target pipeline, with a chip such as 1 route + default or 2 routes showing why the pipeline is targeted, and moves target pipelines to the connector's right so routes read left to right. Route edges cannot be selected or deleted and are not part of the undo history. In the generated YAML, the connector is listed under each target pipeline's receivers automatically.

The routing connector's targets come from its route tablelogsotlpbatchedge you drawroutingtargets from its route tableROUTE TABLE · CONFIGURATIONseverity_number >= 17→ logs/errorsattributes["audit"] == true→ logs/auditdefault → logs/archive1 routelogs/errorspipeline group · route 11 routelogs/auditpipeline group · route 2defaultlogs/archivepipeline group · defaultDashed route edges are drawn from the table on every render. They cannot be dragged or deleted, and they never drift from it.
The routing connector's incoming edge is drawn on the canvas. Its outgoing route edges are derived from the route table in its configuration, so the graph and the YAML cannot drift apart.

Telemetry that matches no route goes to the default pipelines, or is dropped when none are set; the form warns when no default pipelines are configured. If a target pipeline is later renamed or deleted, the dropdown shows it as (not found) until you pick a pipeline again. A configuration saved before this behavior, with an outgoing edge drawn from a routing connector, no longer shows that edge; its targets come from the connector's configuration.

Manage pipelines

Select Add pipeline on the canvas to create a pipeline; the Add New Pipeline dialog takes the Pipeline Name and detects the signal type from it. Select a pipeline's group on the canvas to open its panel, which shows its Signal Type, lets you pick its Color, and has a Delete pipeline button. Deleting a pipeline removes the components inside it and their connections.

Connected components appear under service.pipelines in the generated YAML. A pipeline's name there, such as logs/audit, is how a pipeline test targets it: the Testing tab offers the canvas's pipelines in its Test Pipeline dropdown, and a CLI test spec names one in its pipeline field. A CLI or API run that names a pipeline the YAML does not have is refused with the list of pipelines it does have.

Next steps

Configure each component in the configuration panel. See Configuring components.

Last updated on

On this page