Alexey Ivanov
6eabd7e183
server: use least-requests loadbalancer for workers ( #6004 )
2023-04-11 11:34:42 -07:00
Zach Reyes
55d8783479
gcp/observability: Link logs and traces by logging Trace and Span IDs ( #6056 )
2023-03-09 13:56:23 -05:00
Zach Reyes
f31168468f
stats/opencensus: New uncompressed metrics and align with tracing spec ( #6051 )
2023-03-03 17:21:40 -05:00
Zach Reyes
cc320bf820
grpc: Log server trailers before writing status ( #6076 )
2023-03-03 17:20:54 -05:00
Ronak Jain
0954097276
server: expose API to set send compressor ( #5744 )
...
Fixes https://github.com/grpc/grpc-go/issues/5792
2023-01-31 13:27:34 -08:00
Zach Reyes
6a707eb1bb
client: add an option to disable global dial options ( #5990 )
2023-01-27 17:06:29 -05:00
Mikhail Mazurskiy
379a2f676c
*: add missing colon to errorf messages to improve readability ( #5911 )
2023-01-17 16:11:47 -08:00
Sean Barag
2f413c4548
transport/http2: use HTTP 400 for bad requests instead of 500 ( #5804 )
2022-12-13 11:31:23 -08:00
Zach Reyes
a9709c3f8c
Added logs for reasons causing connection and transport close ( #5840 )
2022-12-08 19:44:23 -05:00
Theodore Salvo
0fe49e823f
grpc: Improve documentation of read/write buffer size server and dial options ( #5800 )
...
Fixes https://github.com/grpc/grpc-go/issues/5798
2022-11-28 10:17:00 -08:00
Yimin Chen
adfb9155e4
server: fix ChainUnaryInterceptor and ChainStreamInterceptor to allow retrying handlers ( #5666 )
2022-11-22 12:58:04 -08:00
Zach Reyes
f52b910b10
o11y: Fixed o11y bug ( #5720 )
2022-10-14 14:48:39 -04:00
Zach Reyes
5fc798be17
Add binary logger option for client and server ( #5675 )
...
* Add binary logger option for client and server
2022-10-06 13:36:05 -04:00
Easwar Swaminathan
aee9f0ed17
orca: server side custom metrics implementation ( #5531 )
2022-09-01 15:58:29 -07:00
Doug Fawley
02f1a7ac92
grpc: prevent a nil stats handler from causing a panic ( #5543 )
2022-07-29 10:45:21 -07:00
Juraci Paixão Kröhling
6dd40ad6e6
Change the log-level when a new ServerTransport cannot be created ( #5524 )
2022-07-19 15:18:52 -07:00
Lidi Zheng
ea86bf7497
stats: add support for multiple stats handlers in a single client or server ( #5347 )
2022-06-03 09:15:50 -07:00
Lidi Zheng
13b378bc45
internal: add global DialOptions and ServerOptions for all clients and servers ( #5352 )
2022-06-02 16:17:01 -07:00
Doug Fawley
9711b148c4
server: clarify documentation around setting and sending headers and ServerStream errors ( #5302 )
2022-04-08 13:11:40 -07:00
Easwar Swaminathan
a73725f42d
channelz: include channelz identifier in logs ( #5192 )
2022-02-23 07:30:06 -08:00
Menghan Li
61a6a06b88
server: handle context errors returned by service handler ( #5156 )
2022-01-26 11:02:23 -08:00
Doug Fawley
f068a13ef0
server: add missing conn.Close if the connection dies before reading the HTTP/2 preface ( #4837 )
2021-10-04 11:22:00 -07:00
Evan Jones
e6246c22eb
server: optimize chain interceptors (-1 allocation, -10% time/call) ( #4746 )
2021-09-22 13:30:27 -07:00
Zach Reyes
606403ded2
transport: fix log spam from Server Authentication Handshake errors ( #4798 )
...
* transport: fix log spam from Server Authentication Handshake errors
2021-09-21 19:33:18 -04:00
Zach Reyes
c361e9ea16
Move Server Credentials Handshake to transport ( #4692 )
...
* Move Server Credentials Handshake to transport
2021-08-23 19:39:14 -04:00
吴亲库里
52cea24534
server: fix net.conn closed twice ( #4663 )
2021-08-18 13:31:22 -07:00
Menghan Li
c052940bcd
server: fix leaked net.Conn ( #4633 )
...
This happens when NewServerTransport() returns nil, nil. The rawConn is
closed when the transport is closed, which will never happen in this
case (since the returned transport is nil).
2021-08-02 13:05:02 -07:00
Aliaksandr Mianzhynski
9b2fa9f8d3
server: improve chained interceptors performance ( #4524 )
2021-06-24 22:11:47 -07:00
Iskandarov Lev
4faa31f0a5
stats: add stream info inside stats.Begin ( #4533 )
2021-06-18 13:21:07 -07:00
Easwar Swaminathan
174b1c28af
internal/transport: skip log on EOF when reading client preface ( #4458 )
2021-06-02 16:47:35 -07:00
Easwar Swaminathan
728364accf
server: return UNIMPLEMENTED on receipt of malformed method name ( #4464 )
2021-05-24 17:30:40 -07:00
Ehsan Afzali
a8e85e0d57
server: allow PreparedMsgs to work for server streams ( #3480 )
2021-05-21 15:54:24 -07:00
Doug Fawley
328b1d171a
transport: allow InTapHandle to return status errors ( #4365 )
2021-05-07 14:37:52 -07:00
Mikhail Mazurskiy
d2d6bdae07
server: add ForceServerCodec() to set a custom encoding.Codec on the server ( #4205 )
2021-05-06 09:40:54 -07:00
Easwar Swaminathan
52a707c0da
xds: serving mode changes outlined in gRFC A36 ( #4328 )
2021-04-26 14:29:06 -07:00
Easwar Swaminathan
2fad6bf4da
xds: Implement server-side security ( #4092 )
2020-12-16 10:27:18 -08:00
Gaurav Gahlot
d9063e7af3
standardized experimental warnings ( #3917 )
2020-10-02 09:11:08 -07:00
Stephen L. White
e6c98a478e
stats: include message header in stats.InPayload.WireLength ( #3886 )
2020-09-25 10:06:54 -07:00
Doug Fawley
44d73dff99
cmd/protoc-gen-go-grpc: rework service registration ( #3828 )
2020-08-25 09:28:01 -07:00
Garrett Gutierrez
0e72e09474
server: prevent hang in Go HTTP transport in some error cases ( #3833 )
2020-08-21 18:04:04 -07:00
Easwar Swaminathan
f30caa90ad
server: Add ServiceRegistrar interface. ( #3816 )
2020-08-14 10:26:20 -07:00
Easwar Swaminathan
a5514c9e50
grpc: Minor refactor in server code. ( #3779 )
2020-08-06 13:10:09 -07:00
Menghan Li
c95dc4da23
doc: mark CustomCodec as deprecated ( #3698 )
2020-06-26 12:56:03 -07:00
Garrett Gutierrez
506b773066
Implemented component logging ( #3617 )
2020-06-26 12:04:47 -07:00
IceberGu
636b0d84dd
internal: fix typos ( #3581 )
2020-05-19 19:24:38 -07:00
Adhityaa Chandrasekar
a0cdc21e61
server.go: use worker goroutines for fewer stack allocations ( #3204 )
...
Currently (go1.13.4), the default stack size for newly spawned
goroutines is 2048 bytes. This is insufficient when processing gRPC
requests as the we often require more than 4 KiB stacks. This causes the
Go runtime to call runtime.morestack at least twice per RPC, which
causes performance to suffer needlessly as stack reallocations require
all sorts of internal work such as changing pointers to point to new
addresses.
Since this stack growth is guaranteed to happen at least twice per RPC,
reusing goroutines gives us two wins:
1. The stack is already grown to 8 KiB after the first RPC, so
subsequent RPCs do not call runtime.morestack.
2. We eliminate the need to spawn a new goroutine for each request
(even though they're relatively inexpensive).
Performance improves across the board. The improvement is especially
visible in small, unary requests as the overhead of stack reallocation
is higher, percentage-wise. QPS is up anywhere between 3% and 5%
depending on the number of concurrent RPC requests in flight. Latency is
down ~3%. There is even a 1% decrease in memory footprint in some cases,
though that is an unintended, but happy coincidence.
unary-networkMode_none-bufConn_false-keepalive_false-benchTime_1m0s-trace_false-latency_0s-kbps_0-MTU_0-maxConcurrentCalls_8-reqSize_1B-respSize_1B-compressor_off-channelz_false-preloader_false
Title Before After Percentage
TotalOps 2613512 2701705 3.37%
SendOps 0 0 NaN%
RecvOps 0 0 NaN%
Bytes/op 8657.00 8654.17 -0.03%
Allocs/op 173.37 173.28 0.00%
ReqT/op 348468.27 360227.33 3.37%
RespT/op 348468.27 360227.33 3.37%
50th-Lat 174.601µs 167.378µs -4.14%
90th-Lat 233.132µs 229.087µs -1.74%
99th-Lat 438.98µs 441.857µs 0.66%
Avg-Lat 183.263µs 177.26µs -3.28%
2020-04-23 15:50:02 -07:00
Garrett Gutierrez
fff75ae40f
channelz: log on channelz trace events and trace on channelz relevant logs. ( #3329 )
...
channelz: log on channelz trace events and trace on channelz relevant logs. (#3329 )
2020-02-14 10:11:26 -08:00
Doug Fawley
6b9bf4296e
Revert "profiling: add hooks within grpc ( #3159 )" ( #3378 )
...
This reverts commit 83263d17f7 .
2020-02-14 07:56:46 -08:00
tukeJonny
d0235e4d6b
interceptor: new APIs for chaining server interceptors. ( #3336 )
2020-02-12 11:11:50 -08:00
Adhityaa Chandrasekar
83263d17f7
profiling: add hooks within grpc ( #3159 )
2020-02-12 11:10:44 -08:00