ClickHouse/src/Interpreters/OpenTelemetrySpanLog.h

49 lines
1.2 KiB
C++
Raw Normal View History

2020-08-20 20:59:40 +00:00
#pragma once
#include <Interpreters/SystemLog.h>
namespace DB
{
struct OpenTelemetrySpan
{
2020-08-27 18:44:20 +00:00
__uint128_t trace_id;
2020-08-20 20:59:40 +00:00
UInt64 span_id;
UInt64 parent_span_id;
std::string operation_name;
2020-11-19 16:55:56 +00:00
UInt64 start_time_us;
UInt64 finish_time_us;
2020-08-20 20:59:40 +00:00
Array attribute_names;
Array attribute_values;
// I don't understand how Links work, namely, which direction should they
// point to, and how they are related with parent_span_id, so no Links for
// now.
};
struct OpenTelemetrySpanLogElement : public OpenTelemetrySpan
{
OpenTelemetrySpanLogElement() = default;
OpenTelemetrySpanLogElement(const OpenTelemetrySpan & span)
: OpenTelemetrySpan(span) {}
2020-08-20 20:59:40 +00:00
static std::string name() { return "OpenTelemetrySpanLog"; }
static Block createBlock();
void appendToBlock(MutableColumns & columns) const;
};
// OpenTelemetry standartizes some Log data as well, so it's not just
// OpenTelemetryLog to avoid confusion.
class OpenTelemetrySpanLog : public SystemLog<OpenTelemetrySpanLogElement>
{
public:
using SystemLog<OpenTelemetrySpanLogElement>::SystemLog;
};
struct OpenTelemetrySpanHolder : public OpenTelemetrySpan
{
OpenTelemetrySpanHolder(const std::string & _operation_name);
~OpenTelemetrySpanHolder();
};
2020-08-20 20:59:40 +00:00
}