in source/custom-resource/index.ts [197:247]
async function sendAnonymousMetric(requestProperties: SendMetricsRequestProperties, requestType: CustomResourceRequestTypes): Promise<{ Message: string; Data: MetricPayload }> {
const result: { Message: string; Data: MetricPayload } = { Message: '', Data: undefined };
try {
const numberOfSourceBuckets =
requestProperties.SourceBuckets?.split(',')
.map(x => x.trim())
.filter(x => !isNullOrWhiteSpace(x)).length || 0;
const payload: MetricPayload = {
Solution: SOLUTION_ID,
Version: SOLUTION_VERSION,
UUID: requestProperties.UUID,
TimeStamp: moment.utc().format('YYYY-MM-DD HH:mm:ss.S'),
Data: {
Region: AWS_REGION,
Type: requestType,
CorsEnabled: requestProperties.CorsEnabled,
NumberOfSourceBuckets: numberOfSourceBuckets,
DeployDemoUi: requestProperties.DeployDemoUi,
LogRetentionPeriod: requestProperties.LogRetentionPeriod,
AutoWebP: requestProperties.AutoWebP,
EnableSignature: requestProperties.EnableSignature,
EnableDefaultFallbackImage: requestProperties.EnableDefaultFallbackImage
}
};
result.Data = payload;
const payloadStr = JSON.stringify(payload);
const config: AxiosRequestConfig = {
headers: {
'content-type': 'application/json',
'content-length': payloadStr.length
}
};
console.info('Sending anonymous metric', payloadStr);
const response = await axios.post(METRICS_ENDPOINT, payloadStr, config);
console.info(`Anonymous metric response: ${response.statusText} (${response.status})`);
result.Message = 'Anonymous data was sent successfully.';
} catch (err) {
console.error('Error sending anonymous metric');
console.error(err);
result.Message = 'Anonymous data was sent failed.';
}
return result;
}