tracing: apply tracer provider configuration defined as part of http_connection_manager filter#10405
Conversation
08f2a00 to
52a48c6
Compare
52a48c6 to
a6be7b9
Compare
|
I need your advice on how to better handle Right now, I've documented why Do you think we need something better than a warning in the docs ? E.g., we could prohibit configuring Also, current implementation of WDYT ? |
a6be7b9 to
af52fbb
Compare
…_connection_manager` filter Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io>
af52fbb to
0561ccc
Compare
If our goal is to get rid of tracing config in bootstrap (which I think it is) I don't think this is a viable long term option.
This seems like a pretty big bug in the OpenCensus implementation. Can we get this tracked somehow and someone working on an upstream fix? I would be inclined to just ignore this for now and let this be tracked as a known bug. IMO we should not go out of our way to work around broken extensions in Envoy. cc @g-easy @rnburn @objectiser |
|
I don't want to leave any room for an error. Because if it can happen, it will happen eventually, and it will cost somebody a few hours/days of troubleshooting. So, I propose to update
This way, WDYT? |
Yup sounds like a great plan. |
|
I will do it in a separate PR |
…ion notice for tracing provider configuration as part of Bootstrap config Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io>
|
I've made a few changes:
I was unable to add
How should I proceed ? |
cc @htuch you can still access the hidden smuggled field in the v3 object (see the generated API protos that are checked in). However, technically we can't make breaking changes to v3 like this. We are likely going to lock v2 very soon (next ~1 week) and then we will be working on v3 and v4alpha. So what I would probably do is deprecate this field from v2 and get the hidden smuggled field approach working. Then when we move to v3/v4alpha it should be straightforward to move this change over. |
…r-per-http-connection-manager Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io>
|
Yeah, I'm actively working on moving the v2->v3 API migration tooling to go v3->v4alpha, ETA < 1 week. |
…acing` field Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io>
Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io>
…PRECATED_FEATURE_TEST()` Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io>
…uilt with `--define deprecated_features=disabled` option Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io>
|
After adding To fix that, I updated all "example_configs" to define tracing provider as part of HCM. The only example left that is still using Let met know if it's not what you expected. |
mattklein123
left a comment
There was a problem hiding this comment.
Thanks in general this looks great. Let's revisit in ~1 week when we lock v2?
/wait
| // If not specified, Envoy will fall back to using tracing provider configuration | ||
| // from the bootstrap config. | ||
| // [#not-implemented-hide:] | ||
| // from the bootstrap config (for short-term backwards compatibility). |
There was a problem hiding this comment.
I would make the new docs read as it should be now vs. referring back to the previous behavior. That can be covered in deprecated.rst.
| // :ref:`provider <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.provider>` | ||
| // field. | ||
| // | ||
| // Alternatively, for the sake of short-term backwards compatibility, it is also possible to define |
There was a problem hiding this comment.
Same comment here. Please make the new docs refer to the expected new config, and talk about deprecation in deprecated.rst
| typed_config: {} | ||
| tracing: | ||
| operation_name: INGRESS | ||
| # Notice that tracing provider configuration is now part of "envoy.filters.network.http_connection_manager" config. |
There was a problem hiding this comment.
nit: I think this comment can be skipped, same elsewhere.
…d in v2 api" This reverts commit 2107e1f. Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io>
Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io>
|
When I refer to How should I fix that ? |
|
@htuch see question about doc failure above? |
|
@yskopets try using |
Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io>
|
@htuch thanks! it helped |
mattklein123
left a comment
There was a problem hiding this comment.
Thanks this is a great improvement. Just a few small questions/comments.
/wait
| // | ||
| // Envoy may support other tracers in the future, but right now the HTTP tracer is the only one | ||
| // supported. | ||
| message Tracing { |
There was a problem hiding this comment.
Is this message actually used anymore or just the inner HTTP message? Should this message actually be tagged for deletion with the inner message moved somehow? I don't think the tool supports this but we might want to file an issue here? cc @htuch
There was a problem hiding this comment.
config.trace.v3.Tracing will not be used anymore in v4.
I don't see a support for marking the entire message type as deprecated. The closest example is v2.Bootstrap.Runtime which only has (deprecated) comment in the docs.
I've added an "attention" message to config.trace.v3.Tracing for now.
@htuch Should I open an issue or you can phrase it better what needs to be done ?
There was a problem hiding this comment.
Please open an issue to track this. We will need some tooling work I think to make sure this message gets deleted/moved/etc. I'm not sure the best way of handling.
|
|
||
| 1.15.0 (Pending) | ||
| ================ | ||
| * tracing: tracing provider configuration as part of :ref:`bootstrap config <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.tracing>` |
There was a problem hiding this comment.
nit: I wouldn't discuss deprecation here but rather just describe the new way of configuring it. You describe deprecation elsewhere.
| TEST_P(ServerInstanceImplTest, DEPRECATED_FEATURE_TEST(ZipkinHttpTracingEnabled)) { | ||
| options_.service_cluster_name_ = "some_cluster_name"; | ||
| options_.service_node_name_ = "some_node_name"; | ||
| EXPECT_NO_THROW(initialize("test/server/test_data/server/zipkin_tracing.yaml")); |
There was a problem hiding this comment.
nit: can you rename this zipkin_tracing_deprecated_config or similar so it's clear that it should be removed when this is cleaned up?
…_data/server/zipkin_tracing_deprecated_config.yaml` Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io>
| // .. attention:: | ||
| // This field has been deprecated in favor of :ref:`HttpConnectionManager.Tracing.provider | ||
| // <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`. | ||
| trace.v3.Tracing tracing = 9 [deprecated = true]; |
There was a problem hiding this comment.
One question before deprecating, do you have thoughts on #10576?
Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io>
Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io>
Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io>
|
Apologies needs a master merge. We moved version history files around (see master). /wait |
…r-per-http-connection-manager Signed-off-by: Yaroslav Skopets <yaroslav@tetrate.io>
Description: apply tracer provider configuration defined as part of
http_connection_managerfilterRisk Level: Low
Testing: unit tests
Docs Changes: N/A
Release Notes: N/A
Context:
depends on tracing: ensure that OpenCensus is configured at most once #10519