Skip to main content

Comparing with Past Execution Results

Problem Definition

Goal: Compare results of periodically executed workflows with the past to detect changes.

When running system information collection periodically, you may want to detect changes like "has memory usage increased compared to a week ago" or "has disk capacity decreased."

Since the log database stores all past execution results, you can retrieve results from any point in time and compare them.

How to do it

Find Past Sessions

Display one week's worth of system information collection sessions:

./actor_iac.java log-info --db ./actor-iac-logs --since 1w --like main-collect-sysinfo
Sessions:
================================================================================
#5 main-collect-sysinfo COMPLETED
Started: 2026-01-15T10:00:00+09:00
--------------------------------------------------------------------------------
#3 main-collect-sysinfo COMPLETED
Started: 2026-01-12T10:00:00+09:00
--------------------------------------------------------------------------------
#1 main-collect-sysinfo COMPLETED
Started: 2026-01-08T10:00:00+09:00
--------------------------------------------------------------------------------

Compare Past and Present

Memory information for node13 from one week ago (session #1):

./actor_iac.java log-info --db ./actor-iac-logs --session 1 --node node-node13 | grep -A3 "MEMORY INFO"
[2026-01-08T10:00:12+09:00] INFO  [node-node13] ===== MEMORY INFO =====
[2026-01-08T10:00:12+09:00] INFO [node-node13] total used free
[2026-01-08T10:00:12+09:00] INFO [node-node13] Mem: 62Gi 5.1Gi 48Gi

Memory information for node13 today (session #5):

./actor_iac.java log-info --db ./actor-iac-logs --session 5 --node node-node13 | grep -A3 "MEMORY INFO"
[2026-01-15T10:00:12+09:00] INFO  [node-node13] ===== MEMORY INFO =====
[2026-01-15T10:00:12+09:00] INFO [node-node13] total used free
[2026-01-15T10:00:12+09:00] INFO [node-node13] Mem: 62Gi 8.2Gi 45Gi

Memory usage increased from 5.1Gi to 8.2Gi over one week. Some process may be continuously consuming memory.

Under the hood

--since Option

Formats that can be specified with the --since option:

FormatDescriptionExample
NhFrom N hours ago--since 1h
NdFrom N days ago--since 7d
NwFrom N weeks ago--since 1w
ISO 8601From specific date/time--since "2026-01-08T10:00:00"

--like Option

The --like option filters by partial match on workflow name. It works like SQL's LIKE clause.

# Sessions with workflows containing "sysinfo"
./actor_iac.java log-info --db ./actor-iac-logs --like sysinfo

# Sessions with workflows containing "update"
./actor_iac.java log-info --db ./actor-iac-logs --like update

Shell Script Example for Comparison

For regular comparisons, you can automate with a shell script:

#!/bin/bash
# Compare latest with previous session

LATEST=$(./actor_iac.java log-info --db ./actor-iac-logs --like sysinfo | grep "^#" | head -1 | awk '{print $1}' | tr -d '#')
PREVIOUS=$(./actor_iac.java log-info --db ./actor-iac-logs --like sysinfo | grep "^#" | head -2 | tail -1 | awk '{print $1}' | tr -d '#')

echo "Comparing session #$LATEST with #$PREVIOUS"

for node in node13 node14 node15; do
echo "=== $node ==="
echo "Previous:"
./actor_iac.java log-info --db ./actor-iac-logs --session $PREVIOUS --node node-$node | grep -A2 "MEMORY INFO"
echo "Latest:"
./actor_iac.java log-info --db ./actor-iac-logs --session $LATEST --node node-$node | grep -A2 "MEMORY INFO"
done