ark::catalog::TelemetryQueue

Defined in header “ark/catalog/telemetry/telemetry_queue.hh”.


This queue is used to store telemetry events, and then handles packaging them up for pushing up to a remote server. Can also handle storage on local disk in the event that comms is not available or the system is down.

Methods

  • TelemetryQueue(const core::Guid & organization_id, std::string name, std::chrono::steady_clock::time_point session_start_time)
    Constructs the queue with the given timestamp as its official start time. The telemetry queue will populate messages with the given organization ID and human-readable name.

  • void set_robot_information(SetTelemetryRobot robot)
    Sets the last received robot information. This is the robot that all telemetry is tagged with.

  • void set_debuglog_line_limit(size_t limit_count)
    Set the debuglog line limit.

  • void insert_telemetry_values(const TelemetryValueGroup & message)
    Inserts a batch of telemetry values into the queue.

  • void insert_event(TelemetryEvent event)
    Inserts a discrete outgoing event into the queue.

  • void insert_bag(TelemetryBag bag)
    Inserts an bag to be written to the remote system.

  • void insert_bag_object(TelemetryBagObject object)
    Inserts an object (related to an bag) to be written to the remote system.

  • void insert_debuglog_group(debuglog::DebugLogOutputGroup group)
    Insert debuglog messages to be written to the remote and transferred to CloudWatchLogs.

  • std::optional< UpdateRobotTelemetryRequest > pop_all(std::chrono::steady_clock::time_point now, const time::TimeModel< std::chrono::steady_clock, std::chrono::system_clock > & global_time_model)
    Dequeues all of the queued events, and returns a structure suitable for transmission over the wire to the catalog.

  • void purge_items_older_than(const std::chrono::steady_clock::time_point & minimum_age, const time::TimeModel< std::chrono::steady_clock, std::chrono::system_clock > & global_time_model)
    Purges any item that is older than the minimum age. Used to keep data relatively fresh if its not uploading for some reason.

  • void requeue(const UpdateRobotTelemetryRequest & request)
    Requeues a previously dequeued telemetry request update. Invoke this if the catalog fails to accept the request.

  • std::string robot_serial()
    Returns the current robot serial number.

  • const std::string & session_name()
    Returns the name of this session.