Skip to content

Commit fcb7f1d

Browse files
committed
add more debug mode capabilities
1 parent 001894d commit fcb7f1d

File tree

7 files changed

+44
-9
lines changed

7 files changed

+44
-9
lines changed

disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/LogRecordFromDiskExporter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public static LogRecordFromDiskExporter create(
2525
.setStorageConfiguration(config)
2626
.setDeserializer(SignalDeserializer.ofLogs())
2727
.setExportFunction(exporter::export)
28+
.setDebugEnabled(config.isDebugEnabled())
2829
.build();
2930
return new LogRecordFromDiskExporter(delegate);
3031
}

disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/MetricFromDiskExporter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public static MetricFromDiskExporter create(MetricExporter exporter, StorageConf
2525
.setStorageConfiguration(config)
2626
.setDeserializer(SignalDeserializer.ofMetrics())
2727
.setExportFunction(exporter::export)
28+
.setDebugEnabled(config.isDebugEnabled())
2829
.build();
2930
return new MetricFromDiskExporter(delegate);
3031
}

disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/SpanFromDiskExporter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public static SpanFromDiskExporter create(SpanExporter exporter, StorageConfigur
2525
.setStorageConfiguration(config)
2626
.setDeserializer(SignalDeserializer.ofSpans())
2727
.setExportFunction(exporter::export)
28+
.setDebugEnabled(config.isDebugEnabled())
2829
.build();
2930
return new SpanFromDiskExporter(delegate);
3031
}

disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/exporter/FromDiskExporterBuilder.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,11 @@ public FromDiskExporterBuilder<T> setExportFunction(
6565
return this;
6666
}
6767

68+
@CanIgnoreReturnValue
69+
public FromDiskExporterBuilder<T> enableDebug() {
70+
return setDebugEnabled(true);
71+
}
72+
6873
@CanIgnoreReturnValue
6974
public FromDiskExporterBuilder<T> setDebugEnabled(boolean debugEnabled) {
7075
this.debugEnabled = debugEnabled;

disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/exporter/ToDiskExporter.java

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,37 +20,52 @@ public class ToDiskExporter<EXPORT_DATA> {
2020
private final Storage storage;
2121
private final SignalSerializer<EXPORT_DATA> serializer;
2222
private final Function<Collection<EXPORT_DATA>, CompletableResultCode> exportFunction;
23+
private final boolean debugEnabled;
2324

2425
ToDiskExporter(
2526
SignalSerializer<EXPORT_DATA> serializer,
2627
Function<Collection<EXPORT_DATA>, CompletableResultCode> exportFunction,
27-
Storage storage) {
28+
Storage storage,
29+
boolean debugEnabled) {
2830
this.serializer = serializer;
2931
this.exportFunction = exportFunction;
3032
this.storage = storage;
33+
this.debugEnabled = debugEnabled;
3134
}
3235

3336
public static <T> ToDiskExporterBuilder<T> builder() {
3437
return new ToDiskExporterBuilder<>();
3538
}
3639

3740
public CompletableResultCode export(Collection<EXPORT_DATA> data) {
38-
logger.log(Level.FINER, "Intercepting exporter batch.");
41+
log("Intercepting exporter batch.", Level.FINER);
3942
try {
4043
if (storage.write(serializer.serialize(data))) {
4144
return CompletableResultCode.ofSuccess();
4245
}
43-
logger.log(Level.INFO, "Could not store batch in disk. Exporting it right away.");
46+
log("Could not store batch in disk. Exporting it right away.");
4447
return exportFunction.apply(data);
4548
} catch (IOException e) {
46-
logger.log(
47-
Level.WARNING,
48-
"An unexpected error happened while attempting to write the data in disk. Exporting it right away.",
49-
e);
49+
if (debugEnabled) {
50+
logger.log(
51+
Level.WARNING,
52+
"An unexpected error happened while attempting to write the data in disk. Exporting it right away.",
53+
e);
54+
}
5055
return exportFunction.apply(data);
5156
}
5257
}
5358

59+
private void log(String msg) {
60+
log(msg, Level.INFO);
61+
}
62+
63+
private void log(String msg, Level level) {
64+
if (debugEnabled) {
65+
logger.log(level, msg);
66+
}
67+
}
68+
5469
public void shutdown() throws IOException {
5570
storage.close();
5671
}

disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/exporter/ToDiskExporterBuilder.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,21 @@ public final class ToDiskExporterBuilder<T> {
2424

2525
private Function<Collection<T>, CompletableResultCode> exportFunction =
2626
x -> CompletableResultCode.ofFailure();
27+
private boolean debugEnabled = false;
2728

2829
ToDiskExporterBuilder() {}
2930

31+
@CanIgnoreReturnValue
32+
public ToDiskExporterBuilder<T> enableDebug() {
33+
return setDebugEnabled(true);
34+
}
35+
36+
@CanIgnoreReturnValue
37+
public ToDiskExporterBuilder<T> setDebugEnabled(boolean debugEnabled) {
38+
this.debugEnabled = debugEnabled;
39+
return this;
40+
}
41+
3042
@CanIgnoreReturnValue
3143
public ToDiskExporterBuilder<T> setFolderName(String folderName) {
3244
storageBuilder.setFolderName(folderName);
@@ -61,7 +73,7 @@ public ToDiskExporterBuilder<T> setExportFunction(
6173

6274
public ToDiskExporter<T> build() throws IOException {
6375
Storage storage = storageBuilder.build();
64-
return new ToDiskExporter<>(serializer, exportFunction, storage);
76+
return new ToDiskExporter<>(serializer, exportFunction, storage, debugEnabled);
6577
}
6678

6779
private static void validateConfiguration(StorageConfiguration configuration) {

disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/exporter/ToDiskExporterTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ void setup() {
4949
exportedFnSeen = x;
5050
return exportFnResultToReturn.get();
5151
};
52-
toDiskExporter = new ToDiskExporter<>(serializer, exportFn, storage);
52+
toDiskExporter = new ToDiskExporter<>(serializer, exportFn, storage, true);
5353
when(serializer.serialize(records)).thenReturn(serialized);
5454
}
5555

0 commit comments

Comments
 (0)