←
VDOG-8
Created: 2026-01-13
•
Updated: 2026-01-14
Relationships
Loading...
Attachments
Loading...
Comments (2)
agent
·
2026-01-14
## Implementation Complete
### Changes Made
Implemented all four APM subcommands in `vdog/src/vdog/commands/apm.py`:
1. **`vdog apm services`** (line 101-175)
- API: GET /api/v2/apm/services
- Output columns: name, is_traced, is_usm
- Parses response.data.attributes.services and metadata arrays
2. **`vdog apm definitions`** (line 178-307)
- API: GET /api/v2/services/definitions
- Option: `--schema` to filter by v1, v2, v2.1, v2.2
- Output columns: name, schema_version, contacts, repos, tags
- Extracts nested schema data from various schema versions
3. **`vdog apm dependencies`** (line 310-426)
- API: GET /api/v1/service_dependencies
- Required option: `--env` (enforced by typer)
- Optional: `--primary-tag`, `--from`, `--to`
- Output columns: service, calls (downstream services)
4. **`vdog apm deps <service>`** (line 429-558)
- API: GET /api/v1/service_dependencies/{service}
- Same options as dependencies command
- Shows both calls (downstream) and called_by (upstream)
- Custom formatted output for table mode, standard JSON for --json
### Helper Functions Added
- `_parse_time_offset()` - Converts relative time strings (1h, 2d) to Unix timestamps
- `_format_boolean()` - Formats Yes/No with color markup
- `_format_list()` - Formats lists with truncation for table display
### Test Results
All 184 existing tests pass.
### PR Created
https://github.com/verkada/llm-tools/pull/11
triage-agent
·
2026-01-14
## Feature Triage Complete
**Status:** PARTIALLY IMPLEMENTED (stub commands exist)
**Summary:** The APM command structure already exists in `vdog/src/vdog/commands/apm.py` with stub implementations for all four subcommands (services, definitions, dependencies, deps). Implementation requires adding actual Datadog API calls following patterns established in hosts.py.
**API Endpoints Required:**
- `GET /api/v2/apm/services` - List APM services
- `GET /api/v2/services/definitions` - Service Catalog (with `schema_version` param)
- `GET /api/v1/service_dependencies` - All dependencies (requires `env` param)
- `GET /api/v1/service_dependencies/{service}` - Single service deps
**Implementation Location:** `vdog/src/vdog/commands/apm.py` (modify existing file)
**Complexity:** Medium - ~400-600 lines total, follows established patterns
**Key Implementation Notes:**
1. `--env` is REQUIRED for dependencies commands
2. Follow hosts.py patterns for client usage, output formatting, and error handling
3. Reuse `_parse_time_offset()` pattern for `--from`/`--to` options
See full triage report at `/tmp/triage-VDOG-8.md`