Telecraft documentation · companion to the glossary

Two vocabularies, one product

Every word Telecraft uses comes from one of two dictionaries: OTel's words, the upstream OpenTelemetry terms used exactly as OpenTelemetry defines them, and Telecraft's words, the product's own model layered on top. The traps are where the two collide.

1 · OTel's words: inside one collector

OpenTelemetry defines three signals: traces (what happened to one request, as a tree of spans), metrics (numbers aggregated over time), and logs (timestamped records). See the signals documentation. Applications emit them through SDKs, and a Collector is the standalone process that receives, transforms, and forwards them.

One Collector process (otelcol) its config file declares components, then wires them into pipelines pipeline: logs receivers otlp · filelog processors (order matters) memory_limiter → k8sattributes → batch exporters otlphttp/gateway pipeline: metrics, the same shape with its own wiring. A component can appear in several pipelines extensions: outside the data path health_check · opamp (reports status and effective config; it cannot accept remote config by itself)
Inside one collector. A pipeline is receivers → processors → exporters, wired for one signal, inside one process. Processor order matters: moving a redaction processor changes what leaves the collector. See the configuration documentation.
WordMeaning
receiverGets data in, either by listening (for example otlp) or by scraping and collecting (for example filelog, hostmetrics, prometheus).
processorTransforms data in flight: batches, limits memory, adds or strips attributes, redacts, samples. Processors run in the order you declare them.
exporterSends data on, to a backend or to another collector.
connectorBoth an exporter and a receiver: joins the end of one pipeline to the start of another (for example, to derive metrics from spans).
extensionA capability outside the data path: health endpoints, authentication, the opamp reporting extension.
OTLPThe OpenTelemetry protocol: the wire format all three signals share.
resourceAttributes that describe the thing emitting the telemetry (service.name, k8s.pod.name). They are attached to everything the process emits.
semantic conventionsThe standard names for attributes and metrics, each with a requirement level (required, recommended, or opt-in). They define what well-formed telemetry looks like. Semantic conventions.
OpAMPThe control protocol (in beta): a collector, or its Supervisor, connects to a server, reports its status and effective config, and can receive config. It is transport, not policy. OpAMP specification.
SupervisorA separate process beside a collector that applies remote config and manages the collector's lifecycle. The in-process opamp extension only reports.

2 · Telecraft's words: outside, across the Estate

OTel's vocabulary stops at the edge of one process. Telecraft governs the whole population of collectors, so it adds a second layer of words, and it never reuses an OTel word to mean something different.

checkout-api pods on k8s storefront browser JS, runs no collector Tier: edge selector: node DaemonSet collectors ×214: matched, never drawn Tier: gateway run by the data-flow team two listeners: trusted / untrusted Elasticsearch Prometheus Hop · trusted Hop · untrusted Path (checkout-api): workload → edge Tier → gateway Tier → Elasticsearch Path (storefront): workload → gateway Tier directly, with no collector of its own. Both are normal; one Service may have several Paths.
The authored topology. Tiers are positions (edge, gateway), the Hop is the directed link between them and carries trust, and a Path is one Service's route across the graph. Running collectors are derived: Telecraft matches them into a Tier by selector and never draws them individually, which is why the canvas stays legible at 500 collectors.
WordMeaningWatch out
TierA position in the topology (edge, gateway). You author it, it has an Owner, and it carries the policy for everything at that position.Only ever a position. How much a Service matters is its Service Class, never "Tier 1".
HopThe directed link between two Tiers. It is an object with its own Owner: trust belongs to it, and the delivery Expectation crosses it.In most tools this is only a string: an endpoint typed into an exporter. In Telecraft it is an object you can own and reason about.
PathOne Service's route through the Tier graph. Several Paths per Service is normal.Not "pipeline": that word belongs to OTel and means the wiring inside one collector.
EstateThe whole population of collectors, across every kind of infrastructure (Kubernetes, VMs, bare metal).Not "fleet": capital-F Fleet is Elastic's product (ElasticFleet), so Telecraft avoids the word.
ServiceThe unit Telecraft governs, identified by service.name, OTel's own identity attribute.Every Service has a Service Class and is judged against its Requirements.
Service ClassHow much a Service matters: C1 matters most, then C2, then C3. You can rename the values. A higher class must meet everything a lower class must, plus more.Never written "Tier N": a Tier is a position in the topology.
SensitivityWhat the data is (personal data, financial data, and so on). Sensitivity drives routing and redaction, never completeness.Keep it separate from Service Class: "how much telemetry" and "who may see it" are different questions.
ComponentA configured instance of a Catalogue type (receiver, processor, exporter, connector, extension): named, versioned, and owned. The gateway team owns the gateway exporter; the security team owns the PII redactor.Blueprints use a Component by reference, never by copy, so when the owning team changes it every consumer re-renders.
BlueprintA named, versioned composition of Components, often from several teams, written as one ordered lane per signal, plus a satisfies list of Requirement ids: a claim of intent, never of fact.A lane is ordered, not a set. Merging Components as a set produces valid-looking configs with memory_limiter in the wrong place.
Owner / TeamEvery authored object has an Owner, in the style of CODEOWNERS. Owners belong to Teams, Teams nest, and compliance rolls up the tree.Findings go to the Owner of the object, not to whoever owns the file it renders into.

3 · The three readings, and why green means "it worked"

ReadingQuestionSource
IntendedWhat should this collector run?Git, pinned to a commit SHA. GitOps calls this "declared"; Telecraft says Intended
EffectiveWhat does it say it is running?The config the collector reports it is running: OpAMP's EffectiveConfig, exactly as the collector sends it
ObservedWhat telemetry actually arrived?The backend, over a window
Effective × Observed, judged per Requirement Observed: telemetry arrived Observed: nothing arrived Effective: config says yes Effective: config says no compliant it works: the only green there is broken_pipeline configured, yet nothing lands ungoverned arriving, but nobody authored it: passes, and is shown not_configured requirement unmet, nothing arriving
The cross. Each cell has a different Owner and a different fix, which is the point. When a reading is missing the verdict is unknown or not_delivered, never a silent pass or fail. Delivery status (Intended × Effective, per collector) sits beside this, in OpAMP's own words: APPLYING · APPLIED · FAILED.

4 · The traps: where the two dictionaries collide

“Tier”. In Telecraft it means a position in the topology (edge tier, gateway tier), as the industry uses it. The industry also says "Tier 1 app" for how much an application matters. In Telecraft that is Service Class, written C1, C2, and C3, and never "Tier 1". One edge-tier collector carries telemetry for C1, C2, and C3 Services at once, which is why the two ideas can't share a name.
“Declared”. GitOps calls the git side "declared configuration", so Telecraft never uses the word. The git side is Intended, and the config the collector reports it is running is Effective: OpAMP's own EffectiveConfig, exactly as the collector sends it.
“Pipeline”. An otelcol pipeline lives inside one process. The route across collectors is a Path. If you catch yourself saying "the pipeline from edge to gateway", the word you want is Path, or the specific Hop.
“Collector”. The same word, two postures. To OTel it is the binary. To Telecraft it is a derived, read-only object: matched into a Tier by selector, inheriting the Tier's policy and Owner, never drawn on the canvas, never authored on its own. "A microservice with its own collector" is a Tier whose selector matches only that workload.
“Fleet” and “agent”. In Telecraft, capital-F Fleet is the Elastic product, only ever written ElasticFleet. The population of collectors is the Estate. Telecraft also avoids calling collectors "agents", because Elastic Agent is a different product; the only "agent" is in OpAMP's own protocol messages.
“Schema”. OTel schema URLs are a version migration mechanism and can't express a constraint. What declares how telemetry should look is the semantic conventions registry, which Weaver tools. Telecraft's conformance checks build on the registry, never on schema URLs.

5 · Check yourself

From memory, without notes

1 · A position in the topology, edge or gateway, is called a…

A Tier is a position. Service Class is how much a Service matters; a Hop is the link between two Tiers; a Path is a Service's whole route.

2 · Inside one collector, receivers → processors → exporters wired for one signal is a…

That's the otelcol pipeline: always in-process, per signal. A connector joins two pipelines; extensions sit outside the data path; a Blueprint is Telecraft's composition of Components.

3 · The config a collector reports it is running is the ___ reading.

Effective, OpAMP's own word. "Declared" is GitOps vocabulary for the git side, which Telecraft calls Intended; Observed is what landed in the backend.

4 · Config says logs should flow; the backend received none. The verdict is…

Effective yes × Observed no = broken_pipeline. not_delivered means Telecraft can't see the Effective side; ungoverned is the opposite cell (arriving, but nobody authored it).

5 · Which of these is an authored, ownable object?

Components, Blueprints, Tiers, Hops, Paths, and Services are authored and carry Owners. Collectors are derived by selector match; the Estate is the population; verdicts are computed.

6 · The gateway team's exporter config, reused by reference inside your Blueprint, is a…

A Component: a configured, versioned, owned instance of a Catalogue type, used by reference, so the gateway team's change re-renders every consumer. The Catalogue is the inventory of types; the Palette is what the console offers you.

Primary source

If you read one thing, read the official Collector configuration documentation: it takes 20 minutes, and every OTel word above appears in a real config. For Telecraft's layer, the reference is the glossary, which the code, the console, and the documentation all follow.