|
33 | 33 | import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk; |
34 | 34 | import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; |
35 | 35 | import io.opentelemetry.sdk.resources.Resource; |
| 36 | +import java.io.IOException; |
36 | 37 | import java.time.Duration; |
37 | 38 | import java.util.List; |
38 | 39 | import java.util.logging.Logger; |
@@ -60,28 +61,39 @@ public void afterAgent(AutoConfiguredOpenTelemetrySdk autoConfiguredOpenTelemetr |
60 | 61 | OP_AMP_POLLING_INTERVAL, DEFAULT_DELAY_BETWEEN_REQUESTS.getNextDelay().toMillis()); |
61 | 62 |
|
62 | 63 | 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) {} |
70 | 72 |
|
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 | + } |
75 | 77 |
|
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 | + } |
81 | 83 |
|
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 | + })); |
85 | 97 | } |
86 | 98 |
|
87 | 99 | static OpampClient startOpampClient( |
|
0 commit comments