Skip to content

Latest commit

 

History

History
64 lines (48 loc) · 2.37 KB

README.md

File metadata and controls

64 lines (48 loc) · 2.37 KB

OpAMP Client

Maven

Java implementation of the OpAMP client spec.

Warning

This is an incubating feature. Breaking changes can happen on a new release without previous notice and without backward compatibility guarantees.

Usage

// Initializing it

RequestService requestService = HttpRequestService.create(OkHttpSender.create("[OPAMP_SERVICE_URL]"));
// RequestService requestService = WebSocketRequestService.create(OkHttpWebSocket.create("[OPAMP_SERVICE_URL]")); // Use this instead to connect to the server via WebSocket.
OpampClient client =
    OpampClient.builder()
        .putIdentifyingAttribute("service.name", "My service name")
        .enableRemoteConfig()
        .setRequestService(requestService)
        .build(
            new OpampClient.Callbacks() {
              @Override
              public void onConnect(OpampClient client) {}

              @Override
              public void onConnectFailed(OpampClient client, @Nullable Throwable throwable) {}

              @Override
              public void onErrorResponse(OpampClient client, ServerErrorResponse errorResponse) {}

              @Override
              public void onMessage(OpampClient client, MessageData messageData) {
                AgentRemoteConfig remoteConfig = messageData.getRemoteConfig();
                if (remoteConfig != null) {
                  // A remote config was received

                  // After applying it...
                  client.setRemoteConfigStatus(
                      new RemoteConfigStatus.Builder()
                          .status(RemoteConfigStatuses.RemoteConfigStatuses_APPLIED)
                          .build());
                }
              }
            });

// State update
client.setAgentDescription(new AgentDescription.Builder().build());

// App shutdown
client.close();

Component owners

Learn more about component owners in component_owners.yml.