File: sample_retrieve_and_list_metrics.py

package info (click to toggle)
python-azure 20250603%2Bgit-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 851,724 kB
  • sloc: python: 7,362,925; ansic: 804; javascript: 287; makefile: 195; sh: 145; xml: 109
file content (52 lines) | stat: -rw-r--r-- 1,742 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env python

# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.

"""
Retrieve and list experiment metrics
"""

import os
from azure.identity import DefaultAzureCredential
from azure.onlineexperimentation import OnlineExperimentationClient
from azure.core.exceptions import HttpResponseError, ResourceNotFoundError


def retrieve_single_metric():
    endpoint = os.environ["AZURE_ONLINEEXPERIMENTATION_ENDPOINT"]
    client = OnlineExperimentationClient(endpoint, DefaultAzureCredential())

    try:
        # Get a specific metric by ID
        metric = client.get_metric("avg_revenue_per_purchase")

        # Access metric properties to view or use the metric definition
        print(f"Metric ID: {metric.id}")
        print(f"Display name: {metric.display_name}")
        print(f"Description: {metric.description}")
        print(f"Lifecycle stage: {metric.lifecycle}")
        print(f"Desired direction: {metric.desired_direction}")
    except ResourceNotFoundError:
        print("The specified metric was not found in the workspace.")
    except HttpResponseError as error:
        print(f"Failed to retrieve metric: {error}")


def list_all_metrics():
    endpoint = os.environ["AZURE_ONLINEEXPERIMENTATION_ENDPOINT"]
    client = OnlineExperimentationClient(endpoint, DefaultAzureCredential())

    try:
        # List all metrics in the workspace
        print("Listing all metrics:")
        metrics = client.list_metrics()
        for item in metrics:
            print(f"- {item.id}: {item.display_name}")
    except HttpResponseError as error:
        print(f"Failed to list metrics: {error}")


if __name__ == "__main__":
    retrieve_single_metric()
    list_all_metrics()