Job Metrics
Metadata
Section titled โMetadataโFor each runner, you will also find detailed metrics about the EC2 instance, RunsOn installation, and runner timings. This is available when you expand the โSet up jobโ section in the GitHub Actions UI:

Performance Metrics
Section titled โPerformance MetricsโThe runs-on/action@v2
โ provides real-time performance metrics collection for individual GitHub Actions jobs. These metrics give you detailed insights into resource utilization during workflow execution.
The way it works is to automatically configure the CloudWatch agent on the instance to collect additional custom metrics, and then display them in the GitHub Actions job summary. Note that CloudWatch custom metrics are not cheap, so make sure you only enable metric collection while troubleshooting. Also the more metrics you collect, the more expensive it will be.
Supported Metrics
Section titled โSupported MetricsโThe action can collect the following performance metrics:
Metric Type | Available Metrics | Description |
---|---|---|
CPU | usage_user , usage_system | CPU utilization by user processes and system processes |
Network | bytes_recv , bytes_sent | Network traffic in bytes received and sent |
Memory | used_percent | Memory utilization as a percentage |
Disk | used_percent , inodes_used | Disk space utilization and inode usage |
I/O | io_time , reads , writes | Disk I/O time and read/write operations |
Configuration
Section titled โConfigurationโEnable metrics collection by adding the runs-on/action@v2
to your job and specifying which metrics to collect:
jobs: build: runs-on: runs-on=${{ github.run_id }}/runner=2cpu-linux-x64 steps: - uses: runs-on/action@v2 with: metrics: cpu,network,memory,disk,io
# Your build steps here - uses: actions/checkout@v4 - name: Build application run: npm run build
You can also collect specific metric types:
# Collect only CPU and memory metrics- uses: runs-on/action@v2 with: metrics: cpu,memory
# Collect all available metrics- uses: runs-on/action@v2 with: metrics: cpu,network,memory,disk,io
Viewing Metrics
Section titled โViewing MetricsโAfter job completion, metrics are displayed as ASCII charts in the GitHub Actions job summary:
๐ Metrics (since 2025-06-30T14:18:56Z):
๐ CPU User: 100.0 โค 87.5 โค โญโโฎโญโโโโโโโโโโโโฎ 75.0 โค โญโฏ โฐโฏ โ 62.5 โค โญโฏ โฐโฎ 50.0 โค โ โ 37.5 โค โ โฐโฎ 25.0 โค โญโฏ โ 12.5 โค โญโโโโโโโโโโฎโญโโโโโโฏ โฐโฎ 0.0 โผโโโโโโโโโโโโโโโโโโโโโฏ โฐโฏ โฐ CPU User (Percent) Stats: min:0.0 avg:29.0 max:93.4 Percent
๐ Memory Used: 100.0 โค 87.5 โค 75.0 โค 62.5 โค 50.0 โค 37.5 โค 25.0 โค โญโโโโโโโโโฎ 12.5 โค โญโโโฎ โญโโโโโโโฏ โฐโโโโฎ 0.0 โผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โฐโโโโโโโฏ โฐ Memory Used (Percent) Stats: min:0.5 avg:7.4 max:20.9 Percent
The metrics help you:
- Optimize Resource Usage: Identify whether your runner size is appropriate
- Debug Performance Issues: Spot bottlenecks in CPU, memory, disk I/O, or network
- Cost Optimization: Right-size your runners based on actual resource consumption
- Monitor Trends: Track performance changes across builds
You can also find the metrics in the CloudWatch UI and API, under the CWAgent
namespace.
Use Cases
Section titled โUse CasesโResource Right-sizing:
# Test different runner sizes with metricsstrategy: matrix: runner: - runs-on=${{ github.run_id }}/family=m7a/cpu=2 - runs-on=${{ github.run_id }}/family=m7a/cpu=4 - runs-on=${{ github.run_id }}/family=m7a/cpu=8runs-on: ${{ matrix.runner }}steps: - uses: runs-on/action@v2 with: metrics: cpu,memory,disk,io - name: Run build run: | # Your build commands go build ...
Performance Debugging:
# Monitor resource usage during heavy operations- uses: runs-on/action@v2 with: metrics: cpu,memory,disk,io- name: Run resource-intensive build run: | # Your build commands npm run build:prod docker build -t app .