X-Pack Usage API

Execution

Detailed information about the usage of features from X-Pack can be retrieved using the usage() method:

XPackUsageRequest request = new XPackUsageRequest();
XPackUsageResponse response = client.xpack().usage(request, RequestOptions.DEFAULT);

Response

The returned XPackUsageResponse contains a Map keyed by feature name. Every feature map has an available key, indicating whether that feature is available given the current license, and an enabled key, indicating whether that feature is currently enabled. Other keys are specific to each feature.

Map<String, Map<String, Object>> usages = response.getUsages();
Map<String, Object> monitoringUsage = usages.get("monitoring");
assertThat(monitoringUsage.get("available"), is(true));
assertThat(monitoringUsage.get("enabled"), is(true));
assertThat(monitoringUsage.get("collection_enabled"), is(false));

Asynchronous Execution

This request can be executed asynchronously:

client.xpack().usageAsync(request, RequestOptions.DEFAULT, listener); 

The call to execute the usage api and the ActionListener to use when the execution completes

The asynchronous method does not block and returns immediately. Once it is completed the ActionListener is called back using the onResponse method if the execution successfully completed or using the onFailure method if it failed.

A typical listener for XPackUsageResponse looks like:

ActionListener<XPackUsageResponse> listener = new ActionListener<XPackUsageResponse>() {
    @Override
    public void onResponse(XPackUsageResponse response) {
        
    }

    @Override
    public void onFailure(Exception e) {
        
    }
};

Called when the execution is successfully completed. The response is provided as an argument

Called in case of failure. The raised exception is provided as an argument