Re #53: Refactored label serializer api so its easier to setup during tests. Fixed error in Logback appender when log level label is null.

This commit is contained in:
tomasz.kowalczewski committed 2021-06-18 23:08:56 +02:00
1 parent 84b12b21a5
commit e0dfd679b0
8 files changed
+18 -32

No files matched your search

@@ -47,8 +47,11 @@ public class LabelSerializer {
cursor - lastSizePosition - Integer.BYTES);
}
public void appendWholeLabelValue(String value) {
cursor += buffer.putStringAscii(cursor, value);
public void appendLabel(String key, String value) {
appendLabelName(key);
startAppendingLabelValue();
appendPartialLabelValue(value);
finishAppendingLabelValue();
}
public DirectBuffer getBuffer() {
@@ -17,15 +17,9 @@ public class LabelSerializers {
public static LabelSerializer from(Map<String, String> labels, String... moreLabels) {
LabelSerializer labelSerializer = threadLocal();
labels.forEach((key, value) -> {
labelSerializer.appendLabelName(key);
labelSerializer.appendWholeLabelValue(value);
}
);
labels.forEach(labelSerializer::appendLabel);
for (int i = 0; i < moreLabels.length; i += 2) {
labelSerializer.appendLabelName(moreLabels[i]);
labelSerializer.appendWholeLabelValue(moreLabels[i + 1]);
labelSerializer.appendLabel(moreLabels[i], moreLabels[i + 1]);
}
return labelSerializer;
@@ -36,8 +30,7 @@ public class LabelSerializers {
LabelSerializer labelSerializer = threadLocal();
for (int i = 0; i < labels.length; i += 2) {
labelSerializer.appendLabelName(labels[i]);
labelSerializer.appendWholeLabelValue(labels[i + 1]);
labelSerializer.appendLabel(labels[i], labels[i + 1]);
}
return labelSerializer;
@@ -29,12 +29,9 @@ public class ProtobufDeserializer {
);
LabelSerializer labelSerializer = LabelSerializers.threadLocal();
labelSerializer.appendLabelName("faaaoo");
labelSerializer.appendWholeLabelValue("baqwefewr");
labelSerializer.appendLabelName("a232aa");
labelSerializer.appendWholeLabelValue("bbbrgwew");
labelSerializer.appendLabelName("LEVEL");
labelSerializer.appendWholeLabelValue("DEBUG");
labelSerializer.appendLabel("faaaoo", "baqwefewr");
labelSerializer.appendLabel("a232aa", "bbbrgwew");
labelSerializer.appendLabel("LEVEL", "DEBUG");
LogBufferSerializer serializer = new LogBufferSerializer(logBuffer.buffer());
serializer.writeTo(
@@ -86,9 +86,7 @@ class LogBufferSerializerDeserializerTest {
LabelSerializer labelSerializer = LabelSerializers.from(labels);
if (logLevelLabel != null) {
labelSerializer
.appendLabelName(logLevelLabel)
.appendWholeLabelValue(logLevel);
labelSerializer.appendLabel(logLevelLabel, logLevel);
}
// When
@@ -26,9 +26,7 @@ class LogBufferSerializerTest {
LabelSerializer labelSerializer = LabelSerializers.from(labels);
if (logLevelLabel != null) {
labelSerializer
.appendLabelName(logLevelLabel)
.appendWholeLabelValue(logLevel);
labelSerializer.appendLabel(logLevelLabel, logLevel);
}
// When
@@ -42,9 +42,7 @@ class LogBufferTranscoderTest {
LabelSerializer labelSerializer = LabelSerializers.from(labels);
if (logLevelLabel != null) {
labelSerializer
.appendLabelName(logLevelLabel)
.appendWholeLabelValue(logLevel);
labelSerializer.appendLabel(logLevelLabel, logLevel);
}
serializer.writeTo(
@@ -74,8 +74,7 @@ public class AppenderLogic implements BiConsumer<LogEvent, ByteBuffer> {
private void processDynamicLabelsIfAny(LabelSerializer labelSerializer, LogEvent event) {
if (logLevelLabel != null) {
labelSerializer.appendLabelName(logLevelLabel);
labelSerializer.appendWholeLabelValue(event.getLevel().toString());
labelSerializer.appendLabel(logLevelLabel, event.getLevel().toString());
}
for (Map.Entry<String, LabelPrinter> labelPrinter : lokiLabels.entrySet()) {
@@ -60,9 +60,9 @@ public class LokiAppender extends LokiAppenderConfigurator {
ByteBuffer logLine = actualEncoder.apply(event);
LabelSerializer labelSerializer = LabelSerializers.threadLocal();
labelSerializer
.appendLabelName(logLevelLabel)
.appendWholeLabelValue(logLevel);
if (logLevelLabel != null) {
labelSerializer.appendLabel(logLevelLabel, logLevel);
}
logger.log(
event.getTimeStamp(),