ores.telemetry.core

Table of Contents

1. Diagram

ores.telemetry.core component diagram

Figure 1: ores.telemetry.core

2. Summary

ores.telemetry.core is the observability library for ORE Studio. It provides structured logging via Boost.Log with trace and span ID correlation (aligned with OpenTelemetry semantics), the messaging types the service exchanges, and domain types for log records and resource identity (host, service, version). All other components link against this library to emit structured, correlated logs, and the sink the host installs decides where a record goes: the database sink writes it through ores.telemetry.database.

3. Inputs

  • Log events emitted by other components via the Boost.Log sink interface.
  • Configuration for the log level, the service identity and the record's source.

4. Outputs

  • Structured log_record objects handed to the sink the host installs.
  • The message and payload types the six telemetry.v1.> subjects carry, generated from the three operation models.

5. Entry points

  • include/ores.telemetry.core/log/ — Boost.Log initialisation, the lifecycle manager and the sinks.
  • include/ores.telemetry.core/generators/ — trace/span ID generators.
  • include/ores.telemetry.core/domain/ — log_record, trace_id, span_id, resource.
  • include/ores.telemetry.core/messaging/ — the generated protocol headers.
  • include/ores.telemetry.core/exporting/ — logging configuration and options.

6. Dependencies

  • Boost.Log — structured logging sink infrastructure.

7. Build dependencies

What the shared profile cannot know, declared here rather than hand-edited into the generated build file. Each block is spliced into its generated file after the profile's baseline.

8. See also

9. Test dependencies

The suites link what the profile cannot know about.

target_link_libraries(${lib_target_name}
    PUBLIC
        ores.database.lib
        ores.logging.lib
        ores.utility.lib
        ores.nats.lib
    INTERFACE
    PRIVATE
        ores.service.lib
        ores.platform.lib
        ores.security.lib
        Boost::boost)
target_link_libraries(${tests_target_name}
    PRIVATE
        ${lib_target_name}
        ores.utility.lib
        ores.testing.lib
        Catch2::Catch2
        faker-cxx::faker-cxx
        ores.openssl_cleanup
        Threads::Threads)

Emacs 29.3 (Org mode 9.6.15)