Skip to content

Commit

Permalink
out_opentelemetry: logs: refactor keys lookup
Browse files Browse the repository at this point in the history
Signed-off-by: Eduardo Silva <eduardo@calyptia.com>
  • Loading branch information
edsiper committed Jun 7, 2024
1 parent 7a27bcf commit b8393bd
Showing 1 changed file with 80 additions and 55 deletions.
135 changes: 80 additions & 55 deletions plugins/out_opentelemetry/opentelemetry_logs.c
Original file line number Diff line number Diff line change
Expand Up @@ -293,28 +293,36 @@ static int append_v1_logs_metadata(struct opentelemetry_context *ctx,

/* ObservedTimestamp */
ra_val = flb_ra_get_value_object(ctx->ra_log_meta_otlp_observed_ts, *event->metadata);
if (ra_val != NULL && ra_val->o.type == MSGPACK_OBJECT_POSITIVE_INTEGER) {
log_record->observed_time_unix_nano = ra_val->o.via.u64;
if (ra_val != NULL) {
if (ra_val->o.type == MSGPACK_OBJECT_POSITIVE_INTEGER) {
log_record->observed_time_unix_nano = ra_val->o.via.u64;
}
flb_ra_key_value_destroy(ra_val);
}
else if (ctx->ra_observed_timestamp_metadata) {
ra_val = flb_ra_get_value_object(ctx->ra_observed_timestamp_metadata, *event->metadata);
if (ra_val != NULL && ra_val->o.type == MSGPACK_OBJECT_POSITIVE_INTEGER) {
log_record->observed_time_unix_nano = ra_val->o.via.u64;
if (ra_val != NULL) {
if (ra_val->o.type == MSGPACK_OBJECT_POSITIVE_INTEGER) {
log_record->observed_time_unix_nano = ra_val->o.via.u64;
}
flb_ra_key_value_destroy(ra_val);
}
}

/* Timestamp */
ra_val = flb_ra_get_value_object(ctx->ra_log_meta_otlp_timestamp, *event->metadata);
if (ra_val != NULL && ra_val->o.type == MSGPACK_OBJECT_POSITIVE_INTEGER) {
log_record->time_unix_nano = ra_val->o.via.u64;
if (ra_val != NULL) {
if (ra_val->o.type == MSGPACK_OBJECT_POSITIVE_INTEGER) {
log_record->time_unix_nano = ra_val->o.via.u64;
}
flb_ra_key_value_destroy(ra_val);
}
else if (ctx->ra_timestamp_metadata) {
ra_val = flb_ra_get_value_object(ctx->ra_timestamp_metadata, *event->metadata);
if (ra_val != NULL && ra_val->o.type == MSGPACK_OBJECT_POSITIVE_INTEGER) {
log_record->time_unix_nano = ra_val->o.via.u64;
if (ra_val != NULL) {
if (ra_val->o.type == MSGPACK_OBJECT_POSITIVE_INTEGER) {
log_record->time_unix_nano = ra_val->o.via.u64;
}
flb_ra_key_value_destroy(ra_val);
}
else {
Expand All @@ -324,38 +332,44 @@ static int append_v1_logs_metadata(struct opentelemetry_context *ctx,

/* SeverityNumber */
ra_val = flb_ra_get_value_object(ctx->ra_log_meta_otlp_severity_number, *event->metadata);
if (ra_val != NULL && ra_val->o.type == MSGPACK_OBJECT_POSITIVE_INTEGER &&
is_valid_severity_number(ra_val->o.via.u64) == FLB_TRUE) {
log_record->severity_number = ra_val->o.via.u64;
if (ra_val != NULL) {
if (ra_val->o.type == MSGPACK_OBJECT_POSITIVE_INTEGER && is_valid_severity_number(ra_val->o.via.u64)) {
log_record->severity_number = ra_val->o.via.u64;
}
flb_ra_key_value_destroy(ra_val);
}
else if (ctx->ra_severity_number_metadata) {
ra_val = flb_ra_get_value_object(ctx->ra_severity_number_metadata, *event->metadata);
if (ra_val != NULL && ra_val->o.type == MSGPACK_OBJECT_POSITIVE_INTEGER &&
is_valid_severity_number(ra_val->o.via.u64) == FLB_TRUE) {
log_record->severity_number = ra_val->o.via.u64;
if (ra_val != NULL) {
if (ra_val->o.type == MSGPACK_OBJECT_POSITIVE_INTEGER && is_valid_severity_number(ra_val->o.via.u64)) {
log_record->severity_number = ra_val->o.via.u64;
}
flb_ra_key_value_destroy(ra_val);
}
}

/* SeverityText */
ra_val = flb_ra_get_value_object(ctx->ra_log_meta_otlp_severity_text, *event->metadata);
if (ra_val != NULL && ra_val->o.type == MSGPACK_OBJECT_STR &&
is_valid_severity_text(ra_val->o.via.str.ptr, ra_val->o.via.str.size) == FLB_TRUE) {
log_record->severity_text = flb_calloc(1, ra_val->o.via.str.size + 1);
if (log_record->severity_text) {
strncpy(log_record->severity_text, ra_val->o.via.str.ptr, ra_val->o.via.str.size);
if (ra_val != NULL) {
if (ra_val->o.type == MSGPACK_OBJECT_STR &&
is_valid_severity_text(ra_val->o.via.str.ptr, ra_val->o.via.str.size)) {

log_record->severity_text = flb_calloc(1, ra_val->o.via.str.size + 1);
if (log_record->severity_text) {
strncpy(log_record->severity_text, ra_val->o.via.str.ptr, ra_val->o.via.str.size);
}
}
flb_ra_key_value_destroy(ra_val);

}
else if (ctx->ra_severity_text_metadata) {
ra_val = flb_ra_get_value_object(ctx->ra_severity_text_metadata, *event->metadata);
if (ra_val != NULL && ra_val->o.type == MSGPACK_OBJECT_STR &&
is_valid_severity_text(ra_val->o.via.str.ptr, ra_val->o.via.str.size) == FLB_TRUE) {
log_record->severity_text = flb_calloc(1, ra_val->o.via.str.size+1);
if (log_record->severity_text) {
strncpy(log_record->severity_text, ra_val->o.via.str.ptr, ra_val->o.via.str.size);
if (ra_val != NULL) {
if (ra_val->o.type == MSGPACK_OBJECT_STR &&
is_valid_severity_text(ra_val->o.via.str.ptr, ra_val->o.via.str.size)) {
log_record->severity_text = flb_calloc(1, ra_val->o.via.str.size + 1);
if (log_record->severity_text) {
strncpy(log_record->severity_text, ra_val->o.via.str.ptr, ra_val->o.via.str.size);
}
}
flb_ra_key_value_destroy(ra_val);
}
Expand All @@ -367,33 +381,37 @@ static int append_v1_logs_metadata(struct opentelemetry_context *ctx,

/* Attributes */
ra_val = flb_ra_get_value_object(ctx->ra_log_meta_otlp_attr, *event->metadata);
if (ra_val != NULL && ra_val->o.type == MSGPACK_OBJECT_MAP) {
if (log_record->attributes != NULL) {
otlp_kvarray_destroy(log_record->attributes,
log_record->n_attributes);
if (ra_val != NULL) {
if (ra_val->o.type == MSGPACK_OBJECT_MAP) {
if (log_record->attributes != NULL) {
otlp_kvarray_destroy(log_record->attributes, log_record->n_attributes);
}
log_record->attributes = msgpack_map_to_otlp_kvarray(&ra_val->o, &log_record->n_attributes);
}
log_record->attributes = msgpack_map_to_otlp_kvarray(&ra_val->o, &log_record->n_attributes);
flb_ra_key_value_destroy(ra_val);
}
else if (ctx->ra_attributes_metadata) {
ra_val = flb_ra_get_value_object(ctx->ra_attributes_metadata, *event->metadata);
if (ra_val != NULL && ra_val->o.type == MSGPACK_OBJECT_MAP) {
if (log_record->attributes != NULL) {
otlp_kvarray_destroy(log_record->attributes,
log_record->n_attributes);
if (ra_val != NULL) {
if (ra_val->o.type == MSGPACK_OBJECT_MAP) {
if (log_record->attributes != NULL) {
otlp_kvarray_destroy(log_record->attributes, log_record->n_attributes);
}
log_record->attributes = msgpack_map_to_otlp_kvarray(&ra_val->o, &log_record->n_attributes);
}
log_record->attributes = msgpack_map_to_otlp_kvarray(&ra_val->o, &log_record->n_attributes);
flb_ra_key_value_destroy(ra_val);
}
}

/* TraceId */
ra_val = flb_ra_get_value_object(ctx->ra_log_meta_otlp_trace_id, *event->metadata);
if (ra_val != NULL && ra_val->o.type == MSGPACK_OBJECT_BIN) {
log_record->trace_id.data = flb_calloc(1, ra_val->o.via.bin.size);
if (log_record->trace_id.data) {
memcpy(log_record->trace_id.data, ra_val->o.via.bin.ptr, ra_val->o.via.bin.size);
log_record->trace_id.len = ra_val->o.via.bin.size;
if (ra_val != NULL) {
if (ra_val->o.type == MSGPACK_OBJECT_BIN) {
log_record->trace_id.data = flb_calloc(1, ra_val->o.via.bin.size);
if (log_record->trace_id.data) {
memcpy(log_record->trace_id.data, ra_val->o.via.bin.ptr, ra_val->o.via.bin.size);
log_record->trace_id.len = ra_val->o.via.bin.size;
}
}
flb_ra_key_value_destroy(ra_val);
}
Expand All @@ -405,42 +423,49 @@ static int append_v1_logs_metadata(struct opentelemetry_context *ctx,
memcpy(log_record->trace_id.data, ra_val->o.via.bin.ptr, ra_val->o.via.bin.size);
log_record->trace_id.len = ra_val->o.via.bin.size;
}
flb_ra_key_value_destroy(ra_val);
}
}

/* SpanId */
ra_val = flb_ra_get_value_object(ctx->ra_log_meta_otlp_span_id, *event->metadata);
if (ra_val != NULL && ra_val->o.type == MSGPACK_OBJECT_BIN) {
log_record->span_id.data = flb_calloc(1, ra_val->o.via.bin.size);
if (log_record->span_id.data) {
memcpy(log_record->span_id.data, ra_val->o.via.bin.ptr, ra_val->o.via.bin.size);
log_record->span_id.len = ra_val->o.via.bin.size;
if (ra_val != NULL) {
if (ra_val->o.type == MSGPACK_OBJECT_BIN) {
log_record->span_id.data = flb_calloc(1, ra_val->o.via.bin.size);
if (log_record->span_id.data) {
memcpy(log_record->span_id.data, ra_val->o.via.bin.ptr, ra_val->o.via.bin.size);
log_record->span_id.len = ra_val->o.via.bin.size;
}
}
flb_ra_key_value_destroy(ra_val);
}
else if (ctx->ra_span_id_metadata) {
ra_val = flb_ra_get_value_object(ctx->ra_span_id_metadata, *event->metadata);
if (ra_val != NULL && ra_val->o.type == MSGPACK_OBJECT_BIN) {
log_record->span_id.data = flb_calloc(1, ra_val->o.via.bin.size);
if (log_record->span_id.data) {
memcpy(log_record->span_id.data, ra_val->o.via.bin.ptr, ra_val->o.via.bin.size);
log_record->span_id.len = ra_val->o.via.bin.size;
if (ra_val != NULL) {
if (ra_val->o.type == MSGPACK_OBJECT_BIN) {
log_record->span_id.data = flb_calloc(1, ra_val->o.via.bin.size);
if (log_record->span_id.data) {
memcpy(log_record->span_id.data, ra_val->o.via.bin.ptr, ra_val->o.via.bin.size);
log_record->span_id.len = ra_val->o.via.bin.size;
}
}
flb_ra_key_value_destroy(ra_val);
}
}

/* TraceFlags */
ra_val = flb_ra_get_value_object(ctx->ra_trace_flags_metadata, *event->metadata);
if (ra_val != NULL && ra_val->o.type == MSGPACK_OBJECT_POSITIVE_INTEGER) {
log_record->flags = (uint32_t)ra_val->o.via.u64;
if (ra_val != NULL) {
if (ra_val->o.type == MSGPACK_OBJECT_POSITIVE_INTEGER) {
log_record->flags = (uint32_t) ra_val->o.via.u64;
}
flb_ra_key_value_destroy(ra_val);
}
else if (ctx->ra_trace_flags_metadata) {
ra_val = flb_ra_get_value_object(ctx->ra_trace_flags_metadata, *event->metadata);
if (ra_val != NULL && ra_val->o.type == MSGPACK_OBJECT_POSITIVE_INTEGER) {
log_record->flags = (uint32_t)ra_val->o.via.u64;
if (ra_val != NULL) {
if (ra_val->o.type == MSGPACK_OBJECT_POSITIVE_INTEGER) {
log_record->flags = (uint32_t) ra_val->o.via.u64;
}
flb_ra_key_value_destroy(ra_val);
}
}
Expand Down

0 comments on commit b8393bd

Please sign in to comment.