Skip to content

Commit 5849525

Browse files
authored
Best effort shutdown of opamp client (signalfx#2738)
* best effort shutdown of opamp client * spotless
1 parent e69e6c7 commit 5849525

1 file changed

Lines changed: 31 additions & 19 deletions

File tree

custom/src/main/java/com/splunk/opentelemetry/opamp/OpampActivator.java

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
3434
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
3535
import io.opentelemetry.sdk.resources.Resource;
36+
import java.io.IOException;
3637
import java.time.Duration;
3738
import java.util.List;
3839
import java.util.logging.Logger;
@@ -60,28 +61,39 @@ public void afterAgent(AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetr
6061
OP_AMP_POLLING_INTERVAL, DEFAULT_DELAY_BETWEEN_REQUESTS.getNextDelay().toMillis());
6162

6263
String endpoint = config.getString(OP_AMP_ENDPOINT);
63-
startOpampClient(
64-
endpoint,
65-
resource,
66-
pollingDuration,
67-
new OpampClient.Callbacks() {
68-
@Override
69-
public void onConnect(OpampClient opampClient) {}
64+
OpampClient client =
65+
startOpampClient(
66+
endpoint,
67+
resource,
68+
pollingDuration,
69+
new OpampClient.Callbacks() {
70+
@Override
71+
public void onConnect(OpampClient opampClient) {}
7072

71-
@Override
72-
public void onConnectFailed(OpampClient opampClient, @Nullable Throwable throwable) {
73-
logger.log(WARNING, "Connection to OpAMP server failed", throwable);
74-
}
73+
@Override
74+
public void onConnectFailed(OpampClient opampClient, @Nullable Throwable throwable) {
75+
logger.log(WARNING, "Connection to OpAMP server failed", throwable);
76+
}
7577

76-
@Override
77-
public void onErrorResponse(
78-
OpampClient opampClient, ServerErrorResponse serverErrorResponse) {
79-
logger.log(WARNING, "OpAMP server returned error " + serverErrorResponse);
80-
}
78+
@Override
79+
public void onErrorResponse(
80+
OpampClient opampClient, ServerErrorResponse serverErrorResponse) {
81+
logger.log(WARNING, "OpAMP server returned error " + serverErrorResponse);
82+
}
8183

82-
@Override
83-
public void onMessage(OpampClient opampClient, MessageData messageData) {}
84-
});
84+
@Override
85+
public void onMessage(OpampClient opampClient, MessageData messageData) {}
86+
});
87+
Runtime.getRuntime()
88+
.addShutdownHook(
89+
new Thread(
90+
() -> {
91+
try {
92+
client.close();
93+
} catch (IOException e) {
94+
logger.log(WARNING, "Error shutting down OpAMP client", e);
95+
}
96+
}));
8597
}
8698

8799
static OpampClient startOpampClient(

0 commit comments

Comments
 (0)