ores.telemetry.database
Table of Contents
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_recordobjects forwarded fromores.telemetry.service.- PostgreSQL connections to
ores_telemetry_*tables.
4. Outputs
- Log records persisted to the
ores_telemetryschema 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
- ores.telemetry.core — observability library that produces log records.
- ores.telemetry.service — service that calls this persistence layer.
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)
