in src/Utils/LoadtestConfigUtil.ts [258:299]
private static parseAppComponentsAndServerMetricsConfig(loadtestConfig: LoadtestConfig, appComponents: Array<any>) {
for(let value of appComponents) {
let resourceId = value.resourceId.toLowerCase();
loadtestConfig.appComponents[resourceId] = {
resourceName: (value.resourceName || Util.getResourceNameFromResourceId(resourceId)),
kind: value.kind ?? null,
resourceType: Util.getResourceTypeFromResourceId(resourceId) ?? '',
resourceId: resourceId,
subscriptionId: Util.getSubscriptionIdFromResourceId(resourceId) ?? '',
resourceGroup: Util.getResourceGroupFromResourceId(resourceId) ?? ''
};
let metrics = (value.metrics ?? []) as Array<ServerMetricsClientModel>;
if(loadtestConfig.addDefaultsForAppComponents[resourceId] == undefined) {
loadtestConfig.addDefaultsForAppComponents[resourceId] = metrics.length == 0;
}
else {
// when the same resource has metrics at one place, but not at other, we dont need defaults anymore.
loadtestConfig.addDefaultsForAppComponents[resourceId] = loadtestConfig.addDefaultsForAppComponents[resourceId] && metrics.length == 0;
}
for(let serverComponent of metrics) {
let key : string = (resourceId + '/' + (serverComponent.namespace ?? Util.getResourceTypeFromResourceId(resourceId)) + '/' + serverComponent.name).toLowerCase();
if(!loadtestConfig.serverMetricsConfig.hasOwnProperty(key) || isNullOrUndefined(loadtestConfig.serverMetricsConfig[key])) {
loadtestConfig.serverMetricsConfig[key] = {
name: serverComponent.name,
aggregation: serverComponent.aggregation,
metricNamespace: serverComponent.namespace ?? Util.getResourceTypeFromResourceId(resourceId),
resourceId: resourceId,
resourceType: Util.getResourceTypeFromResourceId(resourceId) ?? '',
id: key
}
}
else {
loadtestConfig.serverMetricsConfig[key]!.aggregation = loadtestConfig.serverMetricsConfig[key]!.aggregation + "," + serverComponent.aggregation;
}
}
}
}