@khulnasoft/cdk
Version:
Define your observability as code using the AWS CDK
188 lines (170 loc) • 8.31 kB
text/typescript
/**
* Creates a calculation object that computes the count of all events
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function count(alias?: string) {
return { operation: "COUNT", alias } as const
}
/**
* Creates a calculation object that computes the count of distinct events
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function countDistinct(key: string, alias?: string) {
return { operation: "COUNT_DISTINCT", key, alias } as const;
}
/**
* Creates a calculation object that computes the maximum value of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function max(key: string, alias?: string) {
return { operation: "MAX", key, alias } as const;
}
/**
* Creates a calculation object that computes the minimum value of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function min(key: string, alias?: string) {
return { operation: "MIN", key, alias } as const;
}
/**
* Creates a calculation object that computes the sum of all values of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function sum(key: string, alias?: string) {
return { operation: "SUM", key, alias } as const;
}
/**
* Creates a calculation object that computes the average value of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function avg(key: string, alias?: string) {
return { operation: "AVG", key, alias } as const;
}
/**
* Creates a calculation object that computes the median value of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function median(key: string, alias?: string) {
return { operation: "MEDIAN", key, alias } as const;
}
/**
* Creates a calculation object that computes the 0.1-th percentile of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function p001(key: string, alias?: string) {
return { operation: "P001", key, alias } as const;
}
/**
* Creates a calculation object that computes the 1st percentile of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function p01(key: string, alias?: string) {
return { operation: "P01", key, alias } as const;
}
/**
* Creates a calculation object that computes the 5th percentile of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function p05(key: string, alias?: string) {
return { operation: "P05", key, alias } as const;
}
/**
* Creates a calculation object that computes the 10th percentile of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function p10(key: string, alias?: string) {
return { operation: "P10", key, alias } as const;
}
/**
* Creates a calculation object that computes the 25th percentile of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function p25(key: string, alias?: string) {
return { operation: "P25", key, alias } as const;
}
/**
* Creates a calculation object that computes the 75th percentile of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function p75(key: string, alias?: string) {
return { operation: "P75", key, alias } as const;
}
/**
* Creates a calculation object that computes the 90th percentile of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function p90(key: string, alias?: string) {
return { operation: "P90", key, alias } as const;
}
/**
* Creates a calculation object that computes the 95th percentile of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function p95(key: string, alias?: string) {
return { operation: "P95", key, alias } as const;
}
/**
* Creates a calculation object that computes the 99th percentile of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function p99(key: string, alias?: string) {
return { operation: "P99", key, alias } as const;
}
/**
* Creates a calculation object that computes the 99.9th percentile of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function p999(key: string, alias?: string) {
return { operation: "P999", key, alias } as const;
}
/**
* Creates a calculation object that computes the standard deviation of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function stdDev(key: string, alias?: string) {
return { operation: "STDDEV", key, alias } as const;
}
/**
* Creates a calculation object that computes the variance of the provided key
* @param {string} key The key to perform the calculation on
* @param {string} [alias] The temporary name to give to the results of the calculation
* @returns {Object} A calculation object with the operation, key, and alias properties.
*/
export function variance(key: string, alias?: string) {
return { operation: "VARIANCE", key, alias } as const;
}