UNPKG

@khulnasoft/cdk

Version:

Define your observability as code using the AWS CDK

69 lines (68 loc) 2.35 kB
import { F } from "ts-toolbelt"; export type QueryProps<TKey extends string> = { description?: string; parameters: QueryParameters<TKey>; disableStackFilter?: boolean; }; export type QueryParameters<TKey extends string> = { datasets?: Datasets[]; filterCombination?: "AND" | "OR"; filters: Filter[]; needle?: Needle; calculations?: never; groupBys?: never; orderBy?: never; limit?: number; } | { datasets?: Datasets[]; filterCombination?: "AND" | "OR"; filters?: Filter[]; needle?: Needle; calculations?: Calculation<TKey>[]; groupBys?: QueryGroupBy[]; orderBy?: { value: F.NoInfer<TKey> | "COUNT"; order?: "ASC" | "DESC"; }; limit?: number; }; type Needle = { value: string; isRegex?: boolean; matchCase?: boolean; }; export type QueryGroupBy = { type?: "string" | "number" | "boolean"; value: string; }; type Datasets = "lambda-logs" | "cloudwatch-metrics" | "apigateway-logs" | "cloudtrail" | "ecs-logs" | "otel" | "apprunner-logs" | "x-ray"; export type Calculation<TKey extends string> = BaseCalculationObject<TKey> | CountCalculation<TKey>; export type Filter = { key: Keys; operation: QueryOperationArray; value: string[]; } | { key: Keys; operation: QueryOperationNull; value?: never; } | { key: Keys; operation?: QueryOperationString; value: string | number | boolean; }; type Keys = string | "$kengine.acount" | "$kengine.kengineId" | "$kengine.namespace" | "$kengine.region" | "$kengine.requestId" | "$kengine.service" | "$kengine.spanId" | "$kengine.traceId"; export type QueryOperationString = "=" | "!=" | ">" | ">=" | "<" | "<=" | "LIKE" | "NOT_LIKE" | "INCLUDES" | "MATCH_REGEX" | "DOES_NOT_INCLUDE" | "STARTS_WITH"; export type QueryOperationArray = "IN" | "NOT_IN"; export type QueryOperationNull = "EXISTS" | "DOES_NOT_EXIST"; type BaseCalculationObject<TKey> = { operation: "COUNT_DISTINCT" | "MAX" | "MIN" | "SUM" | "AVG" | "MEDIAN" | "P001" | "P01" | "P05" | "P10" | "P25" | "P75" | "P90" | "P95" | "P99" | "P999" | "STDDEV" | "VARIANCE"; key: TKey; alias?: TKey; }; type CountCalculation<TKey> = { operation: TKey extends "COUNT" ? "COUNT" : string; alias?: TKey; key?: never; }; export type DeploymentQueryParameters = QueryParameters<string>; export {};