Skip to content

Commit 4defbe6

Browse files
committed
Refactor export process in user_events
1 parent 3d2bf3a commit 4defbe6

File tree

2 files changed

+36
-24
lines changed

2 files changed

+36
-24
lines changed

exporters/user_events/include/opentelemetry/exporters/user_events/logs/recordable.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,15 @@ class Recordable final : public opentelemetry::sdk::logs::Recordable
117117

118118
private:
119119
ehd::EventBuilder event_builder_;
120-
int level_index_;
120+
int64_t event_id_ = 0;
121+
nostd::string_view event_name_;
122+
int level_index_ = 0;
121123
size_t cs_part_b_bookmark_ = 0;
122124
size_t cs_part_b_bookmark_size_ = 0;
123125
size_t cs_part_c_bookmark_ = 0;
124126
size_t cs_part_c_bookmark_size_ = 0;
127+
uint_8 severity_ = 0;
128+
bool has_event_id_ = false;
125129
};
126130

127131
} // namespace logs

exporters/user_events/src/recordable.cc

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,50 +17,58 @@ namespace logs
1717

1818
namespace api_logs = opentelemetry::logs;
1919

20-
Recordable::Recordable() noexcept
21-
{
22-
event_builder_.Reset("OpenTelemetry-Logs");
23-
24-
utils::PopulateAttribute("__csver__", static_cast<uint16_t>(0x400), event_builder_);
25-
}
20+
Recordable::Recordable() noexcept {}
2621

2722
void Recordable::SetSeverity(api_logs::Severity severity) noexcept
2823
{
2924
uint8_t severity_value = static_cast<uint8_t>(severity);
30-
if (severity_value == 0 || severity_value > 24)
25+
if (severity_value > 24)
3126
{
3227
OTEL_INTERNAL_LOG_ERROR(
3328
"[user_events Log Exporter] Recordable: invalid severity value: " << severity_value);
34-
severity_value = 1;
29+
severity_value = 0;
3530
}
3631

32+
severity_ = severity_value;
3733
level_index_ = (severity_value - 1) >> 2;
38-
39-
cs_part_b_bookmark_size_ += 2;
40-
event_builder_.AddValue("severityNumber", static_cast<uint16_t>(severity_value),
41-
event_field_format_default);
42-
auto severity_text = api_logs::SeverityNumToText[static_cast<uint32_t>(severity_value)].data();
43-
event_builder_.AddString<char>("severityText", severity_text, event_field_format_default);
4434
}
4535

4636
void Recordable::SetBody(const opentelemetry::common::AttributeValue &message) noexcept
4737
{
48-
// Set intial bookmark size to 1 for body below.
49-
cs_part_b_bookmark_size_++;
38+
if (severity_ == 0)
39+
{
40+
OTEL_INTERNAL_LOG_ERROR("[user_events Log Exporter] Recordable: severity is not set.");
41+
return;
42+
}
43+
44+
auto event_name = !event_name_.empty() ? event_name_.data() : "OpenTelemetryLogs";
45+
46+
event_builder_.Reset(event_name);
47+
utils::PopulateAttribute("__csver__", static_cast<uint16_t>(0x400), event_builder_);
48+
5049
event_builder_.AddStruct("PartB", 1, 0, &cs_part_b_bookmark_);
5150
utils::PopulateAttribute("_typeName", "Log", event_builder_);
51+
52+
event_builder_.AddValue("severityNumber", static_cast<uint16_t>(severity_),
53+
event_field_format_default);
54+
auto severity_text = api_logs::SeverityNumToText[static_cast<uint32_t>(severity_value)].data();
55+
event_builder_.AddString<char>("severityText", severity_text, event_field_format_default);
56+
cs_part_b_bookmark_size_ = 4; // with the below body counted because it is available.
57+
58+
if (has_event_id_)
59+
{
60+
utils::PopulateAttribute("eventId", event_id_, event_builder_);
61+
cs_part_b_bookmark_size_++;
62+
}
63+
5264
utils::PopulateAttribute("body", message, event_builder_);
5365
}
5466

5567
void Recordable::SetEventId(int64_t id, nostd::string_view name) noexcept
5668
{
57-
cs_part_b_bookmark_size_++;
58-
utils::PopulateAttribute("eventId", id, event_builder_);
59-
if (!name.empty())
60-
{
61-
cs_part_b_bookmark_size_++;
62-
utils::PopulateAttribute("name", name, event_builder_);
63-
}
69+
has_event_id_ = true;
70+
event_id_.id_ = id;
71+
event_name_ = name;
6472
}
6573

6674
void Recordable::SetTraceId(const opentelemetry::trace::TraceId &trace_id) noexcept

0 commit comments

Comments
 (0)