ores.telemetry.database

Table of Contents

1. Diagram

ores.telemetry.database component diagram

Figure 1: ores.telemetry.database

2. Summary

ores.telemetry.database is the PostgreSQL persistence layer for telemetry log records. It provides ORM entities, mappers, and repositories for storing log_record objects (trace_id, span_id, severity, message, service identity) in the ores_telemetry schema, used by ores.telemetry.service when persisting received records.

3. Inputs

  • log_record objects forwarded from ores.telemetry.service.
  • PostgreSQL connections to ores_telemetry_* tables.

4. Outputs

  • Log records persisted to the ores_telemetry schema for querying via the telemetry UI.

5. Entry points

  • include/ores.telemetry.database/ — ORM entity and repository headers.

6. Dependencies

  • ores.telemetry.core — domain types (log_record, resource).
  • ores.dq — ORM base classes.
  • soci — SQL ORM for PostgreSQL persistence.

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. CMake

This part reads headers from ores.telemetry.core and ores.logging directly.

target_include_directories(${lib_target_name} PUBLIC
    ${CMAKE_SOURCE_DIR}/projects/ores.telemetry/core/include
    ${CMAKE_SOURCE_DIR}/projects/ores.logging/include)

10. Test dependencies

The suites link what the profile cannot know about.

target_link_libraries(${lib_target_name}
    PUBLIC
        ores.telemetry.core.lib      # Core telemetry functionality
        ores.database.lib       # Database access
    PRIVATE
        ores.platform.lib
        Boost::boost)
target_link_libraries(${tests_target_name}
    PRIVATE
        ${lib_target_name}
        ores.telemetry.core.lib
        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)