ORE Studio 0.0.4
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
telemetry_repository Class Reference

Repository for telemetry log persistence and querying. More...

#include <telemetry_repository.hpp>

Collaboration diagram for telemetry_repository:
Collaboration graph

Public Types

using context = ores::database::context
 

Public Member Functions

 telemetry_repository (context ctx)
 
std::string sql ()
 Returns the SQL created by sqlgen to construct the table.
 
void create (const domain::telemetry_log_entry &entry)
 Creates a single log entry.
 
std::size_t create_batch (const domain::telemetry_batch &batch)
 Creates multiple log entries in a batch.
 
std::vector< domain::telemetry_log_entryquery (const domain::telemetry_query &q)
 Queries log entries with filters.
 
std::uint64_t count (const domain::telemetry_query &q)
 Counts log entries matching a query.
 
std::vector< domain::telemetry_log_entryread_by_session (const boost::uuids::uuid &session_id, std::uint32_t limit=1000)
 Reads logs for a specific session.
 
std::vector< domain::telemetry_log_entryread_by_account (const boost::uuids::uuid &account_id, const std::chrono::system_clock::time_point &start, const std::chrono::system_clock::time_point &end, std::uint32_t limit=1000)
 Reads logs for a specific account.
 
std::vector< domain::telemetry_statsread_hourly_stats (const domain::telemetry_stats_query &q)
 Reads hourly statistics.
 
std::vector< domain::telemetry_statsread_daily_stats (const domain::telemetry_stats_query &q)
 Reads daily statistics.
 
domain::telemetry_summary get_summary (std::uint32_t hours=24)
 Gets a summary of telemetry activity.
 
std::uint64_t count_errors (const std::string &source_name, std::uint32_t hours=1)
 Counts error logs in the last N hours for a source.
 
std::uint64_t delete_old_logs (const std::chrono::system_clock::time_point &older_than)
 Deletes logs older than the specified retention period.
 

Detailed Description

Repository for telemetry log persistence and querying.

Handles CRUD operations for telemetry log records stored in a TimescaleDB hypertable. Supports time-range queries and statistics aggregation.

Member Function Documentation

◆ create_batch()

std::size_t create_batch ( const domain::telemetry_batch batch)

Creates multiple log entries in a batch.

More efficient than individual inserts for bulk operations.

Returns
Number of entries successfully inserted.

◆ count()

std::uint64_t count ( const domain::telemetry_query q)

Counts log entries matching a query.

Useful for pagination.

◆ read_by_session()

std::vector< domain::telemetry_log_entry > read_by_session ( const boost::uuids::uuid &  session_id,
std::uint32_t  limit = 1000 
)

Reads logs for a specific session.

Parameters
session_idThe session UUID
limitMaximum number of logs to return
Returns
Logs ordered by timestamp descending (newest first)

◆ read_by_account()

std::vector< domain::telemetry_log_entry > read_by_account ( const boost::uuids::uuid &  account_id,
const std::chrono::system_clock::time_point &  start,
const std::chrono::system_clock::time_point &  end,
std::uint32_t  limit = 1000 
)

Reads logs for a specific account.

Parameters
account_idThe account UUID
startStart of time range
endEnd of time range
limitMaximum number of logs to return

◆ get_summary()

domain::telemetry_summary get_summary ( std::uint32_t  hours = 24)

Gets a summary of telemetry activity.

Parameters
hoursNumber of hours to include (default: 24)

◆ count_errors()

std::uint64_t count_errors ( const std::string &  source_name,
std::uint32_t  hours = 1 
)

Counts error logs in the last N hours for a source.

Useful for monitoring and alerting.

◆ delete_old_logs()

std::uint64_t delete_old_logs ( const std::chrono::system_clock::time_point &  older_than)

Deletes logs older than the specified retention period.

Note: With TimescaleDB, this is typically handled by retention policies. This method is for manual cleanup or non-TimescaleDB deployments.

Parameters
older_thanDelete logs older than this timestamp
Returns
Number of logs deleted