constructor()

in cdk/lib/cloudwatch-dashboard.ts [14:81]


    constructor(scope: cdk.Construct, id: string, props: BeamDashboardProps) {
        super(scope, id, props);

        const iteratorAge = new Metric({
          namespace: 'AWS/Kinesis',
          metricName: 'GetRecords.IteratorAgeMilliseconds',
          dimensions: {
            StreamName: props.inputStream.streamName
          },
          period: Duration.minutes(1),
          statistic: 'max'
        });
    
        const incomingRecords = new Metric({
          namespace: 'AWS/Kinesis',
          metricName: 'IncomingRecords',
          dimensions: {
            StreamName: props.inputStream.streamName
          },
          period: Duration.minutes(1),
          statistic: 'sum'
        });  
    
        this.addWidgets(new cloudwatch.GraphWidget({
          left: [iteratorAge],
          right: [incomingRecords],
          width: 24
        }));
    
        this.addWidgets(new cloudwatch.GraphWidget({
          left: [
            new Metric({
              namespace: 'Beam',
              metricName: 'Number of Trips',
              dimensions: {
                StreamName: props.inputStream.streamName
              },
              period: Duration.seconds(5),
              statistic: 'max'
            })        
          ],
          width: 24
        }));
    
        let toMetric = (statistic: string) => (borough: string) => new Metric({
          namespace: 'Beam',
          metricName: 'Number of Trips',
          dimensions: {
            StreamName: props.inputStream.streamName,
            Borough: borough
          },
          period: Duration.seconds(5),
          statistic: statistic
        });
    
        this.addWidgets(new cloudwatch.GraphWidget({
          left: ['Bronx', 'Brooklyn', 'Queens', 'Staten Island'].map(toMetric('max')),
          right: ['Manhattan', 'Unknown'].map(toMetric('max')),
          width: 24
        }));
    
        /*
        this.addWidgets(new cloudwatch.GraphWidget({
          left: ['Bronx', 'Brooklyn', 'Manhattan', 'Queens', 'Staten Island'].map(toMetric('samplecount')),
          width: 24
        }));
        */
    }