Skip to content

Commit fad55ad

Browse files
committed
Async flow working
1 parent a2f329a commit fad55ad

File tree

4 files changed

+75
-56
lines changed

4 files changed

+75
-56
lines changed

agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/keytransaction/KeyTransactionConfigSupplier.java

+55-48
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
11
package com.microsoft.applicationinsights.agent.internal.keytransaction;
22

3+
import static java.util.stream.Collectors.toList;
4+
35
import com.azure.json.JsonProviders;
46
import java.io.IOException;
57
import java.util.List;
68
import java.util.function.Supplier;
79

8-
import static java.util.stream.Collectors.toList;
9-
1010
public class KeyTransactionConfigSupplier implements Supplier<List<KeyTransactionConfig>> {
1111

1212
public static final boolean KEY_TRANSACTIONS_ENABLED = true;
13+
public static final boolean USE_HARDCODED_CONFIG = false;
1314

1415
// TODO remove reliance on global
1516
private static final KeyTransactionConfigSupplier instance = new KeyTransactionConfigSupplier();
1617

17-
// static {
18-
// instance.set(hardcodedDemo());
19-
// }
18+
static {
19+
if (USE_HARDCODED_CONFIG) {
20+
instance.set(hardcodedDemo());
21+
}
22+
}
2023

2124
public static KeyTransactionConfigSupplier getInstance() {
2225
return instance;
@@ -33,53 +36,57 @@ public void set(List<KeyTransactionConfig> configs) {
3336
this.configs = configs;
3437
}
3538

36-
@SuppressWarnings("unused")
3739
private static List<KeyTransactionConfig> hardcodedDemo() {
3840
List<KeyTransactionConfig> configs;
3941
try {
4042
configs = NewResponse.fromJson(JsonProviders.createReader(
41-
"{\n"
42-
+ " \"itemsReceived\": 13,\n"
43-
+ " \"itemsAccepted\": 13,\n"
44-
+ " \"appId\": null,\n"
45-
+ " \"errors\": [],\n"
46-
+ " \"sdkConfiguration\": [\n"
47-
+ " {\n"
48-
+ " \"Key\": \"Transaction\",\n"
49-
+ " \"Value\": {\n"
50-
+ " \"Name\": \"EarthOrbit\",\n"
51-
+ " \"StartCriteria\": [\n"
52-
+ " {\n"
53-
+ " \"Field\": \"url.path\",\n"
54-
+ " \"Operator\": \"==\",\n"
55-
+ " \"Value\": \"/earth\"\n"
56-
+ " }\n"
57-
+ " ],\n"
58-
+ " \"EndCriteria\": []\n"
59-
+ " }\n"
60-
+ " },\n"
61-
+ " {\n"
62-
+ " \"Key\": \"Transaction\",\n"
63-
+ " \"Value\": {\n"
64-
+ " \"Name\": \"MarsMission\",\n"
65-
+ " \"StartCriteria\": [\n"
66-
+ " {\n"
67-
+ " \"Field\": \"url.path\",\n"
68-
+ " \"Operator\": \"==\",\n"
69-
+ " \"Value\": \"/mars\"\n"
70-
+ " }\n"
71-
+ " ],\n"
72-
+ " \"EndCriteria\": [\n"
73-
+ " {\n"
74-
+ " \"Field\": \"messaging.todo\",\n"
75-
+ " \"Operator\": \"==\",\n"
76-
+ " \"Value\": \"todo\"\n"
77-
+ " }\n"
78-
+ " ]\n"
79-
+ " }\n"
80-
+ " }\n"
81-
+ " ]\n"
82-
+ "}\n"
43+
"{\n"
44+
+ " \"itemsReceived\": 13,\n"
45+
+ " \"itemsAccepted\": 13,\n"
46+
+ " \"appId\": null,\n"
47+
+ " \"errors\": [],\n"
48+
+ " \"sdkConfiguration\": [\n"
49+
+ " {\n"
50+
+ " \"Key\": \"Transaction\",\n"
51+
+ " \"Value\": {\n"
52+
+ " \"Name\": \"EarthOrbit\",\n"
53+
+ " \"StartCriteria\": [\n"
54+
+ " {\n"
55+
+ " \"Field\": \"url.path\",\n"
56+
+ " \"Operator\": \"==\",\n"
57+
+ " \"Value\": \"/earth\"\n"
58+
+ " }\n"
59+
+ " ],\n"
60+
+ " \"EndCriteria\": []\n"
61+
+ " }\n"
62+
+ " },\n"
63+
+ " {\n"
64+
+ " \"Key\": \"Transaction\",\n"
65+
+ " \"Value\": {\n"
66+
+ " \"Name\": \"MarsMission\",\n"
67+
+ " \"StartCriteria\": [\n"
68+
+ " {\n"
69+
+ " \"Field\": \"url.path\",\n"
70+
+ " \"Operator\": \"==\",\n"
71+
+ " \"Value\": \"/mars\"\n"
72+
+ " }\n"
73+
+ " ],\n"
74+
+ " \"EndCriteria\": [\n"
75+
+ " {\n"
76+
+ " \"Field\": \"messaging.operation\",\n"
77+
+ " \"Operator\": \"==\",\n"
78+
+ " \"Value\": \"process\"\n"
79+
+ " },\n"
80+
+ " {\n"
81+
+ " \"Field\": \"messaging.destination.name\",\n"
82+
+ " \"Operator\": \"==\",\n"
83+
+ " \"Value\": \"space\"\n"
84+
+ " }\n"
85+
+ " ]\n"
86+
+ " }\n"
87+
+ " }\n"
88+
+ " ]\n"
89+
+ "}\n"
8390
))
8491
.getSdkConfigurations()
8592
.stream()

agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/keytransaction/KeyTransactionTelemetryPipelineListener.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public void onResponse(TelemetryPipelineRequest request, TelemetryPipelineRespon
4444
return;
4545
}
4646

47-
if (parsedResponse.getSdkConfigurations() != null) {
47+
if (parsedResponse.getSdkConfigurations() != null && !KeyTransactionConfigSupplier.USE_HARDCODED_CONFIG) {
4848
KeyTransactionConfigSupplier.getInstance().set(
4949
parsedResponse.getSdkConfigurations()
5050
.stream()

agent/agent-tooling/src/test/java/com/microsoft/applicationinsights/agent/internal/keytransaction/KeyTransactionConfigTest.java

+12-5
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,18 @@ void test() throws Exception {
4444
assertThat(marsMissionStartCriteria.getOperator()).isEqualTo(EQUALS);
4545
assertThat(marsMissionStartCriteria.getValue()).isEqualTo("mars");
4646

47-
assertThat(marsMissionKeyTransactionConfig.getEndCriteria()).hasSize(1);
48-
KeyTransactionConfig.Criterion marsMissionEndCriteria =
47+
assertThat(marsMissionKeyTransactionConfig.getEndCriteria()).hasSize(2);
48+
49+
KeyTransactionConfig.Criterion marsMissionEndCriteria1 =
50+
marsMissionKeyTransactionConfig.getEndCriteria().get(0);
51+
assertThat(marsMissionEndCriteria1.getField().getKey()).isEqualTo("messaging.operation");
52+
assertThat(marsMissionEndCriteria1.getOperator()).isEqualTo(EQUALS);
53+
assertThat(marsMissionEndCriteria1.getValue()).isEqualTo("process");
54+
55+
KeyTransactionConfig.Criterion marsMissionEndCriteria2 =
4956
marsMissionKeyTransactionConfig.getEndCriteria().get(0);
50-
assertThat(marsMissionEndCriteria.getField().getKey()).isEqualTo("messaging.todo");
51-
assertThat(marsMissionEndCriteria.getOperator()).isEqualTo(EQUALS);
52-
assertThat(marsMissionEndCriteria.getValue()).isEqualTo("todo");
57+
assertThat(marsMissionEndCriteria2.getField().getKey()).isEqualTo("messaging.destination.name");
58+
assertThat(marsMissionEndCriteria2.getOperator()).isEqualTo(EQUALS);
59+
assertThat(marsMissionEndCriteria2.getValue()).isEqualTo("space");
5360
}
5461
}

agent/agent-tooling/src/test/resources/com/microsoft/applicationinsights/agent/internal/keytransaction/demo.json

+7-2
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,14 @@
3131
],
3232
"EndCriteria": [
3333
{
34-
"Field": "messaging.todo",
34+
"Field": "messaging.operation",
3535
"Operator": "==",
36-
"Value": "todo"
36+
"Value": "process"
37+
},
38+
{
39+
"Field": "messaging.destination.name",
40+
"Operator": "==",
41+
"Value": "space"
3742
}
3843
]
3944
}

0 commit comments

Comments
 (0)