Skip to content

Commit

Permalink
add base class for feedback (#19265)
Browse files Browse the repository at this point in the history
* add base class for feedback

* update

* update

* update
  • Loading branch information
xiangyan99 authored Jun 15, 2021
1 parent 4952d94 commit b71d46e
Show file tree
Hide file tree
Showing 23 changed files with 386 additions and 338 deletions.
2 changes: 1 addition & 1 deletion sdk/metricsadvisor/azure-ai-metricsadvisor/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ detection_config = client.create_detection_configuration(
metric_id=metric_id,
description="anomaly detection config for metric",
whole_series_detection_condition=MetricDetectionCondition(
cross_conditions_operator="OR",
condition_operator="OR",
change_threshold_condition=change_threshold_condition,
hard_threshold_condition=hard_threshold_condition,
smart_detection_condition=smart_detection_condition
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1110,7 +1110,7 @@ def list_data_feeds(
:keyword str data_feed_name: filter data feed by its name.
:keyword data_source_type: filter data feed by its source type.
:paramtype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType
:paramtype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType
:keyword granularity_type: filter data feed by its granularity.
:paramtype granularity_type: str or ~azure.ai.metricsadvisor.models.DataFeedGranularityType
:keyword status: filter data feed by its status.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,11 @@
MetricSeriesData,
AnomalyAlert,
IncidentRootCause,
MetricEnrichedSeriesData
MetricEnrichedSeriesData,
AnomalyFeedback,
ChangePointFeedback,
CommentFeedback,
PeriodFeedback
)
from ._version import SDK_MONIKER

Expand All @@ -42,15 +46,17 @@
MetricSeriesItem as MetricSeriesDefinition,
TimeMode as AlertQueryTimeMode,
)
from .models._models import (
AnomalyFeedback,
ChangePointFeedback,
CommentFeedback,
PeriodFeedback
)
from .models._models import MetricFeedback
from ._metrics_advisor_key_credential import MetricsAdvisorKeyCredential
from azure.core.paging import ItemPaged

FeedbackUnion = Union[
AnomalyFeedback,
ChangePointFeedback,
CommentFeedback,
PeriodFeedback,
]

class MetricsAdvisorClient(object):
"""Represents an client that calls restful API of Azure Metrics Advisor service.
Expand Down Expand Up @@ -106,7 +112,7 @@ def close(self):

@distributed_trace
def add_feedback(self, feedback, **kwargs):
# type: (Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback], Any) -> None
# type: (FeedbackUnion, Any) -> None

"""Create a new metric feedback.
Expand All @@ -133,13 +139,14 @@ def add_feedback(self, feedback, **kwargs):

@distributed_trace
def get_feedback(self, feedback_id, **kwargs):
# type: (str, Any) -> Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback]
# type: (str, Any) -> Union[MetricFeedback, FeedbackUnion]

"""Get a metric feedback by its id.
:param str feedback_id: the id of the feedback.
:return: The feedback object
:rtype: ~azure.ai.metricsadvisor.models.AnomalyFeedback or
:rtype: ~azure.ai.metricsadvisor.models.MetricFeedback or
~azure.ai.metricsadvisor.models.AnomalyFeedback or
~azure.ai.metricsadvisor.models.ChangePointFeedback or
~azure.ai.metricsadvisor.models.CommentFeedback or
~azure.ai.metricsadvisor.models.PeriodFeedback
Expand All @@ -161,7 +168,7 @@ def get_feedback(self, feedback_id, **kwargs):

@distributed_trace
def list_feedback(self, metric_id, **kwargs):
# type: (str, Any) -> ItemPaged[Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback]]
# type: (str, Any) -> ItemPaged[Union[MetricFeedback, FeedbackUnion]]

"""List feedback on the given metric.
Expand All @@ -179,7 +186,7 @@ def list_feedback(self, metric_id, **kwargs):
:paramtype time_mode: str or ~azure.ai.metricsadvisor.models.FeedbackQueryTimeMode
:return: Pageable list of MetricFeedback
:rtype: ~azure.core.paging.ItemPaged[
Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback]]
Union[MetricFeedback, AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback]]
:raises ~azure.core.exceptions.HttpResponseError:
.. admonition:: Example:
Expand Down Expand Up @@ -687,11 +694,11 @@ def list_metric_dimension_values(self, metric_id, dimension_name, **kwargs):
**kwargs)

@distributed_trace
def list_metrics_series_data(self,
def list_metric_series_data(self,
metric_id, # type: str
series_keys, # type: List[Dict[str, str]]
start_time, # type: Union[str, datetime.datetime]
end_time, # type: Union[str, datetime.datetime]
series_to_filter, # type: List[Dict[str, str]]
**kwargs # type: Any
):
# type: (...) -> ItemPaged[MetricSeriesData]
Expand All @@ -700,19 +707,19 @@ def list_metrics_series_data(self,
:param metric_id: metric unique id.
:type metric_id: str
:param series_keys: query specific series.
:type series_keys: list[dict[str, str]]
:param Union[str, datetime.datetime] start_time: start time filter under chosen time mode.
:param Union[str, datetime.datetime] end_time: end time filter under chosen time mode.
:param series_to_filter: query specific series.
:type series_to_filter: list[dict[str, str]]
:return: Time series data from metric.
:rtype: ~azure.core.paging.ItemPaged[~azure.ai.metricsadvisor.models.MetricSeriesData]
:raises ~azure.core.exceptions.HttpResponseError:
.. admonition:: Example:
.. literalinclude:: ../samples/sample_queries.py
:start-after: [START list_metrics_series_data]
:end-before: [END list_metrics_series_data]
:start-after: [START list_metric_series_data]
:end-before: [END list_metric_series_data]
:language: python
:dedent: 4
:caption: Query metrics series data.
Expand All @@ -724,7 +731,7 @@ def list_metrics_series_data(self,
metric_data_query_options = MetricDataQueryOptions(
start_time=converted_start_time,
end_time=converted_end_time,
series=series_to_filter,
series=series_keys,
)

return self._client.get_metric_data( # type: ignore
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1005,7 +1005,7 @@ def list_data_feeds(
:keyword str data_feed_name: filter data feed by its name.
:keyword data_source_type: filter data feed by its source type.
:paramtype data_source_type: str or ~azure.ai.metricsadvisor.models.DataSourceType
:paramtype data_source_type: str or ~azure.ai.metricsadvisor.models.DatasourceType
:keyword granularity_type: filter data feed by its granularity.
:paramtype granularity_type: str or ~azure.ai.metricsadvisor.models.DataFeedGranularityType
:keyword status: filter data feed by its status.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,10 @@
EnrichmentStatus,
MetricSeriesItem as MetricSeriesDefinition
)
from ..models._models import (
AnomalyFeedback,
ChangePointFeedback,
CommentFeedback,
PeriodFeedback
)
from ..models._models import MetricFeedback
from .._metrics_advisor_key_credential import MetricsAdvisorKeyCredential
from azure.core.credentials_async import AsyncTokenCredential
from .._metrics_advisor_client import FeedbackUnion

class MetricsAdvisorClient(object):
"""Represents an client that calls restful API of Azure Metrics Advisor service.
Expand Down Expand Up @@ -107,7 +103,7 @@ async def close(self) -> None:

@distributed_trace_async
async def add_feedback(self, feedback, **kwargs):
# type: (Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback], Any) -> None
# type: (FeedbackUnion, Any) -> None

"""Create a new metric feedback.
Expand All @@ -134,13 +130,14 @@ async def add_feedback(self, feedback, **kwargs):

@distributed_trace_async
async def get_feedback(self, feedback_id, **kwargs):
# type: (str, Any) -> Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback]
# type: (str, Any) -> Union[MetricFeedback, FeedbackUnion]

"""Get a metric feedback by its id.
:param str feedback_id: the id of the feedback.
:return: The feedback object
:rtype: ~azure.ai.metricsadvisor.models.AnomalyFeedback or
:rtype: ~azure.ai.metricsadvisor.models.MetricFeedback or
~azure.ai.metricsadvisor.models.AnomalyFeedback or
~azure.ai.metricsadvisor.models.ChangePointFeedback or
~azure.ai.metricsadvisor.models.CommentFeedback or
~azure.ai.metricsadvisor.models.PeriodFeedback
Expand All @@ -167,7 +164,7 @@ def list_feedback(
self, metric_id, # type: str
**kwargs # type: Any
):
# type: (...) -> AsyncItemPaged[Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback]]
# type: (...) -> AsyncItemPaged[Union[MetricFeedback, FeedbackUnion]]

"""List feedback on the given metric.
Expand All @@ -185,7 +182,7 @@ def list_feedback(
:paramtype time_mode: str or ~azure.ai.metricsadvisor.models.FeedbackQueryTimeMode
:return: Pageable list of MetricFeedback
:rtype: ~azure.core.async_paging.AsyncItemPaged[
Union[AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback]]
Union[MetricFeedback, AnomalyFeedback, ChangePointFeedback, CommentFeedback, PeriodFeedback]]
:raises ~azure.core.exceptions.HttpResponseError:
.. admonition:: Example:
Expand Down Expand Up @@ -699,11 +696,11 @@ def list_metric_dimension_values(self, metric_id, dimension_name, **kwargs):
**kwargs)

@distributed_trace
def list_metrics_series_data(
def list_metric_series_data(
self, metric_id, # type: str
series_keys, # type: List[Dict[str, str]]
start_time, # type: Union[str, datetime.datetime]
end_time, # type: Union[str, datetime.datetime]
series_to_filter, # type: List[Dict[str, str]]
**kwargs # type: Any
):
# type: (...) -> AsyncItemPaged[MetricSeriesData]
Expand All @@ -712,19 +709,19 @@ def list_metrics_series_data(
:param metric_id: metric unique id.
:type metric_id: str
:param series_keys: query specific series.
:type series_keys: list[dict[str, str]]
:param Union[str, datetime.datetime] start_time: start time filter under chosen time mode.
:param Union[str, datetime.datetime] end_time: end time filter under chosen time mode.
:param series_to_filter: query specific series.
:type series_to_filter: list[dict[str, str]]
:return: Time series data from metric.
:rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.ai.metricsadvisor.models.MetricSeriesData]
:raises ~azure.core.exceptions.HttpResponseError:
.. admonition:: Example:
.. literalinclude:: ../samples/async_samples/sample_queries_async.py
:start-after: [START list_metrics_series_data_async]
:end-before: [END list_metrics_series_data_async]
:start-after: [START list_metric_series_data_async]
:end-before: [END list_metric_series_data_async]
:language: python
:dedent: 4
:caption: Query metrics series data.
Expand All @@ -736,7 +733,7 @@ def list_metrics_series_data(
metric_data_query_options = MetricDataQueryOptions(
start_time=converted_start_time,
end_time=converted_end_time,
series=series_to_filter,
series=series_keys,
)

return self._client.get_metric_data( # type: ignore
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
from .._generated.models._microsoft_azure_metrics_advisor_restapi_open_ap_iv2_enums import (
SnoozeScope,
Severity as AnomalySeverity,
DataSourceType,
DataSourceType as DatasourceType,
ViewMode as DataFeedAccessMode,
RollUpMethod as DataFeedAutoRollupMethod,
FillMissingPointType as DataSourceMissingDataPointFillType,
Expand All @@ -40,8 +40,8 @@
PeriodType,
FeedbackType,
TimeMode as AlertQueryTimeMode,
DataSourceCredentialType,
AuthenticationTypeEnum as DataSourceAuthenticationType
DataSourceCredentialType as DatasourceCredentialType,
AuthenticationTypeEnum as DatasourceAuthenticationType
)

from .._generated.models import (
Expand All @@ -58,6 +58,7 @@
)

from ._models import (
MetricFeedback,
AnomalyFeedback,
ChangePointFeedback,
CommentFeedback,
Expand Down Expand Up @@ -123,6 +124,7 @@


__all__ = (
"MetricFeedback",
"AnomalyFeedback",
"ChangePointFeedback",
"CommentFeedback",
Expand Down Expand Up @@ -167,7 +169,7 @@
"MetricSeriesGroupDetectionCondition",
"MetricSingleSeriesDetectionCondition",
"SeverityCondition",
"DataSourceType",
"DatasourceType",
"MetricAnomalyAlertScopeType",
"AnomalyDetectorDirection",
"NotificationHook",
Expand Down Expand Up @@ -207,8 +209,8 @@
"DatasourceDataLakeGen2SharedKey",
"DatasourceServicePrincipal",
"DatasourceServicePrincipalInKeyVault",
"DataSourceCredentialType",
"DataSourceAuthenticationType",
"DatasourceCredentialType",
"DatasourceAuthenticationType",
"DatasourceCredential",
"DataFeedSource",
)
Loading

0 comments on commit b71d46e

Please sign in to comment.