All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.azure.ai.metricsadvisor.package-info Maven / Gradle / Ivy

The newest version!
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

/**
 * 

Azure Metrics Advisor is a * cloud-based service provided by Microsoft Azure that is designed to help organizations monitor * and analyze metrics and time-series data from various sources. It is particularly focused on aiding in the * detection of anomalies, trends, and patterns within this data, which can be invaluable for improving operational * efficiency, identifying issues early, and making data-driven decisions.

* *

Here are some key features and capabilities of Azure Metrics Advisor:

* *
    *
  • Anomaly Detection: Azure Metrics Advisor employs machine learning algorithms to automatically identify * anomalies in time-series data. It can differentiate between normal variations and unusual patterns, helping * organizations detect issues or opportunities for improvement.
  • * *
  • Time-Series Data Ingestion: The service allows you to ingest time-series data from various sources, including * Azure Monitor, Application Insights, IoT Hub, and custom data sources. This flexibility enables you to monitor a wide * range of metrics.
  • * *
  • Data Exploration: Users can explore their data, view historical trends, and gain insights into the behavior of * various metrics over time. This can be useful for identifying seasonal patterns and understanding the normal * behavior of your systems.
  • * *
  • Integration with Azure Services: Azure Metrics Advisor integrates with other Azure services, such as Azure * Monitor and Azure Data Explorer, making it part of a broader ecosystem for monitoring and analytics.
  • * *
  • Alerts and Notifications: You can set up alerts and notifications based on detected anomalies or specific * thresholds, ensuring that you are informed promptly when issues arise.
  • *
* *

Getting Started

* *

The Azure Metrics Advisor library provides advisor clients like * {@link com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient} * and {@link com.azure.ai.metricsadvisor.MetricsAdvisorClient} to connect to the Metrics Advisor * Azure Cognitive Service to perform data monitoring. * It also provides administration clients like * {@link com.azure.ai.metricsadvisor.administration.MetricsAdvisorAdministrationClient} * and {@link com.azure.ai.metricsadvisor.administration.MetricsAdvisorAdministrationAsyncClient} to * build and manage models from custom documents.

* *

Service clients are the point of interaction for developers to use Azure Form Recognizer. * {@link com.azure.ai.metricsadvisor.MetricsAdvisorClient} is the synchronous service client and * {@link com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient} is the asynchronous service client. * The examples shown in this document use a credential object named DefaultAzureCredential for authentication, which is * appropriate for most scenarios, including local development and production environments. Additionally, we * recommend using * managed identity * for authentication in production environments. * You can find more information on different ways of authenticating and their corresponding credential types in the * Azure Identity documentation". *

* *

Sample: Construct a MetricsAdvisorClient with DefaultAzureCredential

* *

The following code sample demonstrates the creation of a * {@link com.azure.ai.metricsadvisor.MetricsAdvisorClient}, using * the `DefaultAzureCredentialBuilder` to configure it.

* * *
 * MetricsAdvisorClient metricsAdvisorClient =
 *     new MetricsAdvisorClientBuilder()
 *         .credential(new DefaultAzureCredentialBuilder().build())
 *         .endpoint("{endpoint}")
 *         .buildClient();
 * 
* * *

Further, see the code sample below to use * {@link com.azure.ai.metricsadvisor.models.MetricsAdvisorKeyCredential MetricsAdvisorKeyCredential} for client creation.

* * *
 * MetricsAdvisorClient metricsAdvisorClient =
 *     new MetricsAdvisorClientBuilder()
 *         .credential(new MetricsAdvisorKeyCredential("{subscription_key}", "{api_key}"))
 *         .endpoint("{endpoint}")
 *         .buildClient();
 * 
* * *

Let's take a look at the advisor client scenarios and their respective usage below.

* *
* *
*

Get the time series data from metric for you own ingested data

* *

Sample: Given a metric list the time series data from a metricId

* *

The following code sample demonstrates to get metric data time series information.

* * *
 * 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());
 *     });
 * 
* * *

Note: For asynchronous sample, refer to {@link com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient#listMetricSeriesData(java.lang.String, java.util.List, java.time.OffsetDateTime, java.time.OffsetDateTime) AsyncListMetricSeriesData} API.

* *
* *
* *

Fetch the anomalies identified by an anomaly detection configuration

* *

You can use the detected anomalies reflect actual anomalies in your data.

* *

Sample: Query anomalies under anomaly detection configuration

* *

The following code sample demonstrates how fetch all anomalies detected for a specific anomaly detection * configuration.

* * *
 * final MetricWholeSeriesDetectionCondition wholeSeriesCondition = new MetricWholeSeriesDetectionCondition()
 *     .setConditionOperator(DetectionConditionOperator.OR)
 *     .setSmartDetectionCondition(new SmartDetectionCondition(
 *         50,
 *         AnomalyDetectorDirection.BOTH,
 *         new SuppressCondition(50, 50)))
 *     .setHardThresholdCondition(new HardThresholdCondition(
 *         AnomalyDetectorDirection.BOTH,
 *         new SuppressCondition(5, 5))
 *         .setLowerBound(0.0)
 *         .setUpperBound(100.0))
 *     .setChangeThresholdCondition(new ChangeThresholdCondition(
 *         50,
 *         30,
 *         true,
 *         AnomalyDetectorDirection.BOTH,
 *         new SuppressCondition(2, 2)));
 *
 * final String detectionConfigName = "my_detection_config";
 * final String detectionConfigDescription = "anomaly detection config for metric";
 * final AnomalyDetectionConfiguration detectionConfig
 *     = new AnomalyDetectionConfiguration(detectionConfigName)
 *     .setDescription(detectionConfigDescription)
 *     .setWholeSeriesDetectionCondition(wholeSeriesCondition);
 *
 * final String metricId = "0b836da8-10e6-46cd-8f4f-28262e113a62";
 * Response<AnomalyDetectionConfiguration> response = metricsAdvisorAdminClient
 *     .createDetectionConfigWithResponse(metricId, detectionConfig, Context.NONE);
 * System.out.printf("Response statusCode: %d%n", response.getStatusCode());
 * AnomalyDetectionConfiguration createdDetectionConfig = response.getValue();
 * System.out.printf("Detection config Id: %s%n", createdDetectionConfig.getId());
 * System.out.printf("Name: %s%n", createdDetectionConfig.getName());
 * System.out.printf("Description: %s%n", createdDetectionConfig.getDescription());
 * System.out.printf("MetricId: %s%n", createdDetectionConfig.getMetricId());
 * 
* * *

Note: For asynchronous sample, refer to {@link com.azure.ai.metricsadvisor.administration.MetricsAdvisorAdministrationAsyncClient#createDetectionConfigWithResponse(java.lang.String, com.azure.ai.metricsadvisor.administration.models.AnomalyDetectionConfiguration) AsyncCreateDetectionConfigWithResponse} API.

* *
* *
* *

List the root causes for an incident

* *

Metrics Advisor will automatically group anomalies that share the same root cause into one incident. * An incident usually indicates a real issue, Metrics Advisor performs analysis on top of it and provides automatic * root cause analysis insights.

* *

Sample: Find all the possible root causes for an incident

* * *
 * 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());
 *     });
 *
 * 
* *

Note: For asynchronous sample, refer to {@link com.azure.ai.metricsadvisor.MetricsAdvisorClient#listIncidentRootCauses(java.lang.String, java.lang.String) AsyncListIncidentRootCauses} API.

* * @see com.azure.ai.metricsadvisor.MetricsAdvisorClient * @see com.azure.ai.metricsadvisor.MetricsAdvisorAsyncClient * @see com.azure.ai.metricsadvisor.MetricsAdvisorClientBuilder */ package com.azure.ai.metricsadvisor;




© 2015 - 2025 Weber Informatics LLC | Privacy Policy