userver: userver/tracing/opentelemetry.hpp Source File
Loading...
Searching...
No Matches
opentelemetry.hpp
1#pragma once
2
3#include <string>
4
5#include <userver/utils/expected.hpp>
6#include <userver/utils/string_literal.hpp>
7#include <userver/utils/strong_typedef.hpp>
8
9USERVER_NAMESPACE_BEGIN
10
11namespace tracing::opentelemetry {
12
13inline constexpr std::size_t kTraceIdSize = 32;
14inline constexpr std::size_t kSpanIdSize = 16;
15
17 std::string_view version;
18 std::string_view trace_id;
19 std::string_view span_id;
20 std::string_view trace_flags;
21};
22
23utils::expected<TraceParentDataView, USERVER_NAMESPACE::utils::StringLiteral> ExtractTraceParentDataView(
24 std::string_view trace_parent
25) noexcept;
26
27utils::expected<std::string, std::string>
28BuildTraceParentHeader(std::string_view trace_id, std::string_view span_id, std::string_view trace_flags);
29
30} // namespace tracing::opentelemetry
31
32USERVER_NAMESPACE_END