Skip to content
This repository has been archived by the owner on Apr 28, 2022. It is now read-only.

Add GrpcSender for jaeger-collector #169

Merged
merged 14 commits into from
Jun 24, 2020
Merged

Conversation

Falco20019
Copy link
Collaborator

@Falco20019 Falco20019 commented Apr 14, 2020

Which problem is this PR solving?

Short description of the changes

  • The jaeger-collector got an gRPC endpoint. This can be used instead of Thrift. This add a separate package Jaeger.Senders.Grpc (like Jaeger.Senders.Thrift).

This can be used with Jaeger.Core to avoid having a dependency on Thrift. It includes no jaeger-agent sender and makes this also clear in the documentation. In comparison to #141, this also now supports MaxPacketSize like with UdpSender.

@Falco20019
Copy link
Collaborator Author

Once #167 is merged, I will also add cross dock tests. For now, I only tested it manually against jaeger-collector in jaegertracing/all-in-one.

@Falco20019 Falco20019 changed the title Add GrpcSender for jaeger-collector [WIP]Add GrpcSender for jaeger-collector Apr 14, 2020
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
src/Senders/Jaeger.Senders.Grpc/GrpcSender.cs Outdated Show resolved Hide resolved
src/Senders/Jaeger.Senders.Grpc/GrpcSender.cs Show resolved Hide resolved
src/Senders/Jaeger.Senders.Grpc/README.md Outdated Show resolved Hide resolved
src/Senders/Jaeger.Senders.Grpc/README.md Outdated Show resolved Hide resolved
src/Senders/Jaeger.Senders.Grpc/README.md Show resolved Hide resolved
src/Senders/Jaeger.Senders.Grpc/protos/collector.proto Outdated Show resolved Hide resolved
Signed-off-by: Kraemer, Benjamin <[email protected]>
Signed-off-by: Kraemer, Benjamin <[email protected]>
Signed-off-by: Kraemer, Benjamin <[email protected]>
Signed-off-by: Kraemer, Benjamin <[email protected]>
Signed-off-by: Kraemer, Benjamin <[email protected]>
@Falco20019 Falco20019 force-pushed the Falco20019/grpc-sender-2 branch from ac25212 to 8a4ba61 Compare April 15, 2020 13:43
Signed-off-by: Kraemer, Benjamin <[email protected]>
@Falco20019 Falco20019 force-pushed the Falco20019/grpc-sender-2 branch from 8a4ba61 to dc7152f Compare April 15, 2020 14:04
@Falco20019 Falco20019 requested a review from yurishkuro April 15, 2020 14:07
@Falco20019
Copy link
Collaborator Author

I left the conversations open for you to easier find the content. I resolved all but the JAEGER_GRPC_ROOT_CERTIFICATE topic. We need to decide if we want to support client certificates and if we want to have the content in the environment variable or the path. I assume the path would be better to use with secrets.

@Falco20019 Falco20019 changed the title [WIP]Add GrpcSender for jaeger-collector Add GrpcSender for jaeger-collector Apr 16, 2020
Protos will be generated from jaeger-idl directly

Signed-off-by: Kraemer, Benjamin <[email protected]>
Signed-off-by: Kraemer, Benjamin <[email protected]>
- Use Jaeger.Communication.Grpc instead

Signed-off-by: Kraemer, Benjamin <[email protected]>
Signed-off-by: Kraemer, Benjamin <[email protected]>
@Falco20019
Copy link
Collaborator Author

Falco20019 commented Jun 23, 2020

@yurishkuro I fixed all of the remaining topics. The client ca is also now using a string and should match the usage of collector.grpc.tls.client-ca. Thanks for all the input.

Once this and #184 are merged, I will release 0.4.0!

@@ -0,0 +1,291 @@
// <auto-generated>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kinda sad that this is being generated into the library, I was hoping gogo annotations, since they only apply to Go generator, would be no-op elsewhere.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sadly not. And it's not even possible to generate it without manually removing them. That was the first approach... But hard to maintain.

/// <summary>
/// The root certificate file used to check the server side certificate from GRPC collector (roots.pem).
/// </summary>
public const string JaegerGrpcRootCertificate = JaegerPrefix + "GRPC_ROOT_CERTIFICATE";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Q: is it, strictly speaking, scoped to gRPC only? Wouldn't it be possible to use the same certificates with HTTPS?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are technically right. But right now, it's only used there. Do we have environment variables for HTTPS in other clients? If yes, I would try to keep it in sync.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't believe mTLS is supported in any other clients.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then I will for now just merge it. For 1.0.0 we might look into it again.

@Falco20019 Falco20019 merged commit 4e97b9a into master Jun 24, 2020
@Falco20019 Falco20019 deleted the Falco20019/grpc-sender-2 branch June 24, 2020 15:44
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support for GrpcSender
2 participants