RPC stable opt-in#15879
Conversation
|
|
7ef1f30 to
d48324a
Compare
|
@zeitlinger can you find ways to split this up into smaller pieces? |
good question - it's mostly tests, but adding those later will only reduce test coverage in the meantime. Do you have an idea? |
|
you can see how I've broken out the database semconv stabilization tasks in #12608 in case that helps |
|
can you split the semconv changes up instead of implementing all of the changes in one PR? |
yeah, this sounds like a good option, then you could even split the tests and send only grpc test first for example |
bb90c90 to
8858db7
Compare
Adds support for stable RPC semantic conventions following the existing database/code semconv stability pattern. Users can now opt in to stable RPC conventions using OTEL_SEMCONV_STABILITY_OPT_IN=rpc (or rpc/dup for dual emission). Key changes: - Add rpc/rpc/dup config support to SemconvStability - Implement dual histogram metrics (ms→s unit conversion) - Add system name mappings (apache_dubbo→dubbo, connect_rpc→connectrpc) - Support new fully-qualified method format (service/method) - Convert status codes from Long to String format - Update metadata prefixes (rpc.grpc.request.metadata→rpc.request.metadata) - Add error.type attribute for stable semconv - Create RpcSemconvStabilityUtil test helper
This reverts commit 851bd4d.
2f6b5c6 to
ae26805
Compare
|
For reference, trask asked in #16130 how @Override
public String getRpcMethod(GrpcRequest request) {
return request.getMethod().getFullMethodName();
}
@Override
public boolean isPredefined(GrpcRequest request) {
return true;
}
@Override
@Nullable
public String getErrorType(
GrpcRequest request, @Nullable Status response, @Nullable Throwable error) {
if (response != null && response.getCode() != Status.Code.OK) {
return response.getCode().name();
}
return null;
}For gRPC, |
I'm not sure this is the whole story for gRPC, see #15690 |
|
I can help to send a PR for apache dubbo after PR2 is merged. |
|
@steverao PR2 is merged now: #16304 (comment) |
|
Thanks @steverao for landing the dubbo PR! 🎉 Updated the table — PRs 1-3 are all merged now. Remaining: aws-sdk (25 files), rmi (4 files), gwt (2 files). All depend on grpc which is merged, so they can be created anytime. Would you be interested in picking up rmi and/or gwt? Both are small — rmi is ~4 files (rmi + spring-rmi-4.0), gwt is ~2 files (gwt-2.0). I can provide pointers to the patterns from the grpc PR if helpful. |
Sorry for delaying response, I just saw it just now, recently, I will develop dubbo related prototype PRs about dubbo firstly. I can do them after dubbo. |
|
Closing — RPC stable opt-in work has been delegated elsewhere. |
Fixes #15871
split into these PRs
rpc-api-incubatorrpc-grpcrpc-dubborpc-aws-sdkrpc-rmirpc-gwtMerge order:
First merge rpc-api-incubator (PR 1)✅ merged as Add dual-semconv support to RPC metrics #16298Then merge rpc-grpc (PR 2)✅ merged as gRPC: initial stable semconv support and testing #16304