Class MetricsAdvisorClient
Instantiating an synchronous DataFeedMetric Advisor Client
MetricsAdvisorClient metricsAdvisorClient = new MetricsAdvisorClientBuilder() .credential(new MetricsAdvisorKeyCredential("{subscription_key}", "{api_key}")) .endpoint("{endpoint}") .buildClient();
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionaddFeedback
(String metricId, MetricFeedback metricFeedback) Create a new metric feedback.addFeedbackWithResponse
(String metricId, MetricFeedback metricFeedback, Context context) Create a new metric feedback.getFeedback
(String feedbackId) Get a metric feedback by its id.getFeedbackWithResponse
(String feedbackId, Context context) Get a metric feedback by its id.listAlerts
(String alertConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime) Fetch the alerts triggered by an anomaly alert configuration.listAlerts
(String alertConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime, ListAlertOptions options, Context context) Fetch the alerts triggered by an anomaly alert configuration.listAnomaliesForAlert
(String alertConfigurationId, String alertId) Fetch the anomalies in an alert.listAnomaliesForAlert
(String alertConfigurationId, String alertId, ListAnomaliesAlertedOptions options, Context context) Fetch the anomalies in an alert.listAnomaliesForDetectionConfig
(String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime) Fetch the anomalies identified by an anomaly detection configuration.listAnomaliesForDetectionConfig
(String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime, ListAnomaliesDetectedOptions options, Context context) Fetch the anomalies identified by an anomaly detection configuration.listAnomalyDimensionValues
(String detectionConfigurationId, String dimensionName, OffsetDateTime startTime, OffsetDateTime endTime) Fetch dimension values that have anomalies.listAnomalyDimensionValues
(String detectionConfigurationId, String dimensionName, OffsetDateTime startTime, OffsetDateTime endTime, ListAnomalyDimensionValuesOptions options, Context context) Fetch dimension values that have anomalies.listFeedback
(String metricId) List information of all metric feedbacks on the metrics advisor account.listFeedback
(String metricId, ListMetricFeedbackOptions options, Context context) List information of all metric feedbacks on the metrics advisor account.listIncidentRootCauses
(AnomalyIncident anomalyIncident) List the root causes for an anomalyIncident.listIncidentRootCauses
(String detectionConfigurationId, String incidentId) List the root causes for an incident.listIncidentRootCauses
(String detectionConfigurationId, String incidentId, Context context) List the root causes for an incident.listIncidentsForAlert
(String alertConfigurationId, String alertId) Fetch the incidents in an alert.listIncidentsForAlert
(String alertConfigurationId, String alertId, ListIncidentsAlertedOptions options, Context context) Fetch the incidents in an alert.listIncidentsForDetectionConfig
(String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime) Fetch the incidents identified by an anomaly detection configuration.listIncidentsForDetectionConfig
(String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime, ListIncidentsDetectedOptions options, Context context) Fetch the incidents identified by an anomaly detection configuration.listMetricDimensionValues
(String metricId, String dimensionName) List dimension values from certain metric.listMetricDimensionValues
(String metricId, String dimensionName, ListMetricDimensionValuesOptions options, Context context) List dimension values from certain metric.listMetricEnrichedSeriesData
(String detectionConfigurationId, List<DimensionKey> seriesKeys, OffsetDateTime startTime, OffsetDateTime endTime) Given a list of time series keys, retrieve time series version enriched using a detection configuration.listMetricEnrichedSeriesData
(String detectionConfigurationId, List<DimensionKey> seriesKeys, OffsetDateTime startTime, OffsetDateTime endTime, Context context) Given a list of time series keys, retrieve time series version enriched using a detection configuration.listMetricEnrichmentStatus
(String metricId, OffsetDateTime startTime, OffsetDateTime endTime) List the enrichment status for a metric.listMetricEnrichmentStatus
(String metricId, OffsetDateTime startTime, OffsetDateTime endTime, ListMetricEnrichmentStatusOptions options, Context context) List the enrichment status for a metric.listMetricSeriesData
(String metricId, List<DimensionKey> seriesKeys, OffsetDateTime startTime, OffsetDateTime endTime) Get time series data from metric.listMetricSeriesData
(String metricId, List<DimensionKey> seriesKeys, OffsetDateTime startTime, OffsetDateTime endTime, Context context) Get time series data from metric.listMetricSeriesDefinitions
(String metricId, OffsetDateTime activeSince) List series (dimension combinations) from metric.listMetricSeriesDefinitions
(String metricId, OffsetDateTime activeSince, ListMetricSeriesDefinitionOptions options, Context context) List series (dimension combinations) from metric.
-
Method Details
-
listMetricSeriesDefinitions
public PagedIterable<MetricSeriesDefinition> listMetricSeriesDefinitions(String metricId, OffsetDateTime activeSince) List series (dimension combinations) from metric.Code sample
final OffsetDateTime activeSince = OffsetDateTime.parse("2020-07-10T00:00:00Z"); metricsAdvisorClient.listMetricSeriesDefinitions( "metricId", activeSince) .forEach(metricSeriesDefinition -> { System.out.printf("Data Feed Metric id for the retrieved series definition : %s%n", metricSeriesDefinition.getMetricId()); System.out.printf("Data Feed Metric dimension: %s%n", metricSeriesDefinition.getSeriesKey().asMap()); });
- Parameters:
metricId
- metric unique id.activeSince
- the start time for querying series ingested after this time.- Returns:
- A
PagedIterable
of themetric series definitions
. - Throws:
IllegalArgumentException
- thrown ifmetricId
fail the UUID format validation.MetricsAdvisorResponseException
- thrown if the request is rejected by server.NullPointerException
- thrown if themetricId
oractiveSince
is null.
-
listMetricSeriesDefinitions
public PagedIterable<MetricSeriesDefinition> listMetricSeriesDefinitions(String metricId, OffsetDateTime activeSince, ListMetricSeriesDefinitionOptions options, Context context) List series (dimension combinations) from metric.Code sample
String metricId = "b460abfc-7a58-47d7-9d99-21ee21fdfc6e"; final OffsetDateTime activeSince = OffsetDateTime.parse("2020-07-10T00:00:00Z"); final ListMetricSeriesDefinitionOptions options = new ListMetricSeriesDefinitionOptions() .setMaxPageSize(10) .setDimensionCombinationToFilter(new HashMap<String, List<String>>() {{ put("Dim2", Collections.singletonList("Angelfish")); }}); metricsAdvisorClient.listMetricSeriesDefinitions(metricId, activeSince, options, Context.NONE) .forEach(metricSeriesDefinition -> { System.out.printf("Data Feed Metric id for the retrieved series definition : %s%n", metricSeriesDefinition.getMetricId()); System.out.printf("Series Key:"); System.out.println(metricSeriesDefinition.getSeriesKey().asMap()); });
- Parameters:
metricId
- metric unique id.activeSince
- the start time for querying series ingested after this time.options
- the additional filtering attributes that can be provided to query the series.context
- Additional context that is passed through the HTTP pipeline during the service call.- Returns:
- A
PagedIterable
of themetric series definitions
. - Throws:
IllegalArgumentException
- thrown ifmetricId
fail the UUID format validation.MetricsAdvisorResponseException
- thrown if the request is rejected by server.NullPointerException
- thrown if themetricId
oractiveSince
is null.
-
listMetricSeriesData
public PagedIterable<MetricSeriesData> listMetricSeriesData(String metricId, List<DimensionKey> seriesKeys, OffsetDateTime startTime, OffsetDateTime endTime) Get time series data from metric.Code sample
final OffsetDateTime startTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T12:00:00Z"); metricsAdvisorClient.listMetricSeriesData("metricId", Arrays.asList(new DimensionKey(new HashMap<String, String>() {{ put("Dim1", "value1"); }})), startTime, endTime) .forEach(metricSeriesData -> { System.out.println("List of data points for this series:"); System.out.println(metricSeriesData.getMetricValues()); System.out.println("Timestamps of the data related to this time series:"); System.out.println(metricSeriesData.getTimestamps()); System.out.printf("Series Key:"); System.out.println(metricSeriesData.getSeriesKey().asMap()); });
- Parameters:
metricId
- metric unique id.seriesKeys
- the series key to filter.This enables additional filtering of dimension values being queried. For example, let's say we've the dimensions 'category' and 'city', so the api can query value of the dimension 'category', with series key as 'city=redmond'.
startTime
- The start time for querying the time series data.endTime
- The end time for querying the time series data.- Returns:
- A
PagedIterable
of themetric series data points
. - Throws:
IllegalArgumentException
- thrown ifmetricId
fail the UUID format validation.NullPointerException
- thrown if themetricId
,startTime
orendTime
is null.
-
listMetricSeriesData
public PagedIterable<MetricSeriesData> listMetricSeriesData(String metricId, List<DimensionKey> seriesKeys, OffsetDateTime startTime, OffsetDateTime endTime, Context context) Get time series data from metric.Code sample
final OffsetDateTime startTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T12:00:00Z"); metricsAdvisorClient.listMetricSeriesData("metricId", Arrays.asList(new DimensionKey(new HashMap<String, String>() {{ put("Dim1", "value1"); }})), startTime, endTime) .forEach(metricSeriesData -> { System.out.printf("Data feed Id: %s%n", metricSeriesData.getMetricId()); System.out.printf("Data feed description: %s%n", metricSeriesData.getSeriesKey()); System.out.printf("Data feed source type: %.2f%n", metricSeriesData.getTimestamps()); System.out.printf("Data feed creator: %.2f%n", metricSeriesData.getMetricValues()); });
- Parameters:
metricId
- metric unique id.seriesKeys
- the series key to filter.This enables additional filtering of dimension values being queried. For example, let's say we've the dimensions 'category' and 'city', so the api can query value of the dimension 'category', with series key as 'city=redmond'.
startTime
- The start time for querying the time series data.endTime
- The end time for querying the time series data.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
- A
PagedIterable
of themetric series data points
. - Throws:
IllegalArgumentException
- thrown ifmetricId
fail the UUID format validation.NullPointerException
- thrown if themetricId
,startTime
orendTime
is null.
-
listMetricEnrichmentStatus
public PagedIterable<EnrichmentStatus> listMetricEnrichmentStatus(String metricId, OffsetDateTime startTime, OffsetDateTime endTime) List the enrichment status for a metric.Code sample
final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final String metricId = "d3gh4i4-b804-4ab9-a70f-0da0c89cft3l"; metricsAdvisorClient.listMetricEnrichmentStatus(metricId, startTime, endTime) .forEach(enrichmentStatus -> { System.out.printf("Data Feed Metric enrichment status : %s%n", enrichmentStatus.getStatus()); System.out.printf("Data Feed Metric enrichment status message: %s%n", enrichmentStatus.getMessage()); System.out.printf("Data Feed Metric enrichment status data slice timestamp : %s%n", enrichmentStatus.getTimestamp()); });
- Parameters:
metricId
- metric unique id.startTime
- The start time for querying the time series data.endTime
- The end time for querying the time series data.- Returns:
- the list of enrichment status's for the specified metric.
- Throws:
IllegalArgumentException
- thrown ifmetricId
fail the UUID format validation.MetricsAdvisorResponseException
- thrown if the request is rejected by server.NullPointerException
- thrown ifmetricId
,startTime
andendTime
is null.
-
listMetricEnrichmentStatus
public PagedIterable<EnrichmentStatus> listMetricEnrichmentStatus(String metricId, OffsetDateTime startTime, OffsetDateTime endTime, ListMetricEnrichmentStatusOptions options, Context context) List the enrichment status for a metric.Code sample
final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final String metricId = "d3gh4i4-b804-4ab9-a70f-0da0c89cft3l"; final ListMetricEnrichmentStatusOptions options = new ListMetricEnrichmentStatusOptions().setMaxPageSize(10); metricsAdvisorClient.listMetricEnrichmentStatus(metricId, startTime, endTime, options, Context.NONE) .forEach(enrichmentStatus -> { System.out.printf("Data Feed Metric enrichment status : %s%n", enrichmentStatus.getStatus()); System.out.printf("Data Feed Metric enrichment status message: %s%n", enrichmentStatus.getMessage()); System.out.printf("Data Feed Metric enrichment status data slice timestamp : %s%n", enrichmentStatus.getTimestamp()); });
- Parameters:
metricId
- metric unique id.startTime
- The start time for querying the time series data.endTime
- The end time for querying the time series data.options
- the additional configurable options to specify when querying the result.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
- the list of enrichment status's for the specified metric.
- Throws:
IllegalArgumentException
- thrown ifmetricId
fail the UUID format validation.MetricsAdvisorResponseException
- thrown if the request is rejected by server.NullPointerException
- thrown ifmetricId
,startTime
andendTime
is null.
-
listMetricEnrichedSeriesData
public PagedIterable<MetricEnrichedSeriesData> listMetricEnrichedSeriesData(String detectionConfigurationId, List<DimensionKey> seriesKeys, OffsetDateTime startTime, OffsetDateTime endTime) Given a list of time series keys, retrieve time series version enriched using a detection configuration.Code sample
final String detectionConfigurationId = "e87d899d-a5a0-4259-b752-11aea34d5e34"; final DimensionKey seriesKey = new DimensionKey() .put("Dim1", "Common Lime") .put("Dim2", "Antelope"); final OffsetDateTime startTime = OffsetDateTime.parse("2020-08-12T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-12T00:00:00Z"); PagedIterable<MetricEnrichedSeriesData> enrichedDataIterable = metricsAdvisorClient.listMetricEnrichedSeriesData(detectionConfigurationId, Arrays.asList(seriesKey), startTime, endTime); for (MetricEnrichedSeriesData enrichedData : enrichedDataIterable) { System.out.printf("Series Key %s%n:", enrichedData.getSeriesKey().asMap()); System.out.println("List of data points for this series"); System.out.println(enrichedData.getMetricValues()); System.out.println("Timestamps of the data related to this time series:"); System.out.println(enrichedData.getTimestamps()); System.out.println("The expected values of the data points calculated by the smart detector:"); System.out.println(enrichedData.getExpectedMetricValues()); System.out.println("The lower boundary values of the data points calculated by smart detector:"); System.out.println(enrichedData.getLowerBoundaryValues()); System.out.println("the periods calculated for the data points in the time series:"); System.out.println(enrichedData.getPeriods()); }
- Parameters:
detectionConfigurationId
- The id of the configuration used to enrich the time series identified by the keys inseriesKeys
.seriesKeys
- The time series key list, each key identifies a specific time series.startTime
- The start time.endTime
- The end time.- Returns:
- The enriched time series.
- Throws:
IllegalArgumentException
- thrown ifdetectionConfigurationId
fail the UUID format validation or ifseriesKeys
is empty.NullPointerException
- thrown if thedetectionConfigurationId
orstartTime
orendTime
is null.
-
listMetricEnrichedSeriesData
public PagedIterable<MetricEnrichedSeriesData> listMetricEnrichedSeriesData(String detectionConfigurationId, List<DimensionKey> seriesKeys, OffsetDateTime startTime, OffsetDateTime endTime, Context context) Given a list of time series keys, retrieve time series version enriched using a detection configuration.Code sample
final String detectionConfigurationId = "e87d899d-a5a0-4259-b752-11aea34d5e34"; final DimensionKey seriesKey = new DimensionKey() .put("Dim1", "Common Lime") .put("Dim2", "Antelope"); final OffsetDateTime startTime = OffsetDateTime.parse("2020-08-12T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-12T00:00:00Z"); PagedIterable<MetricEnrichedSeriesData> enrichedDataIterable = metricsAdvisorClient.listMetricEnrichedSeriesData(detectionConfigurationId, Arrays.asList(seriesKey), startTime, endTime); Stream<PagedResponse<MetricEnrichedSeriesData>> enrichedDataPageStream = enrichedDataIterable.streamByPage(); int[] pageCount = new int[1]; enrichedDataPageStream.forEach(enrichedDataPage -> { System.out.printf("Page: %d%n", pageCount[0]++); IterableStream<MetricEnrichedSeriesData> pageElements = enrichedDataPage.getElements(); for (MetricEnrichedSeriesData enrichedData : pageElements) { System.out.printf("Series Key %s%n:", enrichedData.getSeriesKey().asMap()); System.out.println("List of data points for this series"); System.out.println(enrichedData.getMetricValues()); System.out.println("Timestamps of the data related to this time series:"); System.out.println(enrichedData.getTimestamps()); System.out.println("The expected values of the data points calculated by the smart detector:"); System.out.println(enrichedData.getExpectedMetricValues()); System.out.println("The lower boundary values of the data points calculated by smart detector:"); System.out.println(enrichedData.getLowerBoundaryValues()); System.out.println("the periods calculated for the data points in the time series:"); System.out.println(enrichedData.getPeriods()); } });
- Parameters:
detectionConfigurationId
- The id of the configuration used to enrich the time series identified by the keys inseriesKeys
.seriesKeys
- The time series key list, each key identifies a specific time series.startTime
- The start time of the time range within which the enriched data is returned.endTime
- The end time of the time range within which the enriched data is returned.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
- The enriched time series.
- Throws:
IllegalArgumentException
- thrown ifdetectionConfigurationId
fail the UUID format validation or ifseriesKeys
is empty.NullPointerException
- thrown if thedetectionConfigurationId
orstartTime
orendTime
is null.
-
listAnomaliesForDetectionConfig
public PagedIterable<DataPointAnomaly> listAnomaliesForDetectionConfig(String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime) Fetch the anomalies identified by an anomaly detection configuration.Code sample
final String detectionConfigurationId = "c0f2539f-b804-4ab9-a70f-0da0c89c76d8"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T12:00:00Z"); final ListAnomaliesDetectedFilter filter = new ListAnomaliesDetectedFilter() .setSeverityRange(AnomalySeverity.LOW, AnomalySeverity.MEDIUM); final ListAnomaliesDetectedOptions options = new ListAnomaliesDetectedOptions() .setMaxPageSize(10) .setFilter(filter); PagedIterable<DataPointAnomaly> anomaliesIterable = metricsAdvisorClient.listAnomaliesForDetectionConfig(detectionConfigurationId, startTime, endTime, options, Context.NONE); for (DataPointAnomaly dataPointAnomaly : anomaliesIterable) { System.out.printf("DataPointAnomaly AnomalySeverity: %s%n", dataPointAnomaly.getSeverity()); System.out.printf("Series Key:"); DimensionKey seriesKey = dataPointAnomaly.getSeriesKey(); for (Map.Entry<String, String> dimension : seriesKey.asMap().entrySet()) { System.out.printf("DimensionName: %s DimensionValue:%s%n", dimension.getKey(), dimension.getValue()); } }
- Parameters:
detectionConfigurationId
- The anomaly detection configuration id.startTime
- The start time of the time range within which the anomalies were detected.endTime
- The end time of the time range within which the anomalies were detected.- Returns:
- The anomalies.
- Throws:
IllegalArgumentException
- thrown ifdetectionConfigurationId
does not conform to the UUID format specification oroptions.filter
is used to set severity but either min or max severity is missing.NullPointerException
- thrown if thedetectionConfigurationId
orstartTime
orendTime
is null.
-
listAnomaliesForDetectionConfig
public PagedIterable<DataPointAnomaly> listAnomaliesForDetectionConfig(String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime, ListAnomaliesDetectedOptions options, Context context) Fetch the anomalies identified by an anomaly detection configuration.Code sample
final String detectionConfigurationId = "c0f2539f-b804-4ab9-a70f-0da0c89c76d8"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T12:00:00Z"); final ListAnomaliesDetectedFilter filter = new ListAnomaliesDetectedFilter() .setSeverityRange(AnomalySeverity.LOW, AnomalySeverity.MEDIUM); final ListAnomaliesDetectedOptions options = new ListAnomaliesDetectedOptions() .setMaxPageSize(10) .setFilter(filter); PagedIterable<DataPointAnomaly> anomaliesIterable = metricsAdvisorClient.listAnomaliesForDetectionConfig(detectionConfigurationId, startTime, endTime, options, Context.NONE); Stream<PagedResponse<DataPointAnomaly>> anomaliesPageStream = anomaliesIterable.streamByPage(); int[] pageCount = new int[1]; anomaliesPageStream.forEach(anomaliesPage -> { System.out.printf("Page: %d%n", pageCount[0]++); IterableStream<DataPointAnomaly> anomaliesPageItems = anomaliesPage.getElements(); for (DataPointAnomaly dataPointAnomaly : anomaliesPageItems) { System.out.printf("DataPoint Anomaly AnomalySeverity: %s%n", dataPointAnomaly.getSeverity()); System.out.printf("Series Key:"); DimensionKey seriesKey = dataPointAnomaly.getSeriesKey(); for (Map.Entry<String, String> dimension : seriesKey.asMap().entrySet()) { System.out.printf("DimensionName: %s DimensionValue:%s%n", dimension.getKey(), dimension.getValue()); } } });
- Parameters:
detectionConfigurationId
- The anomaly detection configuration id.startTime
- The start time of the time range within which the anomalies were detected.endTime
- The end time of the time range within which the anomalies were detected.options
- The additional parameters.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
- The anomalies.
- Throws:
IllegalArgumentException
- thrown ifdetectionConfigurationId
does not conform to the UUID format specification oroptions.filter
is used to set severity but either min or max severity is missing.NullPointerException
- thrown if thedetectionConfigurationId
orstartTime
orendTime
is null.
-
listIncidentsForDetectionConfig
public PagedIterable<AnomalyIncident> listIncidentsForDetectionConfig(String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime) Fetch the incidents identified by an anomaly detection configuration.Code sample
final String detectionConfigurationId = "c0f2539f-b804-4ab9-a70f-0da0c89c76d8"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T12:00:00Z"); PagedIterable<AnomalyIncident> incidentsIterable = metricsAdvisorClient.listIncidentsForDetectionConfig(detectionConfigurationId, startTime, endTime); for (AnomalyIncident anomalyIncident : incidentsIterable) { System.out.printf("Data Feed Metric Id: %s%n", anomalyIncident.getMetricId()); System.out.printf("Detection Configuration Id: %s%n", anomalyIncident.getDetectionConfigurationId()); System.out.printf("Anomaly Incident Id: %s%n", anomalyIncident.getId()); System.out.printf("Anomaly Incident Start Time: %s%n", anomalyIncident.getStartTime()); System.out.printf("Anomaly Incident AnomalySeverity: %s%n", anomalyIncident.getSeverity()); System.out.printf("Anomaly Incident Status: %s%n", anomalyIncident.getStatus()); System.out.printf("Root DataFeedDimension Key: %s%n", anomalyIncident.getRootDimensionKey().asMap()); }
- Parameters:
detectionConfigurationId
- The anomaly detection configuration id.startTime
- The start time of the time range within which the incidents were detected.endTime
- The end time of the time range within which the incidents were detected.- Returns:
- The incidents.
- Throws:
IllegalArgumentException
- thrown ifdetectionConfigurationId
does not conform to the UUID format specification.NullPointerException
- thrown if thedetectionConfigurationId
oroptions
orstartTime
orendTime
is null.
-
listIncidentsForDetectionConfig
public PagedIterable<AnomalyIncident> listIncidentsForDetectionConfig(String detectionConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime, ListIncidentsDetectedOptions options, Context context) Fetch the incidents identified by an anomaly detection configuration.Code sample
final String detectionConfigurationId = "c0f2539f-b804-4ab9-a70f-0da0c89c76d8"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T12:00:00Z"); final ListIncidentsDetectedOptions options = new ListIncidentsDetectedOptions() .setMaxPageSize(1000); PagedIterable<AnomalyIncident> incidentsIterable = metricsAdvisorClient.listIncidentsForDetectionConfig(detectionConfigurationId, startTime, endTime, options, Context.NONE); Stream<PagedResponse<AnomalyIncident>> incidentsPageStream = incidentsIterable.streamByPage(); int[] pageCount = new int[1]; incidentsPageStream.forEach(incidentsPage -> { System.out.printf("Page: %d%n", pageCount[0]++); IterableStream<AnomalyIncident> pageElements = incidentsPage.getElements(); for (AnomalyIncident anomalyIncident : pageElements) { System.out.printf("Data Feed Metric Id: %s%n", anomalyIncident.getMetricId()); System.out.printf("Detection Configuration Id: %s%n", anomalyIncident.getDetectionConfigurationId()); System.out.printf("Anomaly Incident Id: %s%n", anomalyIncident.getId()); System.out.printf("Anomaly Incident Start Time: %s%n", anomalyIncident.getStartTime()); System.out.printf("Anomaly Incident AnomalySeverity: %s%n", anomalyIncident.getSeverity()); System.out.printf("Anomaly Incident Status: %s%n", anomalyIncident.getStatus()); System.out.printf("Root DataFeedDimension Key:"); System.out.printf("Root DataFeedDimension Key: %s%n", anomalyIncident.getRootDimensionKey().asMap()); } });
- Parameters:
detectionConfigurationId
- The anomaly detection configuration id.startTime
- The start time of the time range within which the incidents were detected.endTime
- The end time of the time range within which the incidents were detected.options
- The additional parameters.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
- The incidents.
- Throws:
IllegalArgumentException
- thrown ifdetectionConfigurationId
does not conform to the UUID format specification.NullPointerException
- thrown if thedetectionConfigurationId
orstartTime
orendTime
is null.
-
listIncidentRootCauses
public PagedIterable<IncidentRootCause> listIncidentRootCauses(String detectionConfigurationId, String incidentId) List the root causes for an incident.Code sample
final String detectionConfigurationId = "c0dddf2539f-b804-4ab9-a70f-0da0c89c76d8"; final String incidentId = "c5thh0f2539f-b804-4ab9-a70f-0da0c89c456d"; metricsAdvisorClient.listIncidentRootCauses(detectionConfigurationId, incidentId) .forEach(incidentRootCause -> { System.out.printf("Description: %s%n", incidentRootCause.getDescription()); System.out.printf("Series Key:"); System.out.println(incidentRootCause.getSeriesKey().asMap()); System.out.printf("Confidence for the detected incident root cause %.2f%n", incidentRootCause.getContributionScore()); });
- Parameters:
detectionConfigurationId
- anomaly detection configuration unique id.incidentId
- the incident for which you want to query root causes for.- Returns:
- the list of root causes for that incident.
- Throws:
IllegalArgumentException
- thrown ifdetectionConfigurationId
fail the UUID format validation.MetricsAdvisorResponseException
- thrown if the request is rejected by server.NullPointerException
- thrown if thedetectionConfigurationId
orincidentId
is null.
-
listIncidentRootCauses
public PagedIterable<IncidentRootCause> listIncidentRootCauses(String detectionConfigurationId, String incidentId, Context context) List the root causes for an incident.Code sample
final String detectionConfigurationId = "c0dddf2539f-b804-4ab9-a70f-0da0c89c76d8"; final String incidentId = "c5thh0f2539f-b804-4ab9-a70f-0da0c89c456d"; PagedIterable<IncidentRootCause> rootCauseIterable = metricsAdvisorClient.listIncidentRootCauses(detectionConfigurationId, incidentId, Context.NONE); Stream<PagedResponse<IncidentRootCause>> rootCausePageIterable = rootCauseIterable.streamByPage(); rootCausePageIterable.forEach(response -> { System.out.printf("Response StatusCode: %s%n", response.getStatusCode()); IterableStream<IncidentRootCause> pageElements = response.getElements(); for (IncidentRootCause incidentRootCause : pageElements) { System.out.printf("Description: %s%n", incidentRootCause.getDescription()); System.out.printf("Series Key:"); System.out.println(incidentRootCause.getSeriesKey().asMap()); System.out.printf("Confidence for the detected incident root cause %.2f%n", incidentRootCause.getContributionScore()); } });
- Parameters:
detectionConfigurationId
- anomaly detection configuration unique id.incidentId
- the incident for which you want to query root causes for.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
- the list of root causes for that incident.
- Throws:
IllegalArgumentException
- thrown ifdetectionConfigurationId
fail the UUID format validation.MetricsAdvisorResponseException
- thrown if the request is rejected by server.NullPointerException
- thrown if thedetectionConfigurationId
orincidentId
is null.
-
listIncidentRootCauses
List the root causes for an anomalyIncident.Code sample
final String detectionConfigurationId = "c0f2539f-b804-4ab9-a70f-0da0c89c76d8"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); metricsAdvisorClient.listIncidentsForDetectionConfig(detectionConfigurationId, startTime, endTime) .forEach(incident -> { metricsAdvisorClient.listIncidentRootCauses(incident) .forEach(incidentRootCause -> { System.out.printf("Description: %s%n", incidentRootCause.getDescription()); System.out.printf("Series Key:"); System.out.println(incidentRootCause.getSeriesKey().asMap()); System.out.printf("Confidence for the detected incident root cause %.2f%n", incidentRootCause.getContributionScore()); }); });
- Parameters:
anomalyIncident
- the anomalyIncident for which you want to query root causes for.- Returns:
- the list of root causes for that anomalyIncident.
- Throws:
IllegalArgumentException
- thrown ifdetectionConfigurationId
fail the UUID format validation.MetricsAdvisorResponseException
- thrown if the request is rejected by server.NullPointerException
- thrown if thedetectionConfigurationId
orincidentId
is null.
-
listAnomalyDimensionValues
public PagedIterable<String> listAnomalyDimensionValues(String detectionConfigurationId, String dimensionName, OffsetDateTime startTime, OffsetDateTime endTime) Fetch dimension values that have anomalies.Code sample
final String detectionConfigurationId = "c0f2539f-b804-4ab9-a70f-0da0c89c76d8"; final String dimensionName = "Dim1"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); PagedIterable<String> dimensionValueIterable = metricsAdvisorClient.listAnomalyDimensionValues(detectionConfigurationId, dimensionName, startTime, endTime); for (String dimensionValue : dimensionValueIterable) { System.out.printf("DataFeedDimension Value: %s%n", dimensionValue); }
- Parameters:
detectionConfigurationId
- Identifies the configuration used to detect the anomalies.dimensionName
- The dimension name to retrieve the values for.startTime
- The start time of the time range within which the anomalies were identified.endTime
- The end time of the time range within which the anomalies were identified.- Returns:
- The dimension values with anomalies.
- Throws:
IllegalArgumentException
- thrown ifdetectionConfigurationId
does not conform to the UUID format specification.NullPointerException
- thrown if thedetectionConfigurationId
ordimensionName
orstartTime
orendTime
is null.
-
listAnomalyDimensionValues
public PagedIterable<String> listAnomalyDimensionValues(String detectionConfigurationId, String dimensionName, OffsetDateTime startTime, OffsetDateTime endTime, ListAnomalyDimensionValuesOptions options, Context context) Fetch dimension values that have anomalies.Code sample
final String detectionConfigurationId = "c0f2539f-b804-4ab9-a70f-0da0c89c76d8"; final String dimensionName = "Dim1"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final ListAnomalyDimensionValuesOptions options = new ListAnomalyDimensionValuesOptions() .setMaxPageSize(10); PagedIterable<String> dimensionValueIterable = metricsAdvisorClient.listAnomalyDimensionValues(detectionConfigurationId, dimensionName, startTime, endTime, options, Context.NONE); Stream<PagedResponse<String>> dimensionValuePageStream = dimensionValueIterable.streamByPage(); int[] pageCount = new int[1]; dimensionValuePageStream.forEach(dimensionValuePage -> { System.out.printf("Page: %d%n", pageCount[0]++); IterableStream<String> dimensionValuePageItems = dimensionValuePage.getElements(); for (String dimensionValue : dimensionValuePageItems) { System.out.printf("DataFeedDimension Value: %s%n", dimensionValue); } });
- Parameters:
detectionConfigurationId
- Identifies the configuration used to detect the anomalies.dimensionName
- The dimension name to retrieve the values for.startTime
- The start time of the time range within which the anomalies were identified.endTime
- The end time of the time range within which the anomalies were identified.options
- The additional parameters.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
- The dimension values with anomalies.
- Throws:
IllegalArgumentException
- thrown ifdetectionConfigurationId
does not conform to the UUID format specification.NullPointerException
- thrown if thedetectionConfigurationId
ordimensionName
orstartTime
orendTime
is null.
-
listAlerts
public PagedIterable<AnomalyAlert> listAlerts(String alertConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime) Fetch the alerts triggered by an anomaly alert configuration.Code sample
final String alertConfigurationId = "ff3014a0-bbbb-41ec-a637-677e77b81299"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); PagedIterable<AnomalyAlert> alertsIterable = metricsAdvisorClient.listAlerts(alertConfigurationId, startTime, endTime); for (AnomalyAlert anomalyAlert : alertsIterable) { System.out.printf("Anomaly Alert Id: %s%n", anomalyAlert.getId()); System.out.printf("Created Time: %s%n", anomalyAlert.getCreatedTime()); System.out.printf("Modified Time: %s%n", anomalyAlert.getModifiedTime()); }
- Parameters:
alertConfigurationId
- The anomaly alert configuration id.startTime
- The start time of the time range within which the alerts were triggered.endTime
- The end time of the time range within which the alerts were triggered.- Returns:
- The alerts.
- Throws:
IllegalArgumentException
- thrown ifalertConfigurationId
does not conform to the UUID format specification.NullPointerException
- thrown if thealertConfigurationId
orstartTime
orendTime
is null.
-
listAlerts
public PagedIterable<AnomalyAlert> listAlerts(String alertConfigurationId, OffsetDateTime startTime, OffsetDateTime endTime, ListAlertOptions options, Context context) Fetch the alerts triggered by an anomaly alert configuration.Code sample
final String alertConfigurationId = "ff3014a0-bbbb-41ec-a637-677e77b81299"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final AlertQueryTimeMode timeMode = AlertQueryTimeMode.ANOMALY_TIME; final ListAlertOptions options = new ListAlertOptions() .setAlertQueryTimeMode(timeMode) .setMaxPageSize(10); PagedIterable<AnomalyAlert> alertsIterable = metricsAdvisorClient.listAlerts(alertConfigurationId, startTime, endTime, options, Context.NONE); Stream<PagedResponse<AnomalyAlert>> alertsPageStream = alertsIterable.streamByPage(); int[] pageCount = new int[1]; alertsPageStream.forEach(alertsPage -> { System.out.printf("Page: %d%n", pageCount[0]++); IterableStream<AnomalyAlert> alertsPageItems = alertsPage.getElements(); for (AnomalyAlert anomalyAlert : alertsPageItems) { System.out.printf("AnomalyAlert Id: %s%n", anomalyAlert.getId()); System.out.printf("Created Time: %s%n", anomalyAlert.getCreatedTime()); System.out.printf("Modified Time: %s%n", anomalyAlert.getModifiedTime()); } });
- Parameters:
alertConfigurationId
- The anomaly alert configuration id.startTime
- The start time of the time range within which the alerts were triggered.endTime
- The end time of the time range within which the alerts were triggered.options
- The additional parameters.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
- The alerts.
- Throws:
IllegalArgumentException
- thrown ifalertConfigurationId
does not conform to the UUID format specification.NullPointerException
- thrown if thealertConfigurationId
orstartTime
orendTime
is null.
-
listAnomaliesForAlert
public PagedIterable<DataPointAnomaly> listAnomaliesForAlert(String alertConfigurationId, String alertId) Fetch the anomalies in an alert.Code sample
final String alertConfigurationId = "ff3014a0-bbbb-41ec-a637-677e77b81299"; final String alertId = "1746b031c00"; PagedIterable<DataPointAnomaly> anomaliesIterable = metricsAdvisorClient.listAnomaliesForAlert( alertConfigurationId, alertId ); for (DataPointAnomaly dataPointAnomaly : anomaliesIterable) { System.out.printf("Data Feed Metric Id: %s%n", dataPointAnomaly.getMetricId()); System.out.printf("Detection Configuration Id: %s%n", dataPointAnomaly.getDetectionConfigurationId()); System.out.printf("DataPoint Anomaly Created Time: %s%n", dataPointAnomaly.getCreatedTime()); System.out.printf("DataPoint Anomaly Modified Time: %s%n", dataPointAnomaly.getModifiedTime()); System.out.printf("DataPoint Anomaly AnomalySeverity: %s%n", dataPointAnomaly.getSeverity()); System.out.printf("DataPoint Anomaly Status: %s%n", dataPointAnomaly.getStatus()); System.out.printf("Series Key:"); System.out.println(dataPointAnomaly.getSeriesKey().asMap()); }
- Parameters:
alertConfigurationId
- The anomaly alert configuration id.alertId
- The alert id.- Returns:
- The anomalies.
- Throws:
IllegalArgumentException
- thrown ifalertConfigurationId
oralertId
does not conform to the UUID format specification.NullPointerException
- thrown if thealertConfigurationId
oralertId
is null.
-
listAnomaliesForAlert
public PagedIterable<DataPointAnomaly> listAnomaliesForAlert(String alertConfigurationId, String alertId, ListAnomaliesAlertedOptions options, Context context) Fetch the anomalies in an alert.Code sample
final String alertConfigurationId = "ff3014a0-bbbb-41ec-a637-677e77b81299"; final String alertId = "1746b031c00"; final ListAnomaliesAlertedOptions options = new ListAnomaliesAlertedOptions() .setMaxPageSize(10); PagedIterable<DataPointAnomaly> anomaliesIterable = metricsAdvisorClient.listAnomaliesForAlert( alertConfigurationId, alertId, options, Context.NONE); Stream<PagedResponse<DataPointAnomaly>> anomaliesPageStream = anomaliesIterable.streamByPage(); int[] pageCount = new int[1]; anomaliesPageStream.forEach(anomaliesPage -> { System.out.printf("Page: %d%n", pageCount[0]++); IterableStream<DataPointAnomaly> anomaliesPageItems = anomaliesPage.getElements(); for (DataPointAnomaly dataPointAnomaly : anomaliesPageItems) { System.out.printf("Data Feed Metric Id: %s%n", dataPointAnomaly.getMetricId()); System.out.printf("Detection Configuration Id: %s%n", dataPointAnomaly.getDetectionConfigurationId()); System.out.printf("DataPoint Anomaly Created Time: %s%n", dataPointAnomaly.getCreatedTime()); System.out.printf("DataPoint Anomaly Modified Time: %s%n", dataPointAnomaly.getModifiedTime()); System.out.printf("DataPoint Anomaly AnomalySeverity: %s%n", dataPointAnomaly.getSeverity()); System.out.printf("DataPoint Anomaly Status: %s%n", dataPointAnomaly.getStatus()); System.out.printf("Series Key:"); System.out.println(dataPointAnomaly.getSeriesKey().asMap()); } });
- Parameters:
alertConfigurationId
- The anomaly alert configuration id.alertId
- The alert id.options
- The additional parameters.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
- The anomalies.
- Throws:
IllegalArgumentException
- thrown ifalertConfigurationId
oralertId
does not conform to the UUID format specification.NullPointerException
- thrown if thealertConfigurationId
oralertId
is null.
-
listIncidentsForAlert
public PagedIterable<AnomalyIncident> listIncidentsForAlert(String alertConfigurationId, String alertId) Fetch the incidents in an alert.Code sample
final String alertConfigurationId = "ff3014a0-bbbb-41ec-a637-677e77b81299"; final String alertId = "1746b031c00"; PagedIterable<AnomalyIncident> incidentsIterable = metricsAdvisorClient.listIncidentsForAlert( alertConfigurationId, alertId); Stream<PagedResponse<AnomalyIncident>> incidentsPageStream = incidentsIterable.streamByPage(); int[] pageCount = new int[1]; incidentsPageStream.forEach(incidentsPage -> { System.out.printf("Page: %d%n", pageCount[0]++); IterableStream<AnomalyIncident> incidentsPageItems = incidentsPage.getElements(); for (AnomalyIncident anomalyIncident : incidentsPageItems) { System.out.printf("Data Feed Metric Id: %s%n", anomalyIncident.getMetricId()); System.out.printf("Detection Configuration Id: %s%n", anomalyIncident.getDetectionConfigurationId()); System.out.printf("Anomaly Incident Id: %s%n", anomalyIncident.getId()); System.out.printf("Anomaly Incident Start Time: %s%n", anomalyIncident.getStartTime()); System.out.printf("Anomaly Incident AnomalySeverity: %s%n", anomalyIncident.getSeverity()); System.out.printf("Anomaly Incident Status: %s%n", anomalyIncident.getStatus()); System.out.printf("Root DataFeedDimension Key:"); DimensionKey rootDimension = anomalyIncident.getRootDimensionKey(); for (Map.Entry<String, String> dimension : rootDimension.asMap().entrySet()) { System.out.printf("DimensionKey: %s DimensionValue:%s%n", dimension.getKey(), dimension.getValue()); } } });
- Parameters:
alertConfigurationId
- The anomaly alert configuration id.alertId
- The alert id.- Returns:
- The incidents.
- Throws:
IllegalArgumentException
- thrown ifalertConfigurationId
oralertId
does not conform to the UUID format specification.NullPointerException
- thrown if thealertConfigurationId
oralertId
is null.
-
listIncidentsForAlert
public PagedIterable<AnomalyIncident> listIncidentsForAlert(String alertConfigurationId, String alertId, ListIncidentsAlertedOptions options, Context context) Fetch the incidents in an alert.Code sample
final String alertConfigurationId = "ff3014a0-bbbb-41ec-a637-677e77b81299"; final String alertId = "1746b031c00"; final ListIncidentsAlertedOptions options = new ListIncidentsAlertedOptions() .setMaxPageSize(10); PagedIterable<AnomalyIncident> incidentsIterable = metricsAdvisorClient.listIncidentsForAlert( alertConfigurationId, alertId, options, Context.NONE); Stream<PagedResponse<AnomalyIncident>> incidentsPageStream = incidentsIterable.streamByPage(); int[] pageCount = new int[1]; incidentsPageStream.forEach(incidentsPage -> { System.out.printf("Page: %d%n", pageCount[0]++); IterableStream<AnomalyIncident> incidentsPageItems = incidentsPage.getElements(); for (AnomalyIncident anomalyIncident : incidentsPageItems) { System.out.printf("Data Feed Metric Id: %s%n", anomalyIncident.getMetricId()); System.out.printf("Detection Configuration Id: %s%n", anomalyIncident.getDetectionConfigurationId()); System.out.printf("Anomaly Incident Id: %s%n", anomalyIncident.getId()); System.out.printf("Anomaly Incident Start Time: %s%n", anomalyIncident.getStartTime()); System.out.printf("Anomaly Incident AnomalySeverity: %s%n", anomalyIncident.getSeverity()); System.out.printf("Anomaly Incident Status: %s%n", anomalyIncident.getStatus()); System.out.printf("Root DataFeedDimension Key:"); DimensionKey rootDimension = anomalyIncident.getRootDimensionKey(); for (Map.Entry<String, String> dimension : rootDimension.asMap().entrySet()) { System.out.printf("DimensionKey: %s DimensionValue:%s%n", dimension.getKey(), dimension.getValue()); } } });
- Parameters:
alertConfigurationId
- The anomaly alert configuration id.alertId
- The alert id.options
- The additional parameters.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
- The incidents.
- Throws:
IllegalArgumentException
- thrown ifalertConfigurationId
oralertId
does not conform to the UUID format specification.NullPointerException
- thrown if thealertConfigurationId
oralertId
is null.
-
addFeedback
Create a new metric feedback.Code sample
final String metricId = "d3gh4i4-b804-4ab9-a70f-0da0c89cft3l"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final MetricChangePointFeedback metricChangePointFeedback = new MetricChangePointFeedback(startTime, endTime, ChangePointValue.AUTO_DETECT); final MetricFeedback metricFeedback = metricsAdvisorClient.addFeedback(metricId, metricChangePointFeedback); MetricChangePointFeedback createdMetricChangePointFeedback = (MetricChangePointFeedback) metricFeedback; System.out.printf("Data Feed Metric feedback Id: %s%n", createdMetricChangePointFeedback.getId()); System.out.printf("Data Feed Metric feedback change point value: %s%n", createdMetricChangePointFeedback.getChangePointValue().toString()); System.out.printf("Data Feed Metric feedback start time: %s%n", createdMetricChangePointFeedback.getStartTime()); System.out.printf("Data Feed Metric feedback end time: %s%n", createdMetricChangePointFeedback.getEndTime());
- Parameters:
metricId
- the unique id for which the feedback needs to be submitted.metricFeedback
- the actual metric feedback.- Returns:
- the created
metric feedback
. - Throws:
NullPointerException
- IfmetricId
,metricFeedback.dimensionFilter
is null.
-
addFeedbackWithResponse
public Response<MetricFeedback> addFeedbackWithResponse(String metricId, MetricFeedback metricFeedback, Context context) Create a new metric feedback.Code sample
final String metricId = "d3gh4i4-b804-4ab9-a70f-0da0c89cft3l"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); final MetricChangePointFeedback metricChangePointFeedback = new MetricChangePointFeedback(startTime, endTime, ChangePointValue.AUTO_DETECT); final Response<MetricFeedback> metricFeedbackResponse = metricsAdvisorClient.addFeedbackWithResponse(metricId, metricChangePointFeedback, Context.NONE); System.out.printf("Data Feed Metric feedback creation operation status %s%n", metricFeedbackResponse.getStatusCode()); MetricChangePointFeedback createdMetricChangePointFeedback = (MetricChangePointFeedback) metricFeedbackResponse.getValue(); System.out.printf("Data Feed Metric feedback Id: %s%n", createdMetricChangePointFeedback.getId()); System.out.printf("Data Feed Metric feedback change point value: %s%n", createdMetricChangePointFeedback.getChangePointValue().toString()); System.out.printf("Data Feed Metric feedback start time: %s%n", createdMetricChangePointFeedback.getStartTime()); System.out.printf("Data Feed Metric feedback end time: %s%n", createdMetricChangePointFeedback.getEndTime()); System.out.printf("Data Feed Metric feedback associated dimension filter: %s%n", createdMetricChangePointFeedback.getDimensionFilter().asMap());
- Parameters:
metricId
- the unique id for which the feedback needs to be submitted.metricFeedback
- the actual metric feedback.context
- Additional context that is passed through the HTTP pipeline during the service call.- Returns:
- A
Response
containing the createdmetric feedback
. - Throws:
NullPointerException
- IfmetricId
,metricFeedback.dimensionFilter
is null.
-
getFeedback
Get a metric feedback by its id.Code sample
final String feedbackId = "8i3h4i4-b804-4ab9-a70f-0da0c89cft3l"; final MetricFeedback metricFeedback = metricsAdvisorClient.getFeedback(feedbackId); System.out.printf("Data Feed Metric feedback Id: %s%n", metricFeedback.getId()); System.out.printf("Data Feed Metric feedback associated dimension filter: %s%n", metricFeedback.getDimensionFilter().asMap()); if (PERIOD.equals(metricFeedback.getFeedbackType())) { MetricPeriodFeedback createMetricPeriodFeedback = (MetricPeriodFeedback) metricFeedback; System.out.printf("Data Feed Metric feedback type: %s%n", createMetricPeriodFeedback.getPeriodType().toString()); System.out.printf("Data Feed Metric feedback period value: %d%n", createMetricPeriodFeedback.getPeriodValue()); }
- Parameters:
feedbackId
- The metric feedback unique id.- Returns:
- The metric feedback for the provided id.
- Throws:
IllegalArgumentException
- IffeedbackId
does not conform to the UUID format specification.NullPointerException
- thrown if thefeedbackId
is null.
-
getFeedbackWithResponse
Get a metric feedback by its id.Code sample
final String feedbackId = "8i3h4i4-b804-4ab9-a70f-0da0c89cft3l"; final Response<MetricFeedback> metricFeedbackResponse = metricsAdvisorClient.getFeedbackWithResponse(feedbackId, Context.NONE); final MetricFeedback metricFeedback = metricFeedbackResponse.getValue(); System.out.printf("Data Feed Metric feedback Id: %s%n", metricFeedback.getId()); System.out.printf("Data Feed Metric feedback associated dimension filter: %s%n", metricFeedback.getDimensionFilter().asMap()); if (PERIOD.equals(metricFeedback.getFeedbackType())) { MetricPeriodFeedback createMetricPeriodFeedback = (MetricPeriodFeedback) metricFeedback; System.out.printf("Data Feed Metric feedback type: %s%n", createMetricPeriodFeedback.getPeriodType().toString()); System.out.printf("Data Feed Metric feedback period value: %d%n", createMetricPeriodFeedback.getPeriodValue()); }
- Parameters:
feedbackId
- The metric feedback unique id.context
- Additional context that is passed through the HTTP pipeline during the service call.- Returns:
- The metric feedback for the provided id.
- Throws:
IllegalArgumentException
- IffeedbackId
does not conform to the UUID format specification.NullPointerException
- thrown if thefeedbackId
is null.
-
listFeedback
List information of all metric feedbacks on the metrics advisor account.Code sample
final String metricId = "d3gh4i4-b804-4ab9-a70f-0da0c89cft3l"; metricsAdvisorClient.listFeedback(metricId) .forEach(metricFeedback -> { System.out.printf("Data Feed Metric feedback Id: %s%n", metricFeedback.getId()); System.out.printf("Data Feed Metric feedback associated dimension filter: %s%n", metricFeedback.getDimensionFilter().asMap()); if (PERIOD.equals(metricFeedback.getFeedbackType())) { MetricPeriodFeedback periodFeedback = (MetricPeriodFeedback) metricFeedback; System.out.printf("Data Feed Metric feedback type: %s%n", periodFeedback.getPeriodType().toString()); System.out.printf("Data Feed Metric feedback period value: %d%n", periodFeedback.getPeriodValue()); } else if (ANOMALY.equals(metricFeedback.getFeedbackType())) { MetricAnomalyFeedback metricAnomalyFeedback = (MetricAnomalyFeedback) metricFeedback; System.out.printf("Data Feed Metric feedback anomaly value: %s%n", metricAnomalyFeedback.getAnomalyValue().toString()); System.out.printf("Data Feed Metric feedback associated detection configuration: %s%n", metricAnomalyFeedback.getDetectionConfigurationId()); } else if (COMMENT.equals(metricFeedback.getFeedbackType())) { MetricCommentFeedback metricCommentFeedback = (MetricCommentFeedback) metricFeedback; System.out.printf("Data Feed Metric feedback comment value: %s%n", metricCommentFeedback.getComment()); } });
- Parameters:
metricId
- the unique metric Id.- Returns:
- A
PagedIterable
containing information of all themetric feedbacks
in the account. - Throws:
IllegalArgumentException
- thrown ifmetricId
fail the UUID format validation.MetricsAdvisorResponseException
- thrown if the request is rejected by server.NullPointerException
- thrown if themetricId
is null.
-
listFeedback
public PagedIterable<MetricFeedback> listFeedback(String metricId, ListMetricFeedbackOptions options, Context context) List information of all metric feedbacks on the metrics advisor account.Code sample
final String metricId = "d3gh4i4-b804-4ab9-a70f-0da0c89cft3l"; final OffsetDateTime startTime = OffsetDateTime.parse("2020-01-01T00:00:00Z"); final OffsetDateTime endTime = OffsetDateTime.parse("2020-09-09T00:00:00Z"); metricsAdvisorClient.listFeedback(metricId, new ListMetricFeedbackOptions() .setFilter(new ListMetricFeedbackFilter() .setStartTime(startTime) .setTimeMode(FeedbackQueryTimeMode.FEEDBACK_CREATED_TIME) .setEndTime(endTime)), Context.NONE) .forEach(metricFeedback -> { System.out.printf("Data Feed Metric feedback Id: %s%n", metricFeedback.getId()); System.out.printf("Data Feed Metric feedback associated dimension filter: %s%n", metricFeedback.getDimensionFilter().asMap()); System.out.printf("Data Feed Metric feedback created time %s%n", metricFeedback.getCreatedTime()); if (PERIOD.equals(metricFeedback.getFeedbackType())) { MetricPeriodFeedback periodFeedback = (MetricPeriodFeedback) metricFeedback; System.out.printf("Data Feed Metric feedback type: %s%n", periodFeedback.getPeriodType().toString()); System.out.printf("Data Feed Metric feedback period value: %d%n", periodFeedback.getPeriodValue()); } else if (ANOMALY.equals(metricFeedback.getFeedbackType())) { MetricAnomalyFeedback metricAnomalyFeedback = (MetricAnomalyFeedback) metricFeedback; System.out.printf("Data Feed Metric feedback anomaly value: %s%n", metricAnomalyFeedback.getAnomalyValue().toString()); System.out.printf("Data Feed Metric feedback associated detection configuration: %s%n", metricAnomalyFeedback.getDetectionConfigurationId()); } else if (COMMENT.equals(metricFeedback.getFeedbackType())) { MetricCommentFeedback metricCommentFeedback = (MetricCommentFeedback) metricFeedback; System.out.printf("Data Feed Metric feedback comment value: %s%n", metricCommentFeedback.getComment()); } });
- Parameters:
metricId
- the unique metric Id.options
- The configurableoptions
to pass for filtering the output result.context
- Additional context that is passed through the HTTP pipeline during the service call.- Returns:
- A
PagedIterable
containing information of all themetric feedbacks
in the account. - Throws:
IllegalArgumentException
- thrown ifmetricId
fail the UUID format validation.MetricsAdvisorResponseException
- thrown if the request is rejected by server.NullPointerException
- thrown if themetricId
is null.
-
listMetricDimensionValues
List dimension values from certain metric.Code sample
final String metricId = "gh3014a0-41ec-a637-677e77b81455"; metricsAdvisorClient.listMetricDimensionValues(metricId, "category") .forEach(System.out::println);
- Parameters:
metricId
- metric unique id.dimensionName
- the query dimension name.- Returns:
- the
PagedIterable
of the dimension values for that metric. - Throws:
IllegalArgumentException
- thrown ifmetricId
fail the UUID format validation.MetricsAdvisorResponseException
- thrown if the request is rejected by server.NullPointerException
- thrown if themetricId
ordimensionName
is null.
-
listMetricDimensionValues
public PagedIterable<String> listMetricDimensionValues(String metricId, String dimensionName, ListMetricDimensionValuesOptions options, Context context) List dimension values from certain metric.Code sample
final String metricId = "gh3014a0-41ec-a637-677e77b81455"; metricsAdvisorClient.listMetricDimensionValues(metricId, "category", new ListMetricDimensionValuesOptions().setDimensionValueToFilter("Electronics") .setMaxPageSize(3), Context.NONE) .forEach(System.out::println);
- Parameters:
metricId
- metric unique id.dimensionName
- the query dimension name.options
- the additional parameters to specify while querying.context
- Additional context that is passed through the HTTP pipeline during the service call.- Returns:
- the
PagedIterable
of the dimension values for that metric. - Throws:
IllegalArgumentException
- thrown ifmetricId
fail the UUID format validation.MetricsAdvisorResponseException
- thrown if the request is rejected by server.NullPointerException
- thrown if themetricId
ordimensionName
is null.
-