MetricsAdvisorAdministrationClient Class

MetricsAdvisorAdministrationClient is used to create and manage data feeds.

Inheritance
builtins.object
MetricsAdvisorAdministrationClient

Constructor

MetricsAdvisorAdministrationClient(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 Metrics Advisor service, such as a credential from identity

Examples

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

Methods

close

Close the MetricsAdvisorAdministrationClient session.

create_alert_configuration

Create an anomaly alert configuration.

create_data_feed

Create a new data feed.

create_datasource_credential

Create a new datasource credential.

create_detection_configuration

Create anomaly detection configuration.

create_hook

Create a new email or web hook.

delete_alert_configuration

Delete an anomaly alert configuration by its ID.

delete_data_feed

Delete a data feed by its ID.

delete_datasource_credential

Delete a datasource credential by its ID.

delete_detection_configuration

Delete an anomaly detection configuration by its ID.

delete_hook

Delete a web or email hook by its ID.

get_alert_configuration

Get a single anomaly alert configuration.

get_data_feed

Get a data feed by its id.

get_data_feed_ingestion_progress

Get last successful data ingestion job timestamp by data feed.

get_datasource_credential

Get a datasource credential

get_detection_configuration

Get a single anomaly detection configuration.

get_hook

Get a web or email hook by its id.

list_alert_configurations

Query all anomaly alert configurations for specific anomaly detection configuration.

list_data_feed_ingestion_status

Get data ingestion status by data feed.

list_data_feeds

List all data feeds.

list_datasource_credentials

List all credential entities.

list_detection_configurations

Query all anomaly detection configurations for specific metric.

list_hooks

List all hooks.

refresh_data_feed_ingestion

Refreshes data ingestion by data feed to backfill data.

update_alert_configuration

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.

update_data_feed

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.

update_datasource_credential

Update a datasource credential.

update_detection_configuration

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.

update_hook

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.

close

Close the MetricsAdvisorAdministrationClient session.

close() -> None

create_alert_configuration

Create an anomaly alert configuration.

create_alert_configuration(name: str, metric_alert_configurations: List[MetricAlertConfiguration], hook_ids: List[str], **kwargs: Any) -> AnomalyAlertConfiguration

Parameters

name
str
Required

Name for the anomaly alert configuration.

metric_alert_configurations
list[MetricAlertConfiguration]
Required

Anomaly alert configurations.

hook_ids
list[str]
Required

Unique hook IDs.

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

Exceptions

Examples

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

Create a new data feed.

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

Parameters

name
str
Required

Name for the data feed.

source
<xref:Union>[AzureApplicationInsightsDataFeedSource, <xref:azure.ai.metricsadvisor.models.AzureBlobDataFeedSource,azure.ai.metricsadvisor.models.AzureCosmosDbDataFeedSource>, AzureDataExplorerDataFeedSource, <xref:azure.ai.metricsadvisor.models.AzureDataLakeStorageGen2DataFeedSource,azure.ai.metricsadvisor.models.AzureTableDataFeedSource>, AzureLogAnalyticsDataFeedSource, InfluxDbDataFeedSource, <xref:azure.ai.metricsadvisor.models.MySqlDataFeedSource,azure.ai.metricsadvisor.models.PostgreSqlDataFeedSource>, SqlServerDataFeedSource, MongoDbDataFeedSource, AzureEventHubsDataFeedSource]
Required

The source of the data feed

granularity
<xref:Union>[str, <xref:azure.ai.metricsadvisor.models.DataFeedGranularityType,azure.ai.metricsadvisor.models.DataFeedGranularity>]
Required

Granularity type. If using custom granularity, you must instantiate a DataFeedGranularity.

schema
<xref:Union>[list[str], DataFeedSchema]
Required

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
<xref:Union>[datetime, DataFeedIngestionSettings]
Required

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.

admins
list[str]

Data feed administrators.

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.

viewers
list[str]

Data feed viewers.

access_mode
str or <xref:azure.ai.metricsadvisor.models.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

Exceptions

Examples

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

Create a new datasource credential.

create_datasource_credential(datasource_credential: Union[azure.ai.metricsadvisor.models._models.DatasourceSqlConnectionString, azure.ai.metricsadvisor.models._models.DatasourceDataLakeGen2SharedKey, azure.ai.metricsadvisor.models._models.DatasourceServicePrincipal, azure.ai.metricsadvisor.models._models.DatasourceServicePrincipalInKeyVault], **kwargs: Any) -> Union[azure.ai.metricsadvisor.models._models.DatasourceSqlConnectionString, azure.ai.metricsadvisor.models._models.DatasourceDataLakeGen2SharedKey, azure.ai.metricsadvisor.models._models.DatasourceServicePrincipal, azure.ai.metricsadvisor.models._models.DatasourceServicePrincipalInKeyVault]

Parameters

datasource_credential
<xref:Union>[<xref:azure.ai.metricsadvisor.models.DatasourceSqlConnectionString,azure.ai.metricsadvisor.models.DatasourceDataLakeGen2SharedKey,azure.ai.metricsadvisor.models.DatasourceServicePrincipal,azure.ai.metricsadvisor.models.DatasourceServicePrincipalInKeyVault>]
Required

The datasource credential to create

Returns

The created datasource credential

Return type

<xref:Union>[<xref:azure.ai.metricsadvisor.models.DatasourceSqlConnectionString,azure.ai.metricsadvisor.models.DatasourceDataLakeGen2SharedKey,azure.ai.metricsadvisor.models.DatasourceServicePrincipal,azure.ai.metricsadvisor.models.DatasourceServicePrincipalInKeyVault>]

Exceptions

Examples

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

Create anomaly detection configuration.

create_detection_configuration(name: str, metric_id: str, whole_series_detection_condition: MetricDetectionCondition, **kwargs: Any) -> AnomalyDetectionConfiguration

Parameters

name
str
Required

The name for the anomaly detection configuration

metric_id
str
Required

Required. metric unique id.

whole_series_detection_condition
MetricDetectionCondition
Required

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.

Returns

AnomalyDetectionConfiguration

Return type

Exceptions

Examples

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

Create a new email or web hook.

create_hook(hook: Union[EmailNotificationHook, WebNotificationHook], **kwargs: Any) -> Union[NotificationHook, EmailNotificationHook, WebNotificationHook]

Parameters

hook
<xref:Union>[<xref:azure.ai.metricsadvisor.models.EmailNotificationHook,azure.ai.metricsadvisor.models.WebNotificationHook>]
Required

An email or web hook to create

Returns

EmailNotificationHook or WebNotificationHook

Return type

<xref:Union>[<xref:azure.ai.metricsadvisor.models.NotificationHook,azure.ai.metricsadvisor.models.EmailNotificationHook,azure.ai.metricsadvisor.models.WebNotificationHook>]

Exceptions

Examples

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

Delete an anomaly alert configuration by its ID.

delete_alert_configuration(*alert_configuration_id, **kwargs)

Parameters

alert_configuration_id
str
Required

anomaly alert configuration unique id.

Returns

None

Return type

Exceptions

Examples

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

Delete a data feed by its ID.

delete_data_feed(*data_feed_id, **kwargs)

Parameters

data_feed_id
str
Required

The data feed unique id.

Returns

None

Return type

Exceptions

Examples

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

Delete a datasource credential by its ID.

delete_datasource_credential(*credential_id, **kwargs)

Parameters

credential_id
str
Required

Datasource credential unique ID.

Returns

None

Return type

Exceptions

Examples

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

Delete an anomaly detection configuration by its ID.

delete_detection_configuration(*detection_configuration_id, **kwargs)

Parameters

detection_configuration_id
str
Required

anomaly detection configuration unique id.

Returns

None

Return type

Exceptions

Examples

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

Delete a web or email hook by its ID.

delete_hook(*hook_id, **kwargs)

Parameters

hook_id
str
Required

Hook unique ID.

Returns

None

Return type

Exceptions

Examples

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

Get a single anomaly alert configuration.

get_alert_configuration(alert_configuration_id: str, **kwargs: Any) -> azure.ai.metricsadvisor.models._models.AnomalyAlertConfiguration

Parameters

alert_configuration_id
str
Required

anomaly alert configuration unique id.

Returns

AnomalyAlertConfiguration

Return type

Exceptions

Examples

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

Get a data feed by its id.

get_data_feed(data_feed_id: str, **kwargs: Any) -> azure.ai.metricsadvisor.models._models.DataFeed

Parameters

data_feed_id
str
Required

The data feed unique id.

Returns

DataFeed

Return type

Exceptions

Examples

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

Get last successful data ingestion job timestamp by data feed.

get_data_feed_ingestion_progress(data_feed_id: str, **kwargs: Any) -> azure.ai.metricsadvisor.models._models.DataFeedIngestionProgress

Parameters

data_feed_id
str
Required

The data feed unique id.

Returns

DataFeedIngestionProgress, containing latest_success_timestamp and latest_active_timestamp

Return type

Exceptions

Examples

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

Get a datasource credential

get_datasource_credential(credential_id: str, **kwargs: Any) -> Union[azure.ai.metricsadvisor.models._models.DatasourceSqlConnectionString, azure.ai.metricsadvisor.models._models.DatasourceDataLakeGen2SharedKey, azure.ai.metricsadvisor.models._models.DatasourceServicePrincipal, azure.ai.metricsadvisor.models._models.DatasourceServicePrincipalInKeyVault]

Parameters

credential_id
str
Required

Data source credential entity unique ID.

Returns

The datasource credential

Return type

<xref:Union>[<xref:azure.ai.metricsadvisor.models.DatasourceCredential,azure.ai.metricsadvisor.models.DatasourceSqlConnectionString,azure.ai.metricsadvisor.models.DatasourceDataLakeGen2SharedKey,azure.ai.metricsadvisor.models.DatasourceServicePrincipal,azure.ai.metricsadvisor.models.DatasourceServicePrincipalInKeyVault>]

Exceptions

Examples

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

Get a single anomaly detection configuration.

get_detection_configuration(detection_configuration_id: str, **kwargs: Any) -> azure.ai.metricsadvisor.models._models.AnomalyDetectionConfiguration

Parameters

detection_configuration_id
str
Required

anomaly detection configuration unique id.

Returns

AnomalyDetectionConfiguration

Return type

Exceptions

Examples

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

Get a web or email hook by its id.

get_hook(hook_id: str, **kwargs: Any) -> Union[NotificationHook, EmailNotificationHook, WebNotificationHook]

Parameters

hook_id
str
Required

Hook unique ID.

Returns

EmailNotificationHook or WebNotificationHook

Return type

<xref:Union>[<xref:azure.ai.metricsadvisor.models.NotificationHook,azure.ai.metricsadvisor.models.EmailNotificationHook,azure.ai.metricsadvisor.models.WebNotificationHook>]

Exceptions

Examples

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

Query all anomaly alert configurations for specific anomaly detection configuration.

list_alert_configurations(detection_configuration_id: str, **kwargs: Any) -> ItemPaged[AnomalyAlertConfiguration]

Parameters

detection_configuration_id
str
Required

anomaly detection configuration unique id.

Returns

Pageable of AnomalyAlertConfiguration

Return type

Exceptions

Examples

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

Get data ingestion status by data feed.

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]

Parameters

data_feed_id
str
Required

The data feed unique id.

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

Required. the start point of time range to query data ingestion status.

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

Required. the end point of time range to query data ingestion status.

skip
int

Returns

Pageable of DataFeedIngestionStatus

Return type

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

Exceptions

Examples

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

List all data feeds.

list_data_feeds(**kwargs: Any) -> ItemPaged[DataFeed]

Parameters

data_feed_name
str

filter data feed by its name.

data_source_type
str or <xref:azure.ai.metricsadvisor.models.DatasourceType>

filter data feed by its source type.

granularity_type
str or <xref:azure.ai.metricsadvisor.models.DataFeedGranularityType>

filter data feed by its granularity.

status
str or <xref:azure.ai.metricsadvisor.models.DataFeedStatus>

filter data feed by its status.

creator
str

filter data feed by its creator.

skip
int

Returns

Pageable of DataFeed

Return type

Exceptions

Examples

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

List all credential entities.

list_datasource_credentials(**kwargs: Any) -> ItemPaged[DatasourceCredential]

Parameters

skip
int
Required

for paging, skipped number.

Returns

Pageable containing datasource credential

Return type

ItemPaged[<xref:Union>[<xref:azure.ai.metricsadvisor.models.DatasourceCredential,azure.ai.metricsadvisor.models.DatasourceSqlConnectionString,azure.ai.metricsadvisor.models.DatasourceDataLakeGen2SharedKey,azure.ai.metricsadvisor.models.DatasourceServicePrincipal,azure.ai.metricsadvisor.models.DatasourceServicePrincipalInKeyVault>]]

Exceptions

Examples

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

Query all anomaly detection configurations for specific metric.

list_detection_configurations(metric_id: str, **kwargs: Any) -> ItemPaged[AnomalyDetectionConfiguration]

Parameters

metric_id
str
Required

metric unique id.

Returns

Pageable of AnomalyDetectionConfiguration

Return type

Exceptions

Examples

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

List all hooks.

list_hooks(**kwargs: Any) -> ItemPaged[Union[NotificationHook, EmailNotificationHook, WebNotificationHook]]

Parameters

hook_name
str

filter hook by its name.

skip
int

Returns

Pageable containing EmailNotificationHook and WebNotificationHook

Return type

ItemPaged[<xref:Union>[<xref:azure.ai.metricsadvisor.models.NotificationHook,azure.ai.metricsadvisor.models.EmailNotificationHook>, WebNotificationHook]]

Exceptions

Examples

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

Refreshes data ingestion by data feed to backfill data.

refresh_data_feed_ingestion(data_feed_id: str, start_time: Union[str, datetime.datetime], end_time: Union[str, datetime.datetime], **kwargs: Any) -> None

Parameters

data_feed_id
str
Required

The data feed unique id.

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

The start point of time range to refresh data ingestion.

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

The end point of time range to refresh data ingestion.

Returns

None

Return type

Exceptions

Examples

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

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.

update_alert_configuration(alert_configuration: Union[str, azure.ai.metricsadvisor.models._models.AnomalyAlertConfiguration], **kwargs: Any) -> azure.ai.metricsadvisor.models._models.AnomalyAlertConfiguration

Parameters

alert_configuration
str or AnomalyAlertConfiguration
Required

AnomalyAlertConfiguration object or the ID to the alert configuration.

name
str

Name for the anomaly alert configuration.

metric_alert_configurations
list[MetricAlertConfiguration]

Anomaly alert configurations.

hook_ids
list[str]

Unique hook IDs.

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

Exceptions

Examples

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

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.

update_data_feed(data_feed: Union[str, azure.ai.metricsadvisor.models._models.DataFeed], **kwargs: Any) -> azure.ai.metricsadvisor.models._models.DataFeed

Parameters

data_feed
DataFeed or str
Required

The data feed with updates or the data feed ID.

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 <xref:azure.ai.metricsadvisor.models.DataFeedAutoRollupMethod>

Roll up method. Possible values include: "None", "Sum", "Max", "Min", "Avg", "Count".

fill_type
str or <xref:azure.ai.metricsadvisor.models.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.

admins
list[str]

Data feed administrators.

data_feed_description
str

Data feed description.

viewers
list[str]

Data feed viewers.

access_mode
str or <xref:azure.ai.metricsadvisor.models.DataFeedAccessMode>

Data feed access mode. Possible values include: "Private", "Public". Default value: "Private".

action_link_template
str

action link for alert.

status
str or <xref:azure.ai.metricsadvisor.models.DataFeedStatus>

Data feed status. Possible values include: "Active", "Paused".

source
<xref:Union>[AzureApplicationInsightsDataFeedSource, <xref:azure.ai.metricsadvisor.models.AzureBlobDataFeedSource,azure.ai.metricsadvisor.models.AzureCosmosDbDataFeedSource>, AzureDataExplorerDataFeedSource, <xref:azure.ai.metricsadvisor.models.AzureDataLakeStorageGen2DataFeedSource,azure.ai.metricsadvisor.models.AzureTableDataFeedSource>, AzureLogAnalyticsDataFeedSource, InfluxDbDataFeedSource, <xref:azure.ai.metricsadvisor.models.MySqlDataFeedSource,azure.ai.metricsadvisor.models.PostgreSqlDataFeedSource>, SqlServerDataFeedSource, MongoDbDataFeedSource, AzureEventHubsDataFeedSource]

The source of the data feed for update

Return type

Exceptions

Examples

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

Update a datasource credential.

update_datasource_credential(datasource_credential: azure.ai.metricsadvisor.models._models.DatasourceCredential, **kwargs: Any) -> azure.ai.metricsadvisor.models._models.DatasourceCredential

Parameters

datasource_credential
<xref:Union>[<xref:azure.ai.metricsadvisor.models.DatasourceSqlConnectionString,azure.ai.metricsadvisor.models.DatasourceDataLakeGen2SharedKey,azure.ai.metricsadvisor.models.DatasourceServicePrincipal,azure.ai.metricsadvisor.models.DatasourceServicePrincipalInKeyVault>]
Required

The new datasource credential object

Return type

<xref:Union>[<xref:azure.ai.metricsadvisor.models.DatasourceSqlConnectionString,azure.ai.metricsadvisor.models.DatasourceDataLakeGen2SharedKey,azure.ai.metricsadvisor.models.DatasourceServicePrincipal,azure.ai.metricsadvisor.models.DatasourceServicePrincipalInKeyVault>]

Exceptions

Examples

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

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.

update_detection_configuration(detection_configuration: Union[str, azure.ai.metricsadvisor.models._models.AnomalyDetectionConfiguration], **kwargs: Any) -> azure.ai.metricsadvisor.models._models.AnomalyDetectionConfiguration

Parameters

detection_configuration
str or AnomalyDetectionConfiguration
Required

AnomalyDetectionConfiguration object or the ID to the detection configuration.

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

Exceptions

Examples

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

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.

update_hook(hook: Union[str, EmailNotificationHook, WebNotificationHook], **kwargs: Any) -> Union[NotificationHook, EmailNotificationHook, WebNotificationHook]

Parameters

hook
<xref:Union>[str, <xref:azure.ai.metricsadvisor.models.EmailNotificationHook,azure.ai.metricsadvisor.models.WebNotificationHook>]
Required

An email or web hook or the ID to the hook. If an ID is passed, you must pass hook_type.

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

<xref:Union>[<xref:azure.ai.metricsadvisor.models.NotificationHook,azure.ai.metricsadvisor.models.EmailNotificationHook,azure.ai.metricsadvisor.models.WebNotificationHook>]

Exceptions

Examples

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