or run

tessl search
Log in

Version

Files

docs

amazon-cloudwatch.mdamazon-dynamodb.mdamazon-ec2.mdamazon-s3.mdauthentication.mdaws-iam.mdaws-lambda.mdclient-management.mderror-handling.mdindex.md
tile.json

amazon-cloudwatch.mddocs/

Amazon CloudWatch

Monitoring and observability service providing metrics, logs, and alarms for AWS resources and applications.

Capabilities

CloudWatch Client Interface

Main interface for Amazon CloudWatch operations including metrics, alarms, and monitoring.

/**
 * Amazon CloudWatch client interface
 */
public interface AmazonCloudWatch {
    String ENDPOINT_PREFIX = "monitoring";
    
    // Metrics operations
    PutMetricDataResult putMetricData(PutMetricDataRequest putMetricDataRequest);
    GetMetricStatisticsResult getMetricStatistics(GetMetricStatisticsRequest getMetricStatisticsRequest);
    ListMetricsResult listMetrics(ListMetricsRequest listMetricsRequest);
    ListMetricsResult listMetrics();
    
    // Alarm management
    PutMetricAlarmResult putMetricAlarm(PutMetricAlarmRequest putMetricAlarmRequest);
    DeleteAlarmsResult deleteAlarms(DeleteAlarmsRequest deleteAlarmsRequest);
    DescribeAlarmsResult describeAlarms(DescribeAlarmsRequest describeAlarmsRequest);
    DescribeAlarmsResult describeAlarms();
    SetAlarmStateResult setAlarmState(SetAlarmStateRequest setAlarmStateRequest);
    
    // Alarm history
    DescribeAlarmHistoryResult describeAlarmHistory(DescribeAlarmHistoryRequest describeAlarmHistoryRequest);
    
    // Lifecycle management
    void shutdown();
}

CloudWatch Client Builder

/**
 * Builder for creating Amazon CloudWatch clients
 */
public final class AmazonCloudWatchClientBuilder extends AwsClientBuilder<AmazonCloudWatchClientBuilder, AmazonCloudWatch> {
    public static AmazonCloudWatchClientBuilder standard();
    public static AmazonCloudWatch defaultClient();
}

Metrics Operations

/**
 * Request for putting metric data
 */
public class PutMetricDataRequest extends AmazonWebServiceRequest {
    public PutMetricDataRequest();
    
    public String getNamespace();
    public List<MetricDatum> getMetricData();
    
    public PutMetricDataRequest withNamespace(String namespace);
    public PutMetricDataRequest withMetricData(MetricDatum... metricData);
}

/**
 * Metric data point
 */
public class MetricDatum {
    public MetricDatum();
    
    public String getMetricName();
    public Double getValue();
    public String getUnit();
    public Date getTimestamp();
    public List<Dimension> getDimensions();
    public StatisticSet getStatisticValues();
    
    public MetricDatum withMetricName(String metricName);
    public MetricDatum withValue(Double value);
    public MetricDatum withUnit(StandardUnit unit);
    public MetricDatum withTimestamp(Date timestamp);
    public MetricDatum withDimensions(Dimension... dimensions);
}

/**
 * Metric dimension for filtering
 */
public class Dimension {
    public Dimension();
    
    public String getName();
    public String getValue();
    
    public Dimension withName(String name);
    public Dimension withValue(String value);
}

/**
 * Request for getting metric statistics
 */
public class GetMetricStatisticsRequest extends AmazonWebServiceRequest {
    public GetMetricStatisticsRequest();
    
    public String getNamespace();
    public String getMetricName();
    public List<Dimension> getDimensions();
    public Date getStartTime();
    public Date getEndTime();
    public Integer getPeriod();
    public List<String> getStatistics();
    public String getUnit();
    
    public GetMetricStatisticsRequest withNamespace(String namespace);
    public GetMetricStatisticsRequest withMetricName(String metricName);
    public GetMetricStatisticsRequest withDimensions(Dimension... dimensions);
    public GetMetricStatisticsRequest withStartTime(Date startTime);
    public GetMetricStatisticsRequest withEndTime(Date endTime);
    public GetMetricStatisticsRequest withPeriod(Integer period);
    public GetMetricStatisticsRequest withStatistics(Statistic... statistics);
}

Usage Examples:

import com.amazonaws.services.cloudwatch.*;
import com.amazonaws.services.cloudwatch.model.*;
import java.util.*;

// Create CloudWatch client
AmazonCloudWatch cloudWatchClient = AmazonCloudWatchClientBuilder.defaultClient();

// Put custom metric data
MetricDatum metric = new MetricDatum()
    .withMetricName("RequestCount")
    .withValue(1.0)
    .withUnit(StandardUnit.Count)
    .withTimestamp(new Date())
    .withDimensions(
        new Dimension().withName("Environment").withValue("Production"),
        new Dimension().withName("Service").withValue("WebAPI")
    );

PutMetricDataRequest putRequest = new PutMetricDataRequest()
    .withNamespace("MyApplication")
    .withMetricData(metric);

cloudWatchClient.putMetricData(putRequest);

// Get metric statistics
GetMetricStatisticsRequest statsRequest = new GetMetricStatisticsRequest()
    .withNamespace("AWS/EC2")
    .withMetricName("CPUUtilization")
    .withDimensions(new Dimension().withName("InstanceId").withValue("i-1234567890abcdef0"))
    .withStartTime(new Date(System.currentTimeMillis() - 3600000))  // 1 hour ago
    .withEndTime(new Date())
    .withPeriod(300)  // 5 minutes
    .withStatistics(Statistic.Average, Statistic.Maximum);

GetMetricStatisticsResult statsResult = cloudWatchClient.getMetricStatistics(statsRequest);
for (Datapoint datapoint : statsResult.getDatapoints()) {
    System.out.println("Time: " + datapoint.getTimestamp() + 
                      ", Average: " + datapoint.getAverage() + 
                      ", Max: " + datapoint.getMaximum());
}

Alarm Management

/**
 * Request for creating or updating a metric alarm
 */
public class PutMetricAlarmRequest extends AmazonWebServiceRequest {
    public PutMetricAlarmRequest();
    
    public String getAlarmName();
    public String getAlarmDescription();
    public Boolean getActionsEnabled();
    public List<String> getOKActions();
    public List<String> getAlarmActions();
    public List<String> getInsufficientDataActions();
    public String getMetricName();
    public String getNamespace();
    public String getStatistic();
    public List<Dimension> getDimensions();
    public Integer getPeriod();
    public String getUnit();
    public Integer getEvaluationPeriods();
    public Integer getDatapointsToAlarm();
    public Double getThreshold();
    public ComparisonOperator getComparisonOperator();
    public String getTreatMissingData();
    
    public PutMetricAlarmRequest withAlarmName(String alarmName);
    public PutMetricAlarmRequest withAlarmDescription(String alarmDescription);
    public PutMetricAlarmRequest withMetricName(String metricName);
    public PutMetricAlarmRequest withNamespace(String namespace);
    public PutMetricAlarmRequest withStatistic(Statistic statistic);
    public PutMetricAlarmRequest withPeriod(Integer period);
    public PutMetricAlarmRequest withEvaluationPeriods(Integer evaluationPeriods);
    public PutMetricAlarmRequest withThreshold(Double threshold);
    public PutMetricAlarmRequest withComparisonOperator(ComparisonOperator comparisonOperator);
    public PutMetricAlarmRequest withAlarmActions(String... alarmActions);
}

Usage Examples:

// Create CPU utilization alarm
PutMetricAlarmRequest alarmRequest = new PutMetricAlarmRequest()
    .withAlarmName("HighCPUUtilization")
    .withAlarmDescription("Alarm when server CPU exceeds 80%")
    .withMetricName("CPUUtilization")
    .withNamespace("AWS/EC2")
    .withStatistic(Statistic.Average)
    .withPeriod(300)
    .withEvaluationPeriods(2)
    .withThreshold(80.0)
    .withComparisonOperator(ComparisonOperator.GreaterThanThreshold)
    .withAlarmActions("arn:aws:sns:us-east-1:123456789012:cpu-alarm-topic")
    .withDimensions(new Dimension().withName("InstanceId").withValue("i-1234567890abcdef0"));

cloudWatchClient.putMetricAlarm(alarmRequest);

// List all alarms
DescribeAlarmsResult alarmsResult = cloudWatchClient.describeAlarms();
for (MetricAlarm alarm : alarmsResult.getMetricAlarms()) {
    System.out.println("Alarm: " + alarm.getAlarmName() + 
                      ", State: " + alarm.getStateValue() + 
                      ", Reason: " + alarm.getStateReason());
}

Types

public enum StandardUnit {
    Seconds, Microseconds, Milliseconds,
    Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes,
    Bits, Kilobits, Megabits, Gigabits, Terabits,
    Percent, Count,
    BytesPerSecond, KilobytesPerSecond, MegabytesPerSecond, GigabytesPerSecond, TerabytesPerSecond,
    BitsPerSecond, KilobitsPerSecond, MegabitsPerSecond, GigabitsPerSecond, TerabitsPerSecond,
    CountPerSecond, None
}

public enum Statistic {
    SampleCount, Average, Sum, Minimum, Maximum
}

public enum ComparisonOperator {
    GreaterThanOrEqualToThreshold,
    GreaterThanThreshold,
    LessThanThreshold,
    LessThanOrEqualToThreshold,
    LessThanLowerOrGreaterThanUpperThreshold,
    LessThanLowerThreshold,
    GreaterThanUpperThreshold
}

public class Datapoint {
    public Date getTimestamp();
    public Double getSampleCount();
    public Double getAverage();
    public Double getSum();
    public Double getMinimum();
    public Double getMaximum();
    public String getUnit();
}

public class MetricAlarm {
    public String getAlarmName();
    public String getAlarmDescription();
    public Date getAlarmConfigurationUpdatedTimestamp();
    public Boolean getActionsEnabled();
    public List<String> getOKActions();
    public List<String> getAlarmActions();
    public String getStateValue();
    public String getStateReason();
    public Date getStateUpdatedTimestamp();
    public String getMetricName();
    public String getNamespace();
    public String getStatistic();
    public List<Dimension> getDimensions();
    public Integer getPeriod();
    public String getUnit();
    public Integer getEvaluationPeriods();
    public Double getThreshold();
    public String getComparisonOperator();
}