public StreamMetricManager()

in src/main/java/com/amazonaws/services/kinesis/scaling/auto/StreamMetricManager.java [66:95]


	public StreamMetricManager(String streamName, int cloudWatchPeriod, List<KinesisOperationType> types,
			CloudWatchClient cloudWatchClient, KinesisClient kinesisClient) {
		this.streamName = streamName;
		this.trackedOperations.addAll(types);
		this.cloudWatchClient = cloudWatchClient;
		this.kinesisClient = kinesisClient;
		this.cloudWatchPeriod = cloudWatchPeriod;

		for (KinesisOperationType op : this.trackedOperations) {
			// create CloudWatch request templates for the information we have
			// at this point
			for (String metricName : op.getMetricsToFetch()) {
				GetMetricStatisticsRequest.Builder cwRequestBuilder = GetMetricStatisticsRequest.builder();

				cwRequestBuilder.namespace(CW_NAMESPACE)
						.dimensions(Dimension.builder().name("StreamName").value(this.streamName).build())
						.period(cloudWatchPeriod).statistics(Statistic.SUM).metricName(metricName);

				if (!this.cloudwatchRequestTemplates.containsKey(op)) {
					this.cloudwatchRequestTemplates.put(op, new ArrayList<GetMetricStatisticsRequest.Builder>() {
						{
							add(cwRequestBuilder);
						}
					});
				} else {
					this.cloudwatchRequestTemplates.get(op).add(cwRequestBuilder);
				}
			}
		}
	}