Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e918a3e

Browse files
authored
[MetricsAdvisor] Flatten DataFeedOptions in data feed (Azure#12263)
and remove the wrapping `options`. We were putting into it all the rest of optional settings that don't fit into any of groupings but it's not necessary.
1 parent 25464c7 commit e918a3e

File tree

11 files changed

+179
-202
lines changed

11 files changed

+179
-202
lines changed

sdk/metricsadvisor/ai-metrics-advisor/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
- `IngestionStatus.timestamp`
4747
- `latestSuccessTimestamp` and `latestActiveTimestamp` in the return type of `getDataFeedIngestionProgress()`.
4848
- [Breaking] property `createdTime` on `DataFeed` and `MetricFeedbackCommon` to `createdOn`.
49+
- [Breaking] Remove the wrapping data feed `options` property from `DataFeed` and `DataFeedPatch` and flatten its child properties.
4950
- Parameters of `Date` type now also accept strings. No validation is done for the strings. The SDK calls `new Date()` to convert them to `Date`.
5051
- Handle potential new data feed source types gracefully
5152

sdk/metricsadvisor/ai-metrics-advisor/README.md

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -197,18 +197,16 @@ async function createDataFeed(adminClient, sqlServerConnectionString, sqlServerQ
197197
ingestionRetryDelayInSeconds: -1,
198198
stopRetryAfterInSeconds: -1
199199
},
200-
options: {
201-
rollupSettings: {
202-
rollupType: "AutoRollup",
203-
rollupMethod: "Sum",
204-
rollupIdentificationValue: "__CUSTOM_SUM__"
205-
},
206-
missingDataPointFillSettings: {
207-
fillType: "SmartFilling"
208-
},
209-
accessMode: "Private",
210-
adminEmails: ["[email protected]"]
211-
}
200+
rollupSettings: {
201+
rollupType: "AutoRollup",
202+
rollupMethod: "Sum",
203+
rollupIdentificationValue: "__CUSTOM_SUM__"
204+
},
205+
missingDataPointFillSettings: {
206+
fillType: "SmartFilling"
207+
},
208+
accessMode: "Private",
209+
adminEmails: ["[email protected]"]
212210
};
213211
const result = await adminClient.createDataFeed(dataFeed);
214212

sdk/metricsadvisor/ai-metrics-advisor/review/ai-metrics-advisor.api.md

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -194,19 +194,18 @@ export type ChangeThresholdConditionUnion = {
194194
export type CreateDataFeedOptions = DataFeedOptions & OperationOptions;
195195

196196
// @public
197-
export interface DataFeed {
197+
export type DataFeed = {
198+
id: string;
199+
name: string;
198200
createdOn: Date;
201+
status: DataFeedStatus;
202+
isAdmin: boolean;
199203
creator: string;
204+
source: DataFeedSource;
205+
schema: DataFeedSchema;
200206
granularity: DataFeedGranularity;
201-
id: string;
202207
ingestionSettings: DataFeedIngestionSettings;
203-
isAdmin: boolean;
204-
name: string;
205-
options?: DataFeedOptions;
206-
schema: DataFeedSchema;
207-
source: DataFeedSource;
208-
status: DataFeedStatus;
209-
}
208+
} & DataFeedOptions;
210209

211210
// @public
212211
export type DataFeedAccessMode = "Private" | "Public";
@@ -274,17 +273,16 @@ export interface DataFeedOptions {
274273
}
275274

276275
// @public
277-
export interface DataFeedPatch {
278-
ingestionSettings?: DataFeedIngestionSettings;
276+
export type DataFeedPatch = {
279277
name?: string;
280-
options?: DataFeedOptions & {
281-
status?: DataFeedDetailStatus;
282-
};
278+
source: DataFeedSourcePatch;
283279
schema?: {
284280
timestampColumn?: string;
285281
};
286-
source: DataFeedSourcePatch;
287-
}
282+
ingestionSettings?: DataFeedIngestionSettings;
283+
} & DataFeedOptions & {
284+
status?: DataFeedDetailStatus;
285+
};
288286

289287
// @public
290288
export type DataFeedRollupMethod = "None" | "Sum" | "Max" | "Min" | "Avg" | "Count";

sdk/metricsadvisor/ai-metrics-advisor/samples/javascript/dataFeed.js

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -109,18 +109,16 @@ async function createDataFeed(client) {
109109
ingestionRetryDelayInSeconds: -1,
110110
stopRetryAfterInSeconds: -1
111111
},
112-
options: {
113-
rollupSettings: {
114-
rollupType: "AutoRollup",
115-
rollupMethod: "Sum",
116-
rollupIdentificationValue: "__SUM__"
117-
},
118-
missingDataPointFillSettings: {
119-
fillType: "CustomValue",
120-
customFillValue: 567
121-
},
122-
accessMode: "Private"
123-
}
112+
rollupSettings: {
113+
rollupType: "AutoRollup",
114+
rollupMethod: "Sum",
115+
rollupIdentificationValue: "__SUM__"
116+
},
117+
missingDataPointFillSettings: {
118+
fillType: "CustomValue",
119+
customFillValue: 567
120+
},
121+
accessMode: "Private"
124122
};
125123

126124
const result = await client.createDataFeed(feed);
@@ -149,13 +147,11 @@ async function updateDataFeed(client, dataFeedId) {
149147
stopRetryAfterInSeconds: 667777,
150148
ingestionStartOffsetInSeconds: 4444
151149
},
152-
options: {
153-
description: "New datafeed description",
154-
missingDataPointFillSettings: {
155-
fillType: "SmartFilling"
156-
},
157-
status: "Paused"
158-
}
150+
description: "New datafeed description",
151+
missingDataPointFillSettings: {
152+
fillType: "SmartFilling"
153+
},
154+
status: "Paused"
159155
};
160156

161157
try {

sdk/metricsadvisor/ai-metrics-advisor/samples/javascript/quickstart.js

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -116,18 +116,16 @@ async function createDataFeed(adminClient, sqlServerConnectionString, sqlServerQ
116116
ingestionRetryDelayInSeconds: -1,
117117
stopRetryAfterInSeconds: -1
118118
},
119-
options: {
120-
rollupSettings: {
121-
rollupType: "AutoRollup",
122-
rollupMethod: "Sum",
123-
rollupIdentificationValue: "__SUM__"
124-
},
125-
missingDataPointFillSettings: {
126-
fillType: "SmartFilling"
127-
},
128-
accessMode: "Private",
129-
adminEmails: ["[email protected]"]
130-
}
119+
rollupSettings: {
120+
rollupType: "AutoRollup",
121+
rollupMethod: "Sum",
122+
rollupIdentificationValue: "__SUM__"
123+
},
124+
missingDataPointFillSettings: {
125+
fillType: "SmartFilling"
126+
},
127+
accessMode: "Private",
128+
adminEmails: ["[email protected]"]
131129
};
132130
const result = await adminClient.createDataFeed(dataFeed);
133131
return result;

sdk/metricsadvisor/ai-metrics-advisor/samples/typescript/src/dataFeed.ts

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -115,18 +115,16 @@ async function createDataFeed(
115115
ingestionRetryDelayInSeconds: -1,
116116
stopRetryAfterInSeconds: -1
117117
},
118-
options: {
119-
rollupSettings: {
120-
rollupType: "AutoRollup",
121-
rollupMethod: "Sum",
122-
rollupIdentificationValue: "__CUSTOM_SUM__"
123-
},
124-
missingDataPointFillSettings: {
125-
fillType: "CustomValue",
126-
customFillValue: 567
127-
},
128-
accessMode: "Private"
129-
}
118+
rollupSettings: {
119+
rollupType: "AutoRollup",
120+
rollupMethod: "Sum",
121+
rollupIdentificationValue: "__CUSTOM_SUM__"
122+
},
123+
missingDataPointFillSettings: {
124+
fillType: "CustomValue",
125+
customFillValue: 567
126+
},
127+
accessMode: "Private"
130128
};
131129
const result = await client.createDataFeed(feed);
132130

@@ -155,13 +153,11 @@ async function updateDataFeed(client: MetricsAdvisorAdministrationClient, dataFe
155153
stopRetryAfterInSeconds: 667777,
156154
ingestionStartOffsetInSeconds: 4444
157155
},
158-
options: {
159-
description: "New datafeed description",
160-
missingDataPointFillSettings: {
161-
fillType: "SmartFilling"
162-
},
163-
status: "Paused"
164-
}
156+
description: "New datafeed description",
157+
missingDataPointFillSettings: {
158+
fillType: "SmartFilling"
159+
},
160+
status: "Paused"
165161
};
166162

167163
try {

sdk/metricsadvisor/ai-metrics-advisor/samples/typescript/src/quickstart.ts

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -128,18 +128,16 @@ async function createDataFeed(
128128
ingestionRetryDelayInSeconds: -1,
129129
stopRetryAfterInSeconds: -1
130130
},
131-
options: {
132-
rollupSettings: {
133-
rollupType: "AutoRollup",
134-
rollupMethod: "Sum",
135-
rollupIdentificationValue: "__SUM__"
136-
},
137-
missingDataPointFillSettings: {
138-
fillType: "SmartFilling"
139-
},
140-
accessMode: "Private",
141-
adminEmails: ["[email protected]"]
142-
}
131+
rollupSettings: {
132+
rollupType: "AutoRollup",
133+
rollupMethod: "Sum",
134+
rollupIdentificationValue: "__SUM__"
135+
},
136+
missingDataPointFillSettings: {
137+
fillType: "SmartFilling"
138+
},
139+
accessMode: "Private",
140+
adminEmails: ["[email protected]"]
143141
};
144142
const result = await adminClient.createDataFeed(dataFeed);
145143

sdk/metricsadvisor/ai-metrics-advisor/src/metricsAdvisorAdministrationClient.ts

Lines changed: 40 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -187,35 +187,46 @@ export class MetricsAdvisorAdministrationClient {
187187
"MetricsAdvisorAdministrationClient-createDataFeed",
188188
operationOptions
189189
);
190-
const { name, granularity, source, schema, ingestionSettings, options } = feed;
190+
const {
191+
name,
192+
granularity,
193+
source,
194+
schema,
195+
ingestionSettings,
196+
rollupSettings,
197+
missingDataPointFillSettings,
198+
accessMode,
199+
adminEmails,
200+
viewerEmails,
201+
description
202+
} = feed;
203+
191204
if (source.dataSourceType === "Unknown") {
192205
throw new Error("Cannot create a data feed with the Unknown source type.");
193206
}
207+
194208
const needRollup: NeedRollupEnum | undefined =
195-
options?.rollupSettings?.rollupType === "AutoRollup"
209+
rollupSettings?.rollupType === "AutoRollup"
196210
? "NeedRollup"
197-
: options?.rollupSettings?.rollupType === "AlreadyRollup"
211+
: rollupSettings?.rollupType === "AlreadyRollup"
198212
? "AlreadyRollup"
199-
: options?.rollupSettings?.rollupType === "NoRollup"
213+
: rollupSettings?.rollupType === "NoRollup"
200214
? "NoRollup"
201215
: undefined;
202216
const rollUpColumns: string[] | undefined =
203-
options?.rollupSettings?.rollupType === "AutoRollup"
204-
? options?.rollupSettings.autoRollupGroupByColumnNames
217+
rollupSettings?.rollupType === "AutoRollup"
218+
? rollupSettings.autoRollupGroupByColumnNames
205219
: undefined;
206220
const allUpIdentification: string | undefined =
207-
options?.rollupSettings?.rollupType === "AutoRollup" ||
208-
options?.rollupSettings?.rollupType === "AlreadyRollup"
209-
? options?.rollupSettings.rollupIdentificationValue
221+
rollupSettings?.rollupType === "AutoRollup" || rollupSettings?.rollupType === "AlreadyRollup"
222+
? rollupSettings.rollupIdentificationValue
210223
: undefined;
211224
const rollUpMethod: DataFeedRollupMethod | undefined =
212-
options?.rollupSettings?.rollupType === "AutoRollup"
213-
? options?.rollupSettings.rollupMethod
214-
: undefined;
215-
const fillMissingPointType = options?.missingDataPointFillSettings?.fillType;
225+
rollupSettings?.rollupType === "AutoRollup" ? rollupSettings.rollupMethod : undefined;
226+
const fillMissingPointType = missingDataPointFillSettings?.fillType;
216227
const fillMissingPointValue =
217-
options?.missingDataPointFillSettings?.fillType === "CustomValue"
218-
? options?.missingDataPointFillSettings.customFillValue
228+
missingDataPointFillSettings?.fillType === "CustomValue"
229+
? missingDataPointFillSettings.customFillValue
219230
: undefined;
220231
try {
221232
const requestOptions = operationOptionsToRequestOptionsBase(finalOptions);
@@ -237,10 +248,10 @@ export class MetricsAdvisorAdministrationClient {
237248
rollUpMethod,
238249
fillMissingPointType,
239250
fillMissingPointValue,
240-
viewMode: options?.accessMode,
241-
admins: options?.adminEmails,
242-
viewers: options?.viewerEmails,
243-
dataFeedDescription: options?.description,
251+
viewMode: accessMode,
252+
admins: adminEmails,
253+
viewers: viewerEmails,
254+
dataFeedDescription: description,
244255
...finalOptions
245256
};
246257
const result = await this.client.createDataFeed(body, requestOptions);
@@ -467,7 +478,7 @@ export class MetricsAdvisorAdministrationClient {
467478
dataSourceParameter: patch.source.dataSourceParameter,
468479
// name and description
469480
dataFeedName: patch.name,
470-
dataFeedDescription: patch.options?.description,
481+
dataFeedDescription: patch.description,
471482
// schema
472483
timestampColumn: patch.schema?.timestampColumn,
473484
// ingestion settings
@@ -477,19 +488,19 @@ export class MetricsAdvisorAdministrationClient {
477488
minRetryIntervalInSeconds: patch.ingestionSettings?.ingestionRetryDelayInSeconds,
478489
stopRetryAfterInSeconds: patch.ingestionSettings?.stopRetryAfterInSeconds,
479490
// rollup settings
480-
...toServiceRollupSettings(patch.options?.rollupSettings),
491+
...toServiceRollupSettings(patch.rollupSettings),
481492
// missing point filling settings
482-
fillMissingPointType: patch.options?.missingDataPointFillSettings?.fillType,
493+
fillMissingPointType: patch.missingDataPointFillSettings?.fillType,
483494
fillMissingPointValue:
484-
patch.options?.missingDataPointFillSettings?.fillType === "CustomValue"
485-
? patch.options.missingDataPointFillSettings.customFillValue
495+
patch.missingDataPointFillSettings?.fillType === "CustomValue"
496+
? patch.missingDataPointFillSettings.customFillValue
486497
: undefined,
487498
// other options
488-
viewMode: patch.options?.accessMode,
489-
admins: patch.options?.adminEmails,
490-
viewers: patch.options?.viewerEmails,
491-
status: patch.options?.status,
492-
actionLinkTemplate: patch.options?.actionLinkTemplate
499+
viewMode: patch.accessMode,
500+
admins: patch.adminEmails,
501+
viewers: patch.viewerEmails,
502+
status: patch.status,
503+
actionLinkTemplate: patch.actionLinkTemplate
493504
};
494505
await this.client.updateDataFeed(dataFeedId, patchBody, requestOptions);
495506
return this.getDataFeed(dataFeedId);

0 commit comments

Comments
 (0)