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
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))
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)
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)
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))
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))
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))
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))
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