?
VDOG-6
feature
Created: 2026-01-13 Updated: 2026-01-14
Relationships Loading...
Attachments
Loading...
Comments (4)
Claude · 2026-01-14
Merged locally into main branch (commit ee45238). All 467 unit tests pass. Ready for PR to push to origin/main (protected branch requires PR workflow).
qa-agent · 2026-01-14
## QA Verification Complete ✅ **Status:** PASSED **Date:** 2026-01-14 **QA Report:** `/tmp/qa-VDOG-6.md` ### Verification Summary All requirements verified and passing: **Implementation Tasks (6/6 complete):** - ✅ Implemented `commands/logs.py` (564 lines, well-documented) - ✅ Implemented `vdog logs search` with all options (--from, --to, --index, --sort) - ✅ Implemented `vdog logs aggregate` with all options (--from, --to, --group-by, --compute) - ✅ Pagination handling (cursor-based, respects --limit) - ✅ Output formatting (table default, JSON via --json) - ✅ Time parsing (relative: 15m/1h/1d/1w, ISO-8601, Unix timestamps, "now") **QA Criteria (7/7 satisfied):** - ✅ Search returns log entries with timestamp, host, service, status, message - ✅ Time range options work (--from "1h", --from "15m" --to "now") - ✅ Aggregate with --group-by returns counts by field - ✅ Pagination respects --limit - ✅ Both table and JSON output work - ✅ Sorting works (--sort, --sort -field for descending) - ✅ Empty results show helpful messages **Test Results:** - ✅ 43 new unit tests (all passing) - ✅ 182 total tests (all passing, no regressions) **Code Quality:** - ✅ Well-documented (module, function docstrings, examples) - ✅ Proper error handling (ClientError, typer.BadParameter, validation) - ✅ Follows project patterns (OutputFormatter, DatadogClient, context handling) - ✅ Type hints, consistent naming, no code smells **Confidence: HIGH** - Implementation is production-ready. See full report at: `/tmp/qa-VDOG-6.md`
agent · 2026-01-14
## Implementation Complete ### Changes Made **File: `vdog/src/vdog/commands/logs.py`** - Implemented `parse_time()` function for relative time strings (15m, 1h, 1d, 1w), ISO-8601, and Unix timestamps - Implemented `logs search` command with options: - `--from` / `-f`: Start time (default: 15m ago) - `--to` / `-t`: End time (default: now) - `--index` / `-i`: Specific log index to search - `--sort` / `-s`: Sort field (default: -timestamp) - Implemented `logs aggregate` command with options: - `--from` / `-f`: Start time (default: 15m ago) - `--to` / `-t`: End time (default: now) - `--group-by` / `-g`: Field to group by - `--compute` / `-c`: Aggregation type (count, sum, avg, min, max) - Added pagination support up to global `--limit` - Formats output as Rich table (default) or JSON (`--json`) - Shows helpful hints for empty results **File: `vdog/tests/test_logs.py`** (new) - 43 unit tests covering time parsing, log formatting, CLI integration ### Test Results All 182 tests pass (43 new + 139 existing). ### PR Created https://github.com/verkada/llm-tools/pull/9
triage-agent · 2026-01-14
## Feature Triage Complete **Status:** PARTIALLY IMPLEMENTED (skeleton exists) **Summary:** A skeleton implementation exists in `vdog/src/vdog/commands/logs.py` with placeholder commands for `search` and `aggregate`. The command group is already registered in the CLI. **What's Missing:** - Full command options (--from, --to, --index, --sort, --group-by, --compute) - Datadog Logs API v2 integration - Relative time string parsing ("15m", "1h", "1d") - Pagination handling - Unit tests **Implementation Location:** `vdog/src/vdog/commands/logs.py` (modify existing file) **Dependencies:** None required - all necessary packages already in pyproject.toml **Complexity:** MEDIUM - Good patterns exist in codebase to follow **API Endpoints:** - `POST /api/v2/logs/events/search` - for log search - `POST /api/v2/logs/analytics/aggregate` - for log aggregation See full triage report at: `/tmp/triage-VDOG-6.md`