Пример #1
0
    def test_credential_rotate_api_key_only(self):
        credential = MetricsAdvisorKeyCredential(self.subscription_key,
                                                 self.api_key)
        client = MetricsAdvisorClient(self.service_endpoint, credential)

        # make successful call
        result = client.get_feedback(feedback_id=self.feedback_id)
        assert result

        # rotate one key
        credential.update_api_key("xxx")
        assert credential.subscription_key == self.subscription_key
        assert credential.api_key == "xxx"

        # call fails
        with pytest.raises(HttpResponseError):
            result = client.get_feedback(feedback_id=self.feedback_id)

        # rotate back to valid credentials
        credential.update_api_key(self.api_key)
        assert credential.subscription_key == self.subscription_key
        assert credential.api_key == self.api_key

        # make successful call
        result = client.get_feedback(feedback_id=self.feedback_id)
        assert result
def sample_list_alerts(alert_config_id):
    # [START list_alerts]
    import datetime
    from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorClient

    service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
    subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY")
    api_key = os.getenv("METRICS_ADVISOR_API_KEY")

    client = MetricsAdvisorClient(
        service_endpoint, MetricsAdvisorKeyCredential(subscription_key,
                                                      api_key))

    results = client.list_alerts(
        alert_configuration_id=alert_config_id,
        start_time=datetime.datetime(2020, 1, 1),
        end_time=datetime.datetime(2020, 9, 9),
        time_mode="AnomalyTime",
    )

    tolist = []
    for result in results:
        tolist.append(result)
        print("Alert id: {}".format(result.id))
        print("Create on: {}".format(result.created_on))
    return tolist
    def test_credential_rotate_both_keys(self):
        credential = MetricsAdvisorKeyCredential(self.subscription_key,
                                                 self.api_key)
        client = MetricsAdvisorClient(self.service_endpoint, credential)

        # make successful call
        result = client.get_feedback(feedback_id=self.feedback_id)
        assert result

        # rotate both keys
        credential.update_key(subscription_key="xxx")
        assert credential.subscription_key == "xxx"
        credential.update_key(api_key="xxx")
        assert credential.api_key == "xxx"

        # call fails
        with pytest.raises(ClientAuthenticationError):
            result = client.get_feedback(feedback_id=self.feedback_id)

        # rotate back to valid credentials
        credential.update_key(subscription_key=self.subscription_key)
        assert credential.subscription_key == self.subscription_key
        credential.update_key(api_key=self.api_key)
        assert credential.api_key == self.api_key

        # make successful call
        result = client.get_feedback(feedback_id=self.feedback_id)
        assert result
Пример #4
0
def sample_get_feedback():
    # [START get_feedback]
    from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorClient

    service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
    subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY")
    api_key = os.getenv("METRICS_ADVISOR_API_KEY")
    feedback_id = os.getenv("METRICS_ADVISOR_FEEDBACK_ID")

    client = MetricsAdvisorClient(
        service_endpoint, MetricsAdvisorKeyCredential(subscription_key,
                                                      api_key))

    result = client.get_feedback(feedback_id=feedback_id)
    print("Type: {}; Id: {}".format(result.feedback_type, result.id))
Пример #5
0
class ListRootCausesTest(PerfStressTest):
    def __init__(self, arguments):
        super().__init__(arguments)
        service_endpoint = os.getenv("AZURE_METRICS_ADVISOR_ENDPOINT")
        subscription_key = os.getenv("AZURE_METRICS_ADVISOR_SUBSCRIPTION_KEY")
        api_key = os.getenv("AZURE_METRICS_ADVISOR_API_KEY")
        self.anomaly_detection_configuration_id = os.getenv(
            "AZURE_METRICS_ADVISOR_ANOMALY_DETECTION_CONFIGURATION_ID")
        self.incident_id = os.getenv("AZURE_METRICS_ADVISOR_INCIDENT_ID")
        self.service_client = SyncClient(
            service_endpoint,
            MetricsAdvisorKeyCredential(subscription_key, api_key))
        self.async_service_client = AsyncClient(
            service_endpoint,
            MetricsAdvisorKeyCredential(subscription_key, api_key))

    async def close(self):
        await self.async_service_client.close()
        await super().close()

    def run_sync(self):
        results = self.service_client.list_incident_root_causes(
            detection_configuration_id=self.anomaly_detection_configuration_id,
            incident_id=self.incident_id,
        )
        for _ in results:
            pass

    async def run_async(self):
        results = self.async_service_client.list_incident_root_causes(
            detection_configuration_id=self.anomaly_detection_configuration_id,
            incident_id=self.incident_id,
        )
        async for _ in results:
            pass
def authentication_client_with_aad():
    # [START authentication_client_with_aad]
    from azure.ai.metricsadvisor import MetricsAdvisorClient
    from azure.identity import DefaultAzureCredential

    service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
    credential = DefaultAzureCredential()
    client = MetricsAdvisorClient(service_endpoint, credential)
Пример #7
0
def sample_add_feedback():
    # [START add_feedback]
    from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorClient
    from azure.ai.metricsadvisor.models import AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback

    service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
    subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY")
    api_key = os.getenv("METRICS_ADVISOR_API_KEY")
    metric_id = os.getenv("METRICS_ADVISOR_METRIC_ID")

    client = MetricsAdvisorClient(
        service_endpoint, MetricsAdvisorKeyCredential(subscription_key,
                                                      api_key))

    anomaly_feedback = AnomalyFeedback(metric_id=metric_id,
                                       dimension_key={"Dim1": "Common Lime"},
                                       start_time=datetime.datetime(
                                           2020, 8, 5),
                                       end_time=datetime.datetime(2020, 8, 7),
                                       value="NotAnomaly")
    client.add_feedback(anomaly_feedback)

    change_point_feedback = ChangePointFeedback(
        metric_id=metric_id,
        dimension_key={"Dim1": "Common Lime"},
        start_time=datetime.datetime(2020, 8, 5),
        end_time=datetime.datetime(2020, 8, 7),
        value="NotChangePoint")
    client.add_feedback(change_point_feedback)

    comment_feedback = CommentFeedback(metric_id=metric_id,
                                       dimension_key={"Dim1": "Common Lime"},
                                       start_time=datetime.datetime(
                                           2020, 8, 5),
                                       end_time=datetime.datetime(2020, 8, 7),
                                       value="comment")
    client.add_feedback(comment_feedback)

    period_feedback = PeriodFeedback(metric_id=metric_id,
                                     dimension_key={"Dim1": "Common Lime"},
                                     start_time=datetime.datetime(2020, 8, 5),
                                     end_time=datetime.datetime(2020, 8, 7),
                                     period_type="AssignValue",
                                     value=2)
    client.add_feedback(period_feedback)
Пример #8
0
    def __init__(self, method_name):
        super(TestMetricsAdvisorClientBase, self).__init__(method_name)
        self.vcr.match_on = ["path", "method", "query"]
        if self.is_live:
            service_endpoint = self.get_settings_value("METRICS_ADVISOR_ENDPOINT")
            subscription_key = self.get_settings_value("METRICS_ADVISOR_SUBSCRIPTION_KEY")
            api_key = self.get_settings_value("METRICS_ADVISOR_API_KEY")
            self.anomaly_detection_configuration_id = self.get_settings_value("METRICS_ADVISOR_ANOMALY_DETECTION_CONFIGURATION_ID")
            self.anomaly_alert_configuration_id = self.get_settings_value("METRICS_ADVISOR_ANOMALY_ALERT_CONFIGURATION_ID")
            self.metric_id = self.get_settings_value("METRICS_ADVISOR_METRIC_ID")
            self.incident_id = self.get_settings_value("METRICS_ADVISOR_INCIDENT_ID")
            self.dimension_name = self.get_settings_value("METRICS_ADVISOR_DIMENSION_NAME")
            self.feedback_id = self.get_settings_value("METRICS_ADVISOR_FEEDBACK_ID")
            self.alert_id = self.get_settings_value("METRICS_ADVISOR_ALERT_ID")
            self.scrubber.register_name_pair(
                self.anomaly_detection_configuration_id,
                "anomaly_detection_configuration_id"
            )
            self.scrubber.register_name_pair(
                self.anomaly_alert_configuration_id,
                "anomaly_alert_configuration_id"
            )
            self.scrubber.register_name_pair(
                self.metric_id,
                "metric_id"
            )
            self.scrubber.register_name_pair(
                self.incident_id,
                "incident_id"
            )
            self.scrubber.register_name_pair(
                self.dimension_name,
                "dimension_name"
            )
            self.scrubber.register_name_pair(
                self.feedback_id,
                "feedback_id"
            )
            self.scrubber.register_name_pair(
                self.alert_id,
                "alert_id"
            )
        else:
            service_endpoint = "https://endpointname.cognitiveservices.azure.com"
            subscription_key = "METRICS_ADVISOR_SUBSCRIPTION_KEY"
            api_key = "METRICS_ADVISOR_API_KEY"
            self.anomaly_detection_configuration_id = "anomaly_detection_configuration_id"
            self.anomaly_alert_configuration_id = "anomaly_alert_configuration_id"
            self.metric_id = "metric_id"
            self.incident_id = "incident_id"
            self.dimension_name = "dimension_name"
            self.feedback_id = "feedback_id"
            self.alert_id = "alert_id"

        self.client = MetricsAdvisorClient(service_endpoint,
                                                 MetricsAdvisorKeyCredential(subscription_key, api_key))
Пример #9
0
def sample_list_incident_root_cause():
    # [START list_incident_root_cause]
    from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorClient

    service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
    subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY")
    api_key = os.getenv("METRICS_ADVISOR_API_KEY")
    anomaly_detection_configuration_id = os.getenv("METRICS_ADVISOR_ANOMALY_DETECTION_CONFIGURATION_ID")
    incident_id = os.getenv("METRICS_ADVISOR_INCIDENT_ID")

    client = MetricsAdvisorClient(service_endpoint,
                                  MetricsAdvisorKeyCredential(subscription_key, api_key))
    results = client.list_incident_root_causes(
        detection_configuration_id=anomaly_detection_configuration_id,
        incident_id=incident_id,
    )
    for result in results:
        print("Score: {}".format(result.score))
        print("Description: {}".format(result.description))
def authentication_client_with_metrics_advisor_credential():
    # [START authentication_client_with_metrics_advisor_credential]
    from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorClient

    service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
    subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY")
    api_key = os.getenv("METRICS_ADVISOR_API_KEY")

    client = MetricsAdvisorClient(service_endpoint,
                                  MetricsAdvisorKeyCredential(subscription_key, api_key))
Пример #11
0
def sample_list_anomalies_for_alert(alert_config_id, alert_id):
    # [START list_anomalies_for_alert]
    from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorClient

    service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
    subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY")
    api_key = os.getenv("METRICS_ADVISOR_API_KEY")

    client = MetricsAdvisorClient(service_endpoint,
                                  MetricsAdvisorKeyCredential(subscription_key, api_key))

    results = client.list_anomalies(
            alert_configuration_id=alert_config_id,
            alert_id=alert_id,
        )
    for result in results:
        print("Create on: {}".format(result.created_on))
        print("Severity: {}".format(result.severity))
        print("Status: {}".format(result.status))
def sample_list_metric_dimension_values():
    # [START list_metric_dimension_values]
    from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorClient

    service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
    subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY")
    api_key = os.getenv("METRICS_ADVISOR_API_KEY")
    metric_id = os.getenv("METRICS_ADVISOR_METRIC_ID")
    dimension_name = "city"

    client = MetricsAdvisorClient(
        service_endpoint, MetricsAdvisorKeyCredential(subscription_key,
                                                      api_key))

    results = client.list_metric_dimension_values(
        metric_id=metric_id,
        dimension_name=dimension_name,
    )
    for result in results:
        print(str(result))
def sample_list_metric_series_definitions():
    # [START list_metric_series_definitions]
    import datetime
    from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorClient

    service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
    subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY")
    api_key = os.getenv("METRICS_ADVISOR_API_KEY")
    metric_id = os.getenv("METRICS_ADVISOR_METRIC_ID")

    client = MetricsAdvisorClient(
        service_endpoint, MetricsAdvisorKeyCredential(subscription_key,
                                                      api_key))

    results = client.list_metric_series_definitions(
        metric_id=metric_id,
        active_since=datetime.datetime(2020, 1, 1),
    )
    for result in results:
        print(str(result))
Пример #14
0
def sample_list_incidents_for_alert():
    # [START list_incidents_for_alert]
    from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorClient

    service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
    subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY")
    api_key = os.getenv("METRICS_ADVISOR_API_KEY")
    alert_configuration_id = os.getenv("METRICS_ADVISOR_ALERT_CONFIGURATION_ID")
    alert_id = os.getenv("METRICS_ADVISOR_ALERT_ID")

    client = MetricsAdvisorClient(service_endpoint,
                                  MetricsAdvisorKeyCredential(subscription_key, api_key))
    results = client.list_incidents_for_alert(
        alert_configuration_id=alert_configuration_id,
        alert_id=alert_id,
    )
    for result in results:
        print("Metric id: {}".format(result.metric_id))
        print("Incident ID: {}".format(result.id))
        print("Severity: {}".format(result.severity))
        print("Status: {}".format(result.status))
 def __init__(self, arguments):
     super().__init__(arguments)
     service_endpoint = os.getenv("AZURE_METRICS_ADVISOR_ENDPOINT")
     subscription_key = os.getenv("AZURE_METRICS_ADVISOR_SUBSCRIPTION_KEY")
     api_key = os.getenv("AZURE_METRICS_ADVISOR_API_KEY")
     self.anomaly_detection_configuration_id = os.getenv(
         "AZURE_METRICS_ADVISOR_ANOMALY_DETECTION_CONFIGURATION_ID")
     self.service_client = SyncClient(
         service_endpoint,
         MetricsAdvisorKeyCredential(subscription_key, api_key))
     self.async_service_client = AsyncClient(
         service_endpoint,
         MetricsAdvisorKeyCredential(subscription_key, api_key))
Пример #16
0
def sample_list_incidents_for_detection_configuration():
    # [START list_incidents_for_detection_configuration]
    import datetime
    from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorClient

    service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
    subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY")
    api_key = os.getenv("METRICS_ADVISOR_API_KEY")
    anomaly_detection_configuration_id = os.getenv("METRICS_ADVISOR_ANOMALY_DETECTION_CONFIGURATION_ID")

    client = MetricsAdvisorClient(service_endpoint,
                                  MetricsAdvisorKeyCredential(subscription_key, api_key))
    results = client.list_incidents_for_detection_configuration(
        detection_configuration_id=anomaly_detection_configuration_id,
        start_time=datetime.datetime(2020, 1, 1),
        end_time=datetime.datetime(2020, 9, 9),
    )
    for result in results:
        print("Metric id: {}".format(result.metric_id))
        print("Incident ID: {}".format(result.id))
        print("Severity: {}".format(result.severity))
        print("Status: {}".format(result.status))
def sample_list_metric_enriched_series_data():
    # [START list_metric_enriched_series_data]
    import datetime
    from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorClient

    service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
    subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY")
    api_key = os.getenv("METRICS_ADVISOR_API_KEY")
    detection_configuration_id = os.getenv(
        "METRICS_ADVISOR_DETECTION_CONFIGURATION_ID")
    series_identity = {"city": "Los Angeles"}

    client = MetricsAdvisorClient(
        service_endpoint, MetricsAdvisorKeyCredential(subscription_key,
                                                      api_key))

    results = client.list_metric_enriched_series_data(
        detection_configuration_id=detection_configuration_id,
        start_time=datetime.datetime(2020, 9, 1),
        end_time=datetime.datetime(2020, 11, 1),
        series=[series_identity])
    for result in results:
        print(str(result))
def sample_list_metrics_series_data():
    # [START list_metrics_series_data]
    import datetime
    from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorClient

    service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
    subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY")
    api_key = os.getenv("METRICS_ADVISOR_API_KEY")
    metric_id = os.getenv("METRICS_ADVISOR_METRIC_ID")

    client = MetricsAdvisorClient(
        service_endpoint, MetricsAdvisorKeyCredential(subscription_key,
                                                      api_key))

    results = client.list_metrics_series_data(
        metric_id=metric_id,
        start_time=datetime.datetime(2020, 1, 1),
        end_time=datetime.datetime(2020, 10, 21),
        series_to_filter=[{
            "city": "Los Angeles",
            "category": "Homemade"
        }])
    for result in results:
        print(str(result))
def sample_list_dimension_values():
    # [START list_dimension_values]
    import datetime
    from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorClient

    service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
    subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY")
    api_key = os.getenv("METRICS_ADVISOR_API_KEY")
    detection_configuration_id = os.getenv(
        "METRICS_ADVISOR_DETECTION_CONFIGURATION_ID")
    dimension_name = "city"

    client = MetricsAdvisorClient(
        service_endpoint, MetricsAdvisorKeyCredential(subscription_key,
                                                      api_key))

    results = client.list_dimension_values(
        detection_configuration_id=detection_configuration_id,
        dimension_name=dimension_name,
        start_time=datetime.datetime(2020, 1, 1),
        end_time=datetime.datetime(2020, 10, 21),
    )
    for result in results:
        print(str(result))
class ListIncidentsTest(PerfStressTest):
    def __init__(self, arguments):
        super().__init__(arguments)
        service_endpoint = os.getenv("AZURE_METRICS_ADVISOR_ENDPOINT")
        subscription_key = os.getenv("AZURE_METRICS_ADVISOR_SUBSCRIPTION_KEY")
        api_key = os.getenv("AZURE_METRICS_ADVISOR_API_KEY")
        self.anomaly_detection_configuration_id = os.getenv(
            "AZURE_METRICS_ADVISOR_ANOMALY_DETECTION_CONFIGURATION_ID")
        self.service_client = SyncClient(
            service_endpoint,
            MetricsAdvisorKeyCredential(subscription_key, api_key))
        self.async_service_client = AsyncClient(
            service_endpoint,
            MetricsAdvisorKeyCredential(subscription_key, api_key))

    async def close(self):
        await self.async_service_client.close()
        await super().close()

    def run_sync(self):
        results = self.service_client.list_incidents(
            detection_configuration_id=self.anomaly_detection_configuration_id,
            start_time=datetime.datetime(2020,
                                         1,
                                         1,
                                         tzinfo=datetime.timezone.utc),
            end_time=datetime.datetime(2020,
                                       10,
                                       21,
                                       tzinfo=datetime.timezone.utc),
        )
        for _ in results:
            pass

    async def run_async(self):
        results = self.async_service_client.list_incidents(
            detection_configuration_id=self.anomaly_detection_configuration_id,
            start_time=datetime.datetime(2020,
                                         1,
                                         1,
                                         tzinfo=datetime.timezone.utc),
            end_time=datetime.datetime(2020,
                                       10,
                                       21,
                                       tzinfo=datetime.timezone.utc),
        )
        async for _ in results:
            pass