Skip to main content
Your progress
0 of 5 complete0%
T2 / M2.2 / L2 OF 4 / Engineer LEVEL / 9 min

The Recent Activity tab

Outcome

By the end of this lesson, you will be able to read activity-log signals, distinguish activity-data from metrics-data, and confirm abandonment of stopped or rarely-used resources before action.


PrerequisitesM2.1 · M2.2.L1
Time9 minutes

1. Concept

Monitoring tells you how hard something is working. Activity logs tell you what has been done to it, and by whom.

The two can disagree in both directions. A stopped machine reports 0% processor use and may still be getting API calls against it, usually from monitoring tools. A Kubernetes service can look busy in monitoring while serving nobody.

The Recent Activity tab in the evidence panel shows operations against the resource: pulled from CloudTrail (AWS) / Cloud Logging (GCP) / Azure Activity Log via the daily activity-sync cron.

Terminal window
TWO DIFFERENT QUESTIONS:
METRICS: "What did the resource do?"
CPU, memory, network, IOPS
Resource's behavior
ACTIVITY: "What happened TO the resource?"
Operations: Modify, Start, Stop, Delete, Create snapshot
Resource's lifecycle events

Both matter; both have different signals.

What activity-sync collects

Terminal window
SOURCE COLLECTS
─────────────────────────────────────────────────────────
AWS CloudTrail Write management events (read calls
such as Describe are not collected)
GCP Cloud Logging Audit logs, admin logs
Azure Activity Log Resource-level operations

Per resource, the Recent Activity panel plots hourly counts of write events over the last 7 days. Separately, the resource detail panel shows Last Modified by: the most recent human caller, the operation, the date, and whether that person is still in your directory.

What the tab shows

Terminal window
RECENT ACTIVITY: i-0abc123def 7-day lookback
─────────────────────────────────────────────────────────
Total 7 write events in the window
Max 3 events in the busiest hour
Active hrs 4 hours with at least one event
Chart: hourly buckets; hover an hour to see its
operations (StartInstances, StopInstances,
CreateSnapshot, ...)
RESOURCE DETAIL: Last Modified by
ops-team@example.com Active
StopInstances · 2026-04-15

Three signals matter most:

Terminal window
1. WRITE EVENTS IN THE 7-DAY WINDOW
Total and active hours: has anyone changed it lately?
No events at all = the panel does not render, which is
itself the signal
2. LAST MODIFIED BY
Who last changed it, when, and whether they are still
in the directory (Active or Departed)
A departed last modifier = nobody left who knows it
3. OPERATION MIX
No Start/Stop/Modify among the write events
= resource exists but isn't being managed
Typical pattern for orphans

The three signals compound. All three pointing to abandonment = high confidence.

Why this is different from metrics

Terminal window
EXAMPLE: stopped EC2 instance
METRICS:
CPU = 0% (always; it's stopped)
Memory = 0% (always; it's stopped)
Network = 0% (always; it's stopped)
CONCLUSION FROM METRICS ALONE:
Stopped resource using no compute. Idle? Maybe? Could be hot-swap DR target.
ACTIVITY (Recent Activity tab):
Last 7 days: 0 write events (the Recent Activity panel
does not render when there are none)
Owner tag: empty
Snapshot frequency: 0 in 7 days
CONCLUSION FROM ACTIVITY:
Nobody has changed this in the whole lookback window, and
nobody owns it. Almost certainly abandoned. Safe to terminate.
COMBINED:
Metrics + Activity = high confidence
Multiple independent signals agreeing
This is the canonical "safe to terminate" pattern

Metrics tell you the resource’s state. Activity tells you the organization’s relationship with it.

Cross-checking idle recommendations

The Recent Activity tab is the second source of truth for idle rules:

Terminal window
RC-001 (Idle EC2) fires on:
1. status=stopped (cloud state)
2. 30+ days stopped (history)
CROSS-CHECK with Recent Activity:
3. Total write events = has anyone changed it
4. Active hours = how often it was touched
5. Operation mix = is anyone managing it
TRIPLE CONFIRMATION before terminating:
All three signals align → high confidence
TYPICAL HIGH-CONFIDENCE PROFILE:
Stopped 47 days
No Recent Activity panel (0 write events in the 7-day lookback)
→ Terminate with snapshot; almost certainly safe

The cross-check is what separates “auto-rem safe” from “needs human review.”

Recent Activity for production resources

Terminal window
FOR RUNNING PRODUCTION RESOURCES:
Recent Activity less useful (everything's active)
Operations: thousands per day
Hard to tease out signals
WHERE THE TAB SHINES:
Stopped resources (confirm abandonment vs hot-standby)
Rarely-used resources (confirm true low usage)
Snapshots and orphans (confirm nobody touched)
Cross-account resources (catch un-owned ones)
NOT USEFUL FOR:
Detecting traffic patterns (use ALB / CloudFront logs)
Performance debugging (use APM / tracing)
Security incidents (use proper SIEM)

The tab is purpose-built for cost-recovery scenarios. Match the use case.

Activity signal interpretation

Terminal window
SIGNAL INTERPRETATION
─────────────────────────────────────────────────────────────
No Recent Activity panel No write events in 7 days
(strongest quiet signal)
A few active hours in 7 days Sporadic use; investigate pattern
Active hours on most days Active management; not idle
Last Modified by: Active Someone still owns the change
Last Modified by: Departed Possible abandonment; find
the new owner
No Last Modified by No human write on record
No write operations at all Nobody changing it
Operations include Modify/Start Active management
Recent Delete Cleanup in progress (don't action)
Owner tag empty + no panel Strong abandonment
Owner tag valid + recent event Active management

The combinations tell different stories. The triple-check is the canonical pattern.

What activity-sync doesn’t capture

Terminal window
NOT IN ACTIVITY-SYNC:
Read operations from inside the resource (e.g., RDS query count)
Application-level activity (HTTP requests, db queries)
Internal service-to-service calls without cloud-API involvement
ACTIVITY-SYNC ONLY CAPTURES:
Cloud-API operations (CloudTrail equivalent)
Operations that touch the cloud control plane
FOR INTERNAL APPLICATION ACTIVITY:
Use app-level monitoring
Logs, metrics from the application
Not in scope for cost-optimization rule evidence

The boundary matters: cloud-control-plane activity is in the tab; application-internal activity isn’t.

Frequency / freshness

Terminal window
ACTIVITY-SYNC cron:
Daily at 20:50 UTC (fetches the previous day's logs)
Higher frequency would hit cloud-log-API rate limits
DATA FRESHNESS:
Max ~24 hours stale
Cost optimization tolerates this
ALTERNATIVE for real-time activity:
CloudTrail console directly (not via ZopNight)
For incident response, not cost optimization

The daily cadence is right for the use case.


2. Demo

A team’s deep audit of a $1,400/mo idle RDS:

Terminal window
SCENARIO:
Resource: db-temp-staging (RDS db.r5.4xlarge in production account)
Original purpose: temporary database for a Q3 2024 project
Status: still running (forgotten?)
Current cost: $1,400/mo
ZopNight finding: RC-169 (idle resource pattern)
Triggers: low utilization + no connections + 30+ day stable state
Confidence: needs cross-check before terminating
EVIDENCE: METRICS TAB:
DatabaseConnections (30 days):
Average: 0
Maximum: 0
Minimum: 0
CPU (30 days):
Average: 1.2% (just monitoring overhead)
Maximum: 3.4%
EVIDENCE: RECENT ACTIVITY TAB:
Not shown: 0 write events in the 7-day lookback
Last Modified by (resource detail):
jane@example.com Departed
ModifyDBInstance · 2026-02-08 (101 days ago)
Owner tag: blank (no current owner)
CONCLUSION:
Database has 0 connections in 30 days
No human has touched it in 101 days
Original owner gone from org
No remaining engineering owner
Multiple data sources confirm: abandoned
ACTION:
RC-169 is advisory: idle databases have no one-click apply
Team follows the manual steps with high confidence
Final snapshot first
Delete the instance
Saved: $1,400/mo recurring
TIMELINE:
Investigation: 10 minutes
Manual delete: 15 minutes
Annual savings: $16,800

The Recent Activity tab closed the loop. Without it, the decision would have been ambiguous.


3. Hands-on (5 min)

Verify a stopped-resource recommendation:

Terminal window
□ STEP 1: Open Recommendations
Filter: category = idle OR orphan
Pick a stopped resource
□ STEP 2: Open Recent Activity tab (7-day lookback)
Panel shown? □ Yes □ No (0 write events)
Total: _____ Max: _____ Active hrs: _____
Operations seen (hover the chart): __________
□ STEP 3: Last Modified by (resource detail)
Date: __________
Caller: __________ □ Active □ Departed
□ STEP 4: Cross-check with metrics
CPU avg (30 days): _____%
Connections (if applicable): _____
□ STEP 5: Decision
□ Apply (multiple signals confirm abandonment)
□ Snooze (uncertain; investigate further)
□ Dismiss (false positive; resource is intentional)
Reason: __________

10 minutes per high-value recommendation. Confidence in decisions = faster apply rate.


4. Knowledge check

Q1

A stopped EC2 has CPU = 0% and Recent Activity shows no write events in its 7-day lookback. Confidence to terminate:

A. High: multiple sources confirm abandonment
B. Low
C. Medium
D. Cannot determine without any more data

Show answer

Correct: A. Safe to apply with snapshot-first. The triple-check (status + age + activity) is the canonical high-confidence pattern. Plus snapshot makes it reversible. Multiple data sources agreeing is the canonical high-confidence signal.

Q2

The Recent Activity tab is most useful for:

A. Real-time monitoring of very busy production resources
B. Performance debugging
C. Confirming abandonment of stopped or rarely-used resources
D. Security incidents

Show answer

Correct: C. Best for low-activity scenarios where metrics alone don’t tell the story. Orphans, idle, archived resources are the sweet spot. Best for low-activity scenarios; metrics tell you behavior, activity tells you lifecycle.

Q3

The activity-sync cron runs at:

A. Every 5 minutes
B. Real-time
C. Only when it is manually triggered by a person somewhere
D. Daily at 20:50 UTC: fetches the previous day’s activity log

Show answer

Correct: D. Raw activity-log API too expensive for higher frequency. Cost optimization tolerates daily cadence. Daily sync. The cadence balances freshness with API rate limits.


5. Apply

Recent Activity is in the Evidence panel on relevant rules. For deeper investigation, Resource detail → Activity tab shows the full operation history.

For your team: combine Metrics drawer (behavior) + Recent Activity tab (lifecycle) for high-confidence apply decisions on idle/orphan recommendations.



Start with the bill.

Foundations takes about five hours. The first lesson is nine minutes.

Free curriculum. No paywall. 290 lessons across 7 courses, plus an optional 24-lesson beginner course. Browse every course without an account; a free account opens the lessons, saves your progress and opens the exams for three publicly verifiable credentials. Read it on the train, take the exam on a Saturday, list the credential on your résumé Monday.

5h median time to finish Foundations
free account, every course, no paywall
3 certifications, each with a public verifier
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·