MetricsAdvisorAdministrationClient Class
MetricsAdvisorAdministrationClient is used to create and manage data feeds.
- Inheritance
-
builtins.objectMetricsAdvisorAdministrationClient
Constructor
MetricsAdvisorAdministrationClient(endpoint: str, credential: MetricsAdvisorKeyCredential, **kwargs: Any)
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 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
- 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
- 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
- granularity
- <xref:Union>[str, <xref:azure.ai.metricsadvisor.models.DataFeedGranularityType,azure.ai.metricsadvisor.models.DataFeedGranularity>]
Granularity type. If using custom granularity, you must instantiate a DataFeedGranularity.
- schema
- <xref: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
- <xref: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.
- 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 <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>]
The datasource credential to create
Returns
The created datasource credential
Return type
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
- 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.
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>]
An email or web hook to create
Returns
EmailNotificationHook or WebNotificationHook
Return type
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
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
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
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
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
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
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
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
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
Returns
The datasource credential
Return type
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
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
Returns
EmailNotificationHook or WebNotificationHook
Return type
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
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
Required. the start point of time range to query data ingestion status.
Required. the end point of time range to query data ingestion status.
- skip
- int
Returns
Pageable of DataFeedIngestionStatus
Return type
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
Returns
Pageable containing datasource credential
Return type
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
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
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
The start point of time range to refresh data ingestion.
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
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.
- 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
- 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".
- 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.
- data_feed_description
- str
Data feed description.
- 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>]
The new datasource credential object
Return type
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
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>]
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.
- 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
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))
Feedback
Submit and view feedback for