diff --git a/sdk/metricsadvisor/ai-metrics-advisor/README.md b/sdk/metricsadvisor/ai-metrics-advisor/README.md index 2ddb6c6373b9..d23fb831b60d 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/README.md +++ b/sdk/metricsadvisor/ai-metrics-advisor/README.md @@ -113,9 +113,9 @@ const adminClient = new MetricsAdvisorAdministrationClient("", credent `MetricsAdvisorAdministrationClient` is the interface responsible for managing entities in the Metrics Advisor resources, such as managing data feeds, anomaly detection configurations, anomaly alerting configurations. -### DataFeed +### Data Feed -A `DataFeed` is what Metrics Advisor ingests from your data source, such as Cosmos DB or a SQL server. A data feed contains rows of: +A data feed is what Metrics Advisor ingests from your data source, such as Cosmos DB or a SQL server. A data feed contains rows of: - timestamps - zero or more dimensions @@ -123,7 +123,7 @@ A `DataFeed` is what Metrics Advisor ingests from your data source, such as Cosm ### Metric -A `Metric` is a quantifiable measure that is used to monitor and assess the status of a specific business process. It can be a combination of multiple time series values divided into dimensions. For example a web health metric might contain dimensions for user count and the en-us market. +A metric is a quantifiable measure that is used to monitor and assess the status of a specific business process. It can be a combination of multiple time series values divided into dimensions. For example a web health metric might contain dimensions for user count and the en-us market. ### AnomalyDetectionConfiguration @@ -131,15 +131,15 @@ A `Metric` is a quantifiable measure that is used to monitor and assess the stat ### Anomaly & Incident -After a detection configuration is applied to metrics, `Incident`s are generated whenever any series within it has an `Anomaly`. +After a detection configuration is applied to metrics, `AnomalyIncident`s are generated whenever any series within it has an `DataPointAnomaly`. ### Alert -You can configure which anomalies should trigger an `Alert`. You can set multiple alerts with different settings. For example, you could create an alert for anomalies with lower business impact, and another for more important alerts. +You can configure which anomalies should trigger an `AnomalyAlert`. You can set multiple alerts with different settings. For example, you could create an alert for anomalies with lower business impact, and another for more important alerts. ### Hook -Metrics Advisor lets you create and subscribe to real-time alerts. These alerts are sent over the internet, using a `Hook`. +Metrics Advisor lets you create and subscribe to real-time alerts. These alerts are sent over the internet, using a notification hook. Please refer to [the Metrics Advisory Glossary][metrics_advisor_glossary] documentation page for a comprehensive list of concepts. @@ -465,7 +465,7 @@ async function queryAnomaliesByAlert(client, alert) { const iterator = client.listAnomaliesForAlert(alert); for await (const anomaly of iterator) { console.log( - ` Anomaly ${anomaly.severity} ${anomaly.status} ${anomaly.seriesKey.dimension} ${anomaly.timestamp}` + ` Anomaly ${anomaly.severity} ${anomaly.status} ${anomaly.seriesKey} ${anomaly.timestamp}` ); } } diff --git a/sdk/metricsadvisor/ai-metrics-advisor/review/ai-metrics-advisor.api.md b/sdk/metricsadvisor/ai-metrics-advisor/review/ai-metrics-advisor.api.md index cb6e77a4d183..d52caa35d3e6 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/review/ai-metrics-advisor.api.md +++ b/sdk/metricsadvisor/ai-metrics-advisor/review/ai-metrics-advisor.api.md @@ -238,28 +238,6 @@ export interface CredentialsPageResponse extends Array; - granularity: DataFeedGranularity; - ingestionSettings: DataFeedIngestionSettings; - description?: string; - rollupSettings?: DataFeedRollupSettings; - missingDataPointFillSettings?: DataFeedMissingDataPointFillSettings; - accessMode?: DataFeedAccessMode; - adminEmails?: string[]; - viewerEmails?: string[]; - actionLinkTemplate?: string; -}; - // @public export type DataFeedAccessMode = "Private" | "Public"; @@ -267,7 +245,7 @@ export type DataFeedAccessMode = "Private" | "Public"; export type DataFeedAutoRollupMethod = "None" | "Sum" | "Max" | "Min" | "Avg" | "Count"; // @public -export type DataFeedDescriptor = Omit; +export type DataFeedDescriptor = Omit; // @public export type DataFeedDetailStatus = "Active" | "Paused"; @@ -364,7 +342,7 @@ export type DataFeedSourcePatch = Partial & { }; // @public -export interface DataFeedsPageResponse extends Array { +export interface DataFeedsPageResponse extends Array { continuationToken?: string; _response: coreHttp.HttpResponse & { bodyAsText: string; @@ -575,7 +553,7 @@ export type FeedbackQueryTimeMode = "MetricTimestamp" | "FeedbackCreatedTime"; export type FeedbackType = "Anomaly" | "ChangePoint" | "Period" | "Comment"; // @public -export type GetAnomalyAlertConfigurationResponse = AnomalyAlertConfiguration & { +export type GetAlertConfigResponse = AnomalyAlertConfiguration & { _response: coreHttp.HttpResponse & { bodyAsText: string; parsedBody: any; @@ -583,7 +561,7 @@ export type GetAnomalyAlertConfigurationResponse = AnomalyAlertConfiguration & { }; // @public -export type GetDataFeedResponse = DataFeed & { +export type GetDataFeedResponse = MetricsAdvisorDataFeed & { _response: coreHttp.HttpResponse & { bodyAsText: string; parsedBody: any; @@ -751,7 +729,7 @@ export interface ListAnomaliesForAlertConfigurationOptions extends OperationOpti // @public export interface ListAnomaliesForDetectionConfigurationOptions extends OperationOptions { - dimensionFilter?: DimensionKey[]; + seriesGroupKeys?: DimensionKey[]; severityFilter?: SeverityFilterCondition; skip?: number; } @@ -759,7 +737,7 @@ export interface ListAnomaliesForDetectionConfigurationOptions extends Operation // @public export interface ListAnomalyDimensionValuesOptions extends OperationOptions { // (undocumented) - dimensionFilter?: DimensionKey; + seriesGroupKey?: DimensionKey; skip?: number; } @@ -788,7 +766,7 @@ export interface ListDataSourceCredentialsOptions extends OperationOptions { // @public export interface ListFeedbackOptions extends OperationOptions { filter?: { - dimensionFilter?: DimensionKey; + dimensionKey?: DimensionKey; feedbackType?: FeedbackType; startTime?: Date | string; endTime?: Date | string; @@ -810,7 +788,7 @@ export interface ListIncidentsForAlertOptions extends OperationOptions { // @public export interface ListIncidentsForDetectionConfigurationOptions extends OperationOptions { - dimensionFilter?: DimensionKey[]; + seriesGroupKeys?: DimensionKey[]; } // @public @@ -870,7 +848,7 @@ export type MetricAnomalyAlertScope = { scopeType: "All"; } | { scopeType: "Dimension"; - dimensionAnomalyScope: DimensionKey; + seriesGroupInScope: DimensionKey; } | { scopeType: "TopN"; topNAnomalyScope: TopNGroupScope; @@ -942,7 +920,7 @@ export interface MetricEnrichedSeriesData { isAnomaly?: boolean[]; lowerBounds?: number[]; periods?: number[]; - series: DimensionKey; + seriesKey: DimensionKey; timestamps?: Date[]; upperBounds?: number[]; values?: number[]; @@ -988,7 +966,7 @@ export type MetricPeriodFeedback = { // @public export class MetricsAdvisorAdministrationClient { constructor(endpointUrl: string, credential: TokenCredential | MetricsAdvisorKeyCredential, options?: MetricsAdvisorAdministrationClientOptions); - createAlertConfig(config: Omit, options?: OperationOptions): Promise; + createAlertConfig(config: Omit, options?: OperationOptions): Promise; createDataFeed(feed: DataFeedDescriptor, operationOptions?: CreateDataFeedOptions): Promise; createDataSourceCredential(dataSourceCredential: DataSourceCredentialEntityUnion, options?: OperationOptions): Promise; createDetectionConfig(config: Omit, options?: OperationOptions): Promise; @@ -999,7 +977,7 @@ export class MetricsAdvisorAdministrationClient { deleteDetectionConfig(id: string, options?: OperationOptions): Promise; deleteHook(id: string, options?: OperationOptions): Promise; readonly endpointUrl: string; - getAlertConfig(id: string, options?: OperationOptions): Promise; + getAlertConfig(id: string, options?: OperationOptions): Promise; getDataFeed(id: string, options?: OperationOptions): Promise; getDataFeedIngestionProgress(dataFeedId: string, options?: {}): Promise; getDataSourceCredential(id: string, options?: OperationOptions): Promise; @@ -1007,12 +985,12 @@ export class MetricsAdvisorAdministrationClient { getHook(id: string, options?: OperationOptions): Promise; listAlertConfigs(detectionConfigId: string, options?: OperationOptions): PagedAsyncIterableIterator; listDataFeedIngestionStatus(dataFeedId: string, startTime: Date | string, endTime: Date | string, options?: ListDataFeedIngestionStatusOptions): PagedAsyncIterableIterator; - listDataFeeds(options?: ListDataFeedsOptions): PagedAsyncIterableIterator; + listDataFeeds(options?: ListDataFeedsOptions): PagedAsyncIterableIterator; listDataSourceCredential(options?: ListDataSourceCredentialsOptions): PagedAsyncIterableIterator; listDetectionConfigs(metricId: string, options?: OperationOptions): PagedAsyncIterableIterator; listHooks(options?: ListHooksOptions): PagedAsyncIterableIterator; refreshDataFeedIngestion(dataFeedId: string, startTime: Date | string, endTime: Date | string, options?: OperationOptions): Promise; - updateAlertConfig(id: string, patch: Partial>, options?: OperationOptions): Promise; + updateAlertConfig(id: string, patch: Partial>, options?: OperationOptions): Promise; updateDataFeed(dataFeedId: string, patch: DataFeedPatch, options?: OperationOptions): Promise; updateDataSourceCredential(id: string, patch: DataSourceCredentialPatch, options?: OperationOptions): Promise; updateDetectionConfig(id: string, patch: AnomalyDetectionConfigurationPatch, options?: OperationOptions): Promise; @@ -1048,6 +1026,28 @@ export class MetricsAdvisorClient { export interface MetricsAdvisorClientOptions extends PipelineOptions { } +// @public +export type MetricsAdvisorDataFeed = { + id: string; + name: string; + createdOn: Date; + status: DataFeedStatus; + isAdmin: boolean; + creator: string; + source: DataFeedSource; + schema: DataFeedSchema; + metricIds: Record; + granularity: DataFeedGranularity; + ingestionSettings: DataFeedIngestionSettings; + description?: string; + rollupSettings?: DataFeedRollupSettings; + missingDataPointFillSettings?: DataFeedMissingDataPointFillSettings; + accessMode?: DataFeedAccessMode; + adminEmails?: string[]; + viewerEmails?: string[]; + actionLinkTemplate?: string; +}; + // @public export class MetricsAdvisorKeyCredential { constructor(subscriptionKey: string, apiKey: string); @@ -1071,13 +1071,13 @@ export interface MetricSeriesData { // @public export interface MetricSeriesDefinition { - dimension: Record; metricId: string; + seriesKey: Record; } // @public export type MetricSeriesGroupDetectionCondition = DetectionConditionsCommon & { - group: DimensionKey; + groupKey: DimensionKey; }; // @public @@ -1091,7 +1091,7 @@ export interface MetricSeriesPageResponse extends Array // @public export type MetricSingleSeriesDetectionCondition = DetectionConditionsCommon & { - series: DimensionKey; + seriesKey: DimensionKey; }; // @public diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples-dev/alertingConfig.ts b/sdk/metricsadvisor/ai-metrics-advisor/samples-dev/alertingConfig.ts index efb2a5ade53b..6a94009a5592 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples-dev/alertingConfig.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples-dev/alertingConfig.ts @@ -66,7 +66,7 @@ async function createAlertConfig( detectionConfigurationId: detectionConfigId, alertScope: { scopeType: "Dimension", - dimensionAnomalyScope: { city: "Manila", category: "Handmade" } + seriesGroupInScope: { city: "Manila", category: "Handmade" } } } ], @@ -101,7 +101,7 @@ async function updateAlertConfig( detectionConfigurationId: detectionConfigId, alertScope: { scopeType: "Dimension", - dimensionAnomalyScope: { + seriesGroupInScope: { city: "Kolkata", category: "Shoes Handbags & Sunglasses" } diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples-dev/detectionConfig.ts b/sdk/metricsadvisor/ai-metrics-advisor/samples-dev/detectionConfig.ts index 91bbbe47db3e..62c462e92f26 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples-dev/detectionConfig.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples-dev/detectionConfig.ts @@ -92,7 +92,7 @@ async function createDetectionConfig( }; const seriesGroupDetectionConditions: MetricSeriesGroupDetectionCondition[] = [ { - group: { city: "Manila" }, + groupKey: { city: "Manila" }, conditionOperator: "AND", changeThresholdCondition: { anomalyDetectorDirection: "Both", @@ -105,7 +105,7 @@ async function createDetectionConfig( ]; const seriesDetectionConditions: MetricSingleSeriesDetectionCondition[] = [ { - series: { city: "Manila", category: "Handmade" }, + seriesKey: { city: "Manila", category: "Handmade" }, conditionOperator: "AND", hardThresholdCondition: { anomalyDetectorDirection: "Up", @@ -152,7 +152,7 @@ async function updateDetectionConfig( }, seriesGroupDetectionConditions: [ { - group: { city: "Manila" }, + groupKey: { city: "Manila" }, conditionOperator: "AND", hardThresholdCondition: { anomalyDetectorDirection: "Up", @@ -163,7 +163,7 @@ async function updateDetectionConfig( ], seriesDetectionConditions: [ { - series: { city: "Manila", category: "Handmade" }, + seriesKey: { city: "Manila", category: "Handmade" }, conditionOperator: "OR", changeThresholdCondition: { anomalyDetectorDirection: "Both", diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples-dev/incidentsAndAlerts.ts b/sdk/metricsadvisor/ai-metrics-advisor/samples-dev/incidentsAndAlerts.ts index cc10d659424a..a849dd398a2e 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples-dev/incidentsAndAlerts.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples-dev/incidentsAndAlerts.ts @@ -81,7 +81,7 @@ async function listIncidentsForDetectionConfig( new Date("10/22/2020"), new Date("10/24/2020"), { - dimensionFilter: [{ city: "Manila", category: "Shoes Handbags & Sunglasses" }] + seriesGroupKeys: [{ city: "Manila", category: "Shoes Handbags & Sunglasses" }] } ); for await (const incident of listIterator) { diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples-dev/seriesData.ts b/sdk/metricsadvisor/ai-metrics-advisor/samples-dev/seriesData.ts index 17f2a91ce22a..a6cee81fd8ce 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples-dev/seriesData.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples-dev/seriesData.ts @@ -46,7 +46,7 @@ async function getEnrichedSeriesData(client: MetricsAdvisorClient, detectionConf for (const enriched of result) { console.log("enriched series:"); - console.log(enriched.series); + console.log(enriched.seriesKey); if (enriched.timestamps && enriched.timestamps.length > 0) { for (let i = 0; i < enriched.timestamps.length; i++) { console.log(" ----"); diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/alertingConfig.js b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/alertingConfig.js index 3ec05590a301..483361d32cae 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/alertingConfig.js +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/alertingConfig.js @@ -61,7 +61,7 @@ async function createAlertConfig(adminClient, detectionConfigId) { detectionConfigurationId: detectionConfigId, alertScope: { scopeType: "Dimension", - dimensionAnomalyScope: { city: "Manila", category: "Handmade" } + seriesGroupInScope: { city: "Manila", category: "Handmade" } } } ], @@ -91,7 +91,7 @@ async function updateAlertConfig(adminClient, alertConfigId, detectionConfigId, detectionConfigurationId: detectionConfigId, alertScope: { scopeType: "Dimension", - dimensionAnomalyScope: { + seriesGroupInScope: { city: "Kolkata", category: "Shoes Handbags & Sunglasses" } diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/dataSourceCredential.js b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/dataSourceCredential.js index f242e9c44e33..e50cf6f6266a 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/dataSourceCredential.js +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/dataSourceCredential.js @@ -23,19 +23,19 @@ async function main() { const adminClient = new MetricsAdvisorAdministrationClient(endpoint, credential); - const created = await createDatasourceCredential(adminClient); + const created = await createDataSourceCredential(adminClient); if (created.id) { - await getDatasourceCredential(adminClient, created.id); - await updateDatasourceCredential(adminClient, created.id); - await listDatasourceCredentials(adminClient); - await deleteDatasourceCredential(adminClient, created.id); + await getDataSourceCredential(adminClient, created.id); + await updateDataSourceCredential(adminClient, created.id); + await listDataSourceCredentials(adminClient); + await deleteDataSourceCredential(adminClient, created.id); } } -async function listDatasourceCredentials(client) { - console.log("Listing Datasource credentials ..."); +async function listDataSourceCredentials(client) { + console.log("Listing DataSource credentials ..."); console.log(" using while loop"); - const iter = client.listDatasourceCredential(); + const iter = client.listDataSourceCredential(); let result = await iter.next(); while (!result.done) { console.log(`id :${result.value.id}, name: ${result.value.name}`); @@ -44,7 +44,7 @@ async function listDatasourceCredentials(client) { // second approach console.log(" using for-await-of loop"); - const iterator = client.listDatasourceCredential(); + const iterator = client.listDataSourceCredential(); for await (const datasourceCredential of iterator) { console.log( `id :${datasourceCredential.id}, name: ${datasourceCredential.name}, type: ${datasourceCredential.type}` @@ -53,7 +53,7 @@ async function listDatasourceCredentials(client) { // by pages console.log(" by pages"); - const pages = client.listDatasourceCredential().byPage({ maxPageSize: 1 }); + const pages = client.listDataSourceCredential().byPage({ maxPageSize: 1 }); let page = await pages.next(); let i = 1; while (!page.done) { @@ -67,29 +67,29 @@ async function listDatasourceCredentials(client) { } } -async function createDatasourceCredential(client) { - console.log("Creating Datasource credential..."); +async function createDataSourceCredential(client) { + console.log("Creating DataSource credential..."); const datasourceCredential = { name: "Sql-server-cred", description: "an example sql server credential", type: "AzureSQLConnectionString", connectionString: "connection-string" }; - const result = await client.createDatasourceCredential(datasourceCredential); + const result = await client.createDataSourceCredential(datasourceCredential); console.dir(result); return result; } -async function getDatasourceCredential(client, datasourceCredentialId) { +async function getDataSourceCredential(client, datasourceCredentialId) { console.log("Retrieving datasourceCredential by id..."); - const result = await client.getDatasourceCredential(datasourceCredentialId); + const result = await client.getDataSourceCredential(datasourceCredentialId); console.log("datasource credential result is as follows - "); console.log(` id: ${result.id}`); console.log(` datasource credential type: ${result.type}`); console.log(` name: ${result.name}`); } -async function updateDatasourceCredential(client, credentialId) { +async function updateDataSourceCredential(client, credentialId) { const patch = { name: "update-credential-name", description: "updated-description", @@ -99,7 +99,7 @@ async function updateDatasourceCredential(client, credentialId) { try { console.log(`Updating credential ${credentialId}...`); - const updated = await client.updateDatasourceCredential(credentialId, patch); + const updated = await client.updateDataSourceCredential(credentialId, patch); console.dir(updated); } catch (err) { console.log("Error occurred when updating credential"); @@ -107,9 +107,9 @@ async function updateDatasourceCredential(client, credentialId) { } } -async function deleteDatasourceCredential(client, credentialId) { +async function deleteDataSourceCredential(client, credentialId) { console.log(`Deleting datasource credential ${credentialId}...`); - await client.deleteDatasourceCredential(credentialId); + await client.deleteDataSourceCredential(credentialId); } main() diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/detectionConfig.js b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/detectionConfig.js index a4b0e41f0420..77cf92447b5e 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/detectionConfig.js +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/detectionConfig.js @@ -81,7 +81,7 @@ async function createDetectionConfig(adminClient, metricId) { }; const seriesGroupDetectionConditions = [ { - group: { city: "Manila" }, + groupKey: { city: "Manila" }, conditionOperator: "AND", changeThresholdCondition: { anomalyDetectorDirection: "Both", @@ -94,7 +94,7 @@ async function createDetectionConfig(adminClient, metricId) { ]; const seriesDetectionConditions = [ { - series: { city: "Manila", category: "Handmade" }, + seriesKey: { city: "Manila", category: "Handmade" }, conditionOperator: "AND", hardThresholdCondition: { anomalyDetectorDirection: "Up", @@ -138,7 +138,7 @@ async function updateDetectionConfig(adminClient, configId) { }, seriesGroupDetectionConditions: [ { - group: { city: "Manila" }, + groupKey: { city: "Manila" }, conditionOperator: "AND", hardThresholdCondition: { anomalyDetectorDirection: "Up", @@ -149,7 +149,7 @@ async function updateDetectionConfig(adminClient, configId) { ], seriesDetectionConditions: [ { - series: { city: "Manila", category: "Handmade" }, + seriesKey: { city: "Manila", category: "Handmade" }, conditionOperator: "OR", changeThresholdCondition: { anomalyDetectorDirection: "Both", diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/incidentsAndAlerts.js b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/incidentsAndAlerts.js index 1b49d871ecc8..4e8c61dfb27f 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/incidentsAndAlerts.js +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/incidentsAndAlerts.js @@ -77,7 +77,7 @@ async function listIncidentsForDetectionConfig(client, detectionConfigId) { new Date("10/22/2020"), new Date("10/24/2020"), { - dimensionFilter: [{ city: "Manila", category: "Shoes Handbags & Sunglasses" }] + seriesGroupKeys: [{ city: "Manila", category: "Shoes Handbags & Sunglasses" }] } ); for await (const incident of listIterator) { diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/seriesData.js b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/seriesData.js index b1c137d8f6bf..e1258231dd9b 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/seriesData.js +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/javascript/seriesData.js @@ -45,7 +45,7 @@ async function getEnrichedSeriesData(client, detectionConfigId) { for (const enriched of result) { console.log("enriched series:"); - console.log(enriched.series); + console.log(enriched.seriesKey); if (enriched.timestamps && enriched.timestamps.length > 0) { for (let i = 0; i < enriched.timestamps.length; i++) { console.log(" ----"); diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/alertingConfig.ts b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/alertingConfig.ts index c1dfd5ee8802..0bac19e8ca0e 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/alertingConfig.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/alertingConfig.ts @@ -65,7 +65,7 @@ async function createAlertConfig( detectionConfigurationId: detectionConfigId, alertScope: { scopeType: "Dimension", - dimensionAnomalyScope: { city: "Manila", category: "Handmade" } + seriesGroupInScope: { city: "Manila", category: "Handmade" } } } ], @@ -100,7 +100,7 @@ async function updateAlertConfig( detectionConfigurationId: detectionConfigId, alertScope: { scopeType: "Dimension", - dimensionAnomalyScope: { + seriesGroupInScope: { city: "Kolkata", category: "Shoes Handbags & Sunglasses" } diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/dataSourceCredential.ts b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/dataSourceCredential.ts index 138512baeae2..3df297155ccd 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/dataSourceCredential.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/dataSourceCredential.ts @@ -12,9 +12,9 @@ dotenv.config(); import { MetricsAdvisorKeyCredential, MetricsAdvisorAdministrationClient, - GetCredentialEntityResponse, - DatasourceCredentialPatch, - SqlServerConnectionStringDatasourceCredential + GetDataSourceCredentialEntityResponse, + DataSourceCredentialPatch, + DataSourceSqlConnectionString } from "@azure/ai-metrics-advisor"; export async function main() { @@ -26,19 +26,19 @@ export async function main() { const adminClient = new MetricsAdvisorAdministrationClient(endpoint, credential); - const created = await createDatasourceCredential(adminClient); + const created = await createDataSourceCredential(adminClient); if (created.id) { - await getDatasourceCredential(adminClient, created.id); - await updateDatasourceCredential(adminClient, created.id); - await listDatasourceCredentials(adminClient); - await deleteDatasourceCredential(adminClient, created.id); + await getDataSourceCredential(adminClient, created.id); + await updateDataSourceCredential(adminClient, created.id); + await listDataSourceCredentials(adminClient); + await deleteDataSourceCredential(adminClient, created.id); } } -async function listDatasourceCredentials(client: MetricsAdvisorAdministrationClient) { - console.log("Listing Datasource credentials ..."); +async function listDataSourceCredentials(client: MetricsAdvisorAdministrationClient) { + console.log("Listing DataSource credentials ..."); console.log(" using while loop"); - const iter = client.listDatasourceCredential(); + const iter = client.listDataSourceCredential(); let result = await iter.next(); while (!result.done) { console.log(`id :${result.value.id}, name: ${result.value.name}`); @@ -47,7 +47,7 @@ async function listDatasourceCredentials(client: MetricsAdvisorAdministrationCli // second approach console.log(" using for-await-of loop"); - const iterator = client.listDatasourceCredential(); + const iterator = client.listDataSourceCredential(); for await (const datasourceCredential of iterator) { console.log( `id :${datasourceCredential.id}, name: ${datasourceCredential.name}, type: ${datasourceCredential.type}` @@ -56,7 +56,7 @@ async function listDatasourceCredentials(client: MetricsAdvisorAdministrationCli // by pages console.log(" by pages"); - const pages = client.listDatasourceCredential().byPage({ maxPageSize: 1 }); + const pages = client.listDataSourceCredential().byPage({ maxPageSize: 1 }); let page = await pages.next(); let i = 1; while (!page.done) { @@ -70,34 +70,34 @@ async function listDatasourceCredentials(client: MetricsAdvisorAdministrationCli } } -async function createDatasourceCredential( +async function createDataSourceCredential( client: MetricsAdvisorAdministrationClient -): Promise { - console.log("Creating Datasource credential..."); - const datasourceCredential: SqlServerConnectionStringDatasourceCredential = { +): Promise { + console.log("Creating DataSource credential..."); + const datasourceCredential: DataSourceSqlConnectionString = { name: "Sql-server-cred", description: "an example sql server credential", type: "AzureSQLConnectionString", connectionString: "connection-string" }; - const result = await client.createDatasourceCredential(datasourceCredential); + const result = await client.createDataSourceCredential(datasourceCredential); console.dir(result); return result; } -async function getDatasourceCredential( +async function getDataSourceCredential( client: MetricsAdvisorAdministrationClient, datasourceCredentialId: string ) { console.log("Retrieving datasourceCredential by id..."); - const result = await client.getDatasourceCredential(datasourceCredentialId); + const result = await client.getDataSourceCredential(datasourceCredentialId); console.log("datasource credential result is as follows - "); console.log(` id: ${result.id}`); console.log(` datasource credential type: ${result.type}`); console.log(` name: ${result.name}`); } -async function updateDatasourceCredential( +async function updateDataSourceCredential( client: MetricsAdvisorAdministrationClient, credentialId: string ) { @@ -106,11 +106,11 @@ async function updateDatasourceCredential( description: "updated-description", type: "AzureSQLConnectionString", connectionString: "connection-string" - } as DatasourceCredentialPatch; + } as DataSourceCredentialPatch; try { console.log(`Updating credential ${credentialId}...`); - const updated = await client.updateDatasourceCredential(credentialId, patch); + const updated = await client.updateDataSourceCredential(credentialId, patch); console.dir(updated); } catch (err) { console.log("Error occurred when updating credential"); @@ -118,12 +118,12 @@ async function updateDatasourceCredential( } } -async function deleteDatasourceCredential( +async function deleteDataSourceCredential( client: MetricsAdvisorAdministrationClient, credentialId: string ) { console.log(`Deleting datasource credential ${credentialId}...`); - await client.deleteDatasourceCredential(credentialId); + await client.deleteDataSourceCredential(credentialId); } main() diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/detectionConfig.ts b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/detectionConfig.ts index d628c264025c..07c2ee7be3e8 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/detectionConfig.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/detectionConfig.ts @@ -91,7 +91,7 @@ async function createDetectionConfig( }; const seriesGroupDetectionConditions: MetricSeriesGroupDetectionCondition[] = [ { - group: { city: "Manila" }, + groupKey: { city: "Manila" }, conditionOperator: "AND", changeThresholdCondition: { anomalyDetectorDirection: "Both", @@ -104,7 +104,7 @@ async function createDetectionConfig( ]; const seriesDetectionConditions: MetricSingleSeriesDetectionCondition[] = [ { - series: { city: "Manila", category: "Handmade" }, + seriesKey: { city: "Manila", category: "Handmade" }, conditionOperator: "AND", hardThresholdCondition: { anomalyDetectorDirection: "Up", @@ -151,7 +151,7 @@ async function updateDetectionConfig( }, seriesGroupDetectionConditions: [ { - group: { city: "Manila" }, + groupKey: { city: "Manila" }, conditionOperator: "AND", hardThresholdCondition: { anomalyDetectorDirection: "Up", @@ -162,7 +162,7 @@ async function updateDetectionConfig( ], seriesDetectionConditions: [ { - series: { city: "Manila", category: "Handmade" }, + seriesKey: { city: "Manila", category: "Handmade" }, conditionOperator: "OR", changeThresholdCondition: { anomalyDetectorDirection: "Both", diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/incidentsAndAlerts.ts b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/incidentsAndAlerts.ts index 5f38dc1f79bc..979d65fc0e5a 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/incidentsAndAlerts.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/incidentsAndAlerts.ts @@ -80,7 +80,7 @@ async function listIncidentsForDetectionConfig( new Date("10/22/2020"), new Date("10/24/2020"), { - dimensionFilter: [{ city: "Manila", category: "Shoes Handbags & Sunglasses" }] + seriesGroupKeys: [{ city: "Manila", category: "Shoes Handbags & Sunglasses" }] } ); for await (const incident of listIterator) { diff --git a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/seriesData.ts b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/seriesData.ts index 4376abf73825..6cb67fea44a3 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/seriesData.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/samples/v1/typescript/src/seriesData.ts @@ -45,7 +45,7 @@ async function getEnrichedSeriesData(client: MetricsAdvisorClient, detectionConf for (const enriched of result) { console.log("enriched series:"); - console.log(enriched.series); + console.log(enriched.seriesKey); if (enriched.timestamps && enriched.timestamps.length > 0) { for (let i = 0; i < enriched.timestamps.length; i++) { console.log(" ----"); diff --git a/sdk/metricsadvisor/ai-metrics-advisor/src/metricsAdvisorAdministrationClient.ts b/sdk/metricsadvisor/ai-metrics-advisor/src/metricsAdvisorAdministrationClient.ts index 5aeaf968881e..c91768864ae2 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/src/metricsAdvisorAdministrationClient.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/src/metricsAdvisorAdministrationClient.ts @@ -23,7 +23,7 @@ import { GeneratedClient } from "./generated/generatedClient"; import { IngestionStatus, DataFeedGranularity, - DataFeed, + MetricsAdvisorDataFeed, DataFeedPatch, WebNotificationHook, EmailNotificationHook, @@ -33,7 +33,7 @@ import { AnomalyDetectionConfigurationPatch, GetDataFeedResponse, GetDetectionConfigResponse, - GetAnomalyAlertConfigurationResponse as GetAlertConfigResponse, + GetAlertConfigResponse, GetHookResponse, NotificationHookUnion, DataFeedAutoRollupMethod, @@ -137,7 +137,7 @@ export interface ListDataFeedsOptions extends OperationOptions { * describes the input to Create Data Feed operation */ export type DataFeedDescriptor = Omit< - DataFeed, + MetricsAdvisorDataFeed, "id" | "metricIds" | "isAdmin" | "status" | "creator" | "createdOn" >; @@ -307,7 +307,7 @@ export class MetricsAdvisorAdministrationClient { try { const requestOptions = operationOptionsToRequestOptionsBase(finalOptions); const result = await this.client.getDataFeedById(id, requestOptions); - const resultDataFeed: DataFeed = fromServiceDataFeedDetailUnion(result); + const resultDataFeed: MetricsAdvisorDataFeed = fromServiceDataFeedDetailUnion(result); return { ...resultDataFeed, _response: result._response }; } catch (e) { span.setStatus({ @@ -374,7 +374,7 @@ export class MetricsAdvisorAdministrationClient { */ public listDataFeeds( options: ListDataFeedsOptions = {} - ): PagedAsyncIterableIterator { + ): PagedAsyncIterableIterator { const iter = this.listItemsOfDataFeeds(options); return { /** @@ -403,7 +403,7 @@ export class MetricsAdvisorAdministrationClient { private async *listItemsOfDataFeeds( options: ListDataFeedsOptions - ): AsyncIterableIterator { + ): AsyncIterableIterator { for await (const segment of this.listSegmentsOfDataFeeds(options)) { if (segment) { yield* segment; @@ -512,7 +512,7 @@ export class MetricsAdvisorAdministrationClient { actionLinkTemplate: patch.actionLinkTemplate }; const result = await this.client.updateDataFeed(dataFeedId, patchBody, requestOptions); - const resultDataFeed: DataFeed = fromServiceDataFeedDetailUnion(result); + const resultDataFeed: MetricsAdvisorDataFeed = fromServiceDataFeedDetailUnion(result); return { ...resultDataFeed, _response: result._response }; } catch (e) { span.setStatus({ diff --git a/sdk/metricsadvisor/ai-metrics-advisor/src/metricsAdvisorClient.ts b/sdk/metricsadvisor/ai-metrics-advisor/src/metricsAdvisorClient.ts index a5a721484a80..f1306cf8eb13 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/src/metricsAdvisorClient.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/src/metricsAdvisorClient.ts @@ -51,7 +51,7 @@ export interface MetricsAdvisorClientOptions extends PipelineOptions {} */ export interface ListIncidentsForDetectionConfigurationOptions extends OperationOptions { /** Dimension Filter */ - dimensionFilter?: DimensionKey[]; // lifted + seriesGroupKeys?: DimensionKey[]; // lifted } /** @@ -66,7 +66,7 @@ export interface ListAnomaliesForDetectionConfigurationOptions extends Operation /** Number of items to skip */ skip?: number; /** Dimension Filter */ - dimensionFilter?: DimensionKey[]; + seriesGroupKeys?: DimensionKey[]; /** Severity Filter */ severityFilter?: SeverityFilterCondition; } @@ -93,7 +93,7 @@ export interface ListIncidentsForAlertOptions extends OperationOptions { export interface ListAnomalyDimensionValuesOptions extends OperationOptions { /** Number of items to skip */ skip?: number; - dimensionFilter?: DimensionKey; + seriesGroupKey?: DimensionKey; } /** @@ -106,7 +106,7 @@ export interface ListFeedbackOptions extends OperationOptions { * filter when listing feedbacks */ filter?: { - dimensionFilter?: DimensionKey; + dimensionKey?: DimensionKey; /** * filter feedbacks by type */ @@ -813,7 +813,7 @@ export class MetricsAdvisorClient { ); const results = result.value.map((d) => { return { - series: d.series.dimension, + seriesKey: d.series.dimension, timestamps: d.timestampList, values: d.valueList, expectedValues: d.expectedValueList, @@ -846,9 +846,9 @@ export class MetricsAdvisorClient { startTime: startTime, endTime: endTime, filter: - options.dimensionFilter || options.severityFilter + options.seriesGroupKeys || options.severityFilter ? { - dimensionFilter: options.dimensionFilter?.map((d) => { + dimensionFilter: options.seriesGroupKeys?.map((d) => { return { dimension: d }; }), severityFilter: options.severityFilter @@ -1051,7 +1051,7 @@ export class MetricsAdvisorClient { let segmentResponse; const optionsBody = { ...options, - dimensionFilter: options.dimensionFilter ? { dimension: options.dimensionFilter } : undefined, + dimensionFilter: options.seriesGroupKey ? { dimension: options.seriesGroupKey } : undefined, startTime, endTime, dimensionName @@ -1237,7 +1237,7 @@ export class MetricsAdvisorClient { startTime: startTime, endTime: endTime, filter: { - dimensionFilter: options.dimensionFilter?.map((d) => { + dimensionFilter: options.seriesGroupKeys?.map((d) => { return { dimension: d }; }) } @@ -1560,8 +1560,8 @@ export class MetricsAdvisorClient { : options.filter?.endTime; const optionsBody = { metricId, - dimensionFilter: options.filter?.dimensionFilter - ? { dimension: options.filter?.dimensionFilter } + dimensionFilter: options.filter?.dimensionKey + ? { dimension: options.filter?.dimensionKey } : undefined, feedbackType: options.filter?.feedbackType, startTime, @@ -1734,7 +1734,7 @@ export class MetricsAdvisorClient { const resultArray = result.value?.map((s) => { return { - definition: { metricId: s.id!.metricId!, dimension: s.id!.dimension! }, + definition: { metricId: s.id!.metricId!, seriesKey: s.id!.dimension! }, timestamps: s.timestampList, values: s.valueList }; @@ -1767,7 +1767,7 @@ export class MetricsAdvisorClient { const definitions = segmentResponse.value?.map((d) => { return { metricId: d.metricId!, - dimension: d.dimension! + seriesKey: d.dimension! }; }); const resultArray = Object.defineProperty(definitions || [], "continuationToken", { @@ -1793,7 +1793,7 @@ export class MetricsAdvisorClient { const definitions = segmentResponse.value?.map((d) => { return { metricId: d.metricId!, - dimension: d.dimension! + seriesKey: d.dimension! }; }); const resultArray = Object.defineProperty(definitions || [], "continuationToken", { diff --git a/sdk/metricsadvisor/ai-metrics-advisor/src/models.ts b/sdk/metricsadvisor/ai-metrics-advisor/src/models.ts index d7bafc5ee40b..d845ebb3297e 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/src/models.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/src/models.ts @@ -194,7 +194,7 @@ export type DataFeedStatus = "Paused" | "Active"; /** * Represents a Metrics Advisor data feed. */ -export type DataFeed = { +export type MetricsAdvisorDataFeed = { /** * Unique id of the data feed. */ @@ -861,7 +861,7 @@ export type MetricSeriesGroupDetectionCondition = DetectionConditionsCommon & { /** * identifies the group of time series */ - group: DimensionKey; + groupKey: DimensionKey; }; /** @@ -871,7 +871,7 @@ export type MetricSingleSeriesDetectionCondition = DetectionConditionsCommon & { /** * identifies the time series */ - series: DimensionKey; + seriesKey: DimensionKey; }; /** @@ -1337,7 +1337,7 @@ export type MetricAnomalyAlertScope = /** * dimension scope */ - dimensionAnomalyScope: DimensionKey; + seriesGroupInScope: DimensionKey; } | { scopeType: "TopN"; @@ -1592,7 +1592,7 @@ export interface MetricSeriesDefinition { /** * identifies a time series */ - dimension: Record; + seriesKey: Record; } /** @@ -1620,7 +1620,7 @@ export interface MetricEnrichedSeriesData { /** * identifies the time series. */ - series: DimensionKey; + seriesKey: DimensionKey; /** * timestamp list */ @@ -1656,7 +1656,7 @@ export interface MetricEnrichedSeriesData { /** * Contains response data for the getDataFeed operation. */ -export type GetDataFeedResponse = DataFeed & { +export type GetDataFeedResponse = MetricsAdvisorDataFeed & { /** * The underlying HTTP response. */ @@ -1696,7 +1696,7 @@ export type GetDetectionConfigResponse = AnomalyDetectionConfiguration & { /** * Contains response data for the getAnomalyAlertConfiguration operation. */ -export type GetAnomalyAlertConfigurationResponse = AnomalyAlertConfiguration & { +export type GetAlertConfigResponse = AnomalyAlertConfiguration & { /** * The underlying HTTP response. */ @@ -1976,7 +1976,7 @@ export interface MetricEnrichmentStatusPageResponse extends Array { +export interface DataFeedsPageResponse extends Array { /** * Continuation token to pass to `byPage()` to resume listing of more results if available. */ diff --git a/sdk/metricsadvisor/ai-metrics-advisor/src/transforms.ts b/sdk/metricsadvisor/ai-metrics-advisor/src/transforms.ts index 7044ae9c989b..6119119d5e3e 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/src/transforms.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/src/transforms.ts @@ -57,7 +57,7 @@ import { MetricChangePointFeedback, MetricCommentFeedback, MetricPeriodFeedback, - DataFeed, + MetricsAdvisorDataFeed, AzureBlobDataFeedSource, AzureDataExplorerDataFeedSource, NotificationHookUnion, @@ -106,7 +106,7 @@ export function fromServiceAnomalyDetectionConfiguration( changeThresholdCondition } = c; return { - group: group.dimension, + groupKey: group.dimension, conditionOperator, smartDetectionCondition, hardThresholdCondition: hardThresholdCondition as HardThresholdConditionUnion, @@ -122,7 +122,7 @@ export function fromServiceAnomalyDetectionConfiguration( changeThresholdCondition } = c; return { - series: series.dimension, + seriesKey: series.dimension, conditionOperator, smartDetectionCondition, hardThresholdCondition: hardThresholdCondition as HardThresholdConditionUnion, @@ -142,14 +142,14 @@ export function toServiceAnomalyDetectionConfiguration( wholeMetricConfiguration: from.wholeSeriesDetectionCondition, dimensionGroupOverrideConfigurations: from.seriesGroupDetectionConditions?.map((c) => { const { - group, + groupKey, conditionOperator, smartDetectionCondition, hardThresholdCondition, changeThresholdCondition } = c; return { - group: { dimension: group }, + group: { dimension: groupKey }, conditionOperator, smartDetectionCondition, hardThresholdCondition, @@ -158,14 +158,14 @@ export function toServiceAnomalyDetectionConfiguration( }), seriesOverrideConfigurations: from.seriesDetectionConditions?.map((c) => { const { - series, + seriesKey, conditionOperator, smartDetectionCondition, hardThresholdCondition, changeThresholdCondition } = c; return { - series: { dimension: series }, + series: { dimension: seriesKey }, conditionOperator, smartDetectionCondition, hardThresholdCondition, @@ -184,14 +184,14 @@ export function toServiceAnomalyDetectionConfigurationPatch( wholeMetricConfiguration: from.wholeSeriesDetectionCondition, dimensionGroupOverrideConfigurations: from.seriesGroupDetectionConditions?.map((c) => { const { - group, + groupKey, conditionOperator, smartDetectionCondition, hardThresholdCondition, changeThresholdCondition } = c; return { - group: { dimension: group }, + group: { dimension: groupKey }, conditionOperator, smartDetectionCondition, hardThresholdCondition, @@ -200,14 +200,14 @@ export function toServiceAnomalyDetectionConfigurationPatch( }), seriesOverrideConfigurations: from.seriesDetectionConditions?.map((c) => { const { - series, + seriesKey, conditionOperator, smartDetectionCondition, hardThresholdCondition, changeThresholdCondition } = c; return { - series: { dimension: series }, + series: { dimension: seriesKey }, conditionOperator, smartDetectionCondition, hardThresholdCondition, @@ -885,7 +885,9 @@ export function toServiceDataFeedSourcePatch( } } -export function fromServiceDataFeedDetailUnion(original: ServiceDataFeedDetailUnion): DataFeed { +export function fromServiceDataFeedDetailUnion( + original: ServiceDataFeedDetailUnion +): MetricsAdvisorDataFeed { const metricMap: Record = {}; for (const metric of original.metrics) { metricMap[metric.name] = metric.id!; @@ -931,7 +933,7 @@ export function fromServiceDataFeedDetailUnion(original: ServiceDataFeedDetailUn switch (original.dataSourceType) { case "AzureApplicationInsights": { const orig = original as ServiceAzureApplicationInsightsDataFeed; - const result1: DataFeed = { + const result1: MetricsAdvisorDataFeed = { ...common, source: { dataSourceType: "AzureApplicationInsights", @@ -964,7 +966,7 @@ export function fromServiceDataFeedDetailUnion(original: ServiceDataFeedDetailUn container: orig2.dataSourceParameter.container, ...auth }; - const result2: DataFeed = { + const result2: MetricsAdvisorDataFeed = { ...common, source }; @@ -972,7 +974,7 @@ export function fromServiceDataFeedDetailUnion(original: ServiceDataFeedDetailUn } case "AzureCosmosDB": { const orig3 = original as ServiceAzureCosmosDBDataFeed; - const result3: DataFeed = { + const result3: MetricsAdvisorDataFeed = { ...common, source: { dataSourceType: "AzureCosmosDB", @@ -1009,7 +1011,7 @@ export function fromServiceDataFeedDetailUnion(original: ServiceDataFeedDetailUn query: orig4.dataSourceParameter.query, ...auth }; - const result4: DataFeed = { + const result4: MetricsAdvisorDataFeed = { ...common, source }; @@ -1042,7 +1044,7 @@ export function fromServiceDataFeedDetailUnion(original: ServiceDataFeedDetailUn fileTemplate: orig5.dataSourceParameter.fileTemplate, ...auth }; - const result5: DataFeed = { + const result5: MetricsAdvisorDataFeed = { ...common, source }; @@ -1050,7 +1052,7 @@ export function fromServiceDataFeedDetailUnion(original: ServiceDataFeedDetailUn } case "AzureTable": { const orig6 = original as ServiceAzureTableDataFeed; - const result6: DataFeed = { + const result6: MetricsAdvisorDataFeed = { ...common, source: { dataSourceType: "AzureTable", @@ -1064,7 +1066,7 @@ export function fromServiceDataFeedDetailUnion(original: ServiceDataFeedDetailUn } case "InfluxDB": { const orig8 = original as ServiceInfluxDBDataFeed; - const result8: DataFeed = { + const result8: MetricsAdvisorDataFeed = { ...common, source: { dataSourceType: "InfluxDB", @@ -1080,7 +1082,7 @@ export function fromServiceDataFeedDetailUnion(original: ServiceDataFeedDetailUn } case "MongoDB": { const orig9 = original as ServiceMongoDBDataFeed; - const result9: DataFeed = { + const result9: MetricsAdvisorDataFeed = { ...common, source: { dataSourceType: "MongoDB", @@ -1094,7 +1096,7 @@ export function fromServiceDataFeedDetailUnion(original: ServiceDataFeedDetailUn } case "MySql": { const orig10 = original as ServiceMySqlDataFeed; - const result10: DataFeed = { + const result10: MetricsAdvisorDataFeed = { ...common, source: { dataSourceType: "MySql", @@ -1107,7 +1109,7 @@ export function fromServiceDataFeedDetailUnion(original: ServiceDataFeedDetailUn } case "PostgreSql": { const orig11 = original as ServicePostgreSqlDataFeed; - const result11: DataFeed = { + const result11: MetricsAdvisorDataFeed = { ...common, source: { dataSourceType: "PostgreSql", @@ -1152,7 +1154,7 @@ export function fromServiceDataFeedDetailUnion(original: ServiceDataFeedDetailUn } else { throw new Error(`Unexpected authentication type: '${original.authenticationType}'`); } - const result12: DataFeed = { + const result12: MetricsAdvisorDataFeed = { ...common, source: { dataSourceType: "SqlServer", @@ -1164,7 +1166,7 @@ export function fromServiceDataFeedDetailUnion(original: ServiceDataFeedDetailUn } case "AzureEventHubs": { const orig13 = original as ServiceAzureEventHubsDataFeed; - const result13: DataFeed = { + const result13: MetricsAdvisorDataFeed = { ...common, source: { dataSourceType: "AzureEventHubs", @@ -1177,7 +1179,7 @@ export function fromServiceDataFeedDetailUnion(original: ServiceDataFeedDetailUn } case "AzureLogAnalytics": { const orig14 = original as ServiceAzureLogAnalyticsDataFeed; - const result14: DataFeed = { + const result14: MetricsAdvisorDataFeed = { ...common, source: { dataSourceType: "AzureLogAnalytics", @@ -1301,7 +1303,7 @@ export function fromServiceAlertConfiguration( c.anomalyScopeType === "All" ? { scopeType: "All" } : c.anomalyScopeType === "Dimension" - ? { scopeType: "Dimension", dimensionAnomalyScope: c.dimensionAnomalyScope!.dimension } + ? { scopeType: "Dimension", seriesGroupInScope: c.dimensionAnomalyScope!.dimension } : { scopeType: "TopN", topNAnomalyScope: c.topNAnomalyScope! }; return { detectionConfigurationId: c.anomalyDetectionConfigurationId, @@ -1333,7 +1335,7 @@ export function toServiceAlertConfiguration( : c.alertScope.scopeType === "Dimension" ? { anomalyScopeType: "Dimension", - dimensionAnomalyScope: { dimension: c.alertScope.dimensionAnomalyScope } + dimensionAnomalyScope: { dimension: c.alertScope.seriesGroupInScope } } : { anomalyScopeType: "TopN", topNAnomalyScope: c.alertScope.topNAnomalyScope }; return { @@ -1366,7 +1368,7 @@ export function toServiceAlertConfigurationPatch( : c.alertScope.scopeType === "Dimension" ? { anomalyScopeType: "Dimension", - dimensionAnomalyScope: { dimension: c.alertScope.dimensionAnomalyScope } + dimensionAnomalyScope: { dimension: c.alertScope.seriesGroupInScope } } : { anomalyScopeType: "TopN", topNAnomalyScope: c.alertScope.topNAnomalyScope }; return { diff --git a/sdk/metricsadvisor/ai-metrics-advisor/test/public/adminclient.spec.ts b/sdk/metricsadvisor/ai-metrics-advisor/test/public/adminclient.spec.ts index 6c2214a9fc2b..c83f66dd11c4 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/test/public/adminclient.spec.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/test/public/adminclient.spec.ts @@ -179,7 +179,7 @@ matrix([[true, false]] as const, async (useAad) => { }, seriesGroupDetectionConditions: [ { - group: { city: "Mumbai" }, + groupKey: { city: "Mumbai" }, hardThresholdCondition: { anomalyDetectorDirection: "Up", upperBound: 400, @@ -189,7 +189,7 @@ matrix([[true, false]] as const, async (useAad) => { ], seriesDetectionConditions: [ { - series: { city: "Kolkata", category: "Handmade" }, + seriesKey: { city: "Kolkata", category: "Handmade" }, changeThresholdCondition: { anomalyDetectorDirection: "Both", shiftPoint: 1, @@ -216,18 +216,18 @@ matrix([[true, false]] as const, async (useAad) => { "Expecting valid seriesGroupDetectionConditions" ); assert.deepStrictEqual( - actual.seriesGroupDetectionConditions![0].group, - expected.seriesGroupDetectionConditions![0].group + actual.seriesGroupDetectionConditions![0].groupKey, + expected.seriesGroupDetectionConditions![0].groupKey ); assert.deepStrictEqual( actual.seriesGroupDetectionConditions![0].hardThresholdCondition, expected.seriesGroupDetectionConditions![0].hardThresholdCondition ); assert.ok(actual.seriesDetectionConditions, "Expecting valid seriesDetectionConditions"); - delete (actual.seriesDetectionConditions![0].series as any).seriesId; // workaround service issue + delete (actual.seriesDetectionConditions![0].seriesKey as any).seriesId; // workaround service issue assert.deepStrictEqual( - actual.seriesDetectionConditions![0].series, - expected.seriesDetectionConditions![0].series + actual.seriesDetectionConditions![0].seriesKey, + expected.seriesDetectionConditions![0].seriesKey ); assert.deepStrictEqual( actual.seriesDetectionConditions![0].changeThresholdCondition, diff --git a/sdk/metricsadvisor/ai-metrics-advisor/test/public/advisorclient.spec.ts b/sdk/metricsadvisor/ai-metrics-advisor/test/public/advisorclient.spec.ts index df4dbf04e311..c68166d66640 100644 --- a/sdk/metricsadvisor/ai-metrics-advisor/test/public/advisorclient.spec.ts +++ b/sdk/metricsadvisor/ai-metrics-advisor/test/public/advisorclient.spec.ts @@ -271,9 +271,9 @@ matrix([[true, false]] as const, async (useAad) => { new Date(Date.UTC(2020, 7, 5)) ); let result = await iterator.next(); - assert.ok(result.value.dimension, "Expecting first definition"); + assert.ok(result.value.seriesKey, "Expecting first definition"); result = await iterator.next(); - assert.ok(result.value.dimension, "Expecting second definition"); + assert.ok(result.value.seriesKey, "Expecting second definition"); }); it("listMetricSeriesDefinitions() with datetime string", async function() { @@ -282,9 +282,9 @@ matrix([[true, false]] as const, async (useAad) => { "2020-08-05T00:00:00.000Z" ); let result = await iterator.next(); - assert.ok(result.value.dimension, "Expecting first definition"); + assert.ok(result.value.seriesKey, "Expecting first definition"); result = await iterator.next(); - assert.ok(result.value.dimension, "Expecting second definition"); + assert.ok(result.value.seriesKey, "Expecting second definition"); }); it("listMetricSeriesDefinitions() by page", async function() { @@ -336,7 +336,7 @@ matrix([[true, false]] as const, async (useAad) => { data![0].definition.metricId, testEnv.METRICS_ADVISOR_AZURE_SQLSERVER_METRIC_ID_1 ); - assert.deepStrictEqual(data![0].definition.dimension, { + assert.deepStrictEqual(data![0].definition.seriesKey, { city: "Manila", category: "Shoes Handbags & Sunglasses" }); @@ -353,7 +353,7 @@ matrix([[true, false]] as const, async (useAad) => { data![1].definition.metricId, testEnv.METRICS_ADVISOR_AZURE_SQLSERVER_METRIC_ID_1 ); - assert.deepStrictEqual(data![1].definition.dimension, { + assert.deepStrictEqual(data![1].definition.seriesKey, { city: "Cairo", category: "Home & Garden" }); @@ -382,7 +382,7 @@ matrix([[true, false]] as const, async (useAad) => { data![0].definition.metricId, testEnv.METRICS_ADVISOR_AZURE_SQLSERVER_METRIC_ID_1 ); - assert.deepStrictEqual(data![0].definition.dimension, { + assert.deepStrictEqual(data![0].definition.seriesKey, { city: "Cairo", category: "Home & Garden" }); @@ -408,7 +408,7 @@ matrix([[true, false]] as const, async (useAad) => { ); assert.ok(data && data!.length === 2, "Expecting data for two time series"); - assert.deepStrictEqual(data![0].series, { + assert.deepStrictEqual(data![0].seriesKey, { city: "Manila", category: "Shoes Handbags & Sunglasses" }); @@ -423,7 +423,7 @@ matrix([[true, false]] as const, async (useAad) => { "Expecting enriched data for the first time series" ); - assert.deepStrictEqual(data![1].series, { + assert.deepStrictEqual(data![1].seriesKey, { city: "Cairo", category: "Home & Garden" }); @@ -451,7 +451,7 @@ matrix([[true, false]] as const, async (useAad) => { ); assert.ok(data && data!.length === 2, "Expecting data for two time series"); - assert.deepStrictEqual(data![0].series, { + assert.deepStrictEqual(data![0].seriesKey, { city: "Manila", category: "Shoes Handbags & Sunglasses" });