@ -54,7 +54,6 @@
# include "src/core/lib/channel/channel_fwd.h"
# include "src/core/lib/channel/channel_stack.h"
# include "src/core/lib/channel/context.h"
# include "src/core/lib/channel/promise_based_filter.h"
# include "src/core/lib/config/core_configuration.h"
# include "src/core/lib/gprpp/host_port.h"
# include "src/core/lib/gprpp/time.h"
@ -71,7 +70,6 @@
# include "src/core/lib/transport/metadata_batch.h"
# include "src/core/lib/transport/transport.h"
# include "src/core/lib/uri/uri_parser.h"
# include "src/cpp/ext/filters/census/client_filter.h"
namespace grpc_core {
@ -342,11 +340,9 @@ class CallData {
LoggingSink : : Config config_ ;
} ;
class ClientLoggingFilter final : public ChannelFilter {
public :
static const grpc_channel_filter kFilter ;
} // namespace
static absl : : StatusOr < ClientLoggingFilter > Create (
absl : : StatusOr < ClientLoggingFilter > ClientLoggingFilter : : Create (
const ChannelArgs & args , ChannelFilter : : Args /*filter_args*/ ) {
absl : : optional < absl : : string_view > default_authority =
args . GetString ( GRPC_ARG_DEFAULT_AUTHORITY ) ;
@ -364,8 +360,8 @@ class ClientLoggingFilter final : public ChannelFilter {
}
// Construct a promise for one call.
ArenaPromise < ServerMetadataHandle > MakeCallPromise (
CallArgs call_args , NextPromiseFactory next_promise_factory ) override {
ArenaPromise < ServerMetadataHandle > ClientLoggingFilter : : MakeCallPromise (
CallArgs call_args , NextPromiseFactory next_promise_factory ) {
CallData * calld = GetContext < Arena > ( ) - > ManagedNew < CallData > (
true , call_args , default_authority_ ) ;
if ( ! calld - > ShouldLog ( ) ) {
@ -443,30 +439,20 @@ class ClientLoggingFilter final : public ChannelFilter {
} ) ;
}
private :
explicit ClientLoggingFilter ( std : : string default_authority )
: default_authority_ ( std : : move ( default_authority ) ) { }
std : : string default_authority_ ;
} ;
const grpc_channel_filter ClientLoggingFilter : : kFilter =
MakePromiseBasedFilter < ClientLoggingFilter , FilterEndpoint : : kClient ,
kFilterExaminesServerInitialMetadata |
kFilterExaminesInboundMessages |
kFilterExaminesOutboundMessages > ( " logging " ) ;
class ServerLoggingFilter final : public ChannelFilter {
public :
static const grpc_channel_filter kFilter ;
static absl : : StatusOr < ServerLoggingFilter > Create (
absl : : StatusOr < ServerLoggingFilter > ServerLoggingFilter : : Create (
const ChannelArgs & /*args*/ , ChannelFilter : : Args /*filter_args*/ ) {
return ServerLoggingFilter ( ) ;
}
// Construct a promise for one call.
ArenaPromise < ServerMetadataHandle > MakeCallPromise (
CallArgs call_args , NextPromiseFactory next_promise_factory ) override {
ArenaPromise < ServerMetadataHandle > ServerLoggingFilter : : MakeCallPromise (
CallArgs call_args , NextPromiseFactory next_promise_factory ) {
CallData * calld = GetContext < Arena > ( ) - > ManagedNew < CallData > (
false , call_args , /*default_authority=*/ " " ) ;
if ( ! calld - > ShouldLog ( ) ) {
@ -539,7 +525,6 @@ class ServerLoggingFilter final : public ChannelFilter {
/*is_client=*/ false , call_tracer ) ;
} ) ;
}
} ;
const grpc_channel_filter ServerLoggingFilter : : kFilter =
MakePromiseBasedFilter < ServerLoggingFilter , FilterEndpoint : : kServer ,
@ -547,8 +532,6 @@ const grpc_channel_filter ServerLoggingFilter::kFilter =
kFilterExaminesInboundMessages |
kFilterExaminesOutboundMessages > ( " logging " ) ;
} // namespace
void RegisterLoggingFilter ( LoggingSink * sink ) {
g_logging_sink = sink ;
CoreConfiguration : : RegisterBuilder ( [ ] ( CoreConfiguration : : Builder * builder ) {
@ -559,8 +542,7 @@ void RegisterLoggingFilter(LoggingSink* sink) {
builder - > channel_init ( )
- > RegisterFilter ( GRPC_CLIENT_CHANNEL , & ClientLoggingFilter : : kFilter )
// TODO(yashykt) : Figure out a good place to place this channel arg
. IfChannelArg ( " grpc.experimental.enable_observability " , true )
. After ( { & grpc : : internal : : OpenCensusClientFilter : : kFilter } ) ;
. IfChannelArg ( " grpc.experimental.enable_observability " , true ) ;
} ) ;
}