Move Builders as non inner classes in sdk-extension/logging (#2864)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
This commit is contained in:
parent
6bb9894b2f
commit
904ca1d873
|
|
@ -16,7 +16,16 @@ public final class LogSinkSdkProvider {
|
||||||
private final LogSink logSink = new SdkLogSink();
|
private final LogSink logSink = new SdkLogSink();
|
||||||
private final List<LogProcessor> processors = new ArrayList<>();
|
private final List<LogProcessor> processors = new ArrayList<>();
|
||||||
|
|
||||||
private LogSinkSdkProvider() {}
|
/**
|
||||||
|
* Returns a new {@link LogSinkSdkProviderBuilder} for this class.
|
||||||
|
*
|
||||||
|
* @return a new {@link LogSinkSdkProviderBuilder} for this class.
|
||||||
|
*/
|
||||||
|
static LogSinkSdkProviderBuilder builder() {
|
||||||
|
return new LogSinkSdkProviderBuilder();
|
||||||
|
}
|
||||||
|
|
||||||
|
LogSinkSdkProvider() {}
|
||||||
|
|
||||||
public LogSink get(String instrumentationName, String instrumentationVersion) {
|
public LogSink get(String instrumentationName, String instrumentationVersion) {
|
||||||
// Currently there is no differentiation by instrumentation library
|
// Currently there is no differentiation by instrumentation library
|
||||||
|
|
@ -61,10 +70,4 @@ public final class LogSinkSdkProvider {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Builder {
|
|
||||||
public LogSinkSdkProvider build() {
|
|
||||||
return new LogSinkSdkProvider();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
/*
|
||||||
|
* Copyright The OpenTelemetry Authors
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.opentelemetry.sdk.logging;
|
||||||
|
|
||||||
|
public final class LogSinkSdkProviderBuilder {
|
||||||
|
LogSinkSdkProviderBuilder() {}
|
||||||
|
|
||||||
|
public LogSinkSdkProvider build() {
|
||||||
|
return new LogSinkSdkProvider();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -7,8 +7,6 @@ package io.opentelemetry.sdk.logging.data;
|
||||||
|
|
||||||
import com.google.auto.value.AutoValue;
|
import com.google.auto.value.AutoValue;
|
||||||
import io.opentelemetry.api.common.Attributes;
|
import io.opentelemetry.api.common.Attributes;
|
||||||
import io.opentelemetry.api.common.AttributesBuilder;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -19,6 +17,24 @@ import javax.annotation.Nullable;
|
||||||
@AutoValue
|
@AutoValue
|
||||||
public abstract class LogRecord {
|
public abstract class LogRecord {
|
||||||
|
|
||||||
|
public static LogRecordBuilder builder() {
|
||||||
|
return new LogRecordBuilder();
|
||||||
|
}
|
||||||
|
|
||||||
|
static LogRecord create(
|
||||||
|
long timeUnixNano,
|
||||||
|
String traceId,
|
||||||
|
String spanId,
|
||||||
|
int flags,
|
||||||
|
Severity severity,
|
||||||
|
String severityText,
|
||||||
|
String name,
|
||||||
|
AnyValue body,
|
||||||
|
Attributes attributes) {
|
||||||
|
return new AutoValue_LogRecord(
|
||||||
|
timeUnixNano, traceId, spanId, flags, severity, severityText, name, body, attributes);
|
||||||
|
}
|
||||||
|
|
||||||
public abstract long getTimeUnixNano();
|
public abstract long getTimeUnixNano();
|
||||||
|
|
||||||
public abstract String getTraceId();
|
public abstract String getTraceId();
|
||||||
|
|
@ -77,94 +93,4 @@ public abstract class LogRecord {
|
||||||
return severityNumber;
|
return severityNumber;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Builder builder() {
|
|
||||||
return new Builder();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class Builder {
|
|
||||||
private long timeUnixNano;
|
|
||||||
private String traceId = "";
|
|
||||||
private String spanId = "";
|
|
||||||
private int flags;
|
|
||||||
private Severity severity = Severity.UNDEFINED_SEVERITY_NUMBER;
|
|
||||||
private String severityText;
|
|
||||||
private String name;
|
|
||||||
private AnyValue body = AnyValue.stringAnyValue("");
|
|
||||||
private final AttributesBuilder attributeBuilder = Attributes.builder();
|
|
||||||
|
|
||||||
public Builder setUnixTimeNano(long timestamp) {
|
|
||||||
this.timeUnixNano = timestamp;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder setUnixTimeMillis(long timestamp) {
|
|
||||||
return setUnixTimeNano(TimeUnit.MILLISECONDS.toNanos(timestamp));
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder setTraceId(String traceId) {
|
|
||||||
this.traceId = traceId;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder setSpanId(String spanId) {
|
|
||||||
this.spanId = spanId;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder setFlags(int flags) {
|
|
||||||
this.flags = flags;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder setSeverity(Severity severity) {
|
|
||||||
this.severity = severity;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder setSeverityText(String severityText) {
|
|
||||||
this.severityText = severityText;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder setBody(AnyValue body) {
|
|
||||||
this.body = body;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder setBody(String body) {
|
|
||||||
return setBody(AnyValue.stringAnyValue(body));
|
|
||||||
}
|
|
||||||
|
|
||||||
public Builder setAttributes(Attributes attributes) {
|
|
||||||
this.attributeBuilder.putAll(attributes);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Build a LogRecord instance.
|
|
||||||
*
|
|
||||||
* @return value object being built
|
|
||||||
*/
|
|
||||||
public LogRecord build() {
|
|
||||||
if (timeUnixNano == 0) {
|
|
||||||
timeUnixNano = TimeUnit.MILLISECONDS.toNanos(System.currentTimeMillis());
|
|
||||||
}
|
|
||||||
return new AutoValue_LogRecord(
|
|
||||||
timeUnixNano,
|
|
||||||
traceId,
|
|
||||||
spanId,
|
|
||||||
flags,
|
|
||||||
severity,
|
|
||||||
severityText,
|
|
||||||
name,
|
|
||||||
body,
|
|
||||||
attributeBuilder.build());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,98 @@
|
||||||
|
/*
|
||||||
|
* Copyright The OpenTelemetry Authors
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.opentelemetry.sdk.logging.data;
|
||||||
|
|
||||||
|
import io.opentelemetry.api.common.Attributes;
|
||||||
|
import io.opentelemetry.api.common.AttributesBuilder;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
public final class LogRecordBuilder {
|
||||||
|
private long timeUnixNano;
|
||||||
|
private String traceId = "";
|
||||||
|
private String spanId = "";
|
||||||
|
private int flags;
|
||||||
|
private LogRecord.Severity severity = LogRecord.Severity.UNDEFINED_SEVERITY_NUMBER;
|
||||||
|
private String severityText;
|
||||||
|
private String name;
|
||||||
|
private AnyValue body = AnyValue.stringAnyValue("");
|
||||||
|
private final AttributesBuilder attributeBuilder = Attributes.builder();
|
||||||
|
|
||||||
|
LogRecordBuilder() {}
|
||||||
|
|
||||||
|
public LogRecordBuilder setUnixTimeNano(long timestamp) {
|
||||||
|
this.timeUnixNano = timestamp;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LogRecordBuilder setUnixTimeMillis(long timestamp) {
|
||||||
|
return setUnixTimeNano(TimeUnit.MILLISECONDS.toNanos(timestamp));
|
||||||
|
}
|
||||||
|
|
||||||
|
public LogRecordBuilder setTraceId(String traceId) {
|
||||||
|
this.traceId = traceId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LogRecordBuilder setSpanId(String spanId) {
|
||||||
|
this.spanId = spanId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LogRecordBuilder setFlags(int flags) {
|
||||||
|
this.flags = flags;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LogRecordBuilder setSeverity(LogRecord.Severity severity) {
|
||||||
|
this.severity = severity;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LogRecordBuilder setSeverityText(String severityText) {
|
||||||
|
this.severityText = severityText;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LogRecordBuilder setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LogRecordBuilder setBody(AnyValue body) {
|
||||||
|
this.body = body;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LogRecordBuilder setBody(String body) {
|
||||||
|
return setBody(AnyValue.stringAnyValue(body));
|
||||||
|
}
|
||||||
|
|
||||||
|
public LogRecordBuilder setAttributes(Attributes attributes) {
|
||||||
|
this.attributeBuilder.putAll(attributes);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build a LogRecord instance.
|
||||||
|
*
|
||||||
|
* @return value object being built
|
||||||
|
*/
|
||||||
|
public LogRecord build() {
|
||||||
|
if (timeUnixNano == 0) {
|
||||||
|
timeUnixNano = TimeUnit.MILLISECONDS.toNanos(System.currentTimeMillis());
|
||||||
|
}
|
||||||
|
return LogRecord.create(
|
||||||
|
timeUnixNano,
|
||||||
|
traceId,
|
||||||
|
spanId,
|
||||||
|
flags,
|
||||||
|
severity,
|
||||||
|
severityText,
|
||||||
|
name,
|
||||||
|
body,
|
||||||
|
attributeBuilder.build());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -5,7 +5,6 @@
|
||||||
|
|
||||||
package io.opentelemetry.sdk.logging.export;
|
package io.opentelemetry.sdk.logging.export;
|
||||||
|
|
||||||
import io.opentelemetry.api.internal.Utils;
|
|
||||||
import io.opentelemetry.api.metrics.BoundLongCounter;
|
import io.opentelemetry.api.metrics.BoundLongCounter;
|
||||||
import io.opentelemetry.api.metrics.GlobalMetricsProvider;
|
import io.opentelemetry.api.metrics.GlobalMetricsProvider;
|
||||||
import io.opentelemetry.api.metrics.LongCounter;
|
import io.opentelemetry.api.metrics.LongCounter;
|
||||||
|
|
@ -16,7 +15,6 @@ import io.opentelemetry.sdk.internal.DaemonThreadFactory;
|
||||||
import io.opentelemetry.sdk.logging.LogProcessor;
|
import io.opentelemetry.sdk.logging.LogProcessor;
|
||||||
import io.opentelemetry.sdk.logging.data.LogRecord;
|
import io.opentelemetry.sdk.logging.data.LogRecord;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.concurrent.ArrayBlockingQueue;
|
import java.util.concurrent.ArrayBlockingQueue;
|
||||||
import java.util.concurrent.BlockingQueue;
|
import java.util.concurrent.BlockingQueue;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
@ -29,7 +27,7 @@ public final class BatchLogProcessor implements LogProcessor {
|
||||||
private final Worker worker;
|
private final Worker worker;
|
||||||
private final Thread workerThread;
|
private final Thread workerThread;
|
||||||
|
|
||||||
private BatchLogProcessor(
|
BatchLogProcessor(
|
||||||
int maxQueueSize,
|
int maxQueueSize,
|
||||||
long scheduleDelayMillis,
|
long scheduleDelayMillis,
|
||||||
int maxExportBatchSize,
|
int maxExportBatchSize,
|
||||||
|
|
@ -46,8 +44,8 @@ public final class BatchLogProcessor implements LogProcessor {
|
||||||
this.workerThread.start();
|
this.workerThread.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Builder builder(LogExporter logExporter) {
|
public static BatchLogProcessorBuilder builder(LogExporter logExporter) {
|
||||||
return new Builder(logExporter);
|
return new BatchLogProcessorBuilder(logExporter);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -216,114 +214,4 @@ public final class BatchLogProcessor implements LogProcessor {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final class Builder {
|
|
||||||
private static final long DEFAULT_SCHEDULE_DELAY_MILLIS = 200;
|
|
||||||
private static final int DEFAULT_MAX_QUEUE_SIZE = 2048;
|
|
||||||
private static final int DEFAULT_MAX_EXPORT_BATCH_SIZE = 512;
|
|
||||||
private static final long DEFAULT_EXPORT_TIMEOUT_MILLIS = 30_000;
|
|
||||||
|
|
||||||
private final LogExporter logExporter;
|
|
||||||
private long scheduleDelayMillis = DEFAULT_SCHEDULE_DELAY_MILLIS;
|
|
||||||
private int maxQueueSize = DEFAULT_MAX_QUEUE_SIZE;
|
|
||||||
private int maxExportBatchSize = DEFAULT_MAX_EXPORT_BATCH_SIZE;
|
|
||||||
private long exporterTimeoutMillis = DEFAULT_EXPORT_TIMEOUT_MILLIS;
|
|
||||||
|
|
||||||
private Builder(LogExporter logExporter) {
|
|
||||||
this.logExporter = Objects.requireNonNull(logExporter, "Exporter argument can not be null");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Build a BatchLogProcessor.
|
|
||||||
*
|
|
||||||
* @return configured processor
|
|
||||||
*/
|
|
||||||
public BatchLogProcessor build() {
|
|
||||||
return new BatchLogProcessor(
|
|
||||||
maxQueueSize,
|
|
||||||
scheduleDelayMillis,
|
|
||||||
maxExportBatchSize,
|
|
||||||
exporterTimeoutMillis,
|
|
||||||
logExporter);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the delay interval between two consecutive exports. The actual interval may be shorter
|
|
||||||
* if the batch size is getting larger than {@code maxQueuedSpans / 2}.
|
|
||||||
*
|
|
||||||
* <p>Default value is {@code 250}ms.
|
|
||||||
*
|
|
||||||
* @param scheduleDelayMillis the delay interval between two consecutive exports.
|
|
||||||
* @return this.
|
|
||||||
* @see BatchLogProcessor.Builder#DEFAULT_SCHEDULE_DELAY_MILLIS
|
|
||||||
*/
|
|
||||||
public BatchLogProcessor.Builder setScheduleDelayMillis(long scheduleDelayMillis) {
|
|
||||||
this.scheduleDelayMillis = scheduleDelayMillis;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public long getScheduleDelayMillis() {
|
|
||||||
return scheduleDelayMillis;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the maximum time an exporter will be allowed to run before being cancelled.
|
|
||||||
*
|
|
||||||
* <p>Default value is {@code 30000}ms
|
|
||||||
*
|
|
||||||
* @param exporterTimeoutMillis the timeout for exports in milliseconds.
|
|
||||||
* @return this
|
|
||||||
* @see BatchLogProcessor.Builder#DEFAULT_EXPORT_TIMEOUT_MILLIS
|
|
||||||
*/
|
|
||||||
public Builder setExporterTimeoutMillis(int exporterTimeoutMillis) {
|
|
||||||
this.exporterTimeoutMillis = exporterTimeoutMillis;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public long getExporterTimeoutMillis() {
|
|
||||||
return exporterTimeoutMillis;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the maximum number of Spans that are kept in the queue before start dropping.
|
|
||||||
*
|
|
||||||
* <p>See the BatchSampledSpansProcessor class description for a high-level design description
|
|
||||||
* of this class.
|
|
||||||
*
|
|
||||||
* <p>Default value is {@code 2048}.
|
|
||||||
*
|
|
||||||
* @param maxQueueSize the maximum number of Spans that are kept in the queue before start
|
|
||||||
* dropping.
|
|
||||||
* @return this.
|
|
||||||
* @see BatchLogProcessor.Builder#DEFAULT_MAX_QUEUE_SIZE
|
|
||||||
*/
|
|
||||||
public Builder setMaxQueueSize(int maxQueueSize) {
|
|
||||||
this.maxQueueSize = maxQueueSize;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getMaxQueueSize() {
|
|
||||||
return maxQueueSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the maximum batch size for every export. This must be smaller or equal to {@code
|
|
||||||
* maxQueuedSpans}.
|
|
||||||
*
|
|
||||||
* <p>Default value is {@code 512}.
|
|
||||||
*
|
|
||||||
* @param maxExportBatchSize the maximum batch size for every export.
|
|
||||||
* @return this.
|
|
||||||
* @see BatchLogProcessor.Builder#DEFAULT_MAX_EXPORT_BATCH_SIZE
|
|
||||||
*/
|
|
||||||
public Builder setMaxExportBatchSize(int maxExportBatchSize) {
|
|
||||||
Utils.checkArgument(maxExportBatchSize > 0, "maxExportBatchSize must be positive.");
|
|
||||||
this.maxExportBatchSize = maxExportBatchSize;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getMaxExportBatchSize() {
|
|
||||||
return maxExportBatchSize;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,115 @@
|
||||||
|
/*
|
||||||
|
* Copyright The OpenTelemetry Authors
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.opentelemetry.sdk.logging.export;
|
||||||
|
|
||||||
|
import io.opentelemetry.api.internal.Utils;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
public final class BatchLogProcessorBuilder {
|
||||||
|
private static final long DEFAULT_SCHEDULE_DELAY_MILLIS = 200;
|
||||||
|
private static final int DEFAULT_MAX_QUEUE_SIZE = 2048;
|
||||||
|
private static final int DEFAULT_MAX_EXPORT_BATCH_SIZE = 512;
|
||||||
|
private static final long DEFAULT_EXPORT_TIMEOUT_MILLIS = 30_000;
|
||||||
|
|
||||||
|
private final LogExporter logExporter;
|
||||||
|
private long scheduleDelayMillis = DEFAULT_SCHEDULE_DELAY_MILLIS;
|
||||||
|
private int maxQueueSize = DEFAULT_MAX_QUEUE_SIZE;
|
||||||
|
private int maxExportBatchSize = DEFAULT_MAX_EXPORT_BATCH_SIZE;
|
||||||
|
private long exporterTimeoutMillis = DEFAULT_EXPORT_TIMEOUT_MILLIS;
|
||||||
|
|
||||||
|
BatchLogProcessorBuilder(LogExporter logExporter) {
|
||||||
|
this.logExporter = Objects.requireNonNull(logExporter, "Exporter argument can not be null");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build a BatchLogProcessor.
|
||||||
|
*
|
||||||
|
* @return configured processor
|
||||||
|
*/
|
||||||
|
public BatchLogProcessor build() {
|
||||||
|
return new BatchLogProcessor(
|
||||||
|
maxQueueSize, scheduleDelayMillis, maxExportBatchSize, exporterTimeoutMillis, logExporter);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the delay interval between two consecutive exports. The actual interval may be shorter if
|
||||||
|
* the batch size is getting larger than {@code maxQueuedSpans / 2}.
|
||||||
|
*
|
||||||
|
* <p>Default value is {@code 250}ms.
|
||||||
|
*
|
||||||
|
* @param scheduleDelayMillis the delay interval between two consecutive exports.
|
||||||
|
* @return this.
|
||||||
|
* @see BatchLogProcessorBuilder#DEFAULT_SCHEDULE_DELAY_MILLIS
|
||||||
|
*/
|
||||||
|
public BatchLogProcessorBuilder setScheduleDelayMillis(long scheduleDelayMillis) {
|
||||||
|
this.scheduleDelayMillis = scheduleDelayMillis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getScheduleDelayMillis() {
|
||||||
|
return scheduleDelayMillis;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the maximum time an exporter will be allowed to run before being cancelled.
|
||||||
|
*
|
||||||
|
* <p>Default value is {@code 30000}ms
|
||||||
|
*
|
||||||
|
* @param exporterTimeoutMillis the timeout for exports in milliseconds.
|
||||||
|
* @return this
|
||||||
|
* @see BatchLogProcessorBuilder#DEFAULT_EXPORT_TIMEOUT_MILLIS
|
||||||
|
*/
|
||||||
|
public BatchLogProcessorBuilder setExporterTimeoutMillis(int exporterTimeoutMillis) {
|
||||||
|
this.exporterTimeoutMillis = exporterTimeoutMillis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getExporterTimeoutMillis() {
|
||||||
|
return exporterTimeoutMillis;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the maximum number of Spans that are kept in the queue before start dropping.
|
||||||
|
*
|
||||||
|
* <p>See the BatchSampledSpansProcessor class description for a high-level design description of
|
||||||
|
* this class.
|
||||||
|
*
|
||||||
|
* <p>Default value is {@code 2048}.
|
||||||
|
*
|
||||||
|
* @param maxQueueSize the maximum number of Spans that are kept in the queue before start
|
||||||
|
* dropping.
|
||||||
|
* @return this.
|
||||||
|
* @see BatchLogProcessorBuilder#DEFAULT_MAX_QUEUE_SIZE
|
||||||
|
*/
|
||||||
|
public BatchLogProcessorBuilder setMaxQueueSize(int maxQueueSize) {
|
||||||
|
this.maxQueueSize = maxQueueSize;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMaxQueueSize() {
|
||||||
|
return maxQueueSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the maximum batch size for every export. This must be smaller or equal to {@code
|
||||||
|
* maxQueuedSpans}.
|
||||||
|
*
|
||||||
|
* <p>Default value is {@code 512}.
|
||||||
|
*
|
||||||
|
* @param maxExportBatchSize the maximum batch size for every export.
|
||||||
|
* @return this.
|
||||||
|
* @see BatchLogProcessorBuilder#DEFAULT_MAX_EXPORT_BATCH_SIZE
|
||||||
|
*/
|
||||||
|
public BatchLogProcessorBuilder setMaxExportBatchSize(int maxExportBatchSize) {
|
||||||
|
Utils.checkArgument(maxExportBatchSize > 0, "maxExportBatchSize must be positive.");
|
||||||
|
this.maxExportBatchSize = maxExportBatchSize;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMaxExportBatchSize() {
|
||||||
|
return maxExportBatchSize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -26,7 +26,7 @@ import org.junit.jupiter.api.Test;
|
||||||
class LogSinkSdkProviderTest {
|
class LogSinkSdkProviderTest {
|
||||||
|
|
||||||
private static LogRecord createLog(LogRecord.Severity severity, String message) {
|
private static LogRecord createLog(LogRecord.Severity severity, String message) {
|
||||||
return new LogRecord.Builder()
|
return LogRecord.builder()
|
||||||
.setUnixTimeMillis(System.currentTimeMillis())
|
.setUnixTimeMillis(System.currentTimeMillis())
|
||||||
.setTraceId(TraceId.getInvalid())
|
.setTraceId(TraceId.getInvalid())
|
||||||
.setSpanId(SpanId.getInvalid())
|
.setSpanId(SpanId.getInvalid())
|
||||||
|
|
@ -43,7 +43,7 @@ class LogSinkSdkProviderTest {
|
||||||
void testLogSinkSdkProvider() {
|
void testLogSinkSdkProvider() {
|
||||||
TestLogExporter exporter = new TestLogExporter();
|
TestLogExporter exporter = new TestLogExporter();
|
||||||
LogProcessor processor = BatchLogProcessor.builder(exporter).build();
|
LogProcessor processor = BatchLogProcessor.builder(exporter).build();
|
||||||
LogSinkSdkProvider provider = new LogSinkSdkProvider.Builder().build();
|
LogSinkSdkProvider provider = LogSinkSdkProvider.builder().build();
|
||||||
provider.addLogProcessor(processor);
|
provider.addLogProcessor(processor);
|
||||||
LogSink sink = provider.get("test", "0.1a");
|
LogSink sink = provider.get("test", "0.1a");
|
||||||
LogRecord log = createLog(LogRecord.Severity.ERROR, "test");
|
LogRecord log = createLog(LogRecord.Severity.ERROR, "test");
|
||||||
|
|
@ -64,7 +64,7 @@ class LogSinkSdkProviderTest {
|
||||||
.setMaxExportBatchSize(5)
|
.setMaxExportBatchSize(5)
|
||||||
.setMaxQueueSize(10)
|
.setMaxQueueSize(10)
|
||||||
.build();
|
.build();
|
||||||
LogSinkSdkProvider provider = new LogSinkSdkProvider.Builder().build();
|
LogSinkSdkProvider provider = LogSinkSdkProvider.builder().build();
|
||||||
provider.addLogProcessor(processor);
|
provider.addLogProcessor(processor);
|
||||||
LogSink sink = provider.get("test", "0.1a");
|
LogSink sink = provider.get("test", "0.1a");
|
||||||
|
|
||||||
|
|
@ -96,7 +96,7 @@ class LogSinkSdkProviderTest {
|
||||||
.setMaxExportBatchSize(5)
|
.setMaxExportBatchSize(5)
|
||||||
.setMaxQueueSize(10)
|
.setMaxQueueSize(10)
|
||||||
.build();
|
.build();
|
||||||
LogSinkSdkProvider provider = new LogSinkSdkProvider.Builder().build();
|
LogSinkSdkProvider provider = LogSinkSdkProvider.builder().build();
|
||||||
provider.addLogProcessor(processor);
|
provider.addLogProcessor(processor);
|
||||||
LogSink sink = provider.get("test", "0.1a");
|
LogSink sink = provider.get("test", "0.1a");
|
||||||
|
|
||||||
|
|
@ -115,7 +115,7 @@ class LogSinkSdkProviderTest {
|
||||||
void testMultipleProcessors() {
|
void testMultipleProcessors() {
|
||||||
TestLogProcessor processorOne = new TestLogProcessor();
|
TestLogProcessor processorOne = new TestLogProcessor();
|
||||||
TestLogProcessor processorTwo = new TestLogProcessor();
|
TestLogProcessor processorTwo = new TestLogProcessor();
|
||||||
LogSinkSdkProvider provider = new LogSinkSdkProvider.Builder().build();
|
LogSinkSdkProvider provider = LogSinkSdkProvider.builder().build();
|
||||||
provider.addLogProcessor(processorOne);
|
provider.addLogProcessor(processorOne);
|
||||||
provider.addLogProcessor(processorTwo);
|
provider.addLogProcessor(processorTwo);
|
||||||
LogSink sink = provider.get("test", "0.1");
|
LogSink sink = provider.get("test", "0.1");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue