MetricsAdvisorClient Class

Represents an client that calls restful API of Azure Metrics Advisor service.

Inheritance
builtins.object
MetricsAdvisorClient

Constructor

MetricsAdvisorClient(endpoint: str, credential: MetricsAdvisorKeyCredential, **kwargs: Any)

Parameters

endpoint
str
Required

Supported Cognitive Services endpoints (protocol and hostname, for example: https://<resource-name>.cognitiveservices.azure.com).

credential
MetricsAdvisorKeyCredential or TokenCredential
Required

An instance of ~azure.ai.metricsadvisor.MetricsAdvisorKeyCredential. which requires both subscription key and API key. Or an object which can provide an access token for the vault, such as a credential from identity

Methods

add_feedback

Create a new metric feedback.

close

Close the MetricsAdvisorClient session.

get_feedback

Get a metric feedback by its id.

list_alerts

Query alerts under anomaly alert configuration.

list_anomalies

Query anomalies under a specific alert or detection configuration.

list_anomaly_dimension_values

Query dimension values of anomalies.

list_feedback

List feedback on the given metric.

list_incident_root_causes

Query root cause for incident.

list_incidents

Query incidents under a specific alert or detection configuration.

list_metric_dimension_values

List dimension from certain metric.

list_metric_enriched_series_data

Query series enriched by anomaly detection.

list_metric_enrichment_status

Query anomaly detection status.

list_metric_series_data

Get time series data from metric.

list_metric_series_definitions

List series (dimension combinations) from metric.

add_feedback

Create a new metric feedback.

add_feedback(feedback: Union[azure.ai.metricsadvisor.models._models.AnomalyFeedback, azure.ai.metricsadvisor.models._models.ChangePointFeedback, azure.ai.metricsadvisor.models._models.CommentFeedback, azure.ai.metricsadvisor.models._models.PeriodFeedback], **kwargs: Any) -> None

Parameters

feedback
AnomalyFeedback or ChangePointFeedback or CommentFeedback or PeriodFeedback
Required

metric feedback.

Exceptions

Examples

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

close

Close the MetricsAdvisorClient session.

close() -> None

Exceptions

get_feedback

Get a metric feedback by its id.

get_feedback(feedback_id: str, **kwargs: Any) -> Union[MetricFeedback, FeedbackUnion]

Parameters

feedback_id
str
Required

the id of the feedback.

Returns

The feedback object

Return type

Exceptions

Examples

Get a metric feedback by its id.


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

list_alerts

Query alerts under anomaly alert configuration.

list_alerts(alert_configuration_id: str, start_time: datetime.datetime, end_time: datetime.datetime, time_mode: Union[str, AlertQueryTimeMode], **kwargs: Any) -> ItemPaged[AnomalyAlert]

Parameters

alert_configuration_id
str
Required

anomaly alert configuration unique id.

datetime.datetime] start_time
<xref:Union>[<xref:str,>
Required

start time.

datetime.datetime] end_time
<xref:Union>[<xref:str,>
Required

end time.

time_mode
str or <xref:azure.ai.metricsadvisor.models.AlertQueryTimeMode>
Required

time mode. Possible values include: "AnomalyTime", "CreatedTime", "ModifiedTime".

skip
int

Returns

AnomalyAlerts under anomaly alert configuration.

Return type

Exceptions

Examples

Query anomaly detection results.


   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 time: {}".format(result.created_time))
   return tolist

list_anomalies

Query anomalies under a specific alert or detection configuration.

list_anomalies(alert_configuration_id, alert_id, **kwargs)

Parameters

alert_configuration_id
str

anomaly alert configuration unique id.

alert_id
str

alert id.

detection_configuration_id
str

anomaly detection configuration unique id.

datetime.datetime] start_time
<xref:Union>[<xref:str,>

start time filter under chosen time mode.

datetime.datetime] end_time
<xref:Union>[<xref:str,>

end time filter under chosen time mode.

skip
int

Returns

Anomalies under a specific alert or detection configuration.

Return type

Exceptions

list_anomaly_dimension_values

Query dimension values of anomalies.

list_anomaly_dimension_values(detection_configuration_id: str, dimension_name: str, start_time: Union[str, datetime.datetime], end_time: Union[str, datetime.datetime], **kwargs: Any) -> ItemPaged[str]

Parameters

detection_configuration_id
str
Required

anomaly detection configuration unique id.

dimension_name
str
Required

dimension to query.

datetime.datetime] start_time
<xref:Union>[<xref:str,>
Required

start time filter under chosen time mode.

datetime.datetime] end_time
<xref:Union>[<xref:str,>
Required

end time filter under chosen time mode.

skip
int
str] dimension_filter
<xref:Dict>[<xref:str,>

filter specfic dimension name and values.

Returns

Dimension values of anomalies.

Return type

Exceptions

Examples

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


list_feedback

List feedback on the given metric.

list_feedback(metric_id: str, **kwargs: Any) -> ItemPaged[Union[MetricFeedback, FeedbackUnion]]

Parameters

metric_id
str
Required

filter feedbacks by metric id

skip
int
dimension_key
dict[str, str]

filter specfic dimension name and values

feedback_type
str or FeedbackType

filter feedbacks by type. Possible values include: "Anomaly", "ChangePoint", "Period", "Comment".

datetime.datetime] start_time
<xref:Union>[<xref:str,>

start time filter under chosen time mode.

datetime.datetime] end_time
<xref:Union>[<xref:str,>

end time filter under chosen time mode.

time_mode
str or FeedbackQueryTimeMode

time mode to filter feedback. Possible values include: "MetricTimestamp", "FeedbackCreatedTime".

Returns

Pageable list of MetricFeedback

Return type

Exceptions

Examples

List feedback on the given metric.


   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_feedback(metric_id=metric_id)
   for result in results:
       print("Type: {}; Id: {}".format(result.feedback_type, result.id))

list_incident_root_causes

Query root cause for incident.

list_incident_root_causes(detection_configuration_id: str, incident_id: str, **kwargs: Any) -> ItemPaged[IncidentRootCause]

Parameters

detection_configuration_id
str
Required

anomaly detection configuration unique id.

incident_id
str
Required

incident id.

Returns

Pageable of root cause for incident

Return type

Exceptions

Examples

Query incident root causes.


   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")
   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=detection_configuration_id,
       incident_id=incident_id,
   )
   for result in results:
       print("Score: {}".format(result.score))
       print("Description: {}".format(result.description))


list_incidents

Query incidents under a specific alert or detection configuration.

list_incidents(alert_configuration_id, alert_id, **kwargs)

Parameters

alert_configuration_id
str

anomaly alerting configuration unique id.

alert_id
str

alert id.

detection_configuration_id
str

anomaly detection configuration unique id.

datetime.datetime] start_time
<xref:Union>[<xref:str,>

start time filter under chosen time mode.

datetime.datetime] end_time
<xref:Union>[<xref:str,>

end time filter under chosen time mode.

skip
int

Returns

AnomalyIncidents under a specific alert or detection configuration.

Return type

Exceptions

list_metric_dimension_values

List dimension from certain metric.

list_metric_dimension_values(metric_id: str, dimension_name: str, **kwargs: Any) -> ItemPaged[str]

Parameters

metric_id
str
Required

metric unique id.

dimension_name
str
Required

the dimension name

skip
int
dimension_value_filter
str

dimension value to be filtered.

Returns

Dimension from certain metric.

Return type

Exceptions

Examples

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


list_metric_enriched_series_data

Query series enriched by anomaly detection.

list_metric_enriched_series_data(detection_configuration_id: str, series: Union[List[SeriesIdentity], List[Dict[str, str]]], start_time: Union[str, datetime.datetime], end_time: Union[str, datetime.datetime], **kwargs: Any) -> ItemPaged[MetricEnrichedSeriesData]

Parameters

detection_configuration_id
str
Required

anomaly alerting configuration unique id.

series
SeriesIdentity or list[dict[str, str]]
Required

List of dimensions specified for series.

datetime.datetime] start_time
<xref:Union>[<xref:str,>
Required

start time filter under chosen time mode.

datetime.datetime] end_time
<xref:Union>[<xref:str,>
Required

end time filter under chosen time mode.

Returns

Pageable of MetricEnrichedSeriesData

Return type

Exceptions

Examples

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


list_metric_enrichment_status

Query anomaly detection status.

list_metric_enrichment_status(metric_id: str, start_time: Union[str, datetime.datetime], end_time: Union[str, datetime.datetime], **kwargs: Any) -> ItemPaged[EnrichmentStatus]

Parameters

metric_id
str
Required

filter feedbacks by metric id.

datetime.datetime] start_time
<xref:Union>[<xref:str,>
Required

start time filter under chosen time mode.

datetime.datetime] end_time
<xref:Union>[<xref:str,>
Required

end time filter under chosen time mode.

skip
int

Returns

Anomaly detection status.

Return type

Exceptions

Examples

Query metric enrichment status.


   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_enrichment_status(
           metric_id=metric_id,
           start_time=datetime.datetime(2020, 1, 1),
           end_time=datetime.datetime(2020, 10, 21),
       )
   for result in results:
       print(str(result))


list_metric_series_data

Get time series data from metric.

list_metric_series_data(metric_id: str, series_keys: List[Dict[str, str]], start_time: Union[str, datetime.datetime], end_time: Union[str, datetime.datetime], **kwargs: Any) -> ItemPaged[MetricSeriesData]

Parameters

metric_id
str
Required

metric unique id.

series_keys
list[dict[str, str]]
Required

query specific series.

datetime.datetime] start_time
<xref:Union>[<xref:str,>
Required

start time filter under chosen time mode.

datetime.datetime] end_time
<xref:Union>[<xref:str,>
Required

end time filter under chosen time mode.

Returns

Time series data from metric.

Return type

Exceptions

Examples

Query 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_metric_series_data(
           metric_id=metric_id,
           start_time=datetime.datetime(2020, 1, 1),
           end_time=datetime.datetime(2020, 10, 21),
           series_keys=[
               {"city": "Los Angeles", "category": "Homemade"}
           ]
       )
   for result in results:
       print(str(result))


list_metric_series_definitions

List series (dimension combinations) from metric.

list_metric_series_definitions(metric_id: str, active_since: datetime.datetime, **kwargs: Any) -> ItemPaged[MetricSeriesDefinition]

Parameters

metric_id
str
Required

metric unique id.

active_since
datetime
Required

Required. query series ingested after this time, the format should be yyyy-MM-ddTHH:mm:ssZ.

skip
int
dimension_filter
dict[str, list[str]]

filter specfic dimension name and values.

Returns

Series (dimension combinations) from metric.

Return type

ItemPaged[<xref:azure.ai.metricsadvisor.models.MetricSeriesDefinition>]

Exceptions

Examples

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