Skip to content

Commit 45d512b

Browse files
add more samples (Azure#15007)
* add more samples * Update sdk/metricsadvisor/azure-ai-metricsadvisor/samples/README.md Co-authored-by: Krista Pratico <krpratic@microsoft.com> * Update sdk/metricsadvisor/azure-ai-metricsadvisor/samples/async_samples/sample_queries_async.py Co-authored-by: Krista Pratico <krpratic@microsoft.com> * Update sdk/metricsadvisor/azure-ai-metricsadvisor/samples/async_samples/sample_queries_async.py Co-authored-by: Krista Pratico <krpratic@microsoft.com> * update Co-authored-by: Krista Pratico <krpratic@microsoft.com>
1 parent 4559e19 commit 45d512b

File tree

10 files changed

+541
-37
lines changed

10 files changed

+541
-37
lines changed

sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/_metrics_advisor_client.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,15 @@ def list_metric_enriched_series_data(
275275
:return: Pageable of MetricEnrichedSeriesData
276276
:rtype: ~azure.core.paging.ItemPaged[~azure.ai.metricsadvisor.models.MetricEnrichedSeriesData]
277277
:raises ~azure.core.exceptions.HttpResponseError:
278+
279+
.. admonition:: Example:
280+
281+
.. literalinclude:: ../samples/sample_queries.py
282+
:start-after: [START list_metric_enriched_series_data]
283+
:end-before: [END list_metric_enriched_series_data]
284+
:language: python
285+
:dedent: 4
286+
:caption: Query metric enriched series data.
278287
"""
279288

280289
series_list = [
@@ -487,6 +496,15 @@ def list_dimension_values(
487496
:return: Dimension values of anomalies.
488497
:rtype: ~azure.core.paging.ItemPaged[str]
489498
:raises ~azure.core.exceptions.HttpResponseError:
499+
500+
.. admonition:: Example:
501+
502+
.. literalinclude:: ../samples/sample_queries.py
503+
:start-after: [START list_dimension_values]
504+
:end-before: [END list_dimension_values]
505+
:language: python
506+
:dedent: 4
507+
:caption: Query dimension values.
490508
"""
491509

492510
skip = kwargs.pop('skip', None)
@@ -646,6 +664,15 @@ def list_metric_dimension_values(self, metric_id, dimension_name, **kwargs):
646664
:return: Dimension from certain metric.
647665
:rtype: ~azure.core.paging.ItemPaged[str]
648666
:raises ~azure.core.exceptions.HttpResponseError:
667+
668+
.. admonition:: Example:
669+
670+
.. literalinclude:: ../samples/sample_queries.py
671+
:start-after: [START list_metric_dimension_values]
672+
:end-before: [END list_metric_dimension_values]
673+
:language: python
674+
:dedent: 4
675+
:caption: Query metric dimension values.
649676
"""
650677

651678
skip = kwargs.pop('skip', None)
@@ -683,6 +710,15 @@ def list_metrics_series_data(self,
683710
:return: Time series data from metric.
684711
:rtype: ~azure.core.paging.ItemPaged[~azure.ai.metricsadvisor.models.MetricSeriesData]
685712
:raises ~azure.core.exceptions.HttpResponseError:
713+
714+
.. admonition:: Example:
715+
716+
.. literalinclude:: ../samples/sample_queries.py
717+
:start-after: [START list_metrics_series_data]
718+
:end-before: [END list_metrics_series_data]
719+
:language: python
720+
:dedent: 4
721+
:caption: Query metrics series data.
686722
"""
687723

688724
converted_start_time = convert_datetime(start_time)
@@ -719,6 +755,15 @@ def list_metric_series_definitions(self, metric_id, active_since, **kwargs):
719755
:return: Series (dimension combinations) from metric.
720756
:rtype: ~azure.core.paging.ItemPaged[~azure.ai.metricsadvisor.models.MetricSeriesDefinition]
721757
:raises ~azure.core.exceptions.HttpResponseError:
758+
759+
.. admonition:: Example:
760+
761+
.. literalinclude:: ../samples/sample_queries.py
762+
:start-after: [START list_metric_series_definitions]
763+
:end-before: [END list_metric_series_definitions]
764+
:language: python
765+
:dedent: 4
766+
:caption: Query metric series definitions.
722767
"""
723768

724769
skip = kwargs.pop('skip', None)
@@ -749,6 +794,15 @@ def list_metric_enrichment_status(self, metric_id, start_time, end_time, **kwarg
749794
:return: Anomaly detection status.
750795
:rtype: ~azure.core.paging.ItemPaged[~azure.ai.metricsadvisor.models.EnrichmentStatus]
751796
:raises ~azure.core.exceptions.HttpResponseError:
797+
798+
.. admonition:: Example:
799+
800+
.. literalinclude:: ../samples/sample_queries.py
801+
:start-after: [START list_metric_enrichment_status]
802+
:end-before: [END list_metric_enrichment_status]
803+
:language: python
804+
:dedent: 4
805+
:caption: Query metric enrichment status.
752806
"""
753807

754808
skip = kwargs.pop('skip', None)

sdk/metricsadvisor/azure-ai-metricsadvisor/azure/ai/metricsadvisor/aio/_metrics_advisor_client_async.py

Lines changed: 57 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ def list_incident_root_causes(self, detection_configuration_id, incident_id, **k
243243
244244
.. admonition:: Example:
245245
246-
.. literalinclude:: ../samples/sample_incidents_async.py
246+
.. literalinclude:: ../samples/async_samples/sample_incidents_async.py
247247
:start-after: [START list_incident_root_cause_async]
248248
:end-before: [END list_incident_root_cause_async]
249249
:language: python
@@ -279,6 +279,15 @@ def list_metric_enriched_series_data(
279279
:return: Pageable of MetricEnrichedSeriesData
280280
:rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.ai.metricsadvisor.models.MetricEnrichedSeriesData]
281281
:raises ~azure.core.exceptions.HttpResponseError:
282+
283+
.. admonition:: Example:
284+
285+
.. literalinclude:: ../samples/async_samples/sample_queries_async.py
286+
:start-after: [START list_metric_enriched_series_data_async]
287+
:end-before: [END list_metric_enriched_series_data_async]
288+
:language: python
289+
:dedent: 4
290+
:caption: Query metric enriched series data.
282291
"""
283292

284293
series_list = [
@@ -493,6 +502,15 @@ def list_dimension_values(
493502
:return: Dimension values of anomalies.
494503
:rtype: ~azure.core.async_paging.AsyncItemPaged[str]
495504
:raises ~azure.core.exceptions.HttpResponseError:
505+
506+
.. admonition:: Example:
507+
508+
.. literalinclude:: ../samples/async_samples/sample_queries_async.py
509+
:start-after: [START list_dimension_values_async]
510+
:end-before: [END list_dimension_values_async]
511+
:language: python
512+
:dedent: 4
513+
:caption: Query dimension values.
496514
"""
497515

498516
skip = kwargs.pop('skip', None)
@@ -567,7 +585,7 @@ def list_incidents(
567585
568586
.. admonition:: Example:
569587
570-
.. literalinclude:: ../samples/sample_incidents_async.py
588+
.. literalinclude:: ../samples/async_samples/sample_incidents_async.py
571589
:start-after: [START list_incidents_for_alert_async]
572590
:end-before: [END list_incidents_for_alert_async]
573591
:language: python
@@ -597,7 +615,7 @@ def list_incidents(
597615
598616
.. admonition:: Example:
599617
600-
.. literalinclude:: ../samples/sample_incidents_async.py
618+
.. literalinclude:: ../samples/async_samples/sample_incidents_async.py
601619
:start-after: [START list_incidents_for_detection_configuration_async]
602620
:end-before: [END list_incidents_for_detection_configuration_async]
603621
:language: python
@@ -656,6 +674,15 @@ def list_metric_dimension_values(self, metric_id, dimension_name, **kwargs):
656674
:return: Dimension from certain metric.
657675
:rtype: ~azure.core.async_paging.AsyncItemPaged[str]
658676
:raises ~azure.core.exceptions.HttpResponseError:
677+
678+
.. admonition:: Example:
679+
680+
.. literalinclude:: ../samples/async_samples/sample_queries_async.py
681+
:start-after: [START list_metric_dimension_values_async]
682+
:end-before: [END list_metric_dimension_values_async]
683+
:language: python
684+
:dedent: 4
685+
:caption: Query metric dimension values.
659686
"""
660687

661688
skip = kwargs.pop('skip', None)
@@ -693,6 +720,15 @@ def list_metrics_series_data(
693720
:return: Time series data from metric.
694721
:rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.ai.metricsadvisor.models.MetricSeriesData]
695722
:raises ~azure.core.exceptions.HttpResponseError:
723+
724+
.. admonition:: Example:
725+
726+
.. literalinclude:: ../samples/async_samples/sample_queries_async.py
727+
:start-after: [START list_metrics_series_data_async]
728+
:end-before: [END list_metrics_series_data_async]
729+
:language: python
730+
:dedent: 4
731+
:caption: Query metrics series data.
696732
"""
697733

698734
converted_start_time = convert_datetime(start_time)
@@ -729,6 +765,15 @@ def list_metric_series_definitions(self, metric_id, active_since, **kwargs):
729765
:return: Series (dimension combinations) from metric.
730766
:rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.ai.metricsadvisor.models.MetricSeriesDefinition]
731767
:raises ~azure.core.exceptions.HttpResponseError:
768+
769+
.. admonition:: Example:
770+
771+
.. literalinclude:: ../samples/async_samples/sample_queries_async.py
772+
:start-after: [START list_metric_series_definitions_async]
773+
:end-before: [END list_metric_series_definitions_async]
774+
:language: python
775+
:dedent: 4
776+
:caption: Query metric series definitions.
732777
"""
733778

734779
skip = kwargs.pop('skip', None)
@@ -764,6 +809,15 @@ def list_metric_enrichment_status(self,
764809
:return: Anomaly detection status.
765810
:rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.ai.metricsadvisor.models.EnrichmentStatus]
766811
:raises ~azure.core.exceptions.HttpResponseError:
812+
813+
.. admonition:: Example:
814+
815+
.. literalinclude:: ../samples/async_samples/sample_queries_async.py
816+
:start-after: [START list_metric_enrichment_status_async]
817+
:end-before: [END list_metric_enrichment_status_async]
818+
:language: python
819+
:dedent: 4
820+
:caption: Query metric enrichment status.
767821
"""
768822

769823
skip = kwargs.pop('skip', None)

sdk/metricsadvisor/azure-ai-metricsadvisor/samples/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ The async versions of the samples require Python 3.5 or later.
2222
|[sample_anomaly_alert_configuration.py][sample_anomaly_alert_configuration] and [sample_anomaly_alert_configuration_async.py][sample_anomaly_alert_configuration_async]|Create, list, get, update, and delete anomaly alert configurations. Also list alerts and anomalies for a specific alert configuration.|
2323
|[sample_hooks.py][sample_hooks] and [sample_hooks_async.py][sample_hooks_async]|Create, list, get, update, and delete notification hooks|
2424
|[sample_feedback.py][sample_feedback] and [sample_feedback_async.py][sample_feedback_async]|Add, get, and list feedback for the anomaly detection result|
25+
|[sample_queries.py][sample_queries] and [sample_queries_async.py][sample_queries_async]|Query dimensions/data/status/etc.|
2526

2627

2728
## Prerequisites
@@ -70,3 +71,5 @@ what you can do with the Azure Metrics Advisor client library.
7071
[sample_hooks_async]: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/async_samples/sample_hooks_async.py
7172
[sample_feedback]: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/sample_feedback.py
7273
[sample_feedback_async]: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/async_samples/sample_feedback_async.py
74+
[sample_queries]: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/sample_queries.py
75+
[sample_queries_async]: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/metricsadvisor/azure-ai-metricsadvisor/samples/async_samples/sample_queries_async.py

sdk/metricsadvisor/azure-ai-metricsadvisor/samples/async_samples/sample_alert_configuration_async.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ async def sample_create_alert_config_async():
5151
MetricsAdvisorKeyCredential(subscription_key, api_key))
5252

5353
async with client:
54-
alert_config = await client.create_anomaly_alert_configuration(
54+
alert_config = await client.create_alert_configuration(
5555
name="my alert config",
5656
description="alert config description",
5757
cross_metrics_operator="AND",

sdk/metricsadvisor/azure-ai-metricsadvisor/samples/async_samples/sample_detection_configuration_async.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ async def sample_create_detection_config_async():
7575
)
7676

7777
async with client:
78-
detection_config = await client.create_metric_anomaly_detection_configuration(
78+
detection_config = await client.create_detection_configuration(
7979
name="my_detection_config",
8080
metric_id=metric_id,
8181
description="anomaly detection config for metric",

sdk/metricsadvisor/azure-ai-metricsadvisor/samples/async_samples/sample_incidents_async.py

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,17 @@
1919
1) METRICS_ADVISOR_ENDPOINT - the endpoint of your Azure Metrics Advisor service
2020
2) METRICS_ADVISOR_SUBSCRIPTION_KEY - Metrics Advisor service subscription key
2121
3) METRICS_ADVISOR_API_KEY - Metrics Advisor service API key
22-
4) METRICS_ADVISOR_METRIC_ID - the ID of an metric from an existing data feed
23-
5) METRICS_ADVISOR_ANOMALY_DETECTION_CONFIGURATION_ID - the ID of an anomaly detection configuration
24-
6) METRICS_ADVISOR_ALERT_CONFIGURATION_ID - the ID of an alert configuration
25-
7) METRICS_ADVISOR_INCIDENT_ID - the ID of an incident
26-
8) METRICS_ADVISOR_ALERT_ID - the ID of an alert
22+
4) METRICS_ADVISOR_DETECTION_CONFIGURATION_ID - the ID of an anomaly detection configuration
23+
5) METRICS_ADVISOR_ALERT_CONFIGURATION_ID - the ID of an alert configuration
24+
6) METRICS_ADVISOR_INCIDENT_ID - the ID of an incident
25+
7) METRICS_ADVISOR_ALERT_ID - the ID of an alert
2726
"""
2827

2928
import os
3029
import asyncio
3130

3231

33-
def sample_list_incidents_for_detection_configuration():
32+
async def sample_list_incidents_for_detection_configuration_async():
3433
# [START list_incidents_for_detection_configuration_async]
3534
import datetime
3635
from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential
@@ -39,49 +38,49 @@ def sample_list_incidents_for_detection_configuration():
3938
service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
4039
subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY")
4140
api_key = os.getenv("METRICS_ADVISOR_API_KEY")
42-
anomaly_detection_configuration_id = os.getenv("METRICS_ADVISOR_ANOMALY_DETECTION_CONFIGURATION_ID")
41+
detection_configuration_id = os.getenv("METRICS_ADVISOR_DETECTION_CONFIGURATION_ID")
4342

4443
client = MetricsAdvisorClient(service_endpoint,
4544
MetricsAdvisorKeyCredential(subscription_key, api_key))
4645
async with client:
47-
results = client.list_incidents_for_detection_configuration(
48-
detection_configuration_id=anomaly_detection_configuration_id,
46+
results = client.list_incidents(
47+
detection_configuration_id=detection_configuration_id,
4948
start_time=datetime.datetime(2020, 1, 1),
5049
end_time=datetime.datetime(2020, 9, 9),
5150
)
52-
for result in results:
51+
async for result in results:
5352
print("Metric id: {}".format(result.metric_id))
5453
print("Incident ID: {}".format(result.id))
5554
print("Severity: {}".format(result.severity))
5655
print("Status: {}".format(result.status))
5756

5857
# [END list_incidents_for_detection_configuration_async]
5958

60-
def sample_list_incident_root_cause():
59+
async def sample_list_incident_root_cause_async():
6160
# [START list_incident_root_cause_async]
6261
from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential
6362
from azure.ai.metricsadvisor.aio import MetricsAdvisorClient
6463

6564
service_endpoint = os.getenv("METRICS_ADVISOR_ENDPOINT")
6665
subscription_key = os.getenv("METRICS_ADVISOR_SUBSCRIPTION_KEY")
6766
api_key = os.getenv("METRICS_ADVISOR_API_KEY")
68-
anomaly_detection_configuration_id = os.getenv("METRICS_ADVISOR_ANOMALY_DETECTION_CONFIGURATION_ID")
67+
detection_configuration_id = os.getenv("METRICS_ADVISOR_DETECTION_CONFIGURATION_ID")
6968
incident_id = os.getenv("METRICS_ADVISOR_INCIDENT_ID")
7069

7170
client = MetricsAdvisorClient(service_endpoint,
7271
MetricsAdvisorKeyCredential(subscription_key, api_key))
7372
async with client:
7473
results = client.list_incident_root_causes(
75-
detection_configuration_id=anomaly_detection_configuration_id,
74+
detection_configuration_id=detection_configuration_id,
7675
incident_id=incident_id,
7776
)
78-
for result in results:
77+
async for result in results:
7978
print("Score: {}".format(result.score))
8079
print("Description: {}".format(result.description))
8180

8281
# [END list_incident_root_cause_async]
8382

84-
def sample_list_incidents_for_alert():
83+
async def sample_list_incidents_for_alert_async():
8584
# [START list_incidents_for_alert_async]
8685
from azure.ai.metricsadvisor import MetricsAdvisorKeyCredential
8786
from azure.ai.metricsadvisor.aio import MetricsAdvisorClient
@@ -95,11 +94,11 @@ def sample_list_incidents_for_alert():
9594
client = MetricsAdvisorClient(service_endpoint,
9695
MetricsAdvisorKeyCredential(subscription_key, api_key))
9796
async with client:
98-
results = client.list_incidents_for_alert(
97+
results = client.list_incidents(
9998
alert_configuration_id=alert_configuration_id,
10099
alert_id=alert_id,
101100
)
102-
for result in results:
101+
async for result in results:
103102
print("Metric id: {}".format(result.metric_id))
104103
print("Incident ID: {}".format(result.id))
105104
print("Severity: {}".format(result.severity))
@@ -110,11 +109,11 @@ def sample_list_incidents_for_alert():
110109

111110
async def main():
112111
print("---List incidents for detection configuration...")
113-
sample_list_incidents_for_detection_configuration()
112+
await sample_list_incidents_for_detection_configuration_async()
114113
print("---List root causes...")
115-
sample_list_incident_root_cause()
114+
await sample_list_incident_root_cause_async()
116115
print("---List incidents for alert configuration...")
117-
sample_list_incidents_for_alert()
116+
await sample_list_incidents_for_alert_async()
118117

119118
if __name__ == '__main__':
120119
loop = asyncio.get_event_loop()

0 commit comments

Comments
 (0)