LCOV - code coverage report
Current view: top level - source/extensions/access_loggers/open_telemetry - config.cc (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 5 22 22.7 %
Date: 2024-01-05 06:35:25 Functions: 2 5 40.0 %

          Line data    Source code
       1             : #include "source/extensions/access_loggers/open_telemetry/config.h"
       2             : 
       3             : #include "envoy/extensions/access_loggers/open_telemetry/v3/logs_service.pb.h"
       4             : #include "envoy/extensions/access_loggers/open_telemetry/v3/logs_service.pb.validate.h"
       5             : #include "envoy/registry/registry.h"
       6             : #include "envoy/server/filter_config.h"
       7             : 
       8             : #include "source/common/common/assert.h"
       9             : #include "source/common/common/macros.h"
      10             : #include "source/common/grpc/async_client_impl.h"
      11             : #include "source/common/protobuf/protobuf.h"
      12             : #include "source/extensions/access_loggers/open_telemetry/access_log_impl.h"
      13             : #include "source/extensions/access_loggers/open_telemetry/access_log_proto_descriptors.h"
      14             : 
      15             : namespace Envoy {
      16             : namespace Extensions {
      17             : namespace AccessLoggers {
      18             : namespace OpenTelemetry {
      19             : 
      20             : // Singleton registration via macro defined in envoy/singleton/manager.h
      21             : SINGLETON_MANAGER_REGISTRATION(open_telemetry_access_logger_cache);
      22             : 
      23             : GrpcAccessLoggerCacheSharedPtr
      24           0 : getAccessLoggerCacheSingleton(Server::Configuration::CommonFactoryContext& context) {
      25           0 :   return context.singletonManager().getTyped<GrpcAccessLoggerCacheImpl>(
      26           0 :       SINGLETON_MANAGER_REGISTERED_NAME(open_telemetry_access_logger_cache), [&context] {
      27           0 :         return std::make_shared<GrpcAccessLoggerCacheImpl>(
      28           0 :             context.clusterManager().grpcAsyncClientManager(), context.serverScope(),
      29           0 :             context.threadLocal(), context.localInfo());
      30           0 :       });
      31           0 : }
      32             : 
      33             : ::Envoy::AccessLog::InstanceSharedPtr
      34             : AccessLogFactory::createAccessLogInstance(const Protobuf::Message& config,
      35             :                                           ::Envoy::AccessLog::FilterPtr&& filter,
      36           0 :                                           Server::Configuration::FactoryContext& context) {
      37           0 :   validateProtoDescriptors();
      38             : 
      39           0 :   const auto& proto_config = MessageUtil::downcastAndValidate<
      40           0 :       const envoy::extensions::access_loggers::open_telemetry::v3::OpenTelemetryAccessLogConfig&>(
      41           0 :       config, context.messageValidationVisitor());
      42             : 
      43           0 :   return std::make_shared<AccessLog>(std::move(filter), proto_config,
      44           0 :                                      context.serverFactoryContext().threadLocal(),
      45           0 :                                      getAccessLoggerCacheSingleton(context.serverFactoryContext()));
      46           0 : }
      47             : 
      48           2 : ProtobufTypes::MessagePtr AccessLogFactory::createEmptyConfigProto() {
      49           2 :   return std::make_unique<
      50           2 :       envoy::extensions::access_loggers::open_telemetry::v3::OpenTelemetryAccessLogConfig>();
      51           2 : }
      52             : 
      53          42 : std::string AccessLogFactory::name() const { return "envoy.access_loggers.open_telemetry"; }
      54             : 
      55             : /**
      56             :  * Static registration for the OpenTelemetry (gRPC) access log. @see RegisterFactory.
      57             :  */
      58             : REGISTER_FACTORY(AccessLogFactory,
      59             :                  Envoy::AccessLog::AccessLogInstanceFactory){"envoy.open_telemetry_access_log"};
      60             : 
      61             : } // namespace OpenTelemetry
      62             : } // namespace AccessLoggers
      63             : } // namespace Extensions
      64             : } // namespace Envoy

Generated by: LCOV version 1.15