Skip to content

Commit 381c894

Browse files
authored
perf: [Geneva Exporter] Optimize encoding (#430)
1 parent 7b62f9e commit 381c894

File tree

1 file changed

+3
-4
lines changed
  • opentelemetry-exporter-geneva/geneva-uploader/src/payload_encoder

1 file changed

+3
-4
lines changed

opentelemetry-exporter-geneva/geneva-uploader/src/payload_encoder/otlp_encoder.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ impl OtlpEncoder {
9999
let (field_info, schema_id) =
100100
Self::determine_fields_and_schema_id(log_record, event_name_str);
101101

102-
let schema_entry = Self::create_schema(schema_id, field_info.as_slice());
103102
// 2. Encode row
104103
let row_buffer = self.write_row_data(log_record, &field_info);
105104
let level = log_record.severity_number as u8;
@@ -125,6 +124,7 @@ impl OtlpEncoder {
125124

126125
// 4. Add schema entry if not already present (multiple schemas per event_name batch)
127126
if !entry.schemas.iter().any(|s| s.id == schema_id) {
127+
let schema_entry = Self::create_schema(schema_id, field_info);
128128
entry.schemas.push(schema_entry);
129129
}
130130

@@ -246,9 +246,8 @@ impl OtlpEncoder {
246246
}
247247

248248
/// Create schema - always creates a new CentralSchemaEntry
249-
fn create_schema(schema_id: u64, field_info: &[FieldDef]) -> CentralSchemaEntry {
250-
let schema =
251-
BondEncodedSchema::from_fields("OtlpLogRecord", "telemetry", field_info.to_vec()); //TODO - use actual struct name and namespace
249+
fn create_schema(schema_id: u64, field_info: Vec<FieldDef>) -> CentralSchemaEntry {
250+
let schema = BondEncodedSchema::from_fields("OtlpLogRecord", "telemetry", field_info); //TODO - use actual struct name and namespace
252251

253252
let schema_bytes = schema.as_bytes();
254253
let schema_md5 = md5::compute(schema_bytes).0;

0 commit comments

Comments
 (0)