A Foundation for Observability?
Looking at the various other open-source projects in the observability space, one would think that when there is talk about foundations, the discussion is about technology pillars like metrics, logging, and tracing – all vendor-speak. For us, a conceptual foundation packages up a set of concepts and contracts common across many different instrument and measurement libraries.
Today the only concepts that seem to repeat across observability projects, even those under big vendor (masquerading as a community) umbrellas, are String, Integer, Long, and other primitive data types represented in most programming languages.
A jump from primitive data types to the muddled model of Span, SpanContext, Baggage, Attributes, and so on represents a significant conceptual gap to cross before boarding transportation that might not be heading in the right direction.
An Observability Ontology
With the Substrates API, we hope to rectify this situation by defining a core set of concepts and behavioral contracts that can be employed repeatedly, reducing the learning curve for newer software observability and controllability instruments.
The focus can then shift to the different measurement perspectives a new instrument brings to the table instead of reinventing an entirely new set of concepts and language terms every time.
Starting at the lowest level above language primitives, we define concepts like Name and Environment instead of using strings with special encoding conventions, documented elsewhere, to identify objects and values.