Skip to content

Commit 0bb349e

Browse files
committed
[Monitor] Generate LiveMetrics from TypeSpec
Signed-off-by: Paul Van Eck <[email protected]>
1 parent f7ef118 commit 0bb349e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+3417
-1877
lines changed

sdk/monitor/azure-monitor-opentelemetry-exporter/azure/monitor/opentelemetry/exporter/_quickpulse/_exporter.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,11 @@
3131
_QUICKPULSE_ETAG_HEADER_NAME,
3232
_QUICKPULSE_SUBSCRIBED_HEADER_NAME,
3333
)
34-
from azure.monitor.opentelemetry.exporter._quickpulse._generated._configuration import QuickpulseClientConfiguration
35-
from azure.monitor.opentelemetry.exporter._quickpulse._generated._client import QuickpulseClient
36-
from azure.monitor.opentelemetry.exporter._quickpulse._generated.models import MonitoringDataPoint
34+
from azure.monitor.opentelemetry.exporter._quickpulse._generated.livemetrics._configuration import (
35+
LiveMetricsClientConfiguration,
36+
)
37+
from azure.monitor.opentelemetry.exporter._quickpulse._generated.livemetrics._client import LiveMetricsClient
38+
from azure.monitor.opentelemetry.exporter._quickpulse._generated.livemetrics.models import MonitoringDataPoint
3739
from azure.monitor.opentelemetry.exporter._quickpulse._filter import _update_filter_configuration
3840
from azure.monitor.opentelemetry.exporter._quickpulse._policy import _QuickpulseRedirectPolicy
3941
from azure.monitor.opentelemetry.exporter._quickpulse._state import (
@@ -96,7 +98,7 @@ def __init__(self, **kwargs: Any) -> None:
9698
self._instrumentation_key = parsed_connection_string.instrumentation_key
9799
self._credential = kwargs.get("credential")
98100
self.aad_audience = parsed_connection_string.aad_audience
99-
config = QuickpulseClientConfiguration(credential=self._credential) # type: ignore
101+
config = LiveMetricsClientConfiguration(credential=self._credential) # type: ignore
100102
qp_redirect_policy = _QuickpulseRedirectPolicy(permit_redirects=False)
101103
policies = [
102104
# Custom redirect policy for QP
@@ -110,7 +112,7 @@ def __init__(self, **kwargs: Any) -> None:
110112
# Explicitly disabling to avoid tracing live metrics calls
111113
# DistributedTracingPolicy(),
112114
]
113-
self._client = QuickpulseClient(
115+
self._client = LiveMetricsClient(
114116
credential=self._credential, endpoint=self._live_endpoint, policies=policies # type: ignore
115117
)
116118
# Create a weakref of the client to the redirect policy so the endpoint can be

sdk/monitor/azure-monitor-opentelemetry-exporter/azure/monitor/opentelemetry/exporter/_quickpulse/_filter.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from dataclasses import fields
66
from typing import Any, Dict, List
77

8-
from azure.monitor.opentelemetry.exporter._quickpulse._generated.models import (
8+
from azure.monitor.opentelemetry.exporter._quickpulse._generated.livemetrics.models import (
99
DerivedMetricInfo,
1010
DocumentStreamInfo,
1111
FilterConjunctionGroupInfo,
@@ -53,7 +53,7 @@ def _parse_metric_filter_configuration(config: Dict[str, Any]) -> None:
5353
# Process metric filter configuration
5454
metric_infos: Dict[TelemetryType, List[DerivedMetricInfo]] = {}
5555
for metric_info_dict in config.get("Metrics", []):
56-
metric_info = DerivedMetricInfo.from_dict(metric_info_dict)
56+
metric_info = DerivedMetricInfo(metric_info_dict)
5757
# Skip duplicate ids
5858
if metric_info.id in seen_ids:
5959
continue
@@ -76,7 +76,7 @@ def _parse_document_filter_configuration(config: Dict[str, Any]) -> None:
7676
# Process document filter configuration
7777
doc_infos: Dict[TelemetryType, Dict[str, List[FilterConjunctionGroupInfo]]] = {}
7878
for doc_stream_dict in config.get("DocumentStreams", []):
79-
doc_stream = DocumentStreamInfo.from_dict(doc_stream_dict)
79+
doc_stream = DocumentStreamInfo(doc_stream_dict)
8080
for doc_filter_group in doc_stream.document_filter_groups:
8181
if not _validate_document_filter_group_info(doc_filter_group):
8282
continue
Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,6 @@
1-
# coding=utf-8
21
# --------------------------------------------------------------------------
32
# Copyright (c) Microsoft Corporation. All rights reserved.
43
# Licensed under the MIT License. See License.txt in the project root for license information.
5-
# Code generated by Microsoft (R) AutoRest Code Generator.
4+
# Code generated by Microsoft (R) Python Code Generator.
65
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
76
# --------------------------------------------------------------------------
8-
9-
from ._client import QuickpulseClient
10-
11-
try:
12-
from ._patch import __all__ as _patch_all
13-
from ._patch import * # pylint: disable=unused-wildcard-import
14-
except ImportError:
15-
_patch_all = []
16-
from ._patch import patch_sdk as _patch_sdk
17-
18-
__all__ = [
19-
"QuickpulseClient",
20-
]
21-
__all__.extend([p for p in _patch_all if p not in __all__])
22-
23-
_patch_sdk()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"apiVersion": "2024-04-01-preview"
3+
}

sdk/monitor/azure-monitor-opentelemetry-exporter/azure/monitor/opentelemetry/exporter/_quickpulse/_generated/aio/_vendor.py

Lines changed: 0 additions & 26 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"CrossLanguagePackageId": "Azure.Monitor.LiveMetrics",
3+
"CrossLanguageDefinitionId": {
4+
"livemetrics.models.CollectionConfigurationError": "Azure.Monitor.LiveMetrics.CollectionConfigurationError",
5+
"livemetrics.models.CollectionConfigurationInfo": "Azure.Monitor.LiveMetrics.CollectionConfigurationInfo",
6+
"livemetrics.models.DerivedMetricInfo": "Azure.Monitor.LiveMetrics.DerivedMetricInfo",
7+
"livemetrics.models.DocumentFilterConjunctionGroupInfo": "Azure.Monitor.LiveMetrics.DocumentFilterConjunctionGroupInfo",
8+
"livemetrics.models.DocumentIngress": "Azure.Monitor.LiveMetrics.DocumentIngress",
9+
"livemetrics.models.DocumentStreamInfo": "Azure.Monitor.LiveMetrics.DocumentStreamInfo",
10+
"livemetrics.models.Event": "Azure.Monitor.LiveMetrics.Event",
11+
"livemetrics.models.Exception": "Azure.Monitor.LiveMetrics.Exception",
12+
"livemetrics.models.FilterConjunctionGroupInfo": "Azure.Monitor.LiveMetrics.FilterConjunctionGroupInfo",
13+
"livemetrics.models.FilterInfo": "Azure.Monitor.LiveMetrics.FilterInfo",
14+
"livemetrics.models.KeyValuePairStringString": "Azure.Monitor.LiveMetrics.KeyValuePairStringString",
15+
"livemetrics.models.MetricPoint": "Azure.Monitor.LiveMetrics.MetricPoint",
16+
"livemetrics.models.MonitoringDataPoint": "Azure.Monitor.LiveMetrics.MonitoringDataPoint",
17+
"livemetrics.models.ProcessCpuData": "Azure.Monitor.LiveMetrics.ProcessCpuData",
18+
"livemetrics.models.QuotaConfigurationInfo": "Azure.Monitor.LiveMetrics.QuotaConfigurationInfo",
19+
"livemetrics.models.RemoteDependency": "Azure.Monitor.LiveMetrics.RemoteDependency",
20+
"livemetrics.models.Request": "Azure.Monitor.LiveMetrics.Request",
21+
"livemetrics.models.ServiceError": "Azure.Monitor.LiveMetrics.ServiceError",
22+
"livemetrics.models.Trace": "Azure.Monitor.LiveMetrics.Trace",
23+
"livemetrics.models.PredicateType": "Azure.Monitor.LiveMetrics.PredicateType",
24+
"livemetrics.models.AggregationType": "Azure.Monitor.LiveMetrics.AggregationType",
25+
"livemetrics.models.TelemetryType": "Azure.Monitor.LiveMetrics.TelemetryType",
26+
"livemetrics.models.DocumentType": "Azure.Monitor.LiveMetrics.DocumentType",
27+
"livemetrics.models.CollectionConfigurationErrorType": "Azure.Monitor.LiveMetrics.CollectionConfigurationErrorType",
28+
"livemetrics.LiveMetricsClient.is_subscribed": "Azure.Monitor.LiveMetrics.isSubscribed",
29+
"livemetrics.aio.LiveMetricsClient.is_subscribed": "Azure.Monitor.LiveMetrics.isSubscribed",
30+
"livemetrics.LiveMetricsClient.publish": "Azure.Monitor.LiveMetrics.publish",
31+
"livemetrics.aio.LiveMetricsClient.publish": "Azure.Monitor.LiveMetrics.publish"
32+
}
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# coding=utf-8
2+
# --------------------------------------------------------------------------
3+
# Copyright (c) Microsoft Corporation. All rights reserved.
4+
# Licensed under the MIT License. See License.txt in the project root for license information.
5+
# Code generated by Microsoft (R) Python Code Generator.
6+
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
7+
# --------------------------------------------------------------------------
8+
# pylint: disable=wrong-import-position
9+
10+
from typing import TYPE_CHECKING
11+
12+
if TYPE_CHECKING:
13+
from ._patch import * # pylint: disable=unused-wildcard-import
14+
15+
from ._client import LiveMetricsClient # type: ignore
16+
from ._version import VERSION
17+
18+
__version__ = VERSION
19+
20+
try:
21+
from ._patch import __all__ as _patch_all
22+
from ._patch import *
23+
except ImportError:
24+
_patch_all = []
25+
from ._patch import patch_sdk as _patch_sdk
26+
27+
__all__ = [
28+
"LiveMetricsClient",
29+
]
30+
__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore
31+
32+
_patch_sdk()

sdk/monitor/azure-monitor-opentelemetry-exporter/azure/monitor/opentelemetry/exporter/_quickpulse/_generated/_client.py renamed to sdk/monitor/azure-monitor-opentelemetry-exporter/azure/monitor/opentelemetry/exporter/_quickpulse/_generated/livemetrics/_client.py

Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,51 @@
22
# --------------------------------------------------------------------------
33
# Copyright (c) Microsoft Corporation. All rights reserved.
44
# Licensed under the MIT License. See License.txt in the project root for license information.
5-
# Code generated by Microsoft (R) AutoRest Code Generator.
5+
# Code generated by Microsoft (R) Python Code Generator.
66
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
77
# --------------------------------------------------------------------------
88

99
from copy import deepcopy
10-
from typing import Any, TYPE_CHECKING
10+
from typing import Any, Optional, TYPE_CHECKING
11+
from typing_extensions import Self
1112

1213
from azure.core import PipelineClient
1314
from azure.core.pipeline import policies
1415
from azure.core.rest import HttpRequest, HttpResponse
1516

16-
from . import models as _models
17-
from ._configuration import QuickpulseClientConfiguration
18-
from ._operations import QuickpulseClientOperationsMixin
19-
from ._serialization import Deserializer, Serializer
17+
from ._configuration import LiveMetricsClientConfiguration
18+
from ._operations import _LiveMetricsClientOperationsMixin
19+
from ._utils.serialization import Deserializer, Serializer
2020

2121
if TYPE_CHECKING:
22-
# pylint: disable=unused-import,ungrouped-imports
2322
from azure.core.credentials import TokenCredential
2423

2524

26-
class QuickpulseClient(QuickpulseClientOperationsMixin): # pylint: disable=client-accepts-api-version-keyword
27-
"""Quickpulse Client.
25+
class LiveMetricsClient(_LiveMetricsClientOperationsMixin):
26+
"""Live Metrics REST APIs.
2827
29-
:param credential: Credential needed for the client to connect to Azure. Required.
28+
:param credential: Credential used to authenticate requests to the service. Default value is
29+
None.
3030
:type credential: ~azure.core.credentials.TokenCredential
31-
:keyword api_version: Api Version. Default value is "2024-04-01-preview". Note that overriding
32-
this default value may result in unsupported behavior.
31+
:keyword endpoint: The endpoint of the Live Metrics service. Default value is
32+
"https://global.livediagnostics.monitor.azure.com".
33+
:paramtype endpoint: str
34+
:keyword api_version: The API version to use for this operation. Default value is
35+
"2024-04-01-preview". Note that overriding this default value may result in unsupported
36+
behavior.
3337
:paramtype api_version: str
3438
"""
3539

36-
def __init__(self, credential: "TokenCredential", **kwargs: Any) -> None:
40+
def __init__(
41+
self,
42+
credential: Optional["TokenCredential"] = None,
43+
*,
44+
endpoint: str = "https://global.livediagnostics.monitor.azure.com",
45+
**kwargs: Any
46+
) -> None:
3747
_endpoint = "{endpoint}"
38-
self._config = QuickpulseClientConfiguration(credential=credential, **kwargs)
48+
self._config = LiveMetricsClientConfiguration(endpoint=endpoint, credential=credential, **kwargs)
49+
3950
_policies = kwargs.pop("policies", None)
4051
if _policies is None:
4152
_policies = [
@@ -55,9 +66,8 @@ def __init__(self, credential: "TokenCredential", **kwargs: Any) -> None:
5566
]
5667
self._client: PipelineClient = PipelineClient(base_url=_endpoint, policies=_policies, **kwargs)
5768

58-
client_models = {k: v for k, v in _models.__dict__.items() if isinstance(v, type)}
59-
self._serialize = Serializer(client_models)
60-
self._deserialize = Deserializer(client_models)
69+
self._serialize = Serializer()
70+
self._deserialize = Deserializer()
6171
self._serialize.client_side_validation = False
6272

6373
def send_request(self, request: HttpRequest, *, stream: bool = False, **kwargs: Any) -> HttpResponse:
@@ -79,13 +89,17 @@ def send_request(self, request: HttpRequest, *, stream: bool = False, **kwargs:
7989
"""
8090

8191
request_copy = deepcopy(request)
82-
request_copy.url = self._client.format_url(request_copy.url)
92+
path_format_arguments = {
93+
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
94+
}
95+
96+
request_copy.url = self._client.format_url(request_copy.url, **path_format_arguments)
8397
return self._client.send_request(request_copy, stream=stream, **kwargs) # type: ignore
8498

8599
def close(self) -> None:
86100
self._client.close()
87101

88-
def __enter__(self) -> "QuickpulseClient":
102+
def __enter__(self) -> Self:
89103
self._client.__enter__()
90104
return self
91105

sdk/monitor/azure-monitor-opentelemetry-exporter/azure/monitor/opentelemetry/exporter/_quickpulse/_generated/_configuration.py renamed to sdk/monitor/azure-monitor-opentelemetry-exporter/azure/monitor/opentelemetry/exporter/_quickpulse/_generated/livemetrics/_configuration.py

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,44 +2,51 @@
22
# --------------------------------------------------------------------------
33
# Copyright (c) Microsoft Corporation. All rights reserved.
44
# Licensed under the MIT License. See License.txt in the project root for license information.
5-
# Code generated by Microsoft (R) AutoRest Code Generator.
5+
# Code generated by Microsoft (R) Python Code Generator.
66
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
77
# --------------------------------------------------------------------------
88

9-
from typing import Any, TYPE_CHECKING
9+
from typing import Any, Optional, TYPE_CHECKING
1010

1111
from azure.core.pipeline import policies
1212

13+
from ._version import VERSION
14+
1315
if TYPE_CHECKING:
14-
# pylint: disable=unused-import,ungrouped-imports
1516
from azure.core.credentials import TokenCredential
1617

17-
VERSION = "unknown"
18-
1918

20-
class QuickpulseClientConfiguration: # pylint: disable=too-many-instance-attributes,name-too-long
21-
"""Configuration for QuickpulseClient.
19+
class LiveMetricsClientConfiguration: # pylint: disable=too-many-instance-attributes
20+
"""Configuration for LiveMetricsClient.
2221
2322
Note that all parameters used to create this instance are saved as instance
2423
attributes.
2524
26-
:param credential: Credential needed for the client to connect to Azure. Required.
25+
:param endpoint: The endpoint of the Live Metrics service. Default value is
26+
"https://global.livediagnostics.monitor.azure.com".
27+
:type endpoint: str
28+
:param credential: Credential used to authenticate requests to the service. Default value is
29+
None.
2730
:type credential: ~azure.core.credentials.TokenCredential
28-
:keyword api_version: Api Version. Default value is "2024-04-01-preview". Note that overriding
29-
this default value may result in unsupported behavior.
31+
:keyword api_version: The API version to use for this operation. Default value is
32+
"2024-04-01-preview". Note that overriding this default value may result in unsupported
33+
behavior.
3034
:paramtype api_version: str
3135
"""
3236

33-
def __init__(self, credential: "TokenCredential", **kwargs: Any) -> None:
37+
def __init__(
38+
self,
39+
endpoint: str = "https://global.livediagnostics.monitor.azure.com",
40+
credential: Optional["TokenCredential"] = None,
41+
**kwargs: Any
42+
) -> None:
3443
api_version: str = kwargs.pop("api_version", "2024-04-01-preview")
3544

36-
# if credential is None:
37-
# raise ValueError("Parameter 'credential' must not be None.")
38-
45+
self.endpoint = endpoint
3946
self.credential = credential
4047
self.api_version = api_version
4148
self.credential_scopes = kwargs.pop("credential_scopes", ["https://monitor.azure.com/.default"])
42-
kwargs.setdefault("sdk_moniker", "quickpulseclient/{}".format(VERSION))
49+
kwargs.setdefault("sdk_moniker", "monitor-opentelemetry-exporter/{}".format(VERSION))
4350
self.polling_interval = kwargs.get("polling_interval", 30)
4451
self._configure(**kwargs)
4552

@@ -53,7 +60,7 @@ def _configure(self, **kwargs: Any) -> None:
5360
self.redirect_policy = kwargs.get("redirect_policy") or policies.RedirectPolicy(**kwargs)
5461
self.retry_policy = kwargs.get("retry_policy") or policies.RetryPolicy(**kwargs)
5562
self.authentication_policy = kwargs.get("authentication_policy")
56-
# if self.credential and not self.authentication_policy:
57-
# self.authentication_policy = policies.BearerTokenCredentialPolicy(
58-
# self.credential, *self.credential_scopes, **kwargs
59-
# )
63+
if self.credential and not self.authentication_policy:
64+
self.authentication_policy = policies.BearerTokenCredentialPolicy(
65+
self.credential, *self.credential_scopes, **kwargs
66+
)

sdk/monitor/azure-monitor-opentelemetry-exporter/azure/monitor/opentelemetry/exporter/_quickpulse/_generated/aio/_operations/__init__.py renamed to sdk/monitor/azure-monitor-opentelemetry-exporter/azure/monitor/opentelemetry/exporter/_quickpulse/_generated/livemetrics/_operations/__init__.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,22 @@
22
# --------------------------------------------------------------------------
33
# Copyright (c) Microsoft Corporation. All rights reserved.
44
# Licensed under the MIT License. See License.txt in the project root for license information.
5-
# Code generated by Microsoft (R) AutoRest Code Generator.
5+
# Code generated by Microsoft (R) Python Code Generator.
66
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
77
# --------------------------------------------------------------------------
8+
# pylint: disable=wrong-import-position
89

9-
from ._operations import QuickpulseClientOperationsMixin
10+
from typing import TYPE_CHECKING
11+
12+
if TYPE_CHECKING:
13+
from ._patch import * # pylint: disable=unused-wildcard-import
14+
15+
from ._operations import _LiveMetricsClientOperationsMixin # type: ignore # pylint: disable=unused-import
1016

1117
from ._patch import __all__ as _patch_all
12-
from ._patch import * # pylint: disable=unused-wildcard-import
18+
from ._patch import *
1319
from ._patch import patch_sdk as _patch_sdk
1420

15-
__all__ = [
16-
"QuickpulseClientOperationsMixin",
17-
]
18-
__all__.extend([p for p in _patch_all if p not in __all__])
21+
__all__ = []
22+
__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore
1923
_patch_sdk()

0 commit comments

Comments
 (0)