This article was first published in 2019.
There are many perspectives one could take in considering the observability and monitoring of software services and systems of services, but here below are a few perspectives, stacked in layers, that would be included.
Starting from the bottom and working upwards, the substantive perspective focuses on the physical hardware and machine location aspects of observability sources of data. I opted not to use the label infrastructure here as most organizations consider such labeling from a control (ownership) point of view. The next layer is labeled perceptive – where much of the observability effort is spent emitting sign-based signals or collecting metrics, traces, and logs.
With the objective layer, the observability space is left behind with a shift from data to smart semantics, including the discovery, identification, introspection, and tracking of object form, flow, and function. The objective perspective is formed mainly from sensory data and by the situation of an observer within an environment. The objects identified here are generally considered external to the observer, where an observer is a software agent.
On the other hand, the subjective layer groups, organizes, classifies, ranks, and sorts the objects in the objective layer, as well as constructing and composing new objects that are internal to the local or global observers. Here, organizations will find the beginnings of systemic learning and operational effectiveness.
One perfect example of a subjective object type would be an application. The concept of an application is nowhere to be found in observability instrumentation libraries. An application can exist before there is even the first payload of sensory data collected because an application is a subjective thing – particular to the organizational observer. An application is a powerful abstraction for grouping and bounding multiple objects (services and resources) identified in the objective layer – the application remains constant. In contrast, services and resources can come and go. Such grouping is critical to reducing cognitive overhead in complex environments.
Finally, the collective layer is where organizational cognition, control, communication, collaboration, and coordination come into focus across both man and machine boundaries – a cybernetic systems perspective.