Kun Zhang
99f5943520
services: HealthCheckingLoadBalancerUtil and HealthCheckingLoadBalancerProvider ( #5026 )
...
HealthCheckingLoadBalancerUtil is the public wrapper utility that helps
turn a LoadBalancerFactory into a health-checking capable one.
HealthCheckingRoundRobinLoadBalancerProvider overrides the
RoundRobinLoadBalancerProvider from grpc-core.
2018-11-06 09:14:56 -08:00
Kun Zhang
65bd38476f
services: define SERVICE_NAME_ALL_SERVICES for the empty service name ( #5027 )
2018-11-02 17:09:22 -07:00
zpencer
3d51756d61
core, services: fix more import lints ( #5021 )
2018-11-01 16:14:42 -07:00
Kun Zhang
f5d0f40bdf
services: client-side health checking main implementation ( #5014 )
...
Spec: https://github.com/grpc/proposal/blob/master/A17-client-side-health-checking.md
This comes in the form of a wrapper LoadBalancerFactory. The public wrapping utility and the wrapping of RoundRobinLoadBalancer will come in follow-up changes.
2018-10-31 09:29:46 -07:00
Carl Mastrangelo
e8762c941c
services: include an error message in channelz
2018-10-26 16:27:29 -07:00
Carl Mastrangelo
04d8d2d382
services: propagate thrown status exceptions in Channelz
2018-10-26 12:52:52 -07:00
ZHANG Dapeng
41c8d8020f
all: fix lint
2018-10-23 14:03:46 -07:00
Thomas Broyer
183e1f6735
all: update Error Prone to 2.3.2
...
This will allow enabling Error Prone on JDK 10+ (after
updating the net.ltgt.errorprone plugin), and is also a
prerequisite to that plugin update.
Also remove net.ltgt.apt plugin, as Gradle has native
support for annotationProcessor.
2018-10-19 13:08:36 -07:00
zpencer
a2ef4c0dbf
services: update v1alpha reflection.proto to match grpc-proto repo ( #4973 )
...
More info: https://github.com/grpc/grpc-proto/pull/38
2018-10-18 16:27:07 -07:00
zpencer
9b5115d5a7
services: remove v1alpha binlog ( #4963 )
...
We should use v1 everywhere.
2018-10-17 14:46:56 -07:00
Eric Anderson
959323be97
Add build support for Java 11
...
It appears everything was already working on Java 11, except
build-specific and testing issues. Updating to Netty 4.1.30 (#4940 )
probably fixed the last true Java 11 incompatibility.
Fixes #4933
2018-10-17 11:49:30 -07:00
Kun Zhang
11f9e8d5b4
services: implement Health.Watch ( #4930 )
2018-10-12 16:02:25 -07:00
zpencer
308887a150
services: fix callbacks not being forwarded in binlog interceptors ( #4918 )
2018-10-09 10:45:25 -07:00
zpencer
5eb816b3b1
services: fix channelz javadoc lint for reference not found ( #4920 )
...
Referring to the public abstract class seems to be OK, but referring
to the package private impl trips the linter.
2018-10-09 09:23:16 -07:00
zpencer
f10676c2b4
services: allow config str to be passed into binlog object ( #4919 )
...
Do not require binlog str to be defined by env var.
This allows --flag=value styled configuration, which is more common
internally.
2018-10-08 15:44:18 -07:00
Kun Zhang
31328652d4
services: sync health.proto from grpc-proto repo ( #4904 )
2018-10-03 16:24:09 -07:00
zpencer
da87ffb329
core,services: v1 binlog ( #4846 )
...
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
2018-09-27 13:19:24 -07:00
zpencer
ed70594294
services: disallow duplicate rules for a binlogging services or methods ( #4868 )
...
Let's simplify the impementation to just disallow duplicates. This
makes it easier to maintain.
Background info: https://github.com/grpc/proposal/pull/104
2018-09-21 15:59:37 -07:00
Carl Mastrangelo
b0f423295b
all: use Java7 brackets
2018-09-14 13:52:29 -07:00
Carl Mastrangelo
6cf849a7ce
services: fix duration in Binlog test
2018-09-12 17:16:52 -07:00
zpencer
8fc84daa30
services: remove RequireDoubleSubmitCookieInterceptor ( #4833 )
...
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.
2018-09-10 18:06:26 -07:00
zpencer
95fd47d747
core, services: remove census from binary logs ( #4845 )
...
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.
2018-09-10 16:35:08 -07:00
zpencer
2fca42feb9
all: prepend internal classes with Internal ( #4826 )
...
This is a safer way to hide the classes, because they will not appear
in public targets for some build configurations.
2018-09-05 18:48:42 -07:00
zpencer
4d366ce978
all: move Channelz to io.grpc as InternalChannelz ( #4797 )
...
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
2018-09-04 16:52:01 -07:00
Eric Anderson
73b098702c
services: Fix binarylog's java_package to include version
2018-08-17 09:38:38 -07:00
Eric Gribkoff
79b24709b9
all: update animalsniffer to Java 7 and add Android 14 ( #4727 )
2018-08-09 09:09:21 -07:00
Carl Mastrangelo
85448189ee
all: add tracking issues for all experimental APIs and make it required
...
Additionally, make Status*Exception.getTrailers() non experimental
2018-07-31 15:28:48 -07:00
zpencer
f013771bd1
services: binlog status code, msg, details ( #4551 )
...
Log these additional bits of info in RPC binary logging
2018-07-17 11:29:45 -07:00
Carl Mastrangelo
146b6006b3
compiler,stub: update RpcMethod docs and usage
2018-07-12 17:01:47 -07:00
zpencer
9925049dce
services: double submit cookie interceptor for channelz ( #4628 )
...
Add this form of XSRF protection to channelz. Non web browser clients
calling channelz must also include the cookie header and metadata
key.
2018-07-12 16:45:17 -07:00
zpencer
3181fbcf03
services: add javadocs for binlog constructors ( #4637 )
2018-07-12 12:57:10 -07:00
jbingham-google
ffcb3b964b
compiler, stub: Rename inputType and outputType in @RpcMethod
2018-07-10 13:24:50 -07:00
jbingham-google
9229e30287
compiler, stub: Add @RpcMethod annotation
...
This annotation will enable Java APT to generate code.
Addresses part of #3173 .
2018-07-06 17:02:01 -07:00
Eric Gribkoff
8c52e138ee
services: delete unused proto ( #4604 )
2018-06-29 15:03:08 -07:00
zpencer
5a8b790a3c
services: binlog method name should include leading / char ( #4588 )
...
The APIs of the other implementations all begin method names with `/`,
since the binlog is language agnostic we should be aligned.
2018-06-27 11:22:51 -07:00
ZHANG Dapeng
5ce10f0146
all: add gradle format checker
...
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.
2018-06-11 18:35:18 -07:00
ZHANG Dapeng
9d26c5c405
all: fix lint warnings
2018-06-11 12:57:27 -07:00
zpencer
2a971e3b05
services: binlog deadline and methodName at start of rpc ( #4550 )
...
These are first class concepts and should be pulled to top level of
proto.
2018-06-07 19:16:34 -07:00
zpencer
c05d0f40ea
services: add sequence id within call for entries ( #4549 )
...
This is a new field added to the binlog proto so that we can detect when
the storage impl reorders or drops recorded entries.
2018-06-07 12:19:36 -07:00
zpencer
181aac425f
services: sync binlog proto ( #4542 )
...
https://github.com/grpc/grpc-proto/pull/20
2018-06-07 10:45:55 -07:00
Carl Mastrangelo
4c4fda3e5d
stub: remove static Method descriptors and stabilize method accessors
2018-06-05 11:19:28 -07:00
zpencer
29dba1e89f
services: allow binlog to blacklist methods ( #4523 )
...
The spec says users can specify a blacklist a method from binlogs by
saying "-package.service/method".
2018-06-04 14:11:55 -07:00
ZHANG Dapeng
a0794d5a68
core: Implement channel tracing for some events
...
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.
2018-06-01 07:33:37 -07:00
zpencer
43831bc0e8
services: update the binlog message truncation flag ( #4508 )
...
The truncation flag tells us whether the msg or meta was truncated.
2018-05-31 18:13:59 -07:00
Nathan Herring
8db8497ef0
services: use RE2/J
...
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.
2018-05-30 12:26:02 -07:00
zpencer
ff9aa39bb6
core,services: fix lints ( #4504 )
...
- Type parameters must be upper camel case
- constant case field must be final
2018-05-24 11:12:30 -07:00
zpencer
27439876f2
services,core: make BinaryLogSink visible, add setter ( #4503 )
...
* make BinaryLogSink public
* add io.grpc.BinaryLog to server/channel builder
2018-05-23 20:49:09 -07:00
zpencer
1f99fcdc82
move io.grpc.BinaryLogProvider to io.grpc.services ( #4501 )
...
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
2018-05-23 17:04:48 -07:00
zpencer
c60580c669
services: use Peer.address proto ( #4502 )
...
address+ip_port is the new way; peer is deprecated
2018-05-23 16:58:15 -07:00
zpencer
869363cdb8
services: sync binarylog.proto ( #4500 )
...
Sync from grpc/grpc-proto and rerun codegen.
2018-05-23 16:17:05 -07:00