Files
dotfiles/rust/haproxy_ingest_proto/proto/haproxy_ingest.proto
T

72 lines
1.8 KiB
Protocol Buffer

syntax = "proto3";
package haproxy.ingest.v1;
message LogBatch {
uint32 schema_version = 1;
string machine_id = 2;
string hostname = 3;
optional string previous_cursor = 4;
string last_cursor = 5;
int64 first_journal_timestamp_us = 6;
int64 last_journal_timestamp_us = 7;
repeated LogRecord records = 8;
}
message LogRecord {
int64 journal_timestamp_us = 1;
oneof payload {
HAProxyEvent event = 2;
RejectedEvent rejected = 3;
JournalGap gap = 4;
}
}
message HAProxyEvent {
reserved 22;
optional string client_ip = 1;
optional uint32 client_port = 2;
optional string frontend_name = 3;
optional string backend_name = 4;
optional string server_name = 5;
optional string http_method = 6;
optional string request_path = 7;
optional string http_version = 8;
int32 status_code = 9;
uint64 bytes_sent = 10;
int32 time_request_ms = 11;
int32 time_wait_ms = 12;
int32 time_connect_ms = 13;
int32 time_response_ms = 14;
int32 time_total_ms = 15;
optional string termination_state = 16;
uint32 retries = 17;
optional string tls_sni = 18;
optional string tls_version = 19;
optional string tls_cipher = 20;
optional bool tls_resumed = 21;
repeated string normalization_flags = 23;
optional uint32 active_connections = 24;
optional uint32 frontend_connections = 25;
optional uint32 backend_connections = 26;
optional uint32 server_connections = 27;
optional uint32 server_queue = 28;
optional uint32 backend_queue = 29;
}
message RejectedEvent {
string reason = 1;
bytes message_sha256 = 2;
optional string raw_message_prefix = 3;
bool raw_message_truncated = 4;
}
message JournalGap {
string expected_cursor = 1;
string first_available_cursor = 2;
optional int64 first_available_timestamp_us = 3;
string reason = 4;
}