ores.telemetry

Table of Contents

1. Diagram

ores.telemetry component diagram

Figure 1: ores.telemetry

2. Summary

ores.telemetry is the observability component for ORE Studio. It receives log entries, service heartbeats, and NATS server and stream samples, persists them in its own tables, and answers queries over the stored data. Every component links its core part for logging and trace correlation.

It is a composite of three parts, and the parts carry the component's documented sections, because the work is divided between them.

3. Sub-components

Part Role
ores.telemetry.core The logging, tracing and record types every component links: the Boost.Log front end, the trace and span identifiers, the semantic conventions, and the messaging types the service exchanges.
ores.telemetry.database PostgreSQL persistence for the four stored shapes, and the sink that writes a log record straight to the database.
ores.telemetry.service The NATS service that serves the six telemetry.v1.> subjects, polls the NATS HTTP monitoring API, and runs the retention and aggregation work.

4. Entity modules

None. The component owns five tables, but it models no entity and no junction, so no entity module generates its schema, its repository or its shell surface: the tables, their triggers and their row-level security policies stay hand-written.

What it models are its messages. Three operation models declare the six messages and the payloads they carry, and generate the protocol headers under core/include/ores.telemetry.core/messaging/:

Model Generated header
ores.telemetry.logs.org logs_protocol.hpp
ores.telemetry.nats_samples.org nats_samples_protocol.hpp
ores.telemetry.service_samples.org service_samples_protocol.hpp

The aggregation functions the database part reads are a recorded capture: nothing can ask for them until a subject and its models exist.

5. See also

Emacs 29.3 (Org mode 9.6.15)