ruvnet/ruflo/tree/main/plugins/ruflo-observability
ruflo-observability
구조화된 로깅, 분산 추적, 메트릭으로 에이전트 스웜 활동을 애플리케이션 텔레메트리와 연결합니다. mod(ADR-445)로서 도구와 /observe-mod에 강화 전용 가드를 추가하고 콘솔에 표시되는 상태 파일을 제공합니다.
이 mod 소개
구조화된 로깅, 분산 추적, 메트릭을 사용해 에이전트 스웜 활동을 애플리케이션 텔레메트리와 연결합니다.
상관관계 ID를 포함한 OpenTelemetry 호환 구조화 로깅, 부모-자식 span 계층을 사용하는 분산 추적, 메트릭 수집(카운터, 게이지, 히스토그램)을 구현합니다. 스웜 에이전트 활동을 애플리케이션 수준 텔레메트리와 연결하고 지연 시간, 오류율, 리소스 사용량의 이상을 감지합니다.
설치: claude --plugin-dir plugins/ruflo-observability
mod(ADR-445 패턴, hooks/register.ts)로서 네트워크 통신, 프로세스 생성, 모델 호출 없이 다음을 추가합니다.
- Guard(강화 전용, 기본 활성화): 비밀, 미국 SSN 또는 공백이 포함된 결제 카드 번호를 담은 텔레메트리(span, 로그, 레이블)의 메모리 쓰기를 거부합니다. 거부 이유에는 규칙만 표시하고 값은 표시하지 않습니다.
- /observe-mod: 로컬
status및scan <text>(Guard와 같은 규칙의 비밀 검사). - 상태 파일 .claude-flow/observe-mod/status.json은 세션 시작 시와 카운터가 바뀔 때 기록됩니다.
observability-engineer 에이전트, observe-trace 및 observe-metrics 스킬, observe trace/metrics/logs/dashboard/correlate 명령을 포함합니다. claude plugin validate plugins/ruflo-observability, claude plugin test plugins/ruflo-observability, bash plugins/ruflo-observability/scripts/smoke.sh로 검증합니다. MIT 라이선스입니다.
설치
먼저 작성자의 README에서 marketplace와 플러그인 이름을 확인하세요. 저장소 구조에 따라 명령어가 달라질 수 있습니다.
claude plugin marketplace add ruvnet/ruflo claude plugin install ruflo-observability
원문 / README
ruflo-observability
Structured logging, distributed tracing, and metrics -- correlate agent swarm activity with application telemetry.
Overview
Implements OpenTelemetry-compatible structured logging with correlation IDs, distributed tracing with parent-child span hierarchies, and metrics collection (counters, gauges, histograms). Correlates swarm agent activity with application-level telemetry and detects anomalies in latency, error rates, and resource usage.
Installation
claude --plugin-dir plugins/ruflo-observability
Agents
| Agent | Model | Role |
|-------|-------|------|
| observability-engineer | sonnet | Structured logging, distributed tracing, metrics collection, agent-application telemetry correlation |
Skills
Skills are auto-invoked via the Skill tool when their description matches the task (progressive disclosure). For an explicit CLI surface use the /observe slash command below.
| Skill | Argument hint | Description |
|-------|---------------|-------------|
| observe-trace | <task-id> | Trace agent execution by collecting spans and building a trace tree |
| observe-metrics | [--period 1h] | Aggregate and display system metrics with anomaly detection |
Commands (5 subcommands)
observe trace <task-id> # Trace agent execution with span tree
observe metrics [--period 1h] # View aggregated metrics (p50, p95, p99)
observe logs [--level error] # Filter structured logs by level
observe dashboard # Combined health dashboard
observe correlate <agent-id> # Correlate all telemetry for an agent
Key Metrics
| Metric | Type | Description |
|--------|------|-------------|
| agent_task_duration_seconds | Histogram | Time to complete agent tasks |
| agent_token_usage | Counter | Tokens consumed per agent/model |
| agent_active_count | Gauge | Currently active agents |
| agent_error_rate | Counter | Errors per agent |
| swarm_span_duration_ms | Histogram | Span durations for tracing |
| memory_operations_total | Counter | AgentDB read/write counts |
Trace Hierarchy
[root] swarm-task
[child] agent-spawn (agent=architect)
[child] agent-spawn (agent=coder)
[child] file-read (path=src/auth.ts)
[child] file-write (path=src/auth.ts)
[child] agent-spawn (agent=tester)
[child] test-run (suite=auth)
Log Format
JSON structured logs with timestamp, level, message, correlationId, agentId, taskId, spanId, traceId, duration_ms, and metadata.
Compatibility
- CLI: pinned to
@claude-flow/cliv3.6 major+minor. - Verification:
bash plugins/ruflo-observability/scripts/smoke.shis the contract.
Namespace coordination
This plugin owns the observability AgentDB namespace (base-name exception per ruflo-agentdb ADR-0001 §"Namespace convention", same precedent as federation and migrations). Reserved namespaces (pattern, claude-memories, default) MUST NOT be shadowed.
observability is accessed via memory_* tools (namespace-routed). Stores spans, metric snapshots, and log entries.
Routing note: Earlier versions of these skills used
agentdb_hierarchical-recallwith namespace argument — that tool family routes by tier and ignores namespace strings. ADR-0001 fixed the skills to usememory_*for namespaced reads and documented the dual pattern-store path for metric snapshots.
Verification
bash plugins/ruflo-observability/scripts/smoke.sh
# Expected: "10 passed, 0 failed"
Architecture Decisions
Related Plugins
ruflo-agentdb— namespace convention owner; defines the routing rules ADR-0001 fixes a violation ofruflo-cost-tracker-- Token usage metrics feed into cost attributionruflo-iot-cognitum-- Reuses Z-score anomaly detection for telemetry patternsruflo-market-data-- Data feed health and ingestion latency monitoring
License
MIT
As a mod
Function-hook mod (ADR-445 pattern, hooks/register.ts). It adds, with no network, no process spawning and no model call:
- Guard (tighten-only, default on): refuses a memory write of telemetry (spans, logs, labels) that holds a secret, a US SSN or a spaced payment-card number (13-digit epoch timestamps are fine). The deny reason names the rule, never the value.
/observe-mod: localstatusandscan <text>(secret check, same rules as the guard).- Status file
.claude-flow/observe-mod/status.json({version:1, updatedMs, guard, checked, blocked, ...}), written at session start and when counters change.
Per-prompt context is deliberately not added: this plugin has nothing worth attaching to every prompt.
| Option | Default | Effect |
|---|---|---|
| guard | on | refuse the calls above |
Test: claude plugin validate plugins/ruflo-observability, claude plugin test plugins/ruflo-observability, bash plugins/ruflo-observability/scripts/smoke.sh.
