Skip to content

Commit

Permalink
Move diagnostics out of bootstrap
Browse files Browse the repository at this point in the history
  • Loading branch information
trask committed Jul 11, 2023
1 parent 55ee233 commit 289c1df
Show file tree
Hide file tree
Showing 61 changed files with 192 additions and 215 deletions.
20 changes: 0 additions & 20 deletions agent/agent-bootstrap/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,4 @@ dependencies {
// TODO (heya) remove this when updating to upstream micrometer instrumentation
compileOnly("io.opentelemetry.instrumentation:opentelemetry-instrumentation-api")
compileOnly("io.opentelemetry:opentelemetry-semconv")
compileOnly("io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-semconv")

compileOnly("com.google.auto.value:auto-value-annotations")
annotationProcessor("com.google.auto.value:auto-value")

implementation("ch.qos.logback:logback-classic")
implementation("ch.qos.logback.contrib:logback-json-classic")

// not using gson because it has dependency on java.sql.*, which is not available in Java 9+ bootstrap class loader
// only complaint so far about moshi is that it doesn"t give line numbers when there are json formatting errors
implementation("com.squareup.moshi:moshi")

implementation(project(":etw:java"))

testCompileOnly("com.google.code.findbugs:jsr305")

testImplementation("org.junit.jupiter:junit-jupiter")
testImplementation("org.assertj:assertj-core")
testImplementation("org.mockito:mockito-core")
testImplementation("uk.org.webcompere:system-stubs-jupiter:2.0.2")
}
7 changes: 0 additions & 7 deletions agent/agent-bootstrap/gradle.lockfile
Original file line number Diff line number Diff line change
@@ -1,21 +1,14 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
ch.qos.logback.contrib:logback-json-classic:0.1.5=runtimeClasspath
ch.qos.logback.contrib:logback-json-core:0.1.5=runtimeClasspath
ch.qos.logback:logback-classic:1.2.12=runtimeClasspath
ch.qos.logback:logback-core:1.2.12=runtimeClasspath
com.azure:azure-sdk-bom:1.2.14=runtimeClasspath
com.fasterxml.jackson:jackson-bom:2.15.2=runtimeClasspath
com.google.guava:guava-bom:32.1.1-jre=runtimeClasspath
com.squareup.moshi:moshi:1.11.0=runtimeClasspath
com.squareup.okio:okio:1.17.5=runtimeClasspath
io.netty:netty-bom:4.1.94.Final=runtimeClasspath
io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:1.27.0-alpha=runtimeClasspath
io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:1.27.0=runtimeClasspath
io.opentelemetry:opentelemetry-bom-alpha:1.27.0-alpha=runtimeClasspath
io.opentelemetry:opentelemetry-bom:1.27.0=runtimeClasspath
org.junit:junit-bom:5.9.3=runtimeClasspath
org.slf4j:slf4j-api:1.7.36=runtimeClasspath
org.testcontainers:testcontainers-bom:1.18.3=runtimeClasspath
empty=
8 changes: 5 additions & 3 deletions agent/agent-tooling/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ dependencies {
implementation(project(":agent:azure-monitor-exporter")) {
exclude("org.ow2.asm", "asm")
}
implementation(project(":etw:java"))

compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-bootstrap")
compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-tooling")
Expand All @@ -37,9 +38,8 @@ dependencies {
// TODO (trask) this is probably still needed for above apache commons projects
implementation("org.slf4j:jcl-over-slf4j")

// these are present in the bootstrap class loader
compileOnly("ch.qos.logback:logback-classic")
compileOnly("ch.qos.logback.contrib:logback-json-classic")
implementation("ch.qos.logback:logback-classic")
implementation("ch.qos.logback.contrib:logback-json-classic")

implementation("com.azure:azure-core")
implementation("com.azure:azure-identity") {
Expand Down Expand Up @@ -88,4 +88,6 @@ dependencies {
testImplementation("org.mockito:mockito-core")
testImplementation("uk.org.webcompere:system-stubs-jupiter:2.0.2")
testImplementation("io.github.hakky54:logcaptor")

testCompileOnly("com.google.code.findbugs:jsr305")
}
4 changes: 4 additions & 0 deletions agent/agent-tooling/gradle.lockfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
ch.qos.logback.contrib:logback-json-classic:0.1.5=runtimeClasspath
ch.qos.logback.contrib:logback-json-core:0.1.5=runtimeClasspath
ch.qos.logback:logback-classic:1.2.12=runtimeClasspath
ch.qos.logback:logback-core:1.2.12=runtimeClasspath
com.azure:azure-core-http-netty:1.13.4=runtimeClasspath
com.azure:azure-core:1.40.0=runtimeClasspath
com.azure:azure-identity:1.9.1=runtimeClasspath
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
import static org.objectweb.asm.Opcodes.NEW;
import static org.objectweb.asm.Opcodes.RETURN;

import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.status.StatusFile;
import com.microsoft.applicationinsights.agent.internal.diagnostics.status.StatusFile;
import java.lang.instrument.ClassFileTransformer;
import java.security.ProtectionDomain;
import javax.annotation.Nullable;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.DiagnosticsHelper;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.status.StatusFile;
import com.microsoft.applicationinsights.agent.internal.common.FriendlyException;
import com.microsoft.applicationinsights.agent.internal.diagnostics.DiagnosticsHelper;
import com.microsoft.applicationinsights.agent.internal.diagnostics.status.StatusFile;
import io.opentelemetry.api.common.AttributeKey;
import io.opentelemetry.api.logs.Severity;
import java.io.File;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.DiagnosticsHelper;
import com.microsoft.applicationinsights.agent.internal.common.FriendlyException;
import com.microsoft.applicationinsights.agent.internal.configuration.Configuration.ConnectionStringOverride;
import com.microsoft.applicationinsights.agent.internal.configuration.Configuration.InstrumentationKeyOverride;
import com.microsoft.applicationinsights.agent.internal.configuration.Configuration.JmxMetric;
import com.microsoft.applicationinsights.agent.internal.configuration.Configuration.SamplingOverride;
import com.microsoft.applicationinsights.agent.internal.diagnostics.DiagnosticsHelper;
import java.io.IOException;
import java.net.URL;
import java.net.URLDecoder;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics;
package com.microsoft.applicationinsights.agent.internal.diagnostics;

public class AgentExtensionVersionFinder extends CachedDiagnosticsValueFinder {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics;
package com.microsoft.applicationinsights.agent.internal.diagnostics;

import java.util.Arrays;
import java.util.Iterator;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics;
package com.microsoft.applicationinsights.agent.internal.diagnostics;

public abstract class CachedDiagnosticsValueFinder implements DiagnosticsValueFinder {
private volatile String value;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics;
package com.microsoft.applicationinsights.agent.internal.diagnostics;

import java.nio.file.Files;
import java.nio.file.Path;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics;
package com.microsoft.applicationinsights.agent.internal.diagnostics;

public interface DiagnosticsValueFinder {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics;
package com.microsoft.applicationinsights.agent.internal.diagnostics;

public class InstrumentationKeyFinder implements DiagnosticsValueFinder {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics;
package com.microsoft.applicationinsights.agent.internal.diagnostics;

import javax.annotation.Nullable;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics;
package com.microsoft.applicationinsights.agent.internal.diagnostics;

import org.slf4j.MDC;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics;
package com.microsoft.applicationinsights.agent.internal.diagnostics;

import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics;
package com.microsoft.applicationinsights.agent.internal.diagnostics;

import java.io.IOException;
import java.io.InputStream;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics;
package com.microsoft.applicationinsights.agent.internal.diagnostics;

import javax.annotation.Nullable;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics;
package com.microsoft.applicationinsights.agent.internal.diagnostics;

public class SubscriptionIdFinder extends CachedDiagnosticsValueFinder {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics.etw;
package com.microsoft.applicationinsights.agent.internal.diagnostics.etw;

import static com.microsoft.applicationinsights.agent.bootstrap.diagnostics.MsgId.INITIALIZATION_SUCCESS;
import static com.microsoft.applicationinsights.agent.internal.diagnostics.MsgId.INITIALIZATION_SUCCESS;

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.classic.spi.ThrowableProxyUtil;
import ch.qos.logback.core.AppenderBase;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.ApplicationMetadataFactory;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.DiagnosticsHelper;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.etw.events.IpaError;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.etw.events.IpaInfo;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.etw.events.IpaVerbose;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.etw.events.IpaWarn;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.etw.events.model.IpaEtwEventBase;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.status.StatusFile;
import com.microsoft.applicationinsights.agent.internal.diagnostics.ApplicationMetadataFactory;
import com.microsoft.applicationinsights.agent.internal.diagnostics.DiagnosticsHelper;
import com.microsoft.applicationinsights.agent.internal.diagnostics.etw.events.IpaError;
import com.microsoft.applicationinsights.agent.internal.diagnostics.etw.events.IpaInfo;
import com.microsoft.applicationinsights.agent.internal.diagnostics.etw.events.IpaVerbose;
import com.microsoft.applicationinsights.agent.internal.diagnostics.etw.events.IpaWarn;
import com.microsoft.applicationinsights.agent.internal.diagnostics.etw.events.model.IpaEtwEventBase;
import com.microsoft.applicationinsights.agent.internal.diagnostics.status.StatusFile;
import java.util.Map;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -63,8 +63,7 @@ public void start() {
protected void append(ILoggingEvent logEvent) {
String logger = logEvent.getLoggerName();
if (logger != null
&& logger.startsWith(
"com.microsoft.applicationinsights.agent.bootstrap.diagnostics.etw.")) {
&& logger.startsWith("com.microsoft.applicationinsights.agent.internal.diagnostics.etw.")) {
addWarn("Skipping attempt to log to " + logger);
return;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics.log;
package com.microsoft.applicationinsights.agent.internal.diagnostics.log;

import ch.qos.logback.classic.PatternLayout;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.classic.spi.IThrowableProxy;
import ch.qos.logback.classic.spi.ThrowableProxy;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.ApplicationMetadataFactory;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.DiagnosticsHelper;
import com.microsoft.applicationinsights.agent.internal.diagnostics.ApplicationMetadataFactory;
import com.microsoft.applicationinsights.agent.internal.diagnostics.DiagnosticsHelper;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.io.PrintWriter;
import java.io.StringWriter;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics.log;
package com.microsoft.applicationinsights.agent.internal.diagnostics.log;

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.filter.Filter;
import ch.qos.logback.core.spi.FilterReply;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.DiagnosticsHelper;
import com.microsoft.applicationinsights.agent.internal.diagnostics.DiagnosticsHelper;

public class ApplicationInsightsDiagnosticsLogFilter extends Filter<ILoggingEvent> {
@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics.log;
package com.microsoft.applicationinsights.agent.internal.diagnostics.log;

import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.contrib.json.classic.JsonLayout;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.ApplicationMetadataFactory;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.DiagnosticsHelper;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.DiagnosticsValueFinder;
import com.microsoft.applicationinsights.agent.internal.diagnostics.ApplicationMetadataFactory;
import com.microsoft.applicationinsights.agent.internal.diagnostics.DiagnosticsHelper;
import com.microsoft.applicationinsights.agent.internal.diagnostics.DiagnosticsValueFinder;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics.log;
package com.microsoft.applicationinsights.agent.internal.diagnostics.log;

import ch.qos.logback.contrib.json.JsonFormatter;
import com.squareup.moshi.Moshi;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.applicationinsights.agent.bootstrap.diagnostics.status;
package com.microsoft.applicationinsights.agent.internal.diagnostics.status;

import static com.microsoft.applicationinsights.agent.bootstrap.diagnostics.DiagnosticsHelper.LINUX_DEFAULT;
import static com.microsoft.applicationinsights.agent.bootstrap.diagnostics.MsgId.STATUS_FILE_ERROR;
import static com.microsoft.applicationinsights.agent.internal.diagnostics.DiagnosticsHelper.LINUX_DEFAULT;
import static com.microsoft.applicationinsights.agent.internal.diagnostics.MsgId.STATUS_FILE_ERROR;

import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.ApplicationMetadataFactory;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.DiagnosticsHelper;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.DiagnosticsValueFinder;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.MachineNameFinder;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.PidFinder;
import com.microsoft.applicationinsights.agent.internal.diagnostics.ApplicationMetadataFactory;
import com.microsoft.applicationinsights.agent.internal.diagnostics.DiagnosticsHelper;
import com.microsoft.applicationinsights.agent.internal.diagnostics.DiagnosticsValueFinder;
import com.microsoft.applicationinsights.agent.internal.diagnostics.MachineNameFinder;
import com.microsoft.applicationinsights.agent.internal.diagnostics.PidFinder;
import com.squareup.moshi.Moshi;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.io.File;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
package com.microsoft.applicationinsights.agent.internal.init;

import com.azure.monitor.opentelemetry.exporter.implementation.utils.Strings;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.DiagnosticsHelper;
import com.microsoft.applicationinsights.agent.internal.diagnostics.DiagnosticsHelper;
import io.opentelemetry.javaagent.bootstrap.ClassFileTransformerHolder;
import io.opentelemetry.javaagent.bootstrap.InstrumentationHolder;
import java.lang.instrument.ClassFileTransformer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@

package com.microsoft.applicationinsights.agent.internal.init;

import static com.microsoft.applicationinsights.agent.bootstrap.diagnostics.MsgId.INITIALIZATION_SUCCESS;
import static com.microsoft.applicationinsights.agent.bootstrap.diagnostics.MsgId.STARTUP_FAILURE_ERROR;
import static com.microsoft.applicationinsights.agent.internal.diagnostics.MsgId.INITIALIZATION_SUCCESS;
import static com.microsoft.applicationinsights.agent.internal.diagnostics.MsgId.STARTUP_FAILURE_ERROR;

import com.azure.monitor.opentelemetry.exporter.implementation.utils.PropertyHelper;
import com.azure.monitor.opentelemetry.exporter.implementation.utils.SystemInformation;
import com.google.auto.service.AutoService;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.DiagnosticsHelper;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.PidFinder;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.SdkVersionFinder;
import com.microsoft.applicationinsights.agent.bootstrap.diagnostics.status.StatusFile;
import com.microsoft.applicationinsights.agent.internal.common.FriendlyException;
import com.microsoft.applicationinsights.agent.internal.configuration.Configuration;
import com.microsoft.applicationinsights.agent.internal.configuration.Configuration.SelfDiagnostics;
import com.microsoft.applicationinsights.agent.internal.configuration.ConfigurationBuilder;
import com.microsoft.applicationinsights.agent.internal.configuration.RpConfiguration;
import com.microsoft.applicationinsights.agent.internal.configuration.RpConfigurationBuilder;
import com.microsoft.applicationinsights.agent.internal.diagnostics.DiagnosticsHelper;
import com.microsoft.applicationinsights.agent.internal.diagnostics.PidFinder;
import com.microsoft.applicationinsights.agent.internal.diagnostics.SdkVersionFinder;
import com.microsoft.applicationinsights.agent.internal.diagnostics.status.StatusFile;
import io.opentelemetry.javaagent.bootstrap.InstrumentationHolder;
import io.opentelemetry.javaagent.bootstrap.InternalLogger;
import io.opentelemetry.javaagent.bootstrap.JavaagentFileHolder;
Expand Down
Loading

0 comments on commit 289c1df

Please sign in to comment.