Skip to content
Snippets Groups Projects

Enable head-based sampling and add some scripts for large scale deployment

Merged Zhiqiang Xie requested to merge zxie into main
4 files
+ 31
47
Compare changes
  • Side-by-side
  • Inline
Files
4
+ 21
39
@@ -25,13 +25,9 @@ namespace trace_sdk = opentelemetry::sdk::trace;
using opentelemetry::sdk::resource::Resource;
using opentelemetry::trace::TracerProvider;
inline void initStdoutOpenTelemetry() {
auto exporter = std::unique_ptr<trace_sdk::SpanExporter>(
new opentelemetry::exporter::trace::OStreamSpanExporter);
auto processor = std::unique_ptr<trace_sdk::SpanProcessor>(
new trace_sdk::SimpleSpanProcessor(std::move(exporter)));
inline void initNoopOpenTelemetry() {
auto provider = nostd::shared_ptr<TracerProvider>(
new trace_sdk::TracerProvider(std::move(processor)));
new opentelemetry::trace::NoopTracerProvider());
// Set the global trace provider
trace_api::Provider::SetTracerProvider(provider);
@@ -40,30 +36,33 @@ inline void initStdoutOpenTelemetry() {
initGrpcPropagation();
}
inline void initNoopOpenTelemetry() {
auto provider = nostd::shared_ptr<TracerProvider>(
new opentelemetry::trace::NoopTracerProvider());
inline void initTracer(std::unique_ptr<trace_sdk::SpanExporter>& exporter) {
auto processor = std::unique_ptr<trace_sdk::SpanProcessor>(
new trace_sdk::SimpleSpanProcessor(std::move(exporter)));
std::vector<std::unique_ptr<trace_sdk::SpanProcessor>> processors;
processors.push_back(std::move(processor));
auto context = std::make_shared<trace_sdk::TracerContext>(
std::move(processors), Resource::Create({}),
std::unique_ptr<trace_sdk::Sampler>(new trace_sdk::ParentBasedSampler(
std::make_shared<trace_sdk::AlwaysOnSampler>())));
auto provider = opentelemetry::nostd::shared_ptr<TracerProvider>(
new trace_sdk::TracerProvider(context));
// Set the global trace provider
trace_api::Provider::SetTracerProvider(provider);
// Set the global propagator
initGrpcPropagation();
}
inline void initStdoutOpenTelemetry() {
auto exporter = std::unique_ptr<trace_sdk::SpanExporter>(
new opentelemetry::exporter::trace::OStreamSpanExporter);
initTracer(exporter);
}
inline void initLocalMemoryOpenTelemetry() {
auto exporter = std::unique_ptr<trace_sdk::SpanExporter>(
new opentelemetry::exporter::memory::InMemorySpanExporter);
auto processor = std::unique_ptr<trace_sdk::SpanProcessor>(
new trace_sdk::SimpleSpanProcessor(std::move(exporter)));
auto provider = nostd::shared_ptr<TracerProvider>(
new trace_sdk::TracerProvider(std::move(processor)));
// Set the global trace provider
trace_api::Provider::SetTracerProvider(provider);
// Set the global propagator
initGrpcPropagation();
initTracer(exporter);
}
inline void initJaegerOpenTelemetry(std::string exporter_ip,
@@ -75,24 +74,7 @@ inline void initJaegerOpenTelemetry(std::string exporter_ip,
opentelemetry::exporter::jaeger::TransportFormat::kThriftUdpCompact;
auto exporter = std::unique_ptr<trace_sdk::SpanExporter>(
new opentelemetry::exporter::jaeger::JaegerExporter(opts));
auto processor = std::unique_ptr<trace_sdk::SpanProcessor>(
new trace_sdk::SimpleSpanProcessor(std::move(exporter)));
std::vector<std::unique_ptr<trace_sdk::SpanProcessor>> processors;
processors.push_back(std::move(processor));
// Default is an always-on sampler.
auto context = std::make_shared<trace_sdk::TracerContext>(
std::move(processors), Resource::Create({}),
std::unique_ptr<trace_sdk::Sampler>(new trace_sdk::ParentBasedSampler(
std::make_shared<trace_sdk::AlwaysOnSampler>())));
auto provider = opentelemetry::nostd::shared_ptr<TracerProvider>(
new trace_sdk::TracerProvider(context));
// Set the global trace provider
trace_api::Provider::SetTracerProvider(provider);
// Set the global propagator
initGrpcPropagation();
initTracer(exporter);
}
} // namespace hindsightgrpc
Loading