diff --git a/src/tracer.cpp b/src/tracer.cpp index dfd81d6e..4dbcf6a2 100644 --- a/src/tracer.cpp +++ b/src/tracer.cpp @@ -241,6 +241,13 @@ Tracer::Tracer(TracerOptions options, std::shared_ptr writer, options.service, traceTagsPropagationMaxLength(options, *logger_)}); } +Tracer::~Tracer() { + try { + Close(); + } catch (...) { + } +} + std::unique_ptr Tracer::StartSpanWithOptions(ot::string_view operation_name, const ot::StartSpanOptions &options) const noexcept try { diff --git a/src/tracer.h b/src/tracer.h index 4439f084..1a8912be 100644 --- a/src/tracer.h +++ b/src/tracer.h @@ -45,6 +45,9 @@ class Tracer : public ot::Tracer, public std::enable_shared_from_this { Tracer() = delete; + // Destructs tracer and flushes internal buffers + virtual ~Tracer(); + // Starts a new span. std::unique_ptr StartSpanWithOptions(ot::string_view operation_name, const ot::StartSpanOptions &options) const