Configure Monitoring for Amazon EC2

Configure Monitoring for Amazon EC2

🌐 Overview

GermainUX uses the GermainUX Engine to collect Amazon EC2 and EBS metrics from Amazon CloudWatch.

Monitoring can be extended with direct operating-system, process, service, log, endpoint, and synthetic-transaction monitoring.

This page covers:

Topic

1

AWS access configuration

2

EC2 and EBS metric collection

3

EBS Burst Balance monitoring

4

Optional host-level monitoring

5

KPIs, alerts, and validation

📋 Prerequisites

Before configuring monitoring:

  1. Deploy and register a GermainUX Engine.

  2. Install and configure the AWS CLI on the Engine host if the collection uses AWS CLI commands.

  3. Confirm that the Engine can reach the required AWS API endpoints.

  4. Identify the AWS accounts, regions, instances, and EBS volumes to monitor.

  5. Create a dedicated least-privilege AWS identity or role.

  6. Store the credentials using an approved credential mechanism.

  7. Verify that the AWS identity can retrieve EC2 and CloudWatch information.

Prefer an IAM role with temporary credentials when the GermainUX Engine runs in AWS.

🔒 Required AWS Permissions

Grant only the permissions required by the selected monitoring configuration. Typical read operations include:

Operation

Describing EC2 instances

Describing EBS volumes

Listing CloudWatch metrics

Retrieving CloudWatch metric data

Reading EC2 and EBS tags

Example permissions may include:

ec2:DescribeInstances
ec2:DescribeVolumes
ec2:DescribeTags
cloudwatch:ListMetrics
cloudwatch:GetMetricData
cloudwatch:GetMetricStatistics

Additional permissions may be required for optional AWS services or monitoring methods.

Do not use the AWS root account or grant infrastructure-modification permissions for metric collection.

⚙️ Configure AWS Access

On the GermainUX Engine host:

  1. Configure an approved IAM role, AWS profile, or temporary credential mechanism.

  2. Set the AWS region explicitly.

  3. Verify the identity used by the Engine.

  4. Test access to EC2 and CloudWatch.

  5. Confirm that the expected instances and volumes are returned.

When access keys must be used, protect and rotate them according to organizational policy. Do not place credentials directly in scripts.

📈 Configure EC2 Metric Collection

  1. In GermainUX, create or select the AWS data source.

  2. Select the GermainUX Engine that will collect the metrics.

  3. Configure the AWS account and region.

  4. Add the EC2 instances to the monitoring scope.

  5. Select the required CloudWatch metrics.

  6. Define the collection schedule and timeout.

  7. Map each collected value to the appropriate GermainUX KPI.

  8. Add identifiers such as account, region, Availability Zone, instance ID, instance name, application, and environment.

  9. Save and enable the monitoring configuration.

Common EC2 metrics include:

Metric

CPU utilization

Network bytes and packets

Status-check failures

CPU credit balance for burstable instances

CPU credit usage

Disk operations for instance-store volumes, where available

image-20260830-211101.png
Configure EBS Burst Balance Script- Germain UX

Memory and filesystem utilization are not standard EC2 metrics. Collect them through the CloudWatch Agent or direct operating-system monitoring.

💾 Configure EBS Monitoring

  1. Retrieve the EBS volumes attached to the monitored EC2 instances.

  2. Collect the required metrics from the AWS/EBS CloudWatch namespace.

  3. Associate each metric with its volume ID and attached EC2 instance.

  4. Map the values to GermainUX KPIs.

  5. Configure the collection frequency.

  6. Enable the configuration and verify the results.

Useful EBS metrics include:

Metric

Read and write operations

Read and write bytes

Operation latency

Queue length

Idle time

IOPS utilization

Throughput utilization

Burst Balance

Volume status checks

Metric availability depends on the EBS volume type and AWS configuration.

⚡ Configure EBS Burst Balance Monitoring

Burst Balance represents the percentage of remaining burst credits for EBS volume types that use a burst-credit model.

📄 Create the collection script

Configure an Engine-executed script or approved local program that:

  1. Identifies the EBS volumes in scope.

  2. Requests the BurstBalance metric from CloudWatch.

  3. Uses the VolumeId as the CloudWatch dimension.

  4. Specifies the correct AWS region.

  5. Requests a period that matches the collection schedule.

  6. Returns the volume ID, timestamp, and Burst Balance value in a consistent format.

    image-20260830-211320.png

The request should use:

Setting

Value

Namespace

AWS/EBS

Metric

BurstBalance

Dimension

VolumeId

Unit

Percent

Statistic

Typically Average or Minimum, depending on the monitoring objective

Using the minimum value can help identify the lowest remaining balance during the evaluation period. Using the average provides the overall level for that period.

🚀 Configure execution

  1. Assign the script or local program to the GermainUX Engine.

  2. Configure the execution schedule.

  3. Set the metric start and end times relative to each execution.

  4. Configure an appropriate timeout.

  5. Test the command and review its raw output.

  6. Confirm that a result is returned for each applicable volume.

Do not assume that BurstBalance applies to every EBS volume. Volumes such as gp3 use provisioned IOPS and throughput rather than the gp2 burst-credit model.

image-20260830-211334.png

📦 Parse and store the metric

Create or update the GermainUX rule that processes the command output.

The rule must:

  1. Identify each EBS volume.

  2. Extract the metric timestamp.

  3. Extract the numeric Burst Balance value.

  4. Associate it with the correct AWS account, region, volume, instance, application, and environment.

  5. Store it under the configured EBS Burst Balance KPI.

  6. Ignore empty, invalid, or unsupported results.

  7. Report collection failures separately from actual low metric values.

A missing value must not automatically be interpreted as zero. It may mean that the metric is unsupported, delayed, or unavailable.

🔔 Configure Alerts

Create an SLA and alert for low EBS Burst Balance.

Example severity levels can be adapted to the workload:

Condition

Suggested severity

Burst Balance below the warning threshold

Warning

Burst Balance below the critical threshold

Critical

Metric remains low for multiple collections

Critical

Metric collection fails repeatedly

Monitoring failure

Correlate a low Burst Balance with:

Related metric

EBS latency

Queue length

IOPS and throughput

Application response time

Database performance

User or business-transaction duration

Avoid alerting on a single short-lived change unless the affected volume supports a critical workload.

🖥️ Configure Optional Host Monitoring

To collect operating-system metrics, configure one of the following:

Method

CloudWatch Agent metrics retrieved through CloudWatch

SSH monitoring for Linux

Approved Windows host monitoring

Log and file monitoring

Process and service monitoring

Guest-level measurements can include:

Measurement

Memory utilization

Swap or paging

Filesystem utilization

Process availability

Process CPU and memory

Service state

System uptime

Application and system errors

Use a dedicated least-privilege operating-system account for direct host monitoring.

🧩 Configure Application Monitoring

Add application-level monitoring where required:

Monitor

HTTP or HTTPS availability

API response time and status

Database queries

Application logs

Browser Real User Monitoring

Code profiling for supported runtimes

Synthetic user scenarios

This allows EC2 and EBS conditions to be analyzed alongside application performance and business impact.

📊 Dashboards and Reports

Add the collected metrics to an EC2 dashboard, including:

Dashboard item

Instance availability

Status-check failures

CPU utilization

CPU credit balance

Network traffic

EBS latency

EBS queue length

EBS IOPS and throughput

EBS Burst Balance

Memory and filesystem utilization

Process and service availability

Application errors and response time

Scheduled reports can include current values, trends, SLA violations, and changes compared with the previous period.

✅ Validation

After enabling monitoring:

  1. Confirm that the GermainUX Engine can access AWS.

  2. Verify the AWS account and region.

  3. Confirm that expected instances and volumes are discovered.

  4. Compare selected metric values with CloudWatch.

  5. Verify that each EBS metric is associated with the correct volume.

  6. Confirm that unsupported metrics remain empty rather than being stored as zero.

  7. Test warning and critical thresholds safely.

  8. Verify that alerts reach the intended recipients.

  9. Confirm that dashboards use the correct application and environment context.

🔧 Troubleshooting

⛔ AWS access fails

Verify:

Item

IAM role or credentials

AWS region

Required permissions

Engine network access

Proxy configuration

AWS CLI configuration, when used

System time synchronization

🔍 No EBS Burst Balance is returned

Confirm that:

  • The volume type supports Burst Balance.

  • The correct region and volume ID are used.

  • The AWS/EBS namespace is selected.

  • The requested time window contains data.

  • CloudWatch access is permitted.

  • The volume was active during the requested period.

🔗 Metrics are associated with the wrong instance

An EBS volume can be detached or reattached. Use the volume ID as the primary EBS identifier and refresh instance-to-volume relationships regularly.

⏳ Metrics appear late

CloudWatch data may not be available immediately. Ensure that the requested end time allows for normal publication delay and that the collection period matches the selected metric granularity.

ℹ️ Get Help

The Germain Team can help you set this up. Contact GermainUX Support.


Component: Engine

Feature Availability: 2014.1 or later