-
Notifications
You must be signed in to change notification settings - Fork 27
RFC for Open Telemetry Implementation for Presto. #33
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
base: main
Are you sure you want to change the base?
Conversation
d133671
to
8c51e68
Compare
RFC-0009-open-telemetry.md
Outdated
span-sampling=true | ||
``` | ||
|
||
***otel-factory.name***: unique identifier for OpenTelemetry factory implementation to be registered |
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.
This seems to imply that the only tracing providers supported must implement the Open Telemetry spec. The runtime should have no knowledge of any aspect of the Open Telemetry spec. The Open Telemetry spec should be implemented as a plugin and the SPI integration with the runtime should have a generic concept of tracing without any knowledge of any particular spec.
As an example, the Presto runtime and execution engines do not have any knowledge of the Iceberg spec either. They communicate through the connector SPI.
Please update your proposal with specifics on the abstractions that will be used within the SPI to accomplish this richer tracing functionality. Thank you.
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.
Hi @tdcmeehan The abstraction in SPI is generic and can be implemented by any tracing providers. If the key with "otel" and "OpenTelemetry factory" in the description are confusing here we could modify to some generic name like "tracing-factory-name" and "factory".
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.
Please add details on the changes being made to the SPI in this document.
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.
Hi @tdcmeehan Added the SPI details. Please review.
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.
I don't see it. Can you add actual interfaces and update the flow chart to denote runtime/engine -> libray, with the arrow indicating which SPI method will be invoked?
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.
Hi @tdcmeehan Added the flow chart. Could you please check. Thank you!!
2a53277
to
286b13c
Compare
Saved that user @sureshbabu-areekara is from IBM |
Hi @tdcmeehan Please find the draft PR prestodb/presto#24133 |
RFC-0009-open-telemetry.md
Outdated
@@ -0,0 +1,113 @@ | |||
# **RFC0009 for Presto** |
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.
You will need to change this RFC0011
since 9 & 10 were already commited
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.
Done.
RFC-0009-open-telemetry.md
Outdated
`BaseSpan` - SPI can be extended with the specific implementation which contains the actual SDK Span. BaseSpan propagates through the main presto code. | ||
`Tracer` - SPI for the span operations which can be implemented by specific serviceability framework. | ||
`TraceProvider` - SPI to supply different `Tracer` implementations. | ||
|
||
As of now we have one implementation for Open Telemetry can be configured by modifying the values in presto-main/etc/telemetry.properties | ||
`BaseSpan` introduced as part of new design. Hooks inside `Tracer` and `TraceProvider` is added/updated to match the design. | ||
`NoopTracer` removed as we have a default `Tracer` implementation in `presto-main/..tracing/DefaultTelemetryTracer` | ||
|
||
`Tracer` implementation get loaded by `PluginManager` at startup as before. | ||
|
||
Trace can be configured by modifying the values in presto-main/etc/telemetry-tracing.properties |
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.
Line endings are incorrect here. You need to add double spaces to get a newline in the rendered markdown
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.
Instead of pasting the various fields of the SPI, please paste the additions and deletions made to the SPI classes as code blocks
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.
Done.
RFC-0009-open-telemetry.md
Outdated
|
||
***exporter-timeout***: how long the span exporter will wait for a batch of spans to be successfully sent before timing out | ||
***trace-sampling-ratio***: Double between 0.0 and 1.0 to specify the percentage of queries to be traced. |
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.
How is sampling done ? Is there a way to control which queries get sampled ?
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.
0.0 : No requests are traced.
1.0 : Every request is traced.
Values between 0.0 to 1.0 : A fraction of requests are randomly traced. So we can decide how much % of queries to be sampled to reduce overhead.
Custom Sampling can be implemented for a particular type of query by overriding shouldSample method in Sampler class. But currently this is not implemented.
RFC-0009-open-telemetry.md
Outdated
Propagation is usually handled by instrumentation libraries and is transparent to the user. In the event that you need to manually propagate context, you can use the Propagators API. | ||
|
||
OpenTelemetry maintains several official propagators. The default propagator is using the headers specified by the W3C TraceContext specification. | ||
- In Presto in areas where REST calls involved, we use the header for context propagation as per the above image. |
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.
Can you describe the format of the header ? What are the key
and value
storing ? How big is the header ?
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.
RFC-0009-open-telemetry.md
Outdated
|
||
OpenTelemetry is a powerful serviceability framework that helps to gain insights into the performance and behaviour of the systems. It facilitates generation, collection, and management of telemetry data such as traces. | ||
|
||
The OSS Presto had a basic implementation of Open Telemetry. |
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.
Can you make a new section called Existing Open Telemetry
implementation and call out
- What flows are traced via the existing implementation
- What flows you think are missing and should be traced
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.
Added.
RFC-0009-open-telemetry.md
Outdated
|
||
The OSS Presto had a basic implementation of Open Telemetry. | ||
|
||
 |
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.
This screenshot is not helpful. Instead let's use the list of flows traced (describe them in a few sentences) to motivate the problem
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.
Added.
RFC-0009-open-telemetry.md
Outdated
|
||
## Proposed Implementation | ||
|
||
Presto can be manually instrumented and will have the following advantages. |
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.
We already have an existing OpenTelemetry related SPI. Let's change this to -
Presto can be manually instrumented and will have the following advantages. | |
With additional changes to the OpenTelemetry SPI, we get the following advantages - |
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.
Added.
RFC-0009-open-telemetry.md
Outdated
|
||
 | ||
- Open Telemetry SDK provides libraries for instrumenting applications to capture telemetry data(traces). It includes built-in integrations for common frameworks and supports custom instrumentation. | ||
- Presto application is getting instrumented using OpenTelemetry API. |
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.
Remove this line, adds no value
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.
Removed.
RFC-0009-open-telemetry.md
Outdated
- Ability to pass additional information as span attributes and events | ||
|
||
 | ||
- Open Telemetry SDK provides libraries for instrumenting applications to capture telemetry data(traces). It includes built-in integrations for common frameworks and supports custom instrumentation. |
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.
Looks like you're describing the interaction diagram from the image. Can you add a subsection heading like ### Interactions in the new flow
?
Instead of describing the full interaction (which the diagram is covering), only add details that are missing or not covered in the diagram
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.
Addressed.
RFC-0009-open-telemetry.md
Outdated
- The SDK continuously checks the flush trigger, and when it reaches the batch size, all spans are batched and sent to the backend. | ||
- Backend is a system to store, analyse and visualize this telemetry data. Common backends include systems like Jaeger, Instana, Grafana stack, etc. | ||
|
||
 |
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.
Please use sub-headings to describe what you're covering.
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.
Addressed.
RFC-0009-open-telemetry.md
Outdated
@@ -67,9 +67,16 @@ OpenTelemetry maintains several official propagators. The default propagator is | |||
Based on the discussion, this may need to be updated with feedback from reviewers. | |||
|
|||
## Adoption Plan |
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.
Please add a sub-heading called SPI Changes
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.
Added.
5ab4ff2
to
de67f6e
Compare
621e4dc
to
a1c882c
Compare
RFC-0011-open-telemetry.md
Outdated
|
||
|
||
## Summary | ||
The existing Open Telemetry implementation https://github.com/prestodb/presto/pull/18534 was an experimental feature, had a limited set of telemetry data(Query state changes) and did not include a child span concept. The recent implementation will make Presto more flexible, allowing support for both parent and child spans. Additionally, traces can now be propagated to the worker nodes as well. |
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.
This should summarize what the document is proposing, there can be a sample implementation, but the design is more important than implementation in the RFC. We need to highlight the shortcomings of the current tracing provider SPI and propose changes to the current SPI to support the desired features.
It seems like the desired features are:
- child spans
- tracing propagated to workers
In the later sections we need to explain why the current interface does not allow these two features.
If there are more features required, they should be called out explicitly
The existing Open Telemetry implementation https://github.com/prestodb/presto/pull/18534 was an experimental feature, had a limited set of telemetry data(Query state changes) and did not include a child span concept. The recent implementation will make Presto more flexible, allowing support for both parent and child spans. Additionally, traces can now be propagated to the worker nodes as well. | |
Presto's original tracing implementation was merged in https://github.com/prestodb/presto/pull/18534. It was an experimental feature, had a limited set of telemetry data, and did not include a child span concept. This document proposes an expansion to the tracing provider SPI to | |
1. Support child spans in traces to make understanding nested operations simpler | |
2. Allow traces to be propagated to workers so that the entire lifespan of a query can be traced from analysis through execution |
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.
Added.
RFC-0011-open-telemetry.md
Outdated
|
||
|
||
## Background | ||
OpenTelemetry is a powerful serviceability framework that helps to gain insights into the performance and behaviour of the systems. It facilitates generation, collection, and management of telemetry data such as traces. |
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.
We should drop the term "Open Telemetry" as much as possible from the document because we're trying to design an SPI interface that open telemetry is capable of implementing. The SPI tracing provider interface is the important thing to highlight.
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.
Updated.
RFC-0011-open-telemetry.md
Outdated
OpenTelemetry is a powerful serviceability framework that helps to gain insights into the performance and behaviour of the systems. It facilitates generation, collection, and management of telemetry data such as traces. | ||
|
||
|
||
### Existing Open Telemetry |
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.
We should update this to describe the current TracerProvider
/Tracer
interfaces and specifically describe why they are insufficient
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.
Updated.
RFC-0011-open-telemetry.md
Outdated
 | ||
|
||
|
||
The OSS Presto had a basic implementation of Open Telemetry with few limitations listed below. |
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.
The OSS Presto had a basic implementation of Open Telemetry with few limitations listed below. | |
Presto has a basic `TracerProvider` interface which makes it difficult to implement the following desirable features: |
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.
Updated.
- No correlation between traceId and queryId. | ||
- Does not identify failed queries | ||
- No context propagation to track worker nodes. | ||
|
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.
Here you should point out specifically which SPI methods used for tracing make implementing the particular features difficult
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.
Updated.
RFC-0011-open-telemetry.md
Outdated
Runnable getCurrentContextWrap(Runnable runnable); | ||
boolean isRecording(); | ||
Map<String, String> getHeadersMap(T span); | ||
void endSpanOnError(T querySpan, Throwable throwable); | ||
void addEvent(T span, String eventName); | ||
void setAttributes(T span, Map<String, String> attributes); | ||
void recordException(T span, String message, RuntimeException runtimeException, ErrorCode errorCode); | ||
void setSuccess(T span); | ||
T getInvalidSpan(); | ||
T getRootSpan(String traceId); | ||
T getSpan(String spanName); | ||
U scopedSpan(String name, Boolean... skipSpan); | ||
Optional<String> spanString(T span); |
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.
These all should have javadoc comments explaining what they do. Ideally the RFC should also explain how and where they are used.
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.
Updated.
RFC-0011-open-telemetry.md
Outdated
#### Deletions | ||
```java | ||
String tracerName = "com.facebook.presto"; | ||
void addPoint(String annotation); | ||
void startBlock(String blockName, String annotation); | ||
void addPointToBlock(String blockName, String annotation); | ||
void endBlock(String blockName, String annotation); | ||
void endTrace(String annotation); | ||
``` |
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.
We cannot just delete from the SPI, so we must add to the transition plan how we will either (1) maintain compatibility with the existing tracing methods and (2) eventually transition to the new API entirely. Will there be a feature flag?
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.
@ZacBlanco @aaneja As the existing OTel feature was and experimental one with limited spans, coexistence of both is relevant and a feasible approach?
RFC-0011-open-telemetry.md
Outdated
```java | ||
class TraceProvider {} | ||
``` | ||
SPI to supply different Tracer implementations. |
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.
We cannot delete this because we must be able to supply multiple tracer implementations
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.
TraceProvider completely not removed. only some methods in it.
RFC-0011-open-telemetry.md
Outdated
|
||
|
||
### Configuration | ||
Trace can be configured by modifying the values in presto-main/etc/telemetry-tracing.properties |
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.
This seems specific to the OpenTelemetry implementation. I think it's fine to propose changes to how we configure the existing OpenTelemtry tracing plugin, but we need to be very clear about the any configuration properties that would be added to TracingConfig
since it affects config.properties
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.
Thanks for the feedback! We'll make sure to clearly document it. Also Added the current configuration along with proposed configuration in RFC.
RFC-0011-open-telemetry.md
Outdated
## Proposed Implementation | ||
With additional changes to the OpenTelemetry SPI, we get the following advantages - | ||
- Presto can be manually instrumented which gives more flexibility and control. Easier to customize what operations can be monitored. | ||
- More number of spans with parent and child span concept which helps to get the insight on internal operations. | ||
- Able to pass queryId as attribute so that traces and query get connected each other. | ||
- Can identify failed queries and filter it out. | ||
- Ability to pass additional information as span attributes and events. | ||
- Context propagation from coordinator to worker nodes. | ||
|
||
|
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.
This section needs to spell out exactly what changes are being made to the TracerProvider
and Tracer
interfaces in java code, and also any additional architectural changes, such as things that the C++ and Java workers might have to implement. The diagrams are good, but we need to understand the exact changes to the existing interfaces. It isn't clear what the changes are just looking at the diagrams.
I see there is an SPI section below, but it needs to be moved up here and the exact changes to the flow of tracing spans/blocks must be described in text. The descriptions also need to spell out why the existing Tracer
/TracerProvider
interfaces are insufficient and how the new SPI changes make the desired features possible
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.
Hi @ZacBlanco @aaneja Moved SPI changes as per the comment #33 (comment) . Please let me know where to keep. Under Adoption Plan or Proposed implementation ?
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.
Updated what all additions in instrumentation flow with the new proposal. Context propagation from Coordinator to Worker is entirely new for the proposed implementation.
62ca790
to
cb99153
Compare
cb99153
to
2cf8a69
Compare
RFC-0011-open-telemetry.md
Outdated
scheduling. ie. it does not cover most of the internal operations during a query execution(The implementation for methods startBlock and endBlock are based on Map and cannot be used to handle large number of spans as the span name can be same for many.). | ||
- No additional information is being passed as query attributes or events. No suitable methods in SPI to set events and attributes. | ||
- No correlation between traceId and queryId. No suitable methods in SPI to set queryId. | ||
- Does not identify failed queries. No suitable methods in SPI to pass Error/Exception information and deals with failed query spans. |
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.
- Does not identify failed queries. No suitable methods in SPI to pass Error/Exception information and deals with failed query spans. | |
- Does not identify failed queries. No suitable methods in SPI to pass Error/Exception information and details with failed query spans. |
Is this supposed to be "details"?
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.
Updated.
SPI can be extended with the specific implementation which contains the actual SDK Span. BaseSpan propagates through the main presto code. Introduced as part of new design. | ||
|
||
```java | ||
default void close() |
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.
are these methods on the class of BaseSpan
? It is not clear. Also, default
is not valid unless BaseSpan
is defined as an interface
.
How do the methods close()
and end()
differ? When should they be used?
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.
BaseSpan is an SPI interface which is autoclosable. close()
came from AutoCloseable
and end()
part of BaseSpan.
close()
can be used to end span in a try-with-resource and end()
to manually end the span.
RFC-0011-open-telemetry.md
Outdated
```java | ||
class Tracer {} | ||
``` | ||
SPI for the span operations which can be implemented by specific serviceability framework. |
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.
If this is meant to be a comment on the Tracer
class, can you add it as a javadoc above the class within the code block?
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.
Updated.
RFC-0011-open-telemetry.md
Outdated
```java | ||
class TraceProvider {} | ||
``` | ||
SPI to supply different Tracer implementations. |
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.
Similar comment on moving this to a javadoc.
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.
Updated.
RFC-0011-open-telemetry.md
Outdated
```java | ||
T create(); | ||
``` |
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.
If this belongs on TracerProvider
please put it in the same code block
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.
Updated.
RFC-0011-open-telemetry.md
Outdated
* @param runtimeException the runtime exception | ||
* @param errorCode the error code | ||
*/ | ||
void recordException(T span, String message, RuntimeException runtimeException, ErrorCode errorCode); |
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.
Can we use Exception
instead of RuntimeException
to make this more generic?
Also, this method seems similar to addEvent
. It seems more like a convenience method. We could define the interface in a different way that would make it more generic and allow flexibility in the event implementation. If we remove recordException
but maintain addEvent
we could have
public void addEvent(T span, Event event);
public interface Event {}
public class ExceptionEvent implements Event {
private final String message;
private final Exception exception;
....
}
public class GenericEvent implements event {
private final String eventName;
....
}
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.
Hi @ZacBlanco Thanks for the feedback. Updated accordingly.
RFC-0011-open-telemetry.md
Outdated
* | ||
* @return the invalid span | ||
*/ | ||
T getInvalidSpan(); |
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.
Why do we need a different method for this? If tracing is disabled, the implementation should handle returning an implementation of T which is an invalid span. Otherwise, users would need to write a conditional every time this is called?
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.
I think yes the method is needed @ZacBlanco
If plugin loaded & tracing disabled --> no-op sdk span
If plugin not loaded & tracing enabled/disabled --> default implementation of .
RFC-0011-open-telemetry.md
Outdated
* | ||
* @return the root span | ||
*/ | ||
T getRootSpan(String traceId); |
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.
Does it always create it? Or only if it doesn't exist yet?
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.
For each query 1 root span will always be created.
RFC-0011-open-telemetry.md
Outdated
* Creates and returns the ScopedSpan with input name. | ||
* | ||
* @param name the name | ||
* @param skipSpan the skip span |
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.
what is a `skipSpan?
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.
skipSpan corresponds to span-sampling
in telemetry-tracing.properties to skip the spans which are less required. These were added to reduce the number of spans so that we can improve the performance and increase throughput, especially in high-load environments.
RFC-0011-open-telemetry.md
Outdated
* @param span the span | ||
* @return the optional | ||
*/ | ||
Optional<String> spanString(T span); |
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.
Why is there a separate method for this? Why can't this just be the implementation of T.toString()
?
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.
Thanks for the feedback. Moved the implementation.
a2b105f
to
63be222
Compare
No description provided.