1313import io .opentelemetry .api .common .AttributeKey ;
1414import io .opentelemetry .api .common .Attributes ;
1515import io .opentelemetry .api .common .AttributesBuilder ;
16- import io .opentelemetry .api .incubator .events .EventLogger ;
17- import io .opentelemetry .api .incubator .events .GlobalEventLoggerProvider ;
16+ import io .opentelemetry .api .incubator .logs .ExtendedLogRecordBuilder ;
1817import io .opentelemetry .instrumentation .runtimemetrics .java8 .internal .JmxRuntimeMetricsUtil ;
1918import io .opentelemetry .sdk .common .Clock ;
2019import io .opentelemetry .sdk .internal .DaemonThreadFactory ;
@@ -57,14 +56,16 @@ final class JarAnalyzer implements ClassFileTransformer {
5756 private final Set <URI > seenUris = new HashSet <>();
5857 private final BlockingQueue <URL > toProcess = new LinkedBlockingDeque <>();
5958
60- private JarAnalyzer (OpenTelemetry unused , int jarsPerSecond ) {
61- // TODO(jack-berg): Use OpenTelemetry to obtain EventLogger when event API is stable
62- EventLogger eventLogger =
63- GlobalEventLoggerProvider .get ()
64- .eventLoggerBuilder (JmxRuntimeMetricsUtil .getInstrumentationName ())
65- .setInstrumentationVersion (JmxRuntimeMetricsUtil .getInstrumentationVersion ())
66- .build ();
67- Worker worker = new Worker (eventLogger , toProcess , jarsPerSecond );
59+ private JarAnalyzer (OpenTelemetry openTelemetry , int jarsPerSecond ) {
60+ ExtendedLogRecordBuilder logRecordBuilder =
61+ (ExtendedLogRecordBuilder )
62+ openTelemetry
63+ .getLogsBridge ()
64+ .loggerBuilder (JmxRuntimeMetricsUtil .getInstrumentationName ())
65+ .setInstrumentationVersion (JmxRuntimeMetricsUtil .getInstrumentationVersion ())
66+ .build ()
67+ .logRecordBuilder ();
68+ Worker worker = new Worker (logRecordBuilder , toProcess , jarsPerSecond );
6869 Thread workerThread =
6970 new DaemonThreadFactory (JarAnalyzer .class .getSimpleName () + "_WorkerThread" )
7071 .newThread (worker );
@@ -152,11 +153,12 @@ private void handle(ProtectionDomain protectionDomain) {
152153
153154 private static final class Worker implements Runnable {
154155
155- private final EventLogger eventLogger ;
156+ private final ExtendedLogRecordBuilder eventLogger ;
156157 private final BlockingQueue <URL > toProcess ;
157158 private final io .opentelemetry .sdk .internal .RateLimiter rateLimiter ;
158159
159- private Worker (EventLogger eventLogger , BlockingQueue <URL > toProcess , int jarsPerSecond ) {
160+ private Worker (
161+ ExtendedLogRecordBuilder eventLogger , BlockingQueue <URL > toProcess , int jarsPerSecond ) {
160162 this .eventLogger = eventLogger ;
161163 this .toProcess = toProcess ;
162164 this .rateLimiter =
@@ -166,7 +168,7 @@ private Worker(EventLogger eventLogger, BlockingQueue<URL> toProcess, int jarsPe
166168
167169 /**
168170 * Continuously poll the {@link #toProcess} for archive {@link URL}s, and process each wit
169- * {@link #processUrl(EventLogger , URL)}.
171+ * {@link #processUrl(ExtendedLogRecordBuilder , URL)}.
170172 */
171173 @ Override
172174 public void run () {
@@ -200,7 +202,7 @@ public void run() {
200202 * Process the {@code archiveUrl}, extracting metadata from it and emitting an event with the
201203 * content.
202204 */
203- static void processUrl (EventLogger eventLogger , URL archiveUrl ) {
205+ static void processUrl (ExtendedLogRecordBuilder eventLogger , URL archiveUrl ) {
204206 JarDetails jarDetails ;
205207 try {
206208 jarDetails = JarDetails .forUrl (archiveUrl );
@@ -239,6 +241,6 @@ static void processUrl(EventLogger eventLogger, URL archiveUrl) {
239241 builder .put (PACKAGE_CHECKSUM , packageChecksum );
240242 builder .put (PACKAGE_CHECKSUM_ALGORITHM , "SHA1" );
241243
242- eventLogger .builder (EVENT_NAME_INFO ).setAttributes (builder .build ()).emit ();
244+ eventLogger .setEventName (EVENT_NAME_INFO ).setAllAttributes (builder .build ()).emit ();
243245 }
244246}
0 commit comments