LCOV - code coverage report
Current view: top level - source/extensions/tracers/opentelemetry - http_trace_exporter.h (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 0 1 0.0 %
Date: 2024-01-05 06:35:25 Functions: 0 1 0.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include "envoy/config/core/v3/http_service.pb.h"
       4             : #include "envoy/upstream/cluster_manager.h"
       5             : 
       6             : #include "source/common/common/logger.h"
       7             : #include "source/common/http/async_client_impl.h"
       8             : #include "source/common/http/async_client_utility.h"
       9             : #include "source/common/http/headers.h"
      10             : #include "source/common/http/message_impl.h"
      11             : #include "source/common/http/utility.h"
      12             : #include "source/extensions/tracers/opentelemetry/trace_exporter.h"
      13             : 
      14             : #include "opentelemetry/proto/collector/trace/v1/trace_service.pb.h"
      15             : 
      16             : namespace Envoy {
      17             : namespace Extensions {
      18             : namespace Tracers {
      19             : namespace OpenTelemetry {
      20             : 
      21             : /**
      22             :  * Exporter for OTLP traces over HTTP.
      23             :  */
      24             : class OpenTelemetryHttpTraceExporter : public OpenTelemetryTraceExporter,
      25             :                                        public Http::AsyncClient::Callbacks {
      26             : public:
      27             :   OpenTelemetryHttpTraceExporter(Upstream::ClusterManager& cluster_manager,
      28             :                                  const envoy::config::core::v3::HttpService& http_service);
      29             : 
      30             :   bool log(const ExportTraceServiceRequest& request) override;
      31             : 
      32             :   // Http::AsyncClient::Callbacks.
      33             :   void onSuccess(const Http::AsyncClient::Request&, Http::ResponseMessagePtr&&) override;
      34             :   void onFailure(const Http::AsyncClient::Request&, Http::AsyncClient::FailureReason) override;
      35           0 :   void onBeforeFinalizeUpstreamSpan(Tracing::Span&, const Http::ResponseHeaderMap*) override {}
      36             : 
      37             : private:
      38             :   Upstream::ClusterManager& cluster_manager_;
      39             :   envoy::config::core::v3::HttpService http_service_;
      40             :   // Track active HTTP requests to be able to cancel them on destruction.
      41             :   Http::AsyncClientRequestTracker active_requests_;
      42             :   std::vector<std::pair<const Http::LowerCaseString, const std::string>> parsed_headers_to_add_;
      43             : };
      44             : 
      45             : } // namespace OpenTelemetry
      46             : } // namespace Tracers
      47             : } // namespace Extensions
      48             : } // namespace Envoy

Generated by: LCOV version 1.15