Ejemplo n.º 1
0
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
    ))