-
Notifications
You must be signed in to change notification settings - Fork 335
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(MeshTrace): add support for opentelemetry trace backend #5992
feat(MeshTrace): add support for opentelemetry trace backend #5992
Conversation
Hi @frzifus , |
What are the settings that come to your mind / you did like to see? Until here I just went for a simple test. ^^ |
I’d like to see this for example : conf:
compression: gzip
endpoint: otelcol2:55690
headers:
test1: "value1"
keepalive:
timeout: 20s
tls:
insecure: false
ca_file: ca.pem
cert_file: cert.pem
key_file: key.pem
insecure_skip_verify: false
min_version: "1.2"
max_version: "1.3" |
a83f5ef
to
5184ce7
Compare
5184ce7
to
67d45cb
Compare
But these are the internal opentelemetry grpc client settings. If I got it right, we can only use the envoy gRPC settings. |
2908bbc
to
1af4dc2
Compare
1af4dc2
to
c09991d
Compare
That is the opentelemetry exporter grpc client specification, right. This is the protobuf part. Then it needs to be translated into envoy configuration, if I understood it right |
This is not a specification. It is simply a grpc client implementation that is used in the opentelemetry collector |
hm.. while working on an e2e test, I noticed that the Jaeger deployment provided by kumactl does not expose otlp. |
14af4c5
to
5ccee44
Compare
5ccee44
to
60db9a0
Compare
48ccfa8
to
b2fd267
Compare
b2fd267
to
ddcd50b
Compare
ddcd50b
to
60ab66e
Compare
60ab66e
to
9fbb480
Compare
I have found this documentation from Opentelemetry . Have you seen it ? lb_policy: ROUND_ROBIN
typed_extension_protocol_options:
envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
"@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
explicit_http_config:
http2_protocol_options: {} Also , there is no |
Yes, while adding the endpoint. But tbh I would prefer to continue and add things afterwards step by step. |
Ok ! That’s alright for me :) ! |
9fbb480
to
2823ded
Compare
2823ded
to
a441ab3
Compare
type OpenTelemetryBackend struct { | ||
// Address of OpenTelemetry collector. | ||
// +kubebuilder:example="otel-collector:4317" | ||
Endpoint string `json:"endpoint"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Endpoint string `json:"endpoint"` | |
// +kubebuilder:validation:MinLength=1 | |
Endpoint string `json:"endpoint"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@michaelbeaumont - is there any reason it's not called Url
to be consistent with other backends? (zipkin, datadog)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be due to the absence of protocol in that field, which is defined for Zipkin and Datadog?
Signed-off-by: Benedikt Bongartz <bongartz@klimlive.de>
Signed-off-by: Benedikt Bongartz <bongartz@klimlive.de>
- bump jaeger from 1.34.1 to 1.42.0 Signed-off-by: Benedikt Bongartz <bongartz@klimlive.de>
Signed-off-by: Benedikt Bongartz <bongartz@klimlive.de>
a441ab3
to
67fda65
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM thanks!
Thanks for guidance @michaelbeaumont ! |
type OpenTelemetryBackend struct { | ||
// Address of OpenTelemetry collector. | ||
// +kubebuilder:example="otel-collector:4317" | ||
Endpoint string `json:"endpoint"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@michaelbeaumont - is there any reason it's not called Url
to be consistent with other backends? (zipkin, datadog)
@@ -200,6 +205,19 @@ func endpointForZipkin(cfg *api.ZipkinBackend) *xds.Endpoint { | |||
} | |||
} | |||
|
|||
func endpointForOpenTelemetry(cfg *api.OpenTelemetryBackend) *xds.Endpoint { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as mentioned in the previous comment if it was a url
then we could simply do:
url.Port()
This pr adds support to export traces in otel format. it is still in an early and experimental stage. ^^Closes #3690
Checklist prior to review
None
syscall.Mkfifo
have equivalent implementation on the other OS --UPGRADE.md
? --No
No
> Changelog:
entry here or add aci/
label to run fewer/more tests?See: envoyproxy/envoy#9958 (comment)