From 2083abddaf1f983a7ae9d4663ce086ac60c4967a Mon Sep 17 00:00:00 2001 From: Shriram Rajagopalan Date: Tue, 30 Oct 2018 21:51:00 +0000 Subject: [PATCH 1/6] Send envoy dynamic metadata as part of reports Signed-off-by: Shriram Rajagopalan --- include/istio/control/tcp/report_data.h | 4 +++ include/istio/utils/attribute_names.h | 3 ++ src/envoy/tcp/mixer/filter.cc | 8 +++++ src/envoy/tcp/mixer/filter.h | 1 + src/istio/control/tcp/attributes_builder.cc | 5 ++++ .../control/tcp/attributes_builder_test.cc | 30 +++++++++++++++++++ src/istio/control/tcp/mock_report_data.h | 1 + src/istio/utils/attribute_names.cc | 5 +++- 8 files changed, 56 insertions(+), 1 deletion(-) diff --git a/include/istio/control/tcp/report_data.h b/include/istio/control/tcp/report_data.h index 7535b5904ba..b8d2bc02e31 100644 --- a/include/istio/control/tcp/report_data.h +++ b/include/istio/control/tcp/report_data.h @@ -50,6 +50,10 @@ class ReportData { CLOSE, CONTINUE, }; + + // Get dynamic metadata generated by Envoy filters. + // Useful for logging info generated by custom codecs. + virtual bool GetDynamicFilterState(std::string* filter_state) const = 0; }; } // namespace tcp diff --git a/include/istio/utils/attribute_names.h b/include/istio/utils/attribute_names.h index c355e8d843e..46a58ec3d5a 100644 --- a/include/istio/utils/attribute_names.h +++ b/include/istio/utils/attribute_names.h @@ -77,6 +77,9 @@ struct AttributeName { // Record TCP connection status: open, continue, close static const char kConnectionEvent[]; + // Dynamic state generated by various envoy network filters + static const char kConnectionFilterState[]; + // Context attributes static const char kContextProtocol[]; static const char kContextReporterKind[]; diff --git a/src/envoy/tcp/mixer/filter.cc b/src/envoy/tcp/mixer/filter.cc index 105db9d19b6..9b0c34ce421 100644 --- a/src/envoy/tcp/mixer/filter.cc +++ b/src/envoy/tcp/mixer/filter.cc @@ -177,6 +177,14 @@ bool Filter::GetDestinationUID(std::string* uid) const { } return false; } +bool Filter::GetDynamicFilterState(std::string* filter_state) const { + if (filter_callbacks_->connection().streamInfo().dynamicMetadata().filter_metadata_size() > 0) { + filter_callbacks_->connection().streamInfo().dynamicMetadata().SerializeToString(filter_state); + return true; + } + + return false; +} void Filter::GetReportInfo( ::istio::control::tcp::ReportData::ReportInfo* data) const { data->received_bytes = received_bytes_; diff --git a/src/envoy/tcp/mixer/filter.h b/src/envoy/tcp/mixer/filter.h index a06daa9f852..c897e038d49 100644 --- a/src/envoy/tcp/mixer/filter.h +++ b/src/envoy/tcp/mixer/filter.h @@ -58,6 +58,7 @@ class Filter : public Network::Filter, // ReportData virtual functions. bool GetDestinationIpPort(std::string* str_ip, int* port) const override; bool GetDestinationUID(std::string* uid) const override; + bool GetDynamicFilterState(std::string* filter_state) const override; void GetReportInfo( ::istio::control::tcp::ReportData::ReportInfo* data) const override; std::string GetConnectionId() const override; diff --git a/src/istio/control/tcp/attributes_builder.cc b/src/istio/control/tcp/attributes_builder.cc index 47e2dfa2c9c..b689cd384a1 100644 --- a/src/istio/control/tcp/attributes_builder.cc +++ b/src/istio/control/tcp/attributes_builder.cc @@ -132,6 +132,11 @@ void AttributesBuilder::ExtractReportAttributes( builder.AddString(utils::AttributeName::kDestinationUID, uid); } + std::string filter_state; + if (report_data->GetDynamicFilterState(&filter_state)) { + builder.AddBytes(utils::AttributeName::kConnectionFilterState, filter_state); + } + builder.AddTimestamp(utils::AttributeName::kContextTime, std::chrono::system_clock::now()); } diff --git a/src/istio/control/tcp/attributes_builder_test.cc b/src/istio/control/tcp/attributes_builder_test.cc index 1ce0afe0aa5..70704f95fde 100644 --- a/src/istio/control/tcp/attributes_builder_test.cc +++ b/src/istio/control/tcp/attributes_builder_test.cc @@ -162,6 +162,12 @@ attributes { string_value: "pod1.ns2" } } +attributes { + key: "connection.filter_state" + value { + string_value: "www.google.com" + } +} )"; const char kReportAttributes[] = R"( @@ -240,6 +246,12 @@ attributes { string_value: "pod1.ns2" } } +attributes { + key: "connection.filter_state" + value { + string_value: "aeiou" + } +} )"; const char kDeltaOneReportAttributes[] = R"( @@ -298,6 +310,12 @@ attributes { string_value: "pod1.ns2" } } +attributes { + key: "connection.filter_state" + value { + string_value: "aeiou" + } +} )"; const char kDeltaTwoReportAttributes[] = R"( @@ -356,6 +374,12 @@ attributes { string_value: "pod1.ns2" } } +attributes { + key: "connection.filter_state" + value { + string_value: "aeiou" + } +} )"; void ClearContextTime(RequestContext* request) { @@ -423,6 +447,12 @@ TEST(AttributesBuilderTest, TestReportAttributes) { *uid = "pod1.ns2"; return true; })); + EXPECT_CALL(mock_data, GetDynamicFilterState(_)) + .Times(4) + .WillRepeatedly(Invoke([](std::string* filter_state) -> bool { + *filter_state = "aeiou"; + return true; + })); EXPECT_CALL(mock_data, GetReportInfo(_)) .Times(4) .WillOnce(Invoke([](ReportData::ReportInfo* info) { diff --git a/src/istio/control/tcp/mock_report_data.h b/src/istio/control/tcp/mock_report_data.h index 65c18492c82..1631cebfae6 100644 --- a/src/istio/control/tcp/mock_report_data.h +++ b/src/istio/control/tcp/mock_report_data.h @@ -28,6 +28,7 @@ class MockReportData : public ReportData { public: MOCK_CONST_METHOD2(GetDestinationIpPort, bool(std::string* ip, int* port)); MOCK_CONST_METHOD1(GetDestinationUID, bool(std::string*)); + MOCK_CONST_METHOD1(GetDynamicFilterState, bool(std::string*)); MOCK_CONST_METHOD1(GetReportInfo, void(ReportInfo* info)); }; diff --git a/src/istio/utils/attribute_names.cc b/src/istio/utils/attribute_names.cc index 392bc1c45ef..0fd4ac2e161 100644 --- a/src/istio/utils/attribute_names.cc +++ b/src/istio/utils/attribute_names.cc @@ -38,7 +38,7 @@ const char AttributeName::kRequestTotalSize[] = "request.total_size"; const char AttributeName::kRequestTime[] = "request.time"; const char AttributeName::kRequestUserAgent[] = "request.useragent"; const char AttributeName::kRequestApiKey[] = "request.api_key"; - + const char AttributeName::kResponseCode[] = "response.code"; const char AttributeName::kResponseDuration[] = "response.duration"; const char AttributeName::kResponseHeaders[] = "response.headers"; @@ -72,6 +72,9 @@ const char AttributeName::kConnectionRequestedServerName[] = const char AttributeName::kConnectionId[] = "connection.id"; const char AttributeName::kConnectionEvent[] = "connection.event"; +// Dynamic state generated by various envoy network filters +const char AttributeName::kConnectionFilterState[] = "connection.filter_state"; + // Context attributes const char AttributeName::kContextProtocol[] = "context.protocol"; const char AttributeName::kContextReporterKind[] = "context.reporter.kind"; From 9be64ff5968d18eeae56014ff15b68ac09dac440 Mon Sep 17 00:00:00 2001 From: Shriram Rajagopalan Date: Tue, 30 Oct 2018 21:52:32 +0000 Subject: [PATCH 2/6] format Signed-off-by: Shriram Rajagopalan --- src/envoy/tcp/mixer/filter.cc | 36 ++++++++++++--------- src/istio/control/tcp/attributes_builder.cc | 9 +++--- src/istio/utils/attribute_names.cc | 2 +- 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/src/envoy/tcp/mixer/filter.cc b/src/envoy/tcp/mixer/filter.cc index 9b0c34ce421..dee47a00982 100644 --- a/src/envoy/tcp/mixer/filter.cc +++ b/src/envoy/tcp/mixer/filter.cc @@ -24,7 +24,7 @@ namespace Envoy { namespace Tcp { namespace Mixer { -Filter::Filter(Control& control) : control_(control) { +Filter::Filter(Control &control) : control_(control) { ENVOY_LOG(debug, "Called tcp filter: {}", __func__); } @@ -34,7 +34,7 @@ Filter::~Filter() { } void Filter::initializeReadFilterCallbacks( - Network::ReadFilterCallbacks& callbacks) { + Network::ReadFilterCallbacks &callbacks) { ENVOY_LOG(debug, "Called tcp filter: {}", __func__); filter_callbacks_ = &callbacks; filter_callbacks_->connection().addConnectionCallbacks(*this); @@ -60,14 +60,14 @@ void Filter::callCheck() { state_ = State::Calling; filter_callbacks_->connection().readDisable(true); calling_check_ = true; - cancel_check_ = handler_->Check(this, [this](const CheckResponseInfo& info) { + cancel_check_ = handler_->Check(this, [this](const CheckResponseInfo &info) { completeCheck(info.response_status); }); calling_check_ = false; } // Network::ReadFilter -Network::FilterStatus Filter::onData(Buffer::Instance& data, bool) { +Network::FilterStatus Filter::onData(Buffer::Instance &data, bool) { if (state_ == State::NotStarted) { // By waiting to invoke the callCheck() at onData(), the call to Mixer // will have sufficient SSL information to fill the check Request. @@ -83,7 +83,7 @@ Network::FilterStatus Filter::onData(Buffer::Instance& data, bool) { } // Network::WriteFilter -Network::FilterStatus Filter::onWrite(Buffer::Instance& data, bool) { +Network::FilterStatus Filter::onWrite(Buffer::Instance &data, bool) { ENVOY_CONN_LOG(debug, "Called tcp filter onWrite bytes: {}", filter_callbacks_->connection(), data.length()); send_bytes_ += data.length(); @@ -101,7 +101,7 @@ Network::FilterStatus Filter::onNewConnection() { return Network::FilterStatus::Continue; } -void Filter::completeCheck(const Status& status) { +void Filter::completeCheck(const Status &status) { ENVOY_LOG(debug, "Called tcp filter completeCheck: {}", status.ToString()); cancel_check_ = nullptr; if (state_ == State::Closed) { @@ -146,11 +146,11 @@ void Filter::onEvent(Network::ConnectionEvent event) { } } -bool Filter::GetSourceIpPort(std::string* str_ip, int* port) const { +bool Filter::GetSourceIpPort(std::string *str_ip, int *port) const { return Utils::GetIpPort(filter_callbacks_->connection().remoteAddress()->ip(), str_ip, port); } -bool Filter::GetPrincipal(bool peer, std::string* user) const { +bool Filter::GetPrincipal(bool peer, std::string *user) const { return Utils::GetPrincipal(&filter_callbacks_->connection(), peer, user); } @@ -158,11 +158,11 @@ bool Filter::IsMutualTLS() const { return Utils::IsMutualTLS(&filter_callbacks_->connection()); } -bool Filter::GetRequestedServerName(std::string* name) const { +bool Filter::GetRequestedServerName(std::string *name) const { return Utils::GetRequestedServerName(&filter_callbacks_->connection(), name); } -bool Filter::GetDestinationIpPort(std::string* str_ip, int* port) const { +bool Filter::GetDestinationIpPort(std::string *str_ip, int *port) const { if (filter_callbacks_->upstreamHost() && filter_callbacks_->upstreamHost()->address()) { return Utils::GetIpPort(filter_callbacks_->upstreamHost()->address()->ip(), @@ -170,23 +170,29 @@ bool Filter::GetDestinationIpPort(std::string* str_ip, int* port) const { } return false; } -bool Filter::GetDestinationUID(std::string* uid) const { +bool Filter::GetDestinationUID(std::string *uid) const { if (filter_callbacks_->upstreamHost()) { return Utils::GetDestinationUID( *filter_callbacks_->upstreamHost()->metadata(), uid); } return false; } -bool Filter::GetDynamicFilterState(std::string* filter_state) const { - if (filter_callbacks_->connection().streamInfo().dynamicMetadata().filter_metadata_size() > 0) { - filter_callbacks_->connection().streamInfo().dynamicMetadata().SerializeToString(filter_state); +bool Filter::GetDynamicFilterState(std::string *filter_state) const { + if (filter_callbacks_->connection() + .streamInfo() + .dynamicMetadata() + .filter_metadata_size() > 0) { + filter_callbacks_->connection() + .streamInfo() + .dynamicMetadata() + .SerializeToString(filter_state); return true; } return false; } void Filter::GetReportInfo( - ::istio::control::tcp::ReportData::ReportInfo* data) const { + ::istio::control::tcp::ReportData::ReportInfo *data) const { data->received_bytes = received_bytes_; data->send_bytes = send_bytes_; data->duration = std::chrono::duration_cast( diff --git a/src/istio/control/tcp/attributes_builder.cc b/src/istio/control/tcp/attributes_builder.cc index b689cd384a1..89495d4519a 100644 --- a/src/istio/control/tcp/attributes_builder.cc +++ b/src/istio/control/tcp/attributes_builder.cc @@ -29,7 +29,7 @@ const std::string kConnectionContinue("continue"); const std::string kConnectionClose("close"); } // namespace -void AttributesBuilder::ExtractCheckAttributes(CheckData* check_data) { +void AttributesBuilder::ExtractCheckAttributes(CheckData *check_data) { utils::AttributesBuilder builder(request_->attributes); std::string source_ip; @@ -81,8 +81,8 @@ void AttributesBuilder::ExtractCheckAttributes(CheckData* check_data) { } void AttributesBuilder::ExtractReportAttributes( - ReportData* report_data, ReportData::ConnectionEvent event, - ReportData::ReportInfo* last_report_info) { + ReportData *report_data, ReportData::ConnectionEvent event, + ReportData::ReportInfo *last_report_info) { utils::AttributesBuilder builder(request_->attributes); ReportData::ReportInfo info; @@ -134,7 +134,8 @@ void AttributesBuilder::ExtractReportAttributes( std::string filter_state; if (report_data->GetDynamicFilterState(&filter_state)) { - builder.AddBytes(utils::AttributeName::kConnectionFilterState, filter_state); + builder.AddBytes(utils::AttributeName::kConnectionFilterState, + filter_state); } builder.AddTimestamp(utils::AttributeName::kContextTime, diff --git a/src/istio/utils/attribute_names.cc b/src/istio/utils/attribute_names.cc index 0fd4ac2e161..5483f6ffa7d 100644 --- a/src/istio/utils/attribute_names.cc +++ b/src/istio/utils/attribute_names.cc @@ -38,7 +38,7 @@ const char AttributeName::kRequestTotalSize[] = "request.total_size"; const char AttributeName::kRequestTime[] = "request.time"; const char AttributeName::kRequestUserAgent[] = "request.useragent"; const char AttributeName::kRequestApiKey[] = "request.api_key"; - + const char AttributeName::kResponseCode[] = "response.code"; const char AttributeName::kResponseDuration[] = "response.duration"; const char AttributeName::kResponseHeaders[] = "response.headers"; From 839d2faedf82d692e84c32c947863fdfd7d7e808 Mon Sep 17 00:00:00 2001 From: Shriram Rajagopalan Date: Tue, 30 Oct 2018 22:45:35 +0000 Subject: [PATCH 3/6] typos Signed-off-by: Shriram Rajagopalan --- src/istio/control/tcp/attributes_builder_test.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/istio/control/tcp/attributes_builder_test.cc b/src/istio/control/tcp/attributes_builder_test.cc index 70704f95fde..b0b452b2579 100644 --- a/src/istio/control/tcp/attributes_builder_test.cc +++ b/src/istio/control/tcp/attributes_builder_test.cc @@ -165,7 +165,7 @@ attributes { attributes { key: "connection.filter_state" value { - string_value: "www.google.com" + bytes_value: "aeiou" } } )"; @@ -249,7 +249,7 @@ attributes { attributes { key: "connection.filter_state" value { - string_value: "aeiou" + bytes_value: "aeiou" } } )"; @@ -313,7 +313,7 @@ attributes { attributes { key: "connection.filter_state" value { - string_value: "aeiou" + bytes_value: "aeiou" } } )"; @@ -377,7 +377,7 @@ attributes { attributes { key: "connection.filter_state" value { - string_value: "aeiou" + bytes_value: "aeiou" } } )"; From 8b766b3405fb16b654d0c5ec57c42bf22e7461c3 Mon Sep 17 00:00:00 2001 From: Shriram Rajagopalan Date: Tue, 30 Oct 2018 23:17:34 +0000 Subject: [PATCH 4/6] http dynamic metadata Signed-off-by: Shriram Rajagopalan --- include/istio/control/http/report_data.h | 4 ++++ include/istio/utils/attribute_names.h | 5 ++++- src/envoy/http/mixer/report_data.h | 9 +++++++++ src/istio/control/http/attributes_builder.cc | 6 ++++++ .../control/http/attributes_builder_test.cc | 16 ++++++++++++++++ src/istio/control/http/mock_report_data.h | 1 + src/istio/control/tcp/attributes_builder.cc | 2 +- src/istio/control/tcp/attributes_builder_test.cc | 12 ++++++------ src/istio/utils/attribute_names.cc | 5 ++++- 9 files changed, 51 insertions(+), 9 deletions(-) diff --git a/include/istio/control/http/report_data.h b/include/istio/control/http/report_data.h index 11b1e7e9f59..7b4968200da 100644 --- a/include/istio/control/http/report_data.h +++ b/include/istio/control/http/report_data.h @@ -63,6 +63,10 @@ class ReportData { std::string message; }; virtual bool GetGrpcStatus(GrpcStatus* status) const = 0; + + // Get dynamic metadata generated by Envoy filters. + // Useful for logging info generated by custom codecs. + virtual bool GetDynamicFilterState(std::string* filter_state) const = 0; }; } // namespace http diff --git a/include/istio/utils/attribute_names.h b/include/istio/utils/attribute_names.h index 46a58ec3d5a..4cc8b8cc336 100644 --- a/include/istio/utils/attribute_names.h +++ b/include/istio/utils/attribute_names.h @@ -47,6 +47,9 @@ struct AttributeName { static const char kRequestUserAgent[]; static const char kRequestApiKey[]; + // Dynamic state generated by various envoy http filters + static const char kRequestDynamicState[]; + static const char kResponseCode[]; static const char kResponseDuration[]; static const char kResponseHeaders[]; @@ -78,7 +81,7 @@ struct AttributeName { static const char kConnectionEvent[]; // Dynamic state generated by various envoy network filters - static const char kConnectionFilterState[]; + static const char kConnectionDynamicState[]; // Context attributes static const char kContextProtocol[]; diff --git a/src/envoy/http/mixer/report_data.h b/src/envoy/http/mixer/report_data.h index 161316a4e02..338e188fbfb 100644 --- a/src/envoy/http/mixer/report_data.h +++ b/src/envoy/http/mixer/report_data.h @@ -156,6 +156,15 @@ class ReportData : public ::istio::control::http::ReportData, return !report_info->permissive_resp_code.empty() || !report_info->permissive_policy_id.empty(); } + + // Get attributes generated by http filters + bool GetDynamicFilterState(std::string *filter_state) const override { + if (info_.dynamicMetadata().filter_metadata_size() > 0) { + info_.dynamicMetadata().SerializeToString(filter_state); + return true; + } + return false; + } }; } // namespace Mixer diff --git a/src/istio/control/http/attributes_builder.cc b/src/istio/control/http/attributes_builder.cc index 2c0babcbabf..b821a8b13bf 100644 --- a/src/istio/control/http/attributes_builder.cc +++ b/src/istio/control/http/attributes_builder.cc @@ -252,6 +252,12 @@ void AttributesBuilder::ExtractReportAttributes(ReportData *report_data) { rbac_info.permissive_policy_id); } } + + std::string filter_state; + if (report_data->GetDynamicFilterState(&filter_state)) { + builder.AddBytes(utils::AttributeName::kRequestDynamicState, + filter_state); + } } } // namespace http diff --git a/src/istio/control/http/attributes_builder_test.cc b/src/istio/control/http/attributes_builder_test.cc index f14c32cb98d..a0ceaa58f5b 100644 --- a/src/istio/control/http/attributes_builder_test.cc +++ b/src/istio/control/http/attributes_builder_test.cc @@ -406,6 +406,12 @@ attributes { string_value: "policy-foo" } } +attributes { + key: "request.dynamic_state" + value { + bytes_value: "aeiou" + } +} )"; constexpr char kAuthenticationResultStruct[] = R"( @@ -750,6 +756,11 @@ TEST(AttributesBuilderTest, TestReportAttributes) { report_info->permissive_policy_id = "policy-foo"; return true; })); + EXPECT_CALL(mock_data, GetDynamicFilterState(_)) + .WillOnce(Invoke([](std::string *dynamic_state) -> bool { + *dynamic_state = "aeiou"; + return true; + })); RequestContext request; AttributesBuilder builder(&request); @@ -805,6 +816,11 @@ TEST(AttributesBuilderTest, TestReportAttributesWithDestIP) { report_info->permissive_policy_id = "policy-foo"; return true; })); + EXPECT_CALL(mock_data, GetDynamicFilterState(_)) + .WillOnce(Invoke([](std::string *dynamic_state) -> bool { + *dynamic_state = "aeiou"; + return true; + })); RequestContext request; SetDestinationIp(&request, "1.2.3.4"); diff --git a/src/istio/control/http/mock_report_data.h b/src/istio/control/http/mock_report_data.h index 423a1b6ef4f..580a1c4d074 100644 --- a/src/istio/control/http/mock_report_data.h +++ b/src/istio/control/http/mock_report_data.h @@ -32,6 +32,7 @@ class MockReportData : public ReportData { MOCK_CONST_METHOD1(GetDestinationUID, bool(std::string* ip)); MOCK_CONST_METHOD1(GetGrpcStatus, bool(GrpcStatus* status)); MOCK_CONST_METHOD1(GetRbacReportInfo, bool(RbacReportInfo* info)); + MOCK_CONST_METHOD1(GetDynamicFilterState, bool(std::string* filter_state)); }; } // namespace http diff --git a/src/istio/control/tcp/attributes_builder.cc b/src/istio/control/tcp/attributes_builder.cc index 89495d4519a..d523e605f0c 100644 --- a/src/istio/control/tcp/attributes_builder.cc +++ b/src/istio/control/tcp/attributes_builder.cc @@ -134,7 +134,7 @@ void AttributesBuilder::ExtractReportAttributes( std::string filter_state; if (report_data->GetDynamicFilterState(&filter_state)) { - builder.AddBytes(utils::AttributeName::kConnectionFilterState, + builder.AddBytes(utils::AttributeName::kConnectionDynamicState, filter_state); } diff --git a/src/istio/control/tcp/attributes_builder_test.cc b/src/istio/control/tcp/attributes_builder_test.cc index b0b452b2579..02c96306fb4 100644 --- a/src/istio/control/tcp/attributes_builder_test.cc +++ b/src/istio/control/tcp/attributes_builder_test.cc @@ -163,7 +163,7 @@ attributes { } } attributes { - key: "connection.filter_state" + key: "connection.dynamic_state" value { bytes_value: "aeiou" } @@ -247,7 +247,7 @@ attributes { } } attributes { - key: "connection.filter_state" + key: "connection.dynamic_state" value { bytes_value: "aeiou" } @@ -311,7 +311,7 @@ attributes { } } attributes { - key: "connection.filter_state" + key: "connection.dynamic_state" value { bytes_value: "aeiou" } @@ -375,7 +375,7 @@ attributes { } } attributes { - key: "connection.filter_state" + key: "connection.dynamic_state" value { bytes_value: "aeiou" } @@ -449,8 +449,8 @@ TEST(AttributesBuilderTest, TestReportAttributes) { })); EXPECT_CALL(mock_data, GetDynamicFilterState(_)) .Times(4) - .WillRepeatedly(Invoke([](std::string* filter_state) -> bool { - *filter_state = "aeiou"; + .WillRepeatedly(Invoke([](std::string* dynamic_state) -> bool { + *dynamic_state = "aeiou"; return true; })); EXPECT_CALL(mock_data, GetReportInfo(_)) diff --git a/src/istio/utils/attribute_names.cc b/src/istio/utils/attribute_names.cc index 5483f6ffa7d..bb8a0fc218c 100644 --- a/src/istio/utils/attribute_names.cc +++ b/src/istio/utils/attribute_names.cc @@ -39,6 +39,9 @@ const char AttributeName::kRequestTime[] = "request.time"; const char AttributeName::kRequestUserAgent[] = "request.useragent"; const char AttributeName::kRequestApiKey[] = "request.api_key"; +// Dynamic state generated by various envoy http filters +const char AttributeName::kRequestDynamicState[] = "request.dynamic_state"; + const char AttributeName::kResponseCode[] = "response.code"; const char AttributeName::kResponseDuration[] = "response.duration"; const char AttributeName::kResponseHeaders[] = "response.headers"; @@ -73,7 +76,7 @@ const char AttributeName::kConnectionId[] = "connection.id"; const char AttributeName::kConnectionEvent[] = "connection.event"; // Dynamic state generated by various envoy network filters -const char AttributeName::kConnectionFilterState[] = "connection.filter_state"; +const char AttributeName::kConnectionDynamicState[] = "connection.dynamic_state"; // Context attributes const char AttributeName::kContextProtocol[] = "context.protocol"; From 65216a1689fd5f5e1b72ac5b1637e9ceea902423 Mon Sep 17 00:00:00 2001 From: Shriram Rajagopalan Date: Tue, 30 Oct 2018 23:18:17 +0000 Subject: [PATCH 5/6] format Signed-off-by: Shriram Rajagopalan --- src/istio/control/http/attributes_builder.cc | 11 +++++------ src/istio/utils/attribute_names.cc | 7 ++++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/istio/control/http/attributes_builder.cc b/src/istio/control/http/attributes_builder.cc index b821a8b13bf..49bbd5d3308 100644 --- a/src/istio/control/http/attributes_builder.cc +++ b/src/istio/control/http/attributes_builder.cc @@ -32,7 +32,7 @@ namespace { const std::set kGrpcContentTypes{ "application/grpc", "application/grpc+proto", "application/grpc+json"}; -} // namespace +} // namespace void AttributesBuilder::ExtractRequestHeaderAttributes(CheckData *check_data) { utils::AttributesBuilder builder(request_->attributes); @@ -255,11 +255,10 @@ void AttributesBuilder::ExtractReportAttributes(ReportData *report_data) { std::string filter_state; if (report_data->GetDynamicFilterState(&filter_state)) { - builder.AddBytes(utils::AttributeName::kRequestDynamicState, - filter_state); + builder.AddBytes(utils::AttributeName::kRequestDynamicState, filter_state); } } -} // namespace http -} // namespace control -} // namespace istio +} // namespace http +} // namespace control +} // namespace istio diff --git a/src/istio/utils/attribute_names.cc b/src/istio/utils/attribute_names.cc index bb8a0fc218c..b8af070a1e1 100644 --- a/src/istio/utils/attribute_names.cc +++ b/src/istio/utils/attribute_names.cc @@ -76,7 +76,8 @@ const char AttributeName::kConnectionId[] = "connection.id"; const char AttributeName::kConnectionEvent[] = "connection.event"; // Dynamic state generated by various envoy network filters -const char AttributeName::kConnectionDynamicState[] = "connection.dynamic_state"; +const char AttributeName::kConnectionDynamicState[] = + "connection.dynamic_state"; // Context attributes const char AttributeName::kContextProtocol[] = "context.protocol"; @@ -109,5 +110,5 @@ const char AttributeName::kRbacPermissiveResponseCode[] = const char AttributeName::kRbacPermissivePolicyId[] = "rbac.permissive.effective_policy_id"; -} // namespace utils -} // namespace istio +} // namespace utils +} // namespace istio From 5f06b8acd3bf23b9390853cbcc8c22b5c7779e7a Mon Sep 17 00:00:00 2001 From: Shriram Rajagopalan Date: Tue, 30 Oct 2018 23:26:35 +0000 Subject: [PATCH 6/6] more formatting Signed-off-by: Shriram Rajagopalan --- src/istio/control/http/attributes_builder.cc | 8 ++++---- src/istio/utils/attribute_names.cc | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/istio/control/http/attributes_builder.cc b/src/istio/control/http/attributes_builder.cc index 49bbd5d3308..fce41d3a480 100644 --- a/src/istio/control/http/attributes_builder.cc +++ b/src/istio/control/http/attributes_builder.cc @@ -32,7 +32,7 @@ namespace { const std::set kGrpcContentTypes{ "application/grpc", "application/grpc+proto", "application/grpc+json"}; -} // namespace +} // namespace void AttributesBuilder::ExtractRequestHeaderAttributes(CheckData *check_data) { utils::AttributesBuilder builder(request_->attributes); @@ -259,6 +259,6 @@ void AttributesBuilder::ExtractReportAttributes(ReportData *report_data) { } } -} // namespace http -} // namespace control -} // namespace istio +} // namespace http +} // namespace control +} // namespace istio diff --git a/src/istio/utils/attribute_names.cc b/src/istio/utils/attribute_names.cc index b8af070a1e1..86c04960814 100644 --- a/src/istio/utils/attribute_names.cc +++ b/src/istio/utils/attribute_names.cc @@ -110,5 +110,5 @@ const char AttributeName::kRbacPermissiveResponseCode[] = const char AttributeName::kRbacPermissivePolicyId[] = "rbac.permissive.effective_policy_id"; -} // namespace utils -} // namespace istio +} // namespace utils +} // namespace istio