Class OtelJulHandler
- java.lang.Object
-
- java.util.logging.Handler
-
- io.jenkins.plugins.opentelemetry.init.OtelJulHandler
-
- All Implemented Interfaces:
OtelComponent
,Comparable<OtelComponent>
@Extension(dynamicLoadable=YES, optional=true) public class OtelJulHandler extends Handler implements OtelComponent
Inspired by https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/v1.14.0/instrumentation/java-util-logging/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jul/JavaUtilLoggingHelper.java
-
-
Constructor Summary
Constructors Constructor Description OtelJulHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
afterSdkInitialized(io.opentelemetry.api.metrics.Meter meter, io.opentelemetry.api.logs.LoggerProvider loggerProvider, io.opentelemetry.api.events.EventEmitter eventEmitter, io.opentelemetry.api.trace.Tracer tracer, io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties configProperties)
Invoked soon after the Otel SDK has been initialized.void
close()
void
flush()
int
ordinal()
Hooking Otel logs is the first thing to initializevoid
publish(LogRecord logRecord)
Map theLogRecord
data model onto theLogRecordBuilder
.-
Methods inherited from class java.util.logging.Handler
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, isLoggable, reportError, setEncoding, setErrorManager, setFilter, setFormatter, setLevel
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.jenkins.plugins.opentelemetry.OtelComponent
afterSdkInitialized, beforeSdkShutdown, compareTo
-
-
-
-
Method Detail
-
publish
public void publish(LogRecord logRecord)
Map theLogRecord
data model onto theLogRecordBuilder
. Unmapped fields include:- Fully qualified class name -
LogRecord.getSourceClassName()
- Fully qualified method name -
LogRecord.getSourceMethodName()
- Fully qualified class name -
-
close
public void close() throws SecurityException
- Specified by:
close
in classHandler
- Throws:
SecurityException
-
afterSdkInitialized
public void afterSdkInitialized(io.opentelemetry.api.metrics.Meter meter, io.opentelemetry.api.logs.LoggerProvider loggerProvider, io.opentelemetry.api.events.EventEmitter eventEmitter, io.opentelemetry.api.trace.Tracer tracer, io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties configProperties)
Description copied from interface:OtelComponent
Invoked soon after the Otel SDK has been initialized. CreatedAutoCloseable
metering instruments don't have to be closed by Otel components, the OpenTelemetry plugin takes care of this (egObservableLongUpDownCounter
,ObservableLongCounter
...)- Specified by:
afterSdkInitialized
in interfaceOtelComponent
- Parameters:
meter
-Meter
of the newly initialized Otel SDKloggerProvider
-Logger
of the newly initialized Otel SDKtracer
-Tracer
of the newly initialized Otel SDKconfigProperties
-ConfigProperties
of the newly initialized Otel SDK
-
ordinal
public int ordinal()
Hooking Otel logs is the first thing to initialize- Specified by:
ordinal
in interfaceOtelComponent
- Returns:
- the ordinal of this otel component to execute step handlers in predictable order. The smallest ordinal is handled first.
-
-