LCOV - code coverage report
Current view: top level - source/extensions/stat_sinks/metrics_service - config.cc (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 5 25 20.0 %
Date: 2024-01-05 06:35:25 Functions: 2 3 66.7 %

          Line data    Source code
       1             : #include "source/extensions/stat_sinks/metrics_service/config.h"
       2             : 
       3             : #include "envoy/config/metrics/v3/metrics_service.pb.h"
       4             : #include "envoy/config/metrics/v3/metrics_service.pb.validate.h"
       5             : #include "envoy/registry/registry.h"
       6             : 
       7             : #include "source/common/common/assert.h"
       8             : #include "source/common/config/utility.h"
       9             : #include "source/common/grpc/async_client_impl.h"
      10             : #include "source/common/network/resolver_impl.h"
      11             : #include "source/extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.h"
      12             : #include "source/extensions/stat_sinks/metrics_service/grpc_metrics_service_impl.h"
      13             : 
      14             : namespace Envoy {
      15             : namespace Extensions {
      16             : namespace StatSinks {
      17             : namespace MetricsService {
      18             : 
      19             : Stats::SinkPtr
      20             : MetricsServiceSinkFactory::createStatsSink(const Protobuf::Message& config,
      21           0 :                                            Server::Configuration::ServerFactoryContext& server) {
      22           0 :   validateProtoDescriptors();
      23             : 
      24           0 :   const auto& sink_config =
      25           0 :       MessageUtil::downcastAndValidate<const envoy::config::metrics::v3::MetricsServiceConfig&>(
      26           0 :           config, server.messageValidationContext().staticValidationVisitor());
      27           0 :   const auto& grpc_service = sink_config.grpc_service();
      28           0 :   THROW_IF_NOT_OK(Config::Utility::checkTransportVersion(sink_config));
      29           0 :   ENVOY_LOG(debug, "Metrics Service gRPC service configuration: {}", grpc_service.DebugString());
      30             : 
      31           0 :   std::shared_ptr<GrpcMetricsStreamer<envoy::service::metrics::v3::StreamMetricsMessage,
      32           0 :                                       envoy::service::metrics::v3::StreamMetricsResponse>>
      33           0 :       grpc_metrics_streamer = std::make_shared<GrpcMetricsStreamerImpl>(
      34           0 :           server.clusterManager().grpcAsyncClientManager().getOrCreateRawAsyncClient(
      35           0 :               grpc_service, server.scope(), false),
      36           0 :           server.localInfo());
      37             : 
      38           0 :   return std::make_unique<MetricsServiceSink<envoy::service::metrics::v3::StreamMetricsMessage,
      39           0 :                                              envoy::service::metrics::v3::StreamMetricsResponse>>(
      40           0 :       grpc_metrics_streamer,
      41           0 :       PROTOBUF_GET_WRAPPED_OR_DEFAULT(sink_config, report_counters_as_deltas, false),
      42           0 :       sink_config.emit_tags_as_labels(), sink_config.histogram_emit_mode());
      43           0 : }
      44             : 
      45           2 : ProtobufTypes::MessagePtr MetricsServiceSinkFactory::createEmptyConfigProto() {
      46           2 :   return std::unique_ptr<envoy::config::metrics::v3::MetricsServiceConfig>(
      47           2 :       std::make_unique<envoy::config::metrics::v3::MetricsServiceConfig>());
      48           2 : }
      49             : 
      50          42 : std::string MetricsServiceSinkFactory::name() const { return MetricsServiceName; }
      51             : 
      52             : /**
      53             :  * Static registration for the this sink factory. @see RegisterFactory.
      54             :  */
      55             : LEGACY_REGISTER_FACTORY(MetricsServiceSinkFactory, Server::Configuration::StatsSinkFactory,
      56             :                         "envoy.metrics_service");
      57             : 
      58             : } // namespace MetricsService
      59             : } // namespace StatSinks
      60             : } // namespace Extensions
      61             : } // namespace Envoy

Generated by: LCOV version 1.15