in agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/legacysdk/TelemetryClientClassFileTransformer.java [1017:1164]
private void writeAgentTrackRequestTelemetryMethod() {
MethodVisitor mv =
cw.visitMethod(
ACC_PRIVATE,
"agent$trackRequestTelemetry",
"(L" + unshadedPrefix + "/telemetry/RequestTelemetry;)V",
null,
null);
mv.visitCode();
Label label0 = new Label();
Label label1 = new Label();
Label label2 = new Label();
mv.visitTryCatchBlock(label0, label1, label2, "java/net/MalformedURLException");
mv.visitLabel(label0);
mv.visitVarInsn(ALOAD, 1);
mv.visitMethodInsn(
INVOKEVIRTUAL,
unshadedPrefix + "/telemetry/RequestTelemetry",
"getId",
"()Ljava/lang/String;",
false);
mv.visitVarInsn(ALOAD, 1);
mv.visitMethodInsn(
INVOKEVIRTUAL,
unshadedPrefix + "/telemetry/RequestTelemetry",
"getName",
"()Ljava/lang/String;",
false);
mv.visitVarInsn(ALOAD, 1);
mv.visitMethodInsn(
INVOKEVIRTUAL,
unshadedPrefix + "/telemetry/RequestTelemetry",
"getUrl",
"()Ljava/net/URL;",
false);
mv.visitVarInsn(ALOAD, 1);
mv.visitMethodInsn(
INVOKEVIRTUAL,
unshadedPrefix + "/telemetry/RequestTelemetry",
"getTimestamp",
"()Ljava/util/Date;",
false);
mv.visitVarInsn(ALOAD, 0);
mv.visitVarInsn(ALOAD, 1);
mv.visitMethodInsn(
INVOKEVIRTUAL,
unshadedPrefix + "/telemetry/RequestTelemetry",
"getDuration",
"()L" + unshadedPrefix + "/telemetry/Duration;",
false);
mv.visitMethodInsn(
INVOKESPECIAL,
unshadedPrefix + "/TelemetryClient",
"agent$toMillis",
"(L" + unshadedPrefix + "/telemetry/Duration;)Ljava/lang/Long;",
false);
mv.visitVarInsn(ALOAD, 1);
Label label3 = new Label();
mv.visitLabel(label3);
mv.visitMethodInsn(
INVOKEVIRTUAL,
unshadedPrefix + "/telemetry/RequestTelemetry",
"getResponseCode",
"()Ljava/lang/String;",
false);
mv.visitVarInsn(ALOAD, 1);
mv.visitMethodInsn(
INVOKEVIRTUAL, unshadedPrefix + "/telemetry/RequestTelemetry", "isSuccess", "()Z", false);
mv.visitVarInsn(ALOAD, 1);
mv.visitMethodInsn(
INVOKEVIRTUAL,
unshadedPrefix + "/telemetry/RequestTelemetry",
"getSource",
"()Ljava/lang/String;",
false);
mv.visitVarInsn(ALOAD, 1);
mv.visitMethodInsn(
INVOKEVIRTUAL,
unshadedPrefix + "/telemetry/RequestTelemetry",
"getProperties",
"()Ljava/util/Map;",
false);
mv.visitVarInsn(ALOAD, 1);
mv.visitMethodInsn(
INVOKEVIRTUAL,
unshadedPrefix + "/telemetry/RequestTelemetry",
"getContext",
"()L" + unshadedPrefix + "/telemetry/TelemetryContext;",
false);
mv.visitMethodInsn(
INVOKEVIRTUAL,
unshadedPrefix + "/telemetry/TelemetryContext",
"getTags",
"()Ljava/util/concurrent/ConcurrentMap;",
false);
mv.visitVarInsn(ALOAD, 1);
Label label4 = new Label();
mv.visitLabel(label4);
mv.visitMethodInsn(
INVOKEVIRTUAL,
unshadedPrefix + "/telemetry/RequestTelemetry",
"getMetrics",
"()Ljava/util/concurrent/ConcurrentMap;",
false);
mv.visitVarInsn(ALOAD, 1);
mv.visitMethodInsn(
INVOKEVIRTUAL,
unshadedPrefix + "/telemetry/RequestTelemetry",
"getContext",
"()L" + unshadedPrefix + "/telemetry/TelemetryContext;",
false);
mv.visitMethodInsn(
INVOKEVIRTUAL,
unshadedPrefix + "/telemetry/TelemetryContext",
"getInstrumentationKey",
"()Ljava/lang/String;",
false);
Label label5 = new Label();
mv.visitLabel(label5);
mv.visitMethodInsn(
INVOKESTATIC,
BYTECODE_UTIL_INTERNAL_NAME,
"trackRequest",
"(Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;Ljava/util/Date;Ljava/lang/Long;Ljava/lang/String;ZLjava/lang/String;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/lang/String;)V",
false);
mv.visitLabel(label1);
Label label6 = new Label();
mv.visitJumpInsn(GOTO, label6);
mv.visitLabel(label2);
mv.visitFrame(Opcodes.F_SAME1, 0, null, 1, new Object[] {"java/net/MalformedURLException"});
mv.visitVarInsn(ASTORE, 2);
Label label7 = new Label();
mv.visitLabel(label7);
mv.visitVarInsn(ALOAD, 2);
mv.visitMethodInsn(
INVOKESTATIC,
BYTECODE_UTIL_INTERNAL_NAME,
"logErrorOnce",
"(Ljava/lang/Throwable;)V",
false);
mv.visitLabel(label6);
mv.visitFrame(Opcodes.F_SAME, 0, null, 0, null);
mv.visitInsn(RETURN);
Label label8 = new Label();
mv.visitLabel(label8);
mv.visitMaxs(12, 3);
mv.visitEnd();
}