Age | Commit message (Collapse) | Author |
|
|
|
Referring to the public abstract class seems to be OK, but referring
to the package private impl trips the linter.
|
|
Do not require binlog str to be defined by env var.
This allows --flag=value styled configuration, which is more common
internally.
|
|
|
|
Log using new proto definition
- Remove io.grpc.BinaryLog.CallId because a call ID is now an AtomicLong
- Add the concept of "always included" and "never included" metadata
keys. This is needed because grpc-status-details-bin is already
logged in the binlog msg, and we will log grpc-trace-bin for the
census info.
- unit tests are effectively rewritten
|
|
Let's simplify the impementation to just disallow duplicates. This
makes it easier to maintain.
Background info: https://github.com/grpc/proposal/pull/104
|
|
|
|
|
|
The CSRF protection has been moved to the proxy implementation. This
is cleaner since the gRPC service should not need to know about
grpc-web.
|
|
The exact census span behavior wrt gRPC is not yet defined, so let's
punt on tight integration.
It may be fine to log grpc-trace-bin on server side because it is a
key visible to the application.
|
|
This is a safer way to hide the classes, because they will not appear
in public targets for some build configurations.
|
|
This is an API used to coordinate across packages and must live in
`io.grpc`.
Prepending `Internal` makes it easier to detect and hide this class
from public visibility when using certain build tools.
fixes #4796
|
|
|
|
|
|
Additionally, make Status*Exception.getTrailers() non experimental
|
|
Log these additional bits of info in RPC binary logging
|
|
|
|
Add this form of XSRF protection to channelz. Non web browser clients
calling channelz must also include the cookie header and metadata
key.
|
|
|
|
|
|
This annotation will enable Java APT to generate code.
Addresses part of #3173.
|
|
|
|
The APIs of the other implementations all begin method names with `/`,
since the binlog is language agnostic we should be aligned.
|
|
This PR adds an automatic gradle format checker and reformats all the *.gradle files. After this, new changes to *.gradle files will fail to build if not in good format, just like checkStyle failure.
|
|
|
|
These are first class concepts and should be pulled to top level of
proto.
|
|
This is a new field added to the binlog proto so that we can detect when
the storage impl reorders or drops recorded entries.
|
|
https://github.com/grpc/grpc-proto/pull/20
|
|
|
|
The spec says users can specify a blacklist a method from binlogs by
saying "-package.service/method".
|
|
Includes
- API plumbing for channel tracing `+ManagedChannelBuilder.maxTraceEvents()`
- trace logging for channel/subchannel creation events and name resolving events.
Trace logging for all other events will be added in subsequent PRs.
|
|
The truncation flag tells us whether the msg or meta was truncated.
|
|
RE2/J ensures linear time matching, and as such is preferred over `java.util.regex` for safety in the mono repo. While currently safe, this conversion future-proofs any `Pattern`s in BinlogHelper, and removes the need to maintain an exception for gRPC wrt. use of regexes.
|
|
- Type parameters must be upper camel case
- constant case field must be final
|
|
* make BinaryLogSink public
* add io.grpc.BinaryLog to server/channel builder
|
|
Add internal accessors for ServerInterceptors and ClientInterceptors because some helpers were pkg private
Fix tests that were once creating BinaryLogProvider instances, they should now only create io.grpc.BinaryLog instances
|
|
address+ip_port is the new way; peer is deprecated
|
|
Sync from grpc/grpc-proto and rerun codegen.
|
|
classes in internal now use the io.grpc.BinaryLog API,
io.grpc.BinaryLogProvider is an implementation of the API and will be
moved to io.grpc.services.
|
|
|
|
This is the same practice as #2833
|
|
No need to use service provider for BinaryLogSink, it can just be an
interface that is passed into BinaryLogProviderImpl.
Add a default TempFileSink that uses the protobuf object's
writeDelimited method to write to the output stream.
Warning: TempFileSink blocks.
|
|
io.grpc (core) does not strictly require census. Move the usages and
and remove census from BUILD.bazel .
|
|
BinlogHelper does not override toString so print something else that
is more descriptive.
|
|
|
|
These are subtly differently named but distinct fields.
|
|
Added `ChannelTrace` as an inner class of `Channelz`.
This is in preparation for the implementation of [Channel Tracing](https://github.com/grpc/proposal/blob/master/A3-channel-tracing.md)
|
|
Binary log objects are explicitly passed into channel and server
builders, but the configuration is something that's from the
environment variables. An unset or empty GRPC_BINARY_LOG_CONFIG
should be allowed to disable logging.
Previously, the SPI just reported itself as not available when the
conf str was not something valid.
|
|
channels/servers (#4431)
remove SPI, io.grpc.BinaryLog is a public API that is passed into builders and must be
explicitly closed.
|
|
|