Skip to content

Commit 32f693e

Browse files
feat: support OpenTelemetry log flattening (#657)
fixes: #312
1 parent 088b59a commit 32f693e

File tree

13 files changed

+1234
-9
lines changed

13 files changed

+1234
-9
lines changed

Cargo.lock

Lines changed: 162 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

server/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ http-auth-basic = "0.3.3"
103103
serde_repr = "0.1.17"
104104
hashlru = { version = "0.11.0", features = ["serde"] }
105105
path-clean = "1.0.1"
106+
prost = "0.12.3"
107+
106108

107109
[build-dependencies]
108110
cargo_toml = "0.15"
@@ -112,6 +114,7 @@ ureq = "2.6"
112114
vergen = { version = "8.1", features = ["build", "git", "cargo", "gitcl"] }
113115
zip = { version = "0.6", default_features = false, features = ["deflate"] }
114116
url = "2.4.0"
117+
prost-build = "0.12.3"
115118

116119
[dev-dependencies]
117120
maplit = "1.0"

server/src/handlers/http.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ mod llm;
4545
mod logstream;
4646
mod middleware;
4747
mod oidc;
48+
mod otel;
4849
mod query;
4950
mod rbac;
5051
mod role;

server/src/handlers/http/ingest.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ use crate::handlers::{
3434
use crate::metadata::STREAM_INFO;
3535
use crate::utils::header_parsing::{collect_labelled_headers, ParseHeaderError};
3636

37-
use super::kinesis;
3837
use super::logstream::error::CreateStreamError;
38+
use super::{kinesis, otel};
3939

4040
// Handler for POST /api/v1/ingest
4141
// ingests events by extracting stream name from header
@@ -67,7 +67,7 @@ async fn flatten_and_push_logs(
6767
let log_source: String = log_source.to_str().unwrap().to_owned();
6868
match log_source.as_str() {
6969
LOG_SOURCE_KINESIS => json = kinesis::flatten_kinesis_logs(&body),
70-
LOG_SOURCE_OTEL => {}
70+
LOG_SOURCE_OTEL => json = otel::flatten_otel_logs(&body),
7171
_ => {
7272
log::warn!("Unknown log source: {}", log_source);
7373
push_logs(stream_name.to_string(), req.clone(), body).await?;

0 commit comments

Comments
 (0)