Class MonitoringAsyncClient

  • All Implemented Interfaces:
    MonitoringAsync, AutoCloseable

    @Generated(value="OracleSDKGenerator",
               comments="API Version: 20180401")
    public class MonitoringAsyncClient
    extends BaseAsyncClient
    implements MonitoringAsync
    Async client implementation for Monitoring service.
    There are two ways to use async client: 1. Use AsyncHandler: using AsyncHandler, if the response to the call is an InputStream, like getObject Api in object storage service, developers need to process the stream in AsyncHandler, and not anywhere else, because the stream will be closed right after the AsyncHandler is invoked.
    2. Use Java Future: using Java Future, developers need to close the stream after they are done with the Java Future.
    Accessing the result should be done in a mutually exclusive manner, either through the Future or the AsyncHandler, but not both. If the Future is used, the caller should pass in null as the AsyncHandler. If the AsyncHandler is used, it is still safe to use the Future to determine whether or not the request was completed via Future.isDone/isCancelled.
    Please refer to https://github.com/oracle/oci-java-sdk/blob/master/bmc-examples/src/main/java/ResteasyClientWithObjectStorageExample.java
    • Field Detail

      • SERVICE

        public static final Service SERVICE
        Service instance for Monitoring.
      • clientCommonLibraryVersion

        public final String clientCommonLibraryVersion
        Compatible SDK version, provided by the codegen.
      • minimumClientCommonLibraryVersionFromClient

        public final Optional<String> minimumClientCommonLibraryVersionFromClient
        Minimum compatible SDK version, maybe provided by the codegen.
    • Method Detail

      • setRegion

        public void setRegion​(Region region)
        Description copied from interface: MonitoringAsync
        Sets the region to call (ex, Region.US_PHOENIX_1).

        Note, this will call setEndpoint after resolving the endpoint. If the service is not available in this region, however, an IllegalArgumentException will be raised.

        Specified by:
        setRegion in interface MonitoringAsync
        Parameters:
        region - The region of the service.
      • createAlarm

        public Future<CreateAlarmResponse> createAlarm​(CreateAlarmRequest request,
                                                       AsyncHandler<CreateAlarmRequest,​CreateAlarmResponse> handler)
        Description copied from interface: MonitoringAsync
        Creates a new alarm in the specified compartment.

        For more information, see Creating an Alarm. For important limits information, see Limits on Monitoring.

        This call is subject to a Monitoring limit that applies to the total number of requests across all alarm operations. Monitoring might throttle this call to reject an otherwise valid request when the total rate of alarm operations exceeds 10 requests, or transactions, per second (TPS) for a given tenancy.

        Specified by:
        createAlarm in interface MonitoringAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • createAlarmSuppression

        public Future<CreateAlarmSuppressionResponse> createAlarmSuppression​(CreateAlarmSuppressionRequest request,
                                                                             AsyncHandler<CreateAlarmSuppressionRequest,​CreateAlarmSuppressionResponse> handler)
        Description copied from interface: MonitoringAsync
        Creates a new alarm suppression at the specified level (alarm-wide or dimension-specific).

        For more information, see Adding an Alarm-wide Suppression and Adding a Dimension-Specific Alarm Suppression.

        For important limits information, see [Limits on Monitoring](https://docs.oracle.com/iaas/Content/Monitoring/Concepts/monitoringoverview.htm#limits).

        This call is subject to a Monitoring limit that applies to the total number of requests across all alarm operations. Monitoring might throttle this call to reject an otherwise valid request when the total rate of alarm operations exceeds 10 requests, or transactions, per second (TPS) for a given tenancy.

        Specified by:
        createAlarmSuppression in interface MonitoringAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • deleteAlarm

        public Future<DeleteAlarmResponse> deleteAlarm​(DeleteAlarmRequest request,
                                                       AsyncHandler<DeleteAlarmRequest,​DeleteAlarmResponse> handler)
        Description copied from interface: MonitoringAsync
        Deletes the specified alarm.

        For more information, see Deleting an Alarm. For important limits information, see Limits on Monitoring.

        This call is subject to a Monitoring limit that applies to the total number of requests across all alarm operations. Monitoring might throttle this call to reject an otherwise valid request when the total rate of alarm operations exceeds 10 requests, or transactions, per second (TPS) for a given tenancy.

        Specified by:
        deleteAlarm in interface MonitoringAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • deleteAlarmSuppression

        public Future<DeleteAlarmSuppressionResponse> deleteAlarmSuppression​(DeleteAlarmSuppressionRequest request,
                                                                             AsyncHandler<DeleteAlarmSuppressionRequest,​DeleteAlarmSuppressionResponse> handler)
        Description copied from interface: MonitoringAsync
        Deletes the specified alarm suppression.

        For more information, see Removing an Alarm-wide Suppression and Removing a Dimension-Specific Alarm Suppression.

        For important limits information, see [Limits on Monitoring](https://docs.oracle.com/iaas/Content/Monitoring/Concepts/monitoringoverview.htm#limits).

        This call is subject to a Monitoring limit that applies to the total number of requests across all alarm operations. Monitoring might throttle this call to reject an otherwise valid request when the total rate of alarm operations exceeds 10 requests, or transactions, per second (TPS) for a given tenancy.

        Specified by:
        deleteAlarmSuppression in interface MonitoringAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • getAlarm

        public Future<GetAlarmResponse> getAlarm​(GetAlarmRequest request,
                                                 AsyncHandler<GetAlarmRequest,​GetAlarmResponse> handler)
        Description copied from interface: MonitoringAsync
        Gets the specified alarm.

        For more information, see Getting an Alarm. For important limits information, see Limits on Monitoring.

        This call is subject to a Monitoring limit that applies to the total number of requests across all alarm operations. Monitoring might throttle this call to reject an otherwise valid request when the total rate of alarm operations exceeds 10 requests, or transactions, per second (TPS) for a given tenancy.

        Specified by:
        getAlarm in interface MonitoringAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • getAlarmHistory

        public Future<GetAlarmHistoryResponse> getAlarmHistory​(GetAlarmHistoryRequest request,
                                                               AsyncHandler<GetAlarmHistoryRequest,​GetAlarmHistoryResponse> handler)
        Description copied from interface: MonitoringAsync
        Get the history of the specified alarm.

        For more information, see Getting History of an Alarm. For important limits information, see Limits on Monitoring.

        This call is subject to a Monitoring limit that applies to the total number of requests across all alarm operations. Monitoring might throttle this call to reject an otherwise valid request when the total rate of alarm operations exceeds 10 requests, or transactions, per second (TPS) for a given tenancy.

        Specified by:
        getAlarmHistory in interface MonitoringAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • getAlarmSuppression

        public Future<GetAlarmSuppressionResponse> getAlarmSuppression​(GetAlarmSuppressionRequest request,
                                                                       AsyncHandler<GetAlarmSuppressionRequest,​GetAlarmSuppressionResponse> handler)
        Description copied from interface: MonitoringAsync
        Gets the specified alarm suppression.

        For more information, see Getting an Alarm-wide Suppression.

        For important limits information, see [Limits on Monitoring](https://docs.oracle.com/iaas/Content/Monitoring/Concepts/monitoringoverview.htm#limits).

        This call is subject to a Monitoring limit that applies to the total number of requests across all alarm operations. Monitoring might throttle this call to reject an otherwise valid request when the total rate of alarm operations exceeds 10 requests, or transactions, per second (TPS) for a given tenancy.

        Specified by:
        getAlarmSuppression in interface MonitoringAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • listAlarmSuppressions

        public Future<ListAlarmSuppressionsResponse> listAlarmSuppressions​(ListAlarmSuppressionsRequest request,
                                                                           AsyncHandler<ListAlarmSuppressionsRequest,​ListAlarmSuppressionsResponse> handler)
        Description copied from interface: MonitoringAsync
        Lists alarm suppressions for the specified alarm.

        For more information, see Listing Alarm Suppressions.

        For important limits information, see [Limits on Monitoring](https://docs.oracle.com/iaas/Content/Monitoring/Concepts/monitoringoverview.htm#limits).

        This call is subject to a Monitoring limit that applies to the total number of requests across all alarm operations. Monitoring might throttle this call to reject an otherwise valid request when the total rate of alarm operations exceeds 10 requests, or transactions, per second (TPS) for a given tenancy.

        Specified by:
        listAlarmSuppressions in interface MonitoringAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • listAlarms

        public Future<ListAlarmsResponse> listAlarms​(ListAlarmsRequest request,
                                                     AsyncHandler<ListAlarmsRequest,​ListAlarmsResponse> handler)
        Description copied from interface: MonitoringAsync
        Lists the alarms for the specified compartment.

        For more information, see Listing Alarms. For important limits information, see Limits on Monitoring.

        This call is subject to a Monitoring limit that applies to the total number of requests across all alarm operations. Monitoring might throttle this call to reject an otherwise valid request when the total rate of alarm operations exceeds 10 requests, or transactions, per second (TPS) for a given tenancy.

        Specified by:
        listAlarms in interface MonitoringAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • listAlarmsStatus

        public Future<ListAlarmsStatusResponse> listAlarmsStatus​(ListAlarmsStatusRequest request,
                                                                 AsyncHandler<ListAlarmsStatusRequest,​ListAlarmsStatusResponse> handler)
        Description copied from interface: MonitoringAsync
        List the status of each alarm in the specified compartment.

        Status is collective, across all metric streams in the alarm. To list alarm status for each metric stream, use retrieveDimensionStates. Optionally filter by resource or status value.

        For more information, see [Listing Alarm Statuses](https://docs.oracle.com/iaas/Content/Monitoring/Tasks/list-alarm-status.htm). For important limits information, see [Limits on Monitoring](https://docs.oracle.com/iaas/Content/Monitoring/Concepts/monitoringoverview.htm#limits).

        This call is subject to a Monitoring limit that applies to the total number of requests across all alarm operations. Monitoring might throttle this call to reject an otherwise valid request when the total rate of alarm operations exceeds 10 requests, or transactions, per second (TPS) for a given tenancy.

        Specified by:
        listAlarmsStatus in interface MonitoringAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • listMetrics

        public Future<ListMetricsResponse> listMetrics​(ListMetricsRequest request,
                                                       AsyncHandler<ListMetricsRequest,​ListMetricsResponse> handler)
        Description copied from interface: MonitoringAsync
        Returns metric definitions that match the criteria specified in the request.

        Compartment OCID required. For more information, see Listing Metric Definitions. For information about metrics, see Metrics Overview. For important limits information, see Limits on Monitoring.

        Transactions Per Second (TPS) per-tenancy limit for this operation: 10.

        Specified by:
        listMetrics in interface MonitoringAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • postMetricData

        public Future<PostMetricDataResponse> postMetricData​(PostMetricDataRequest request,
                                                             AsyncHandler<PostMetricDataRequest,​PostMetricDataResponse> handler)
        Description copied from interface: MonitoringAsync
        Publishes raw metric data points to the Monitoring service.

        For a data point to be posted, its timestamp must be near current time (less than two hours in the past and less than 10 minutes in the future).

        For more information about publishing metrics, see [Publishing Custom Metrics](https://docs.oracle.com/iaas/Content/Monitoring/Tasks/publishingcustommetrics.htm) and [Custom Metrics Walkthrough](https://docs.oracle.com/iaas/Content/Monitoring/Tasks/custom-metrics-walkthrough.htm). For information about developing a metric-posting client, see [Developer Guide](https://docs.oracle.com/iaas/Content/API/Concepts/devtoolslanding.htm). For an example client, see [MonitoringMetricPostExample.java](https://github.com/oracle/oci-java-sdk/blob/master/bmc-examples/src/main/java/MonitoringMetricPostExample.java). For important limits information, see [Limits on Monitoring](https://docs.oracle.com/iaas/Content/Monitoring/Concepts/monitoringoverview.htm#limits).

        Per-call limits information follows.

        Dimensions per metric group*. Maximum: 20. Minimum: 1. * Unique metric streams*. Maximum: 50. * Transactions Per Second (TPS) per-tenancy limit for this operation: 50.

        A metric group is the combination of a given metric, metric namespace, and tenancy for the purpose of determining limits. A dimension is a qualifier provided in a metric definition. A metric stream is an individual set of aggregated data for a metric with zero or more dimension values. For more information about metric-related concepts, see [Monitoring Concepts](https://docs.oracle.com/iaas/Content/Monitoring/Concepts/monitoringoverview.htm#concepts).

        *Note:** The endpoints for this operation differ from other Monitoring operations. Replace the string `telemetry` with `telemetry-ingestion` in the endpoint, as in the following example:

        https://telemetry-ingestion.eu-frankfurt-1.oraclecloud.com

        Specified by:
        postMetricData in interface MonitoringAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • removeAlarmSuppression

        public Future<RemoveAlarmSuppressionResponse> removeAlarmSuppression​(RemoveAlarmSuppressionRequest request,
                                                                             AsyncHandler<RemoveAlarmSuppressionRequest,​RemoveAlarmSuppressionResponse> handler)
        Description copied from interface: MonitoringAsync
        Removes any existing suppression for the specified alarm.

        For more information, see Removing Suppression from an Alarm. For important limits information, see Limits on Monitoring.

        This call is subject to a Monitoring limit that applies to the total number of requests across all alarm operations. Monitoring might throttle this call to reject an otherwise valid request when the total rate of alarm operations exceeds 10 requests, or transactions, per second (TPS) for a given tenancy.

        Specified by:
        removeAlarmSuppression in interface MonitoringAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • retrieveDimensionStates

        public Future<RetrieveDimensionStatesResponse> retrieveDimensionStates​(RetrieveDimensionStatesRequest request,
                                                                               AsyncHandler<RetrieveDimensionStatesRequest,​RetrieveDimensionStatesResponse> handler)
        Description copied from interface: MonitoringAsync
        Lists the current alarm status of each metric stream, where status is derived from the metric stream’s last associated transition.

        Optionally filter by status value and one or more dimension key-value pairs.

        For more information, see [Listing Metric Stream Status in an Alarm](https://docs.oracle.com/iaas/Content/Monitoring/Tasks/list-alarm-status-metric-stream.htm).

        For important limits information, see [Limits on Monitoring](https://docs.oracle.com/iaas/Content/Monitoring/Concepts/monitoringoverview.htm#limits).

        This call is subject to a Monitoring limit that applies to the total number of requests across all alarm operations. Monitoring might throttle this call to reject an otherwise valid request when the total rate of alarm operations exceeds 10 requests, or transactions, per second (TPS) for a given tenancy.

        Specified by:
        retrieveDimensionStates in interface MonitoringAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • summarizeAlarmSuppressionHistory

        public Future<SummarizeAlarmSuppressionHistoryResponse> summarizeAlarmSuppressionHistory​(SummarizeAlarmSuppressionHistoryRequest request,
                                                                                                 AsyncHandler<SummarizeAlarmSuppressionHistoryRequest,​SummarizeAlarmSuppressionHistoryResponse> handler)
        Description copied from interface: MonitoringAsync
        Returns history of suppressions for the specified alarm, including both dimension-specific and and alarm-wide suppressions.

        For more information, see Getting Suppression History for an Alarm.

        For important limits information, see [Limits on Monitoring](https://docs.oracle.com/iaas/Content/Monitoring/Concepts/monitoringoverview.htm#limits).

        This call is subject to a Monitoring limit that applies to the total number of requests across all alarm operations. Monitoring might throttle this call to reject an otherwise valid request when the total rate of alarm operations exceeds 10 requests, or transactions, per second (TPS) for a given tenancy.

        Specified by:
        summarizeAlarmSuppressionHistory in interface MonitoringAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • updateAlarm

        public Future<UpdateAlarmResponse> updateAlarm​(UpdateAlarmRequest request,
                                                       AsyncHandler<UpdateAlarmRequest,​UpdateAlarmResponse> handler)
        Description copied from interface: MonitoringAsync
        Updates the specified alarm.

        For more information, see Updating an Alarm. For important limits information, see Limits on Monitoring.

        This call is subject to a Monitoring limit that applies to the total number of requests across all alarm operations. Monitoring might throttle this call to reject an otherwise valid request when the total rate of alarm operations exceeds 10 requests, or transactions, per second (TPS) for a given tenancy.

        Specified by:
        updateAlarm in interface MonitoringAsync
        Parameters:
        request - The request object containing the details to send
        handler - The request handler to invoke upon completion, may be null.
        Returns:
        A Future that can be used to get the response if no AsyncHandler was provided. Note, if you provide an AsyncHandler and use the Future, some types of responses (like java.io.InputStream) may not be able to be read in both places as the underlying stream may only be consumed once.
      • useRealmSpecificEndpointTemplate

        public void useRealmSpecificEndpointTemplate​(boolean useOfRealmSpecificEndpointTemplateEnabled)
        This method should be used to enable or disable the use of realm-specific endpoint template.

        The default value is null. To enable the use of endpoint template defined for the realm in use, set the flag to true To disable the use of endpoint template defined for the realm in use, set the flag to false

        Parameters:
        useOfRealmSpecificEndpointTemplateEnabled - This flag can be set to true or false to enable or disable the use of realm-specific endpoint template respectively
      • populateServiceParametersInEndpoint

        public final void populateServiceParametersInEndpoint​(String endpoint,
                                                              Map<String,​Object> requiredParametersMap)
        Populate the parameters in the endpoint with its corresponding value and update the base endpoint.

        The value will be populated iff the parameter in endpoint is a required request path parameter or a required request query parameter. If not, the parameter in the endpoint will be ignored and left blank.

        Parameters:
        endpoint - The endpoint template in use
        requiredParametersMap - Map of parameter name as key and value set in request path or query parameter as value
      • updateBaseEndpoint

        public final void updateBaseEndpoint​(String endpoint)
        This method should be used for parameterized endpoint templates only.

        This does not include {region} and {secondLevelDomain} parameters.

        Parameters:
        endpoint - The updated endpoint to use
      • setEndpoint

        public final void setEndpoint​(String endpoint)
      • getEndpoint

        public final String getEndpoint()
      • refreshClient

        public final void refreshClient()
        Rebuild the backing HttpClient.

        This will call ClientConfigurators again, and can be used to e.g. refresh the SSL certificate.

      • getClientCommonLibraryVersion

        public String getClientCommonLibraryVersion()
      • getMinimumClientCommonLibraryVersionFromClient

        public Optional<String> getMinimumClientCommonLibraryVersionFromClient()