All files / lib/canned-metrics canned-metrics-schema.ts

100% Statements 2/2
100% Branches 0/0
100% Functions 1/1
100% Lines 2/2

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74      1x   1x                                                                                                                                        
/**
 * Get the canned metrics source file
 */
export function loadCannedMetricsFile(): CannedMetricsFile {
  // eslint-disable-next-line @typescript-eslint/no-require-imports
  return require('./services.json');
}
 
/**
 * Schema definitions for the accompanying file "services.json".
 */
export type CannedMetricsFile = MetricInfoGroup[];
 
export interface MetricInfoGroup {
  /**
   * List of metric templates
   */
  readonly metricTemplates: MetricTemplate[];
}
 
 
export interface MetricTemplate {
  /**
   * CloudFormation resource name
   */
  readonly resourceType: string;
 
  /**
   * Metric namespace
   */
  readonly namespace: string;
 
  /**
   * Set of dimensions for this set of metrics
   */
  readonly dimensions: Dimension[];
 
  /**
   * Set of metrics these dimensions apply to
   */
  readonly metrics: Metric[];
}
 
/**
 * Dimension for this set of metric templates
 */
export interface Dimension {
  /**
   * Name of the dimension
   */
  readonly dimensionName: string;
 
  /**
   * A potential fixed value for this dimension
   *
   * (Currently unused by the spec reader, but could be used)
   */
  readonly dimensionValue?: string;
}
 
/**
 * A description of an available metric
 */
export interface Metric {
  /**
   * Name of the metric
   */
  readonly name: string;
 
  /**
   * Default (suggested) statistic for this metric
   */
  readonly defaultStat: string;
}