20#ifndef ORES_COMPUTE_MESSAGING_TELEMETRY_PROTOCOL_HPP
21#define ORES_COMPUTE_MESSAGING_TELEMETRY_PROTOCOL_HPP
28namespace ores::compute::messaging {
34struct get_grid_stats_request {
35 using response_type =
struct get_grid_stats_response;
36 static constexpr std::string_view nats_subject =
37 "compute.v1.telemetry.get_grid_stats";
40struct node_stats_summary {
42 int tasks_completed{0};
43 int tasks_since_last{0};
44 std::int64_t avg_task_duration_ms{0};
45 std::int64_t input_bytes_fetched{0};
46 std::int64_t output_bytes_uploaded{0};
47 int seconds_since_hb{0};
50struct get_grid_stats_response {
59 int results_inactive{0};
60 int results_unsent{0};
61 int results_in_progress{0};
64 int total_workunits{0};
66 int active_batches{0};
68 int outcomes_success{0};
69 int outcomes_client_error{0};
70 int outcomes_no_reply{0};
73 std::string sampled_at;
76 std::vector<node_stats_summary> node_summaries;
83struct node_sample_message {
84 static constexpr std::string_view nats_subject =
85 "compute.v1.telemetry.node_samples";
87 std::string tenant_id;
89 std::string sampled_at;
91 int tasks_completed{0};
93 int tasks_since_last{0};
94 std::int64_t avg_task_duration_ms{0};
95 std::int64_t max_task_duration_ms{0};
96 std::int64_t input_bytes_fetched{0};
97 std::int64_t output_bytes_uploaded{0};
98 int seconds_since_hb{0};