Class TimeLimitedHandler
- java.lang.Object
-
- io.opencensus.trace.export.SpanExporter.Handler
-
- io.opencensus.exporter.trace.util.TimeLimitedHandler
-
public abstract class TimeLimitedHandler extends SpanExporter.Handler
An abstract class that allows different tracing services to export recorded data for sampled spans in their own format within a given time frame. If export does not complete within the time frame, spans will be dropped and no retries will be performed.Only extend this class if the client APIs don't support timeout natively. If there is a timeout option in the client APIs (for example Stackdriver Trace V2 API allows you to set timeout), use that instead.
To export data this MUST be register to to the ExportComponent using
SpanExporter.registerHandler(String, Handler)
.- Since:
- 0.22
-
-
Field Summary
Fields Modifier and Type Field Description private Duration
deadline
private java.lang.String
exportSpanName
private static java.util.logging.Logger
logger
private static Sampler
lowProbabilitySampler
private static Tracer
tracer
-
Constructor Summary
Constructors Modifier Constructor Description protected
TimeLimitedHandler(Duration deadline, java.lang.String exportSpanName)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
export(java.util.Collection<SpanData> spanDataList)
Exports a list of sampled (seeTraceOptions.isSampled()
)Span
s using the immutable representationSpanData
.private static void
handleException(java.lang.Exception e, java.lang.String logMessage)
private Scope
newExportScope()
abstract void
timeLimitedExport(java.util.Collection<SpanData> spanDataList)
Exports a list of sampled (seeTraceOptions.isSampled()
)Span
s using the immutable representationSpanData
, within the givendeadline
of thisTimeLimitedHandler
.
-
-
-
Constructor Detail
-
TimeLimitedHandler
protected TimeLimitedHandler(Duration deadline, java.lang.String exportSpanName)
-
-
Method Detail
-
timeLimitedExport
public abstract void timeLimitedExport(java.util.Collection<SpanData> spanDataList) throws java.lang.Exception
Exports a list of sampled (seeTraceOptions.isSampled()
)Span
s using the immutable representationSpanData
, within the givendeadline
of thisTimeLimitedHandler
.- Parameters:
spanDataList
- a list ofSpanData
objects to be exported.- Throws:
java.lang.Exception
- throws exception when failed to export.- Since:
- 0.22
-
export
public void export(java.util.Collection<SpanData> spanDataList)
Description copied from class:SpanExporter.Handler
Exports a list of sampled (seeTraceOptions.isSampled()
)Span
s using the immutable representationSpanData
.This may be called from a different thread than the one that called
Span.end()
.Implementation SHOULD not block the calling thread. It should execute the export on a different thread if possible.
- Specified by:
export
in classSpanExporter.Handler
- Parameters:
spanDataList
- a list ofSpanData
objects to be exported.
-
newExportScope
@MustBeClosed private Scope newExportScope()
-
handleException
private static void handleException(java.lang.Exception e, java.lang.String logMessage)
-
-