azure.ai.metricsadvisor package¶
-
class
azure.ai.metricsadvisor.
MetricsAdvisorAdministrationClient
(endpoint: str, credential: MetricsAdvisorKeyCredential, **kwargs: Any)[source]¶ MetricsAdvisorAdministrationClient is used to create and manage data feeds.
- Parameters
endpoint (str) – Supported Cognitive Services endpoints (protocol and hostname, for example: https://
<resource-name>
.cognitiveservices.azure.com).credential (MetricsAdvisorKeyCredential or TokenCredential) – 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 Metrics Advisor service, such as a credential from
azure.identity
Example:
Authenticate MetricsAdvisorAdministrationClient with a MetricsAdvisorKeyCredential¶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))
-
close
() → None[source]¶ Close the
MetricsAdvisorAdministrationClient
session.
-
create_alert_configuration
(name: str, metric_alert_configurations: List[MetricAlertConfiguration], hook_ids: List[str], **kwargs: Any) → AnomalyAlertConfiguration[source]¶ Create an anomaly alert configuration.
- Parameters
name (str) – Name for the anomaly alert configuration.
metric_alert_configurations (list[MetricAlertConfiguration]) – Anomaly alert configurations.
- Keyword Arguments
cross_metrics_operator (str or MetricAnomalyAlertConfigurationsOperator) – Cross metrics operator should be specified when setting up multiple metric alert configurations. Possible values include: “AND”, “OR”, “XOR”.
description (str) – Anomaly alert configuration description.
- Returns
AnomalyAlertConfiguration
- Return type
- Raises
Example:
Create an anomaly alert configuration¶from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorAdministrationClient from azure.ai.metricsadvisor.models import ( MetricAlertConfiguration, MetricAnomalyAlertScope, TopNGroupScope, MetricAnomalyAlertConditions, SeverityCondition, MetricBoundaryCondition, MetricAnomalyAlertSnoozeCondition, ) 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") hook_id = os.getenv("METRICS_ADVISOR_HOOK_ID") client = MetricsAdvisorAdministrationClient(service_endpoint, MetricsAdvisorKeyCredential(subscription_key, api_key)) alert_config = client.create_alert_configuration( name="my alert config", description="alert config description", cross_metrics_operator="AND", metric_alert_configurations=[ MetricAlertConfiguration( detection_configuration_id=detection_configuration_id, alert_scope=MetricAnomalyAlertScope( scope_type="WholeSeries" ), alert_conditions=MetricAnomalyAlertConditions( severity_condition=SeverityCondition( min_alert_severity="Low", max_alert_severity="High" ) ) ), MetricAlertConfiguration( detection_configuration_id=detection_configuration_id, alert_scope=MetricAnomalyAlertScope( scope_type="TopN", top_n_group_in_scope=TopNGroupScope( top=10, period=5, min_top_count=5 ) ), alert_conditions=MetricAnomalyAlertConditions( metric_boundary_condition=MetricBoundaryCondition( direction="Up", upper=50 ) ), alert_snooze_condition=MetricAnomalyAlertSnoozeCondition( auto_snooze=2, snooze_scope="Metric", only_for_successive=True ) ), ], hook_ids=[hook_id] ) return alert_config
-
create_data_feed
(name: str, source: DataFeedSourceUnion, granularity: Union[str, DataFeedGranularityType, DataFeedGranularity], schema: Union[List[str], DataFeedSchema], ingestion_settings: Union[datetime.datetime, DataFeedIngestionSettings], **kwargs: Any) → DataFeed[source]¶ Create a new data feed.
- Parameters
name (str) – Name for the data feed.
source (Union[AzureApplicationInsightsDataFeedSource, AzureBlobDataFeedSource, AzureCosmosDbDataFeedSource, AzureDataExplorerDataFeedSource, AzureDataLakeStorageGen2DataFeedSource, AzureTableDataFeedSource, AzureLogAnalyticsDataFeedSource, InfluxDbDataFeedSource, MySqlDataFeedSource, PostgreSqlDataFeedSource, SqlServerDataFeedSource, MongoDbDataFeedSource, AzureEventHubsDataFeedSource]) – The source of the data feed
granularity (Union[str, DataFeedGranularityType, DataFeedGranularity]) – Granularity type. If using custom granularity, you must instantiate a DataFeedGranularity.
schema (Union[list[str], DataFeedSchema]) – Data feed schema. Can be passed as a list of metric names as strings or as a DataFeedSchema object if additional configuration is needed.
ingestion_settings (Union[datetime, DataFeedIngestionSettings]) – The data feed ingestions settings. Can be passed as a datetime to use for the ingestion begin time or as a DataFeedIngestionSettings object if additional configuration is needed.
- Keyword Arguments
data_feed_description (str) – Data feed description.
missing_data_point_fill_settings (DataFeedMissingDataPointFillSettings) – The fill missing point type and value.
rollup_settings (DataFeedRollupSettings) – The rollup settings.
access_mode (str or DataFeedAccessMode) – Data feed access mode. Possible values include: “Private”, “Public”. Default value: “Private”.
action_link_template (str) – action link for alert.
- Returns
DataFeed
- Return type
- Raises
Example:
Create a data feed¶from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorAdministrationClient from azure.ai.metricsadvisor.models import ( SqlServerDataFeedSource, DataFeedSchema, DataFeedMetric, DataFeedDimension, DataFeedRollupSettings, DataFeedMissingDataPointFillSettings, ) service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT") subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY") api_key = os.getenv("METRICS_ADVISOR_API_KEY") sql_server_connection_string = os.getenv("METRICS_ADVISOR_SQL_SERVER_CONNECTION_STRING") query = os.getenv("METRICS_ADVISOR_SQL_SERVER_QUERY") client = MetricsAdvisorAdministrationClient(service_endpoint, MetricsAdvisorKeyCredential(subscription_key, api_key)) data_feed = client.create_data_feed( name="My data feed", source=SqlServerDataFeedSource( connection_string=sql_server_connection_string, query=query, ), granularity="Daily", schema=DataFeedSchema( metrics=[ DataFeedMetric(name="cost", display_name="Cost"), DataFeedMetric(name="revenue", display_name="Revenue") ], dimensions=[ DataFeedDimension(name="category", display_name="Category"), DataFeedDimension(name="city", display_name="City") ], timestamp_column="Timestamp" ), ingestion_settings=datetime.datetime(2019, 10, 1), data_feed_description="cost/revenue data feed", rollup_settings=DataFeedRollupSettings( rollup_type="AutoRollup", rollup_method="Sum", rollup_identification_value="__CUSTOM_SUM__" ), missing_data_point_fill_settings=DataFeedMissingDataPointFillSettings( fill_type="SmartFilling" ), access_mode="Private" ) return data_feed
-
create_datasource_credential
(datasource_credential: DatasourceCredentialUnion, **kwargs: Any) → DatasourceCredentialUnion[source]¶ Create a new datasource credential.
- Parameters
datasource_credential (Union[DatasourceSqlConnectionString, DatasourceDataLakeGen2SharedKey, DatasourceServicePrincipal, DatasourceServicePrincipalInKeyVault]) – The datasource credential to create
- Returns
The created datasource credential
- Return type
Union[DatasourceSqlConnectionString, DatasourceDataLakeGen2SharedKey, DatasourceServicePrincipal, DatasourceServicePrincipalInKeyVault]
- Raises
Example:
Create a datasource credential¶from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorAdministrationClient from azure.ai.metricsadvisor.models import DatasourceSqlConnectionString service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT") subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY") api_key = os.getenv("METRICS_ADVISOR_API_KEY") connection_string = os.getenv("SQL_SERVER_CONNECTION_STRING") client = MetricsAdvisorAdministrationClient(service_endpoint, MetricsAdvisorKeyCredential(subscription_key, api_key)) credential = client.create_datasource_credential( datasource_credential=DatasourceSqlConnectionString( name="sql datasource credential", connection_string=connection_string, description="my datasource credential", ) ) return credential
-
create_detection_configuration
(name: str, metric_id: str, whole_series_detection_condition: MetricDetectionCondition, **kwargs: Any) → AnomalyDetectionConfiguration[source]¶ Create anomaly detection configuration.
- Parameters
name (str) – The name for the anomaly detection configuration
metric_id (str) – Required. metric unique id.
whole_series_detection_condition (MetricDetectionCondition) – Required. Conditions to detect anomalies in all time series of a metric.
- Keyword Arguments
description (str) – anomaly detection configuration description.
series_group_detection_conditions (list[MetricSeriesGroupDetectionCondition]) – detection configuration for series group.
series_detection_conditions (list[MetricSingleSeriesDetectionCondition]) – detection configuration for specific series.
- Returns
AnomalyDetectionConfiguration
- Return type
- Raises
Example:
Create an anomaly detection configuration¶from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorAdministrationClient from azure.ai.metricsadvisor.models import ( ChangeThresholdCondition, HardThresholdCondition, SmartDetectionCondition, SuppressCondition, MetricDetectionCondition, ) 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 = MetricsAdvisorAdministrationClient(service_endpoint, MetricsAdvisorKeyCredential(subscription_key, api_key)) change_threshold_condition = ChangeThresholdCondition( anomaly_detector_direction="Both", change_percentage=20, shift_point=10, within_range=True, suppress_condition=SuppressCondition( min_number=5, min_ratio=2 ) ) hard_threshold_condition = HardThresholdCondition( anomaly_detector_direction="Up", upper_bound=100, suppress_condition=SuppressCondition( min_number=2, min_ratio=2 ) ) smart_detection_condition = SmartDetectionCondition( anomaly_detector_direction="Up", sensitivity=10, suppress_condition=SuppressCondition( min_number=2, min_ratio=2 ) ) detection_config = client.create_detection_configuration( name="my_detection_config", metric_id=metric_id, description="anomaly detection config for metric", whole_series_detection_condition=MetricDetectionCondition( condition_operator="OR", change_threshold_condition=change_threshold_condition, hard_threshold_condition=hard_threshold_condition, smart_detection_condition=smart_detection_condition ) ) return detection_config
-
create_hook
(hook: Union[EmailNotificationHook, WebNotificationHook], **kwargs: Any) → Union[NotificationHook, EmailNotificationHook, WebNotificationHook][source]¶ Create a new email or web hook.
- Parameters
hook (Union[EmailNotificationHook, WebNotificationHook]) – An email or web hook to create
- Returns
EmailNotificationHook or WebNotificationHook
- Return type
Union[NotificationHook, EmailNotificationHook, WebNotificationHook]
- Raises
Example:
Create a notification hook¶from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorAdministrationClient from azure.ai.metricsadvisor.models import EmailNotificationHook 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)) hook = client.create_hook( hook=EmailNotificationHook( name="email hook", description="my email hook", emails_to_alert=["alertme@alertme.com"], external_link="https://docs.microsoft.com/en-us/azure/cognitive-services/metrics-advisor/how-tos/alerts" ) ) return hook
-
delete_alert_configuration
(*alert_configuration_id: str, **kwargs: Any) → None[source]¶ Delete an anomaly alert configuration by its ID.
- Parameters
alert_configuration_id (str) – anomaly alert configuration unique id.
- Returns
None
- Return type
- Raises
Example:
Delete an anomaly alert configuration by its ID¶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_alert_configuration(alert_config_id) try: client.get_alert_configuration(alert_config_id) except ResourceNotFoundError: print("Alert configuration successfully deleted.")
-
delete_data_feed
(*data_feed_id: str, **kwargs: Any) → None[source]¶ Delete a data feed by its ID.
- Parameters
data_feed_id (str) – The data feed unique id.
- Returns
None
- Return type
- Raises
Example:
Delete a data feed by its ID¶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_data_feed(data_feed_id) try: client.get_data_feed(data_feed_id) except ResourceNotFoundError: print("Data feed successfully deleted.")
-
delete_datasource_credential
(*credential_id: str, **kwargs: Any) → None[source]¶ Delete a datasource credential by its ID.
- Parameters
credential_id (str) – Datasource credential unique ID.
- Returns
None
- Return type
- Raises
Example:
Delete a datasource credential by its ID¶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_datasource_credential(credential_id)
-
delete_detection_configuration
(*detection_configuration_id: str, **kwargs: Any) → None[source]¶ Delete an anomaly detection configuration by its ID.
- Parameters
detection_configuration_id (str) – anomaly detection configuration unique id.
- Returns
None
- Return type
- Raises
Example:
Delete an anomaly detection configuration by its ID¶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.")
-
delete_hook
(*hook_id: str, **kwargs: Any) → None[source]¶ Delete a web or email hook by its ID.
- Parameters
hook_id (str) – Hook unique ID.
- Returns
None
- Return type
- Raises
Example:
Delete a hook by its ID¶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_hook(hook_id) try: client.get_hook(hook_id) except ResourceNotFoundError: print("Hook successfully deleted.")
-
get_alert_configuration
(alert_configuration_id: str, **kwargs: Any) → AnomalyAlertConfiguration[source]¶ Get a single anomaly alert configuration.
- Parameters
alert_configuration_id (str) – anomaly alert configuration unique id.
- Returns
AnomalyAlertConfiguration
- Return type
- Raises
Example:
Get a single anomaly alert configuration by its ID¶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_alert_configuration(alert_config_id) print("Alert config ID: {}".format(config.id)) print("Alert config name: {}".format(config.name)) print("Description: {}".format(config.description)) print("Ids of hooks associated with alert: {}".format(config.hook_ids)) print("Use {} operator for multiple alert conditions\n".format(config.cross_metrics_operator)) print("Alert uses detection configuration ID: {}".format( config.metric_alert_configurations[0].detection_configuration_id )) print("Alert scope type: {}".format(config.metric_alert_configurations[0].alert_scope.scope_type)) print("Alert severity condition: min- {}, max- {}".format( config.metric_alert_configurations[0].alert_conditions.severity_condition.min_alert_severity, config.metric_alert_configurations[0].alert_conditions.severity_condition.max_alert_severity, )) print("\nAlert uses detection configuration ID: {}".format( config.metric_alert_configurations[1].detection_configuration_id )) print("Alert scope type: {}".format(config.metric_alert_configurations[1].alert_scope.scope_type)) print("Top N: {}".format(config.metric_alert_configurations[1].alert_scope.top_n_group_in_scope.top)) print("Point count used to look back: {}".format( config.metric_alert_configurations[1].alert_scope.top_n_group_in_scope.period )) print("Min top count: {}".format( config.metric_alert_configurations[1].alert_scope.top_n_group_in_scope.min_top_count )) print("Alert metric boundary condition direction: {}, upper bound: {}".format( config.metric_alert_configurations[1].alert_conditions.metric_boundary_condition.direction, config.metric_alert_configurations[1].alert_conditions.metric_boundary_condition.upper, )) print("Alert snooze condition, snooze point count: {}".format( config.metric_alert_configurations[1].alert_snooze_condition.auto_snooze, )) print("Alert snooze scope: {}".format( config.metric_alert_configurations[1].alert_snooze_condition.snooze_scope, )) print("Snooze only for successive anomalies?: {}".format( config.metric_alert_configurations[1].alert_snooze_condition.only_for_successive, ))
-
get_data_feed
(data_feed_id: str, **kwargs: Any) → DataFeed[source]¶ Get a data feed by its id.
- Parameters
data_feed_id (str) – The data feed unique id.
- Returns
DataFeed
- Return type
- Raises
Example:
Get a single data feed by its ID¶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)) data_feed = client.get_data_feed(data_feed_id) print("ID: {}".format(data_feed.id)) print("Data feed name: {}".format(data_feed.name)) print("Created time: {}".format(data_feed.created_time)) print("Status: {}".format(data_feed.status)) print("Source type: {}".format(data_feed.source.data_source_type)) print("Granularity type: {}".format(data_feed.granularity.granularity_type)) print("Data feed metrics: {}".format([metric.name for metric in data_feed.schema.metrics])) print("Data feed dimensions: {}".format([dimension.name for dimension in data_feed.schema.dimensions])) print("Data feed timestamp column: {}".format(data_feed.schema.timestamp_column)) print("Ingestion data starting on: {}".format(data_feed.ingestion_settings.ingestion_begin_time)) print("Data feed description: {}".format(data_feed.data_feed_description)) print("Data feed rollup type: {}".format(data_feed.rollup_settings.rollup_type)) print("Data feed rollup method: {}".format(data_feed.rollup_settings.rollup_method)) print("Data feed fill setting: {}".format(data_feed.missing_data_point_fill_settings.fill_type)) print("Data feed access mode: {}".format(data_feed.access_mode))
-
get_data_feed_ingestion_progress
(data_feed_id: str, **kwargs: Any) → DataFeedIngestionProgress[source]¶ Get last successful data ingestion job timestamp by data feed.
- Parameters
data_feed_id (str) – The data feed unique id.
- Returns
DataFeedIngestionProgress, containing latest_success_timestamp and latest_active_timestamp
- Return type
- Raises
Example:
Get the progress of data feed ingestion¶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") data_feed_id = os.getenv("METRICS_ADVISOR_DATA_FEED_ID") client = MetricsAdvisorAdministrationClient(service_endpoint, MetricsAdvisorKeyCredential(subscription_key, api_key)) progress = client.get_data_feed_ingestion_progress(data_feed_id) print("Lastest active timestamp: {}".format(progress.latest_active_timestamp)) print("Latest successful timestamp: {}".format(progress.latest_success_timestamp))
-
get_datasource_credential
(credential_id: str, **kwargs: Any) → DatasourceCredentialUnion[source]¶ Get a datasource credential
- Parameters
credential_id (str) – Data source credential entity unique ID.
- Returns
The datasource credential
- Return type
Union[DatasourceCredential, DatasourceSqlConnectionString, DatasourceDataLakeGen2SharedKey, DatasourceServicePrincipal, DatasourceServicePrincipalInKeyVault]
- Raises
Example:
Get a datasource credential by its ID¶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)) credential = client.get_datasource_credential(credential_id) print("Credential type: {}".format(credential.credential_type)) print("Credential name: {}".format(credential.name)) print("Description: {}".format(credential.description))
-
get_detection_configuration
(detection_configuration_id: str, **kwargs: Any) → AnomalyDetectionConfiguration[source]¶ Get a single anomaly detection configuration.
- Parameters
detection_configuration_id (str) – anomaly detection configuration unique id.
- Returns
AnomalyDetectionConfiguration
- Return type
- Raises
Example:
Get a single anomaly detection configuration by its ID¶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 ))
-
get_hook
(hook_id: str, **kwargs: Any) → Union[NotificationHook, EmailNotificationHook, WebNotificationHook][source]¶ Get a web or email hook by its id.
- Parameters
hook_id (str) – Hook unique ID.
- Returns
EmailNotificationHook or WebNotificationHook
- Return type
Union[NotificationHook, EmailNotificationHook, WebNotificationHook]
- Raises
Example:
Get a notification hook by its ID¶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)) hook = client.get_hook(hook_id) print("Hook name: {}".format(hook.name)) print("Description: {}".format(hook.description)) print("Emails to alert: {}".format(hook.emails_to_alert)) print("External link: {}".format(hook.external_link)) print("Admins: {}".format(hook.admins))
-
list_alert_configurations
(detection_configuration_id: str, **kwargs: Any) → ItemPaged[AnomalyAlertConfiguration][source]¶ Query all anomaly alert configurations for specific anomaly detection configuration.
- Parameters
detection_configuration_id (str) – anomaly detection configuration unique id.
- Returns
Pageable of AnomalyAlertConfiguration
- Return type
- Raises
Example:
List all anomaly alert configurations for specific anomaly detection configuration¶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") detection_configuration_id = os.getenv("METRICS_ADVISOR_DETECTION_CONFIGURATION_ID") client = MetricsAdvisorAdministrationClient(service_endpoint, MetricsAdvisorKeyCredential(subscription_key, api_key)) configs = client.list_alert_configurations(detection_configuration_id) for config in configs: print("Alert config name: {}".format(config.name)) print("Alert description: {}".format(config.description)) print("Ids of hooks associated with alert: {}\n".format(config.hook_ids))
-
list_data_feed_ingestion_status
(data_feed_id: str, start_time: Union[str, datetime.datetime], end_time: Union[str, datetime.datetime], **kwargs: Any) → ItemPaged[DataFeedIngestionStatus][source]¶ Get data ingestion status by data feed.
- Parameters
- Keyword Arguments
skip (int) –
- Returns
Pageable of DataFeedIngestionStatus
- Return type
ItemPaged[DataFeedIngestionStatus]
- Raises
Example:
List the data feed ingestion statuses by data feed ID¶import datetime 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") data_feed_id = os.getenv("METRICS_ADVISOR_DATA_FEED_ID") client = MetricsAdvisorAdministrationClient(service_endpoint, MetricsAdvisorKeyCredential(subscription_key, api_key)) ingestion_status = client.list_data_feed_ingestion_status( data_feed_id, datetime.datetime(2020, 9, 20), datetime.datetime(2020, 9, 25) ) for status in ingestion_status: print("Timestamp: {}".format(status.timestamp)) print("Status: {}".format(status.status)) print("Message: {}\n".format(status.message))
-
list_data_feeds
(**kwargs: Any) → ItemPaged[DataFeed][source]¶ List all data feeds.
- Keyword Arguments
data_feed_name (str) – filter data feed by its name.
data_source_type (str or DatasourceType) – filter data feed by its source type.
granularity_type (str or DataFeedGranularityType) – filter data feed by its granularity.
status (str or DataFeedStatus) – filter data feed by its status.
creator (str) – filter data feed by its creator.
skip (int) –
- Returns
Pageable of DataFeed
- Return type
- Raises
Example:
List data feeds under an account.¶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)) data_feeds = client.list_data_feeds() for feed in data_feeds: print("Data feed name: {}".format(feed.name)) print("ID: {}".format(feed.id)) print("Created time: {}".format(feed.created_time)) print("Status: {}".format(feed.status)) print("Source type: {}".format(feed.source.data_source_type)) print("Granularity type: {}".format(feed.granularity.granularity_type)) print("\nFeed metrics:") for metric in feed.schema.metrics: print(metric.name) print("\nFeed dimensions:") for dimension in feed.schema.dimensions: print(dimension.name)
-
list_datasource_credentials
(**kwargs: Any) → ItemPaged[DatasourceCredential][source]¶ List all credential entities.
- Parameters
skip (int) – for paging, skipped number.
- Returns
Pageable containing datasource credential
- Return type
ItemPaged[Union[DatasourceCredential, DatasourceSqlConnectionString, DatasourceDataLakeGen2SharedKey, DatasourceServicePrincipal, DatasourceServicePrincipalInKeyVault]]
- Raises
Example:
List all of the datasource credentials under the account¶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)) credentials = client.list_datasource_credentials() for credential in credentials: print("Credential type: {}".format(credential.credential_type)) print("Credential name: {}".format(credential.name)) print("Description: {}\n".format(credential.description))
-
list_detection_configurations
(metric_id: str, **kwargs: Any) → ItemPaged[AnomalyDetectionConfiguration][source]¶ Query all anomaly detection configurations for specific metric.
- Parameters
metric_id (str) – metric unique id.
- Returns
Pageable of AnomalyDetectionConfiguration
- Return type
- Raises
Example:
List all anomaly detection configurations for a specific metric¶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") metric_id = os.getenv("METRICS_ADVISOR_METRIC_ID") client = MetricsAdvisorAdministrationClient(service_endpoint, MetricsAdvisorKeyCredential(subscription_key, api_key)) configs = client.list_detection_configurations(metric_id=metric_id) for config in configs: print("Detection config name: {}".format(config.name)) print("Description: {}".format(config.description)) print("Metric ID: {}\n".format(config.metric_id))
-
list_hooks
(**kwargs: Any) → ItemPaged[Union[NotificationHook, EmailNotificationHook, WebNotificationHook]][source]¶ List all hooks.
- Keyword Arguments
- Returns
Pageable containing EmailNotificationHook and WebNotificationHook
- Return type
ItemPaged[Union[NotificationHook, EmailNotificationHook, WebNotificationHook]]
- Raises
Example:
List all of the notification hooks under the account¶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)) hooks = client.list_hooks() for hook in hooks: print("Hook type: {}".format(hook.hook_type)) print("Hook name: {}".format(hook.name)) print("Description: {}\n".format(hook.description))
-
refresh_data_feed_ingestion
(data_feed_id: str, start_time: Union[str, datetime.datetime], end_time: Union[str, datetime.datetime], **kwargs: Any) → None[source]¶ Refreshes data ingestion by data feed to backfill data.
- Parameters
- Returns
None
- Return type
- Raises
Example:
Refresh data feed ingestion over a period of time¶import datetime 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") data_feed_id = os.getenv("METRICS_ADVISOR_DATA_FEED_ID") client = MetricsAdvisorAdministrationClient(service_endpoint, MetricsAdvisorKeyCredential(subscription_key, api_key)) client.refresh_data_feed_ingestion( data_feed_id, datetime.datetime(2020, 9, 20), datetime.datetime(2020, 9, 25) )
-
update_alert_configuration
(alert_configuration: Union[str, AnomalyAlertConfiguration], **kwargs: Any) → AnomalyAlertConfiguration[source]¶ Update anomaly alerting configuration. Either pass the entire AnomalyAlertConfiguration object with the chosen updates or the ID to your alert configuration with updates passed via keyword arguments. If you pass both the AnomalyAlertConfiguration object and keyword arguments, the keyword arguments will take precedence.
- Parameters
alert_configuration (str or AnomalyAlertConfiguration) – AnomalyAlertConfiguration object or the ID to the alert configuration.
- Keyword Arguments
name (str) – Name for the anomaly alert configuration.
metric_alert_configurations (list[MetricAlertConfiguration]) – Anomaly alert configurations.
cross_metrics_operator (str or MetricAnomalyAlertConfigurationsOperator) – Cross metrics operator should be specified when setting up multiple metric alert configurations. Possible values include: “AND”, “OR”, “XOR”.
description (str) – Anomaly alert configuration description.
- Return type
- Raises
Example:
Update an existing anomaly alert configuration¶from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential, MetricsAdvisorAdministrationClient from azure.ai.metricsadvisor.models import ( MetricAlertConfiguration, MetricAnomalyAlertScope, MetricAnomalyAlertConditions, MetricBoundaryCondition ) 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") client = MetricsAdvisorAdministrationClient(service_endpoint, MetricsAdvisorKeyCredential(subscription_key, api_key)) alert_config.name = "updated config name" additional_alert = MetricAlertConfiguration( detection_configuration_id=detection_configuration_id, alert_scope=MetricAnomalyAlertScope( scope_type="SeriesGroup", series_group_in_scope={'city': 'Shenzhen'} ), alert_conditions=MetricAnomalyAlertConditions( metric_boundary_condition=MetricBoundaryCondition( direction="Down", lower=5 ) ) ) alert_config.metric_alert_configurations.append(additional_alert) updated = client.update_alert_configuration( alert_config, cross_metrics_operator="OR", description="updated alert config" ) print("Updated alert name: {}".format(updated.name)) print("Updated alert description: {}".format(updated.description)) print("Updated cross metrics operator: {}".format(updated.cross_metrics_operator)) print("Updated alert condition configuration scope type: {}".format( updated.metric_alert_configurations[2].alert_scope.scope_type ))
-
update_data_feed
(data_feed: Union[str, DataFeed], **kwargs: Any) → DataFeed[source]¶ Update a data feed. Either pass the entire DataFeed object with the chosen updates or the ID to your data feed with updates passed via keyword arguments. If you pass both the DataFeed object and keyword arguments, the keyword arguments will take precedence.
- Parameters
data_feed (DataFeed or str) – The data feed with updates or the data feed ID.
- Keyword Arguments
name (str) – The name to update the data feed.
timestamp_column (str) – User-defined timestamp column name.
ingestion_begin_time (datetime) – Ingestion start time.
data_source_request_concurrency (int) – The max concurrency of data ingestion queries against user data source. Zero (0) means no limitation.
ingestion_retry_delay (int) – The min retry interval for failed data ingestion tasks, in seconds.
ingestion_start_offset (int) – The time that the beginning of data ingestion task will delay for every data slice according to this offset, in seconds.
stop_retry_after (int) – Stop retry data ingestion after the data slice first schedule time in seconds.
rollup_identification_value (str) – The identification value for the row of calculated all-up value.
rollup_type (str or DataFeedRollupType) – Mark if the data feed needs rollup. Possible values include: “NoRollup”, “AutoRollup”, “AlreadyRollup”. Default value: “AutoRollup”.
auto_rollup_group_by_column_names (list[str]) – Roll up columns.
rollup_method (str or DataFeedAutoRollupMethod) – Roll up method. Possible values include: “None”, “Sum”, “Max”, “Min”, “Avg”, “Count”.
fill_type (str or DatasourceMissingDataPointFillType) – The type of fill missing point for anomaly detection. Possible values include: “SmartFilling”, “PreviousValue”, “CustomValue”, “NoFilling”. Default value: “SmartFilling”.
custom_fill_value (float) – The value of fill missing point for anomaly detection if “CustomValue” fill type is specified.
data_feed_description (str) – Data feed description.
access_mode (str or DataFeedAccessMode) – Data feed access mode. Possible values include: “Private”, “Public”. Default value: “Private”.
action_link_template (str) – action link for alert.
status (str or DataFeedStatus) – Data feed status. Possible values include: “Active”, “Paused”.
source (Union[AzureApplicationInsightsDataFeedSource, AzureBlobDataFeedSource, AzureCosmosDbDataFeedSource, AzureDataExplorerDataFeedSource, AzureDataLakeStorageGen2DataFeedSource, AzureTableDataFeedSource, AzureLogAnalyticsDataFeedSource, InfluxDbDataFeedSource, MySqlDataFeedSource, PostgreSqlDataFeedSource, SqlServerDataFeedSource, MongoDbDataFeedSource, AzureEventHubsDataFeedSource]) – The source of the data feed for update
- Return type
- Raises
Example:
Update an existing data feed¶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)) # update data feed on the data feed itself or by using available keyword arguments data_feed.name = "updated name" data_feed.data_feed_description = "updated description for data feed" updated = client.update_data_feed( data_feed, access_mode="Public", fill_type="CustomValue", custom_fill_value=1 ) print("Updated name: {}".format(updated.name)) print("Updated description: {}".format(updated.data_feed_description)) print("Updated access mode: {}".format(updated.access_mode)) print("Updated fill setting, value: {}, {}".format( updated.missing_data_point_fill_settings.fill_type, updated.missing_data_point_fill_settings.custom_fill_value, ))
-
update_datasource_credential
(datasource_credential: DatasourceCredential, **kwargs: Any) → DatasourceCredential[source]¶ Update a datasource credential.
- Parameters
datasource_credential (Union[DatasourceSqlConnectionString, DatasourceDataLakeGen2SharedKey, DatasourceServicePrincipal, DatasourceServicePrincipalInKeyVault]) – The new datasource credential object
- Return type
Union[DatasourceSqlConnectionString, DatasourceDataLakeGen2SharedKey, DatasourceServicePrincipal, DatasourceServicePrincipalInKeyVault]
- Raises
Example:
Update an existing datasource credential¶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)) datasource_credential.description = "updated description" updated = client.update_datasource_credential(datasource_credential) print("Credential type: {}".format(updated.credential_type)) print("Credential name: {}".format(updated.name)) print("Description: {}\n".format(updated.description))
-
update_detection_configuration
(detection_configuration: Union[str, AnomalyDetectionConfiguration], **kwargs: Any) → AnomalyDetectionConfiguration[source]¶ Update anomaly metric detection configuration. Either pass the entire AnomalyDetectionConfiguration object with the chosen updates or the ID to your detection configuration with updates passed via keyword arguments. If you pass both the AnomalyDetectionConfiguration object and keyword arguments, the keyword arguments will take precedence.
- Parameters
detection_configuration (str or AnomalyDetectionConfiguration) – AnomalyDetectionConfiguration object or the ID to the detection configuration.
- Keyword Arguments
name (str) – The name for the anomaly detection configuration
metric_id (str) – metric unique id.
whole_series_detection_condition (MetricDetectionCondition) – Required. Conditions to detect anomalies in all time series of a metric.
description (str) – anomaly detection configuration description.
series_group_detection_conditions (list[MetricSeriesGroupDetectionCondition]) – detection configuration for series group.
series_detection_conditions (list[MetricSingleSeriesDetectionCondition]) – detection configuration for specific series.
- Return type
- Raises
Example:
Update an existing anomaly detection configuration¶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 ) ) updated = 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 ) ] ) 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 ))
-
update_hook
(hook: Union[str, EmailNotificationHook, WebNotificationHook], **kwargs: Any) → Union[NotificationHook, EmailNotificationHook, WebNotificationHook][source]¶ Update a hook. Either pass the entire EmailNotificationHook or WebNotificationHook object with the chosen updates, or the ID to your hook configuration with the updates passed via keyword arguments. If you pass both the hook object and keyword arguments, the keyword arguments will take precedence.
- Parameters
hook (Union[str, EmailNotificationHook, WebNotificationHook]) – An email or web hook or the ID to the hook. If an ID is passed, you must pass hook_type.
- Keyword Arguments
hook_type (str) – The hook type. Possible values are “Email” or “Web”. Must be passed if only the hook ID is provided.
name (str) – Hook unique name.
description (str) – Hook description.
external_link (str) – Hook external link.
emails_to_alert (list[str]) – Email TO: list. Only should be passed to update EmailNotificationHook.
endpoint (str) – API address, will be called when alert is triggered, only support POST method via SSL. Only should be passed to update WebNotificationHook.
username (str) – basic authentication. Only should be passed to update WebNotificationHook.
password (str) – basic authentication. Only should be passed to update WebNotificationHook.
certificate_key (str) – client certificate. Only should be passed to update WebNotificationHook.
certificate_password (str) – client certificate password. Only should be passed to update WebNotificationHook.
- Return type
Union[NotificationHook, EmailNotificationHook, WebNotificationHook]
- Raises
Example:
Update an existing notification hook¶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)) hook.name = "updated hook name" hook.description = "updated hook description" client.update_hook( hook, emails_to_alert=["newemail@alertme.com"] ) updated = client.get_hook(hook.id) print("Updated name: {}".format(updated.name)) print("Updated description: {}".format(updated.description)) print("Updated emails: {}".format(updated.emails_to_alert))
-
class
azure.ai.metricsadvisor.
MetricsAdvisorClient
(endpoint: str, credential: MetricsAdvisorKeyCredential, **kwargs: Any)[source]¶ Represents an client that calls restful API of Azure Metrics Advisor service.
- Parameters
endpoint (str) – Supported Cognitive Services endpoints (protocol and hostname, for example: https://
<resource-name>
.cognitiveservices.azure.com).credential (MetricsAdvisorKeyCredential or TokenCredential) – 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
azure.identity
-
add_feedback
(feedback: FeedbackUnion, **kwargs: Any) → None[source]¶ Create a new metric feedback.
- Parameters
feedback (AnomalyFeedback or ChangePointFeedback or CommentFeedback or PeriodFeedback) – metric feedback.
- Raises
Example:
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
() → None[source]¶ Close the
MetricsAdvisorClient
session.
-
get_feedback
(feedback_id: str, **kwargs: Any) → Union[MetricFeedback, FeedbackUnion][source]¶ Get a metric feedback by its id.
- Parameters
feedback_id (str) – the id of the feedback.
- Returns
The feedback object
- Return type
MetricFeedback or AnomalyFeedback or ChangePointFeedback or CommentFeedback or PeriodFeedback
- Raises
Example:
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
(alert_configuration_id: str, start_time: datetime.datetime, end_time: datetime.datetime, time_mode: Union[str, AlertQueryTimeMode], **kwargs: Any) → ItemPaged[AnomalyAlert][source]¶ Query alerts under anomaly alert configuration.
- Parameters
alert_configuration_id (str) – anomaly alert configuration unique id.
datetime.datetime] start_time (Union[str,) – start time.
datetime.datetime] end_time (Union[str,) – end time.
time_mode (str or AlertQueryTimeMode) – time mode. Possible values include: “AnomalyTime”, “CreatedTime”, “ModifiedTime”.
- Keyword Arguments
skip (int) –
- Returns
AnomalyAlerts under anomaly alert configuration.
- Return type
- Raises
Example:
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
(alert_configuration_id, alert_id, **kwargs)[source]¶ -
list_anomalies
(detection_configuration_id, start_time, end_time, **kwargs) Query anomalies under a specific alert or detection configuration.
- Keyword Arguments
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 (Union[str,) – start time filter under chosen time mode.
datetime.datetime] end_time (Union[str,) – end time filter under chosen time mode.
skip (int) –
filter (DetectionAnomalyFilterCondition) –
- Returns
Anomalies under a specific alert or detection configuration.
- Return type
- Raises
-
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][source]¶ Query dimension values of anomalies.
- Parameters
- Keyword Arguments
- Returns
Dimension values of anomalies.
- Return type
- Raises
Example:
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
(metric_id: str, **kwargs: Any) → ItemPaged[Union[MetricFeedback, FeedbackUnion]][source]¶ List feedback on the given metric.
- Parameters
metric_id (str) – filter feedbacks by metric id
- Keyword Arguments
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 (Union[str,) – start time filter under chosen time mode.
datetime.datetime] end_time (Union[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
ItemPaged[ Union[MetricFeedback, AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback]]
- Raises
Example:
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
(detection_configuration_id: str, incident_id: str, **kwargs: Any) → ItemPaged[IncidentRootCause][source]¶ Query root cause for incident.
- Parameters
- Returns
Pageable of root cause for incident
- Return type
- Raises
Example:
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
(alert_configuration_id, alert_id, **kwargs)[source]¶ -
list_incidents
(detection_configuration_id, start_time, end_time, **kwargs) Query incidents under a specific alert or detection configuration.
- Keyword Arguments
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 (Union[str,) – start time filter under chosen time mode.
datetime.datetime] end_time (Union[str,) – end time filter under chosen time mode.
skip (int) –
filter (DetectionAnomalyFilterCondition) –
- Returns
AnomalyIncidents under a specific alert or detection configuration.
- Return type
- Raises
-
list_metric_dimension_values
(metric_id: str, dimension_name: str, **kwargs: Any) → ItemPaged[str][source]¶ List dimension from certain metric.
- Parameters
- Keyword Arguments
- Returns
Dimension from certain metric.
- Return type
- Raises
Example:
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
(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][source]¶ Query series enriched by anomaly detection.
- Parameters
detection_configuration_id (str) – anomaly alerting configuration unique id.
series (SeriesIdentity or list[dict[str, str]]) – List of dimensions specified for series.
datetime.datetime] start_time (Union[str,) – start time filter under chosen time mode.
datetime.datetime] end_time (Union[str,) – end time filter under chosen time mode.
- Returns
Pageable of MetricEnrichedSeriesData
- Return type
- Raises
Example:
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
(metric_id: str, start_time: Union[str, datetime.datetime], end_time: Union[str, datetime.datetime], **kwargs: Any) → ItemPaged[EnrichmentStatus][source]¶ Query anomaly detection status.
- Parameters
- Keyword Arguments
skip (int) –
- Returns
Anomaly detection status.
- Return type
- Raises
Example:
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
(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][source]¶ Get time series data from metric.
- Parameters
- Returns
Time series data from metric.
- Return type
- Raises
Example:
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
(metric_id: str, active_since: datetime.datetime, **kwargs: Any) → ItemPaged[MetricSeriesDefinition][source]¶ List series (dimension combinations) from metric.
- Parameters
metric_id (str) – metric unique id.
active_since (datetime.datetime) – Required. query series ingested after this time, the format should be yyyy-MM-ddTHH:mm:ssZ.
- Keyword Arguments
- Returns
Series (dimension combinations) from metric.
- Return type
ItemPaged[MetricSeriesDefinition]
- Raises
Example:
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))
-
class
azure.ai.metricsadvisor.
MetricsAdvisorKeyCredential
(subscription_key: str, api_key: str)[source]¶ Credential type used for authenticating to an Azure Metrics Advisor service.
- Parameters
- Raises
TypeError