def sample_get_detection_config(detection_config_id): # [START get_detection_config] from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorAdministrationClient service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT") subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY") api_key = os.getenv("METRICS_ADVISOR_API_KEY") client = MetricsAdvisorAdministrationClient( service_endpoint, MetricsAdvisorKeyCredential(subscription_key, api_key)) config = client.get_detection_configuration(detection_config_id) print("Detection config name: {}".format(config.name)) print("Description: {}".format(config.description)) print("Metric ID: {}".format(config.metric_id)) print("\nDetection conditions specified for configuration...") print("\nWhole Series Detection Conditions:\n") conditions = config.whole_series_detection_condition print("Use {} operator for multiple detection conditions".format( conditions.condition_operator)) print("Smart Detection Condition:") print("- Sensitivity: {}".format( conditions.smart_detection_condition.sensitivity)) print("- Detection direction: {}".format( conditions.smart_detection_condition.anomaly_detector_direction)) print( "- Suppress conditions: minimum number: {}; minimum ratio: {}".format( conditions.smart_detection_condition.suppress_condition.min_number, conditions.smart_detection_condition.suppress_condition.min_ratio)) print("Hard Threshold Condition:") print("- Lower bound: {}".format( conditions.hard_threshold_condition.lower_bound)) print("- Upper bound: {}".format( conditions.hard_threshold_condition.upper_bound)) print("- Detection direction: {}".format( conditions.smart_detection_condition.anomaly_detector_direction)) print( "- Suppress conditions: minimum number: {}; minimum ratio: {}".format( conditions.smart_detection_condition.suppress_condition.min_number, conditions.smart_detection_condition.suppress_condition.min_ratio)) print("Change Threshold Condition:") print("- Change percentage: {}".format( conditions.change_threshold_condition.change_percentage)) print("- Shift point: {}".format( conditions.change_threshold_condition.shift_point)) print("- Detect anomaly if within range: {}".format( conditions.change_threshold_condition.within_range)) print("- Detection direction: {}".format( conditions.smart_detection_condition.anomaly_detector_direction)) print( "- Suppress conditions: minimum number: {}; minimum ratio: {}".format( conditions.smart_detection_condition.suppress_condition.min_number, conditions.smart_detection_condition.suppress_condition.min_ratio))
def sample_delete_detection_config(detection_config_id): # [START delete_detection_config] from azure.core.exceptions import ResourceNotFoundError from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorAdministrationClient service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT") subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY") api_key = os.getenv("METRICS_ADVISOR_API_KEY") client = MetricsAdvisorAdministrationClient(service_endpoint, MetricsAdvisorKeyCredential(subscription_key, api_key)) client.delete_detection_configuration(detection_config_id) try: client.get_detection_configuration(detection_config_id) except ResourceNotFoundError: print("Detection configuration successfully deleted.")
def sample_update_detection_config(detection_config): # [START update_detection_config] from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorAdministrationClient from azure.ai.metricsadvisor.models import ( MetricSeriesGroupDetectionCondition, MetricSingleSeriesDetectionCondition, SmartDetectionCondition, SuppressCondition ) service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT") subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY") api_key = os.getenv("METRICS_ADVISOR_API_KEY") client = MetricsAdvisorAdministrationClient(service_endpoint, MetricsAdvisorKeyCredential(subscription_key, api_key)) detection_config.name = "updated config name" detection_config.description = "updated with more detection conditions" smart_detection_condition = SmartDetectionCondition( anomaly_detector_direction="Up", sensitivity=10, suppress_condition=SuppressCondition( min_number=2, min_ratio=2 ) ) client.update_detection_configuration( detection_config, series_group_detection_conditions=[ MetricSeriesGroupDetectionCondition( series_group_key={"city": "Seoul"}, smart_detection_condition=smart_detection_condition ) ], series_detection_conditions=[ MetricSingleSeriesDetectionCondition( series_key={"city": "Osaka", "category": "Cell Phones"}, smart_detection_condition=smart_detection_condition ) ] ) updated = client.get_detection_configuration(detection_config.id) print("Updated detection name: {}".format(updated.name)) print("Updated detection description: {}".format(updated.description)) print("Updated detection condition for series group: {}".format( updated.series_group_detection_conditions[0].series_group_key )) print("Updated detection condition for series: {}".format( updated.series_detection_conditions[0].series_key ))