Declare each component under its top-level key (receivers, processors, exporters, extensions) in config.yaml; components are only active when referenced in service.pipelines
Under service.pipelines define one pipeline per signal (traces, metrics, logs); each pipeline has receivers, processors (ordered list), and exporters arrays
Order processors deliberately: place memory_limiter first so backpressure can reach receivers before OOM occurs; place batch last so only telemetry that passes filters and sampling is batched for export
Multiple pipelines can share a component instance by using the same component name in both pipelines; a component runs once per pipeline it appears in
Use the same exporter name in multiple pipelines to fan out a single signal to several backends without duplicating config blocks
Validate config before deploying by running the collector binary with --dry-run or validate sub-command, catching YAML errors and unknown component names
Known gotchas
Listing a component in the config file but not in service.pipelines means it is silently ignored—always verify the service block references every component you intend to activate
Processors execute in the order they appear in the processors list; swapping memory_limiter and batch can cause the Collector to OOM before backpressure kicks in
Connectors (e.g., count connector) must appear in both an exporter slot of one pipeline and a receiver slot of another; they cannot be placed in the processors list
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp