Skip to content

Commit

Permalink
Support OpenTelemetry Logs
Browse files Browse the repository at this point in the history
  • Loading branch information
radcortez committed Jul 11, 2024
1 parent a5d6340 commit 31a6f2f
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 2 deletions.
4 changes: 4 additions & 0 deletions api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk-metrics</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk-logs</artifactId>
</dependency>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-instrumentation-api</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package io.smallrye.opentelemetry.api;

import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.LogRecord;

import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.logs.Logger;
import io.opentelemetry.api.logs.Severity;

public class OpenTelemetryHandler extends Handler {
private final Logger logger;

public OpenTelemetryHandler(final Logger logger) {
this.logger = logger;
}

@Override
public void publish(final LogRecord record) {
logger.logRecordBuilder()
.setTimestamp(record.getInstant())
.setSeverity(toSeverity(record.getLevel()))
.setSeverityText(record.getLevel().getName())
.setBody(record.getMessage())
.emit();
}

@Override
public void flush() {

}

@Override
public void close() throws SecurityException {

}

private static Severity toSeverity(final Level level) {
if (Level.SEVERE.equals(level)) {
return Severity.ERROR;
}
if (Level.WARNING.equals(level)) {
return Severity.WARN;
}
if (Level.INFO.equals(level) || Level.CONFIG.equals(level)) {
return Severity.INFO;
}
if (Level.FINE.equals(level)) {
return Severity.DEBUG;
}
if (Level.FINER.equals(level) || Level.FINEST.equals(level) || Level.ALL.equals(level)) {
return Severity.TRACE;
}
return Severity.UNDEFINED_SEVERITY_NUMBER;
}

public static void install(final OpenTelemetry openTelemetry) {
Logger logger = openTelemetry.getLogsBridge().loggerBuilder(OpenTelemetryConfig.INSTRUMENTATION_NAME).build();
LogManager.getLogManager().getLogger("").addHandler(new OpenTelemetryHandler(logger));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.smallrye.opentelemetry.api.OpenTelemetryBuilderGetter;
import io.smallrye.opentelemetry.api.OpenTelemetryConfig;
import io.smallrye.opentelemetry.api.OpenTelemetryHandler;

@Singleton
public class OpenTelemetryProducer {
Expand All @@ -53,6 +54,8 @@ public OpenTelemetry getOpenTelemetry(final OpenTelemetryConfig config) {
closeables.addAll(Threads.registerObservers(openTelemetry));
closeables.addAll(GarbageCollector.registerObservers(openTelemetry));

OpenTelemetryHandler.install(openTelemetry);

return openTelemetry;
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
otel.traces.exporter=in-memory
otel.metrics.exporter=in-memory
otel.logs.exporter=none
otel.bsp.schedule.delay=100
otel.metric.export.interval=100

0 comments on commit 31a6f2f

Please sign in to comment.