diff --git a/crates/charon/build.rs b/crates/charon/build.rs index b4a8b370..ef2ad4cd 100644 --- a/crates/charon/build.rs +++ b/crates/charon/build.rs @@ -5,5 +5,8 @@ use std::io::Result; fn main() -> Result<()> { - charon_build_proto::compile_protos("src/peerinfo/peerinfopb/v1") + charon_build_proto::compile_protos("src/peerinfo/peerinfopb/v1")?; + charon_build_proto::compile_protos("src/log/loki/lokipb/v1")?; + + Ok(()) } diff --git a/crates/charon/src/lib.rs b/crates/charon/src/lib.rs index d0a1debc..93f0371f 100644 --- a/crates/charon/src/lib.rs +++ b/crates/charon/src/lib.rs @@ -6,3 +6,6 @@ /// Peerinfo. pub mod peerinfo; + +/// Log +pub mod log; diff --git a/crates/charon/src/log/loki/lokipb/mod.rs b/crates/charon/src/log/loki/lokipb/mod.rs new file mode 100644 index 00000000..bb6553a6 --- /dev/null +++ b/crates/charon/src/log/loki/lokipb/mod.rs @@ -0,0 +1,2 @@ +/// V1 +pub mod v1; diff --git a/crates/charon/src/log/loki/lokipb/v1.rs b/crates/charon/src/log/loki/lokipb/v1.rs new file mode 100644 index 00000000..02d5f8ca --- /dev/null +++ b/crates/charon/src/log/loki/lokipb/v1.rs @@ -0,0 +1,2 @@ +/// Loki protobuf definitions. +pub mod loki; diff --git a/crates/charon/src/log/loki/lokipb/v1/loki.proto b/crates/charon/src/log/loki/lokipb/v1/loki.proto new file mode 100644 index 00000000..541e79a8 --- /dev/null +++ b/crates/charon/src/log/loki/lokipb/v1/loki.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +package loki; + +import "google/protobuf/timestamp.proto"; + +message PushRequest { + repeated Stream streams = 1; +} + +message Stream { + string labels = 1; + repeated Entry entries = 2; + uint64 hash = 3; +} + +message Entry { + google.protobuf.Timestamp timestamp = 1; + string line = 2; +} diff --git a/crates/charon/src/log/loki/lokipb/v1/loki.rs b/crates/charon/src/log/loki/lokipb/v1/loki.rs new file mode 100644 index 00000000..47c8d95e --- /dev/null +++ b/crates/charon/src/log/loki/lokipb/v1/loki.rs @@ -0,0 +1,27 @@ +// This file is @generated by prost-build. +#![allow(dead_code)] +#![allow(missing_docs)] +#![allow(clippy::all)] +#![allow(rustdoc::all)] + +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PushRequest { + #[prost(message, repeated, tag = "1")] + pub streams: ::prost::alloc::vec::Vec, +} +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Stream { + #[prost(string, tag = "1")] + pub labels: ::prost::alloc::string::String, + #[prost(message, repeated, tag = "2")] + pub entries: ::prost::alloc::vec::Vec, + #[prost(uint64, tag = "3")] + pub hash: u64, +} +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct Entry { + #[prost(message, optional, tag = "1")] + pub timestamp: ::core::option::Option<::prost_types::Timestamp>, + #[prost(string, tag = "2")] + pub line: ::prost::alloc::string::String, +} diff --git a/crates/charon/src/log/loki/mod.rs b/crates/charon/src/log/loki/mod.rs new file mode 100644 index 00000000..4c05e265 --- /dev/null +++ b/crates/charon/src/log/loki/mod.rs @@ -0,0 +1,2 @@ +/// Loki protobuf definitions. +pub mod lokipb; diff --git a/crates/charon/src/log/mod.rs b/crates/charon/src/log/mod.rs new file mode 100644 index 00000000..81107ba1 --- /dev/null +++ b/crates/charon/src/log/mod.rs @@ -0,0 +1,2 @@ +/// Loki +pub mod loki;