userver: userver/tracing/opentelemetry.hpp Source File
Loading...
Searching...
No Matches
opentelemetry.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/tracing/opentelemetry.hpp
4/// @brief OpenTelemetry traceparent header parsing and building.
5/// @ingroup userver_universal
6
7#include <string>
8
9#include <userver/utils/expected.hpp>
10#include <userver/utils/string_literal.hpp>
11#include <userver/utils/strong_typedef.hpp>
12
13USERVER_NAMESPACE_BEGIN
14
15/// @brief OpenTelemetry traceparent parsing and header building.
17
18inline constexpr std::size_t kTraceIdSize = 32;
19inline constexpr std::size_t kSpanIdSize = 16;
20
22 std::string_view version;
23 std::string_view trace_id;
24 std::string_view span_id;
25 std::string_view trace_flags;
26};
27
28utils::expected<TraceParentDataView, USERVER_NAMESPACE::utils::StringLiteral> ExtractTraceParentDataView(
29 std::string_view trace_parent
30) noexcept;
31
32utils::expected<std::string, std::string> BuildTraceParentHeader(
33 std::string_view trace_id,
34 std::string_view span_id,
35 std::string_view trace_flags
36);
37
38} // namespace tracing::opentelemetry
39
40USERVER_NAMESPACE_END