@@ -24,9 +24,6 @@ use arrow_array::RecordBatch;
2424use  bytes:: Bytes ; 
2525use  chrono:: Utc ; 
2626use  http:: StatusCode ; 
27- use  opentelemetry_proto:: tonic:: logs:: v1:: LogsData ; 
28- use  opentelemetry_proto:: tonic:: metrics:: v1:: MetricsData ; 
29- use  opentelemetry_proto:: tonic:: trace:: v1:: TracesData ; 
3027use  serde_json:: Value ; 
3128
3229use  crate :: event; 
@@ -35,9 +32,6 @@ use crate::event::format::{json, EventFormat, LogSource};
3532use  crate :: handlers:: { LOG_SOURCE_KEY ,  STREAM_NAME_HEADER_KEY } ; 
3633use  crate :: metadata:: SchemaVersion ; 
3734use  crate :: option:: Mode ; 
38- use  crate :: otel:: logs:: flatten_otel_logs; 
39- use  crate :: otel:: metrics:: flatten_otel_metrics; 
40- use  crate :: otel:: traces:: flatten_otel_traces; 
4135use  crate :: parseable:: { StreamNotFound ,  PARSEABLE } ; 
4236use  crate :: storage:: { ObjectStorageError ,  StreamType } ; 
4337use  crate :: utils:: header_parsing:: ParseHeaderError ; 
@@ -69,6 +63,14 @@ pub async fn ingest(req: HttpRequest, Json(json): Json<Value>) -> Result<HttpRes
6963        . get ( LOG_SOURCE_KEY ) 
7064        . and_then ( |h| h. to_str ( ) . ok ( ) ) 
7165        . map_or ( LogSource :: default ( ) ,  LogSource :: from) ; 
66+ 
67+     if  matches ! ( 
68+         log_source, 
69+         LogSource :: OtelLogs  | LogSource :: OtelMetrics  | LogSource :: OtelTraces 
70+     )  { 
71+         return  Err ( PostError :: OtelNotSupported ) ; 
72+     } 
73+ 
7274    PARSEABLE 
7375        . get_stream ( & stream_name) ?
7476        . flatten_and_push_logs ( json,  & log_source) 
@@ -125,13 +127,11 @@ pub async fn handle_otel_logs_ingestion(
125127    PARSEABLE 
126128        . create_stream_if_not_exists ( & stream_name,  StreamType :: UserDefined ,  LogSource :: OtelLogs ) 
127129        . await ?; 
128-     let  stream = PARSEABLE . get_stream ( & stream_name) ?; 
129130
130-     //custom flattening required for otel logs 
131-     let  logs:  LogsData  = serde_json:: from_value ( json) ?; 
132-     for  record in  flatten_otel_logs ( & logs)  { 
133-         stream. push_logs ( record,  & log_source) . await ?; 
134-     } 
131+     PARSEABLE 
132+         . get_stream ( & stream_name) ?
133+         . flatten_and_push_logs ( json,  & log_source) 
134+         . await ?; 
135135
136136    Ok ( HttpResponse :: Ok ( ) . finish ( ) ) 
137137} 
@@ -161,13 +161,11 @@ pub async fn handle_otel_metrics_ingestion(
161161            LogSource :: OtelMetrics , 
162162        ) 
163163        . await ?; 
164-     let  stream = PARSEABLE . get_stream ( & stream_name) ?; 
165164
166-     //custom flattening required for otel metrics 
167-     let  metrics:  MetricsData  = serde_json:: from_value ( json) ?; 
168-     for  record in  flatten_otel_metrics ( metrics)  { 
169-         stream. push_logs ( record,  & log_source) . await ?; 
170-     } 
165+     PARSEABLE 
166+         . get_stream ( & stream_name) ?
167+         . flatten_and_push_logs ( json,  & log_source) 
168+         . await ?; 
171169
172170    Ok ( HttpResponse :: Ok ( ) . finish ( ) ) 
173171} 
@@ -194,13 +192,11 @@ pub async fn handle_otel_traces_ingestion(
194192    PARSEABLE 
195193        . create_stream_if_not_exists ( & stream_name,  StreamType :: UserDefined ,  LogSource :: OtelTraces ) 
196194        . await ?; 
197-     let  stream = PARSEABLE . get_stream ( & stream_name) ?; 
198195
199-     //custom flattening required for otel traces 
200-     let  traces:  TracesData  = serde_json:: from_value ( json) ?; 
201-     for  record in  flatten_otel_traces ( & traces)  { 
202-         stream. push_logs ( record,  & log_source) . await ?; 
203-     } 
196+     PARSEABLE 
197+         . get_stream ( & stream_name) ?
198+         . flatten_and_push_logs ( json,  & log_source) 
199+         . await ?; 
204200
205201    Ok ( HttpResponse :: Ok ( ) . finish ( ) ) 
206202} 
@@ -241,6 +237,14 @@ pub async fn post_event(
241237        . get ( LOG_SOURCE_KEY ) 
242238        . and_then ( |h| h. to_str ( ) . ok ( ) ) 
243239        . map_or ( LogSource :: default ( ) ,  LogSource :: from) ; 
240+ 
241+     if  matches ! ( 
242+         log_source, 
243+         LogSource :: OtelLogs  | LogSource :: OtelMetrics  | LogSource :: OtelTraces 
244+     )  { 
245+         return  Err ( PostError :: OtelNotSupported ) ; 
246+     } 
247+ 
244248    PARSEABLE 
245249        . get_stream ( & stream_name) ?
246250        . flatten_and_push_logs ( json,  & log_source) 
0 commit comments