From b454c8f18b1a3879b5df55ae571e2bed3e29063e Mon Sep 17 00:00:00 2001 From: Jose Nino Date: Wed, 29 Jan 2020 14:50:40 -0800 Subject: [PATCH 1/3] metrics service: force link v2 config Signed-off-by: Jose Nino --- source/extensions/stat_sinks/metrics_service/BUILD | 1 + .../grpc_metrics_proto_descriptors.cc | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/source/extensions/stat_sinks/metrics_service/BUILD b/source/extensions/stat_sinks/metrics_service/BUILD index 3ef7e3898c53c..4efe10762e443 100644 --- a/source/extensions/stat_sinks/metrics_service/BUILD +++ b/source/extensions/stat_sinks/metrics_service/BUILD @@ -33,6 +33,7 @@ envoy_cc_library( deps = [ "//source/common/common:assert_lib", "//source/common/protobuf", + "@envoy_api//envoy/config/metrics/v2:pkg_cc_proto", "@envoy_api//envoy/service/metrics/v2:pkg_cc_proto", ], ) diff --git a/source/extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.cc b/source/extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.cc index 73fe36e4a7f21..036e7278cc8a8 100644 --- a/source/extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.cc +++ b/source/extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.cc @@ -1,6 +1,7 @@ #include "extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.h" #include "envoy/service/metrics/v2/metrics_service.pb.h" +#include "envoy/config/metrics/v2/metrics_service.pb.h" #include "common/common/assert.h" #include "common/common/fmt.h" @@ -13,12 +14,22 @@ namespace MetricsService { void validateProtoDescriptors() { // https://github.com/envoyproxy/envoy/issues/9639 - const envoy::service::metrics::v2::StreamMetricsMessage _dummy_v2; + const envoy::service::metrics::v2::StreamMetricsMessage _dummy_service_v2; + // https://github.com/envoyproxy/envoy/pull/9618 made it necessary to register the previous + // version's config descriptor by calling ApiTypeOracle::getEarlierVersionDescriptor which has an + // assertion for nullptr types. + const envoy::config::metrics::v2::MetricsServiceConfig _dummy_config_v2; const auto method = "envoy.service.metrics.v2.MetricsService.StreamMetrics"; RELEASE_ASSERT(Protobuf::DescriptorPool::generated_pool()->FindMethodByName(method) != nullptr, ""); + + const auto config = "envoy.config.metrics.v2.MetricsServiceConfig"; + + // Keeping this as an ASSERT because ApiTypeOracle::getEarlierVersionDescriptor also has an + // ASSERT. + ASSERT(Protobuf::DescriptorPool::generated_pool()->FindMessageTypeByName(config) != nullptr, ""); }; } // namespace MetricsService } // namespace StatSinks From f547e7c6cd2bb0d00d129f7eebf11b7f6db5ac61 Mon Sep 17 00:00:00 2001 From: Jose Nino Date: Wed, 29 Jan 2020 23:37:25 -0800 Subject: [PATCH 2/3] fmt Signed-off-by: Jose Nino --- .../metrics_service/grpc_metrics_proto_descriptors.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.cc b/source/extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.cc index 036e7278cc8a8..88db58cbf179e 100644 --- a/source/extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.cc +++ b/source/extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.cc @@ -1,7 +1,7 @@ #include "extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.h" -#include "envoy/service/metrics/v2/metrics_service.pb.h" #include "envoy/config/metrics/v2/metrics_service.pb.h" +#include "envoy/service/metrics/v2/metrics_service.pb.h" #include "common/common/assert.h" #include "common/common/fmt.h" From 698818b4e262d18189c28ddaa12a11e6b04e4a94 Mon Sep 17 00:00:00 2001 From: Jose Nino Date: Wed, 5 Feb 2020 14:41:35 -0800 Subject: [PATCH 3/3] comments Signed-off-by: Jose Nino --- source/extensions/stat_sinks/metrics_service/BUILD | 1 + .../metrics_service/grpc_metrics_proto_descriptors.cc | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/source/extensions/stat_sinks/metrics_service/BUILD b/source/extensions/stat_sinks/metrics_service/BUILD index 4efe10762e443..c26135a750494 100644 --- a/source/extensions/stat_sinks/metrics_service/BUILD +++ b/source/extensions/stat_sinks/metrics_service/BUILD @@ -32,6 +32,7 @@ envoy_cc_library( hdrs = ["grpc_metrics_proto_descriptors.h"], deps = [ "//source/common/common:assert_lib", + "//source/common/config:api_version_lib", "//source/common/protobuf", "@envoy_api//envoy/config/metrics/v2:pkg_cc_proto", "@envoy_api//envoy/service/metrics/v2:pkg_cc_proto", diff --git a/source/extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.cc b/source/extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.cc index 88db58cbf179e..16793caef4800 100644 --- a/source/extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.cc +++ b/source/extensions/stat_sinks/metrics_service/grpc_metrics_proto_descriptors.cc @@ -5,6 +5,7 @@ #include "common/common/assert.h" #include "common/common/fmt.h" +#include "common/config/api_version.h" #include "common/protobuf/protobuf.h" namespace Envoy { @@ -14,11 +15,11 @@ namespace MetricsService { void validateProtoDescriptors() { // https://github.com/envoyproxy/envoy/issues/9639 - const envoy::service::metrics::v2::StreamMetricsMessage _dummy_service_v2; + const API_NO_BOOST(envoy::service::metrics::v2::StreamMetricsMessage) _dummy_service_v2; // https://github.com/envoyproxy/envoy/pull/9618 made it necessary to register the previous // version's config descriptor by calling ApiTypeOracle::getEarlierVersionDescriptor which has an // assertion for nullptr types. - const envoy::config::metrics::v2::MetricsServiceConfig _dummy_config_v2; + const API_NO_BOOST(envoy::config::metrics::v2::MetricsServiceConfig) _dummy_config_v2; const auto method = "envoy.service.metrics.v2.MetricsService.StreamMetrics";