1
1
// Copyright The OpenTelemetry Authors
2
2
// SPDX-License-Identifier: Apache-2.0
3
3
4
+ #include " opentelemetry/exporters/otlp/otlp_grpc_client_factory.h"
4
5
#include " opentelemetry/exporters/otlp/otlp_grpc_exporter_factory.h"
5
6
#include " opentelemetry/exporters/otlp/otlp_grpc_exporter_options.h"
6
7
#include " opentelemetry/exporters/otlp/otlp_grpc_log_record_exporter_factory.h"
@@ -41,10 +42,10 @@ opentelemetry::exporter::otlp::OtlpGrpcLogRecordExporterOptions log_opts;
41
42
std::shared_ptr<opentelemetry::sdk::trace::TracerProvider> tracer_provider;
42
43
std::shared_ptr<opentelemetry::sdk::logs::LoggerProvider> logger_provider;
43
44
44
- void InitTracer ()
45
+ void InitTracer (const std::shared_ptr<otlp::OtlpGrpcClient> &shared_client )
45
46
{
46
47
// Create OTLP exporter instance
47
- auto exporter = otlp::OtlpGrpcExporterFactory::Create (opts);
48
+ auto exporter = otlp::OtlpGrpcExporterFactory::Create (opts, shared_client );
48
49
auto processor = trace_sdk::SimpleSpanProcessorFactory::Create (std::move (exporter));
49
50
tracer_provider = trace_sdk::TracerProviderFactory::Create (std::move (processor));
50
51
@@ -66,10 +67,10 @@ void CleanupTracer()
66
67
trace::Provider::SetTracerProvider (none);
67
68
}
68
69
69
- void InitLogger ()
70
+ void InitLogger (const std::shared_ptr<otlp::OtlpGrpcClient> &shared_client )
70
71
{
71
72
// Create OTLP exporter instance
72
- auto exporter = otlp::OtlpGrpcLogRecordExporterFactory::Create (log_opts);
73
+ auto exporter = otlp::OtlpGrpcLogRecordExporterFactory::Create (log_opts, shared_client );
73
74
auto processor = logs_sdk::SimpleLogRecordProcessorFactory::Create (std::move (exporter));
74
75
logger_provider = logs_sdk::LoggerProviderFactory::Create (std::move (processor));
75
76
@@ -106,8 +107,11 @@ int main(int argc, char *argv[])
106
107
log_opts.ssl_credentials_cacert_path = argv[2 ];
107
108
}
108
109
}
109
- InitLogger ();
110
- InitTracer ();
110
+
111
+ std::shared_ptr<otlp::OtlpGrpcClient> shared_client = otlp::OtlpGrpcClientFactory::Create (opts);
112
+
113
+ InitLogger (shared_client);
114
+ InitTracer (shared_client);
111
115
foo_library ();
112
116
CleanupTracer ();
113
117
CleanupLogger ();
0 commit comments