| 43 | static constexpr std::string_view kLoggerName = "arrow-telemetry-test"; |
| 44 | |
| 45 | void SetUp() override { |
| 46 | auto maybe_env_var = arrow::internal::GetEnvVar(kLoggingEnvVar); |
| 47 | // The env variable is required to be set to obtain a valid logger, so if it hasn't |
| 48 | // been set in the environment then we do that here. |
| 49 | if (maybe_env_var.status().IsKeyError()) { |
| 50 | ASSERT_OK(arrow::internal::SetEnvVar(kLoggingEnvVar, "arrow_otlp_stderr")); |
| 51 | } |
| 52 | |
| 53 | // Implicitly sets up span processors + tracer provider |
| 54 | auto tracer = arrow::internal::tracing::GetTracer(); |
| 55 | ARROW_UNUSED(tracer); |
| 56 | |
| 57 | otel::context::propagation::GlobalTextMapPropagator::SetGlobalPropagator( |
| 58 | otel::nostd::shared_ptr<otel::context::propagation::TextMapPropagator>( |
| 59 | new otel::trace::propagation::HttpTraceContext())); |
| 60 | |
| 61 | ASSERT_OK(internal::InitializeOtelLoggerProvider()); |
| 62 | |
| 63 | auto logging_options = OtelLoggingOptions::Defaults(); |
| 64 | logging_options.severity_threshold = LogLevel::ARROW_TRACE; |
| 65 | logging_options.flush_severity = LogLevel::ARROW_TRACE; |
| 66 | ASSERT_OK_AND_ASSIGN(auto logger, |
| 67 | OtelLoggerProvider::MakeLogger(kLoggerName, logging_options)); |
| 68 | ASSERT_NE(logger, nullptr); |
| 69 | ASSERT_OK(util::LoggerRegistry::RegisterLogger(logger->name(), logger)); |
| 70 | } |
| 71 | |
| 72 | void TearDown() override { EXPECT_TRUE(internal::ShutdownOtelLoggerProvider()); } |
| 73 | }; |