Files
Claude-Code-Monitor/deployments/kubernetes/strategies/canary/canary-analysis.yaml
T
nntrivi2001 57dc91585d feat: Claude Code Monitor — lanes, pipelines and a merged workspace
Internal SmartGift build of a Claude Code monitoring dashboard.

Lanes: a durable unit of parallel agent work, one per working directory,
tracked across session restarts. Managed lanes are git worktrees the
dashboard provisions and can reset or remove behind a three-check destroy
guard and a counted preflight; adopted lanes are directories you already
own and are never destroyable.

Pipelines: a lane moves through pipeline stages. A stage the agent declares
with evidence renders green; a stage inferred from the tool-event stream
renders dashed amber and never counts as done. Detection is forward-only
within a 30-minute window, and never writes the declared stage.

Workspace: one page at /run with a lane grid, the selected lane's pipeline,
and a full Claude console behind a disclosure.
2026-07-30 14:39:03 +07:00

98 lines
2.6 KiB
YAML

apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: agent-monitor-canary-analysis
namespace: agent-monitor
labels:
app.kubernetes.io/name: agent-monitor
app.kubernetes.io/instance: agent-monitor
app.kubernetes.io/version: "1.0.0"
app.kubernetes.io/component: canary-analysis
app.kubernetes.io/managed-by: kustomize
spec:
args:
- name: service-name
value: agent-monitor-canary
- name: namespace
value: agent-monitor
metrics:
# Success rate must be above 99%
- name: success-rate
interval: 60s
count: 5
successCondition: result[0] >= 0.99
failureLimit: 2
provider:
prometheus:
address: http://prometheus.monitoring.svc.cluster.local:9090
query: |
sum(
rate(
http_requests_total{
namespace="{{args.namespace}}",
service="{{args.service-name}}",
code!~"5.."
}[2m]
)
)
/
sum(
rate(
http_requests_total{
namespace="{{args.namespace}}",
service="{{args.service-name}}"
}[2m]
)
)
# P99 latency must be under 500ms
- name: p99-latency
interval: 60s
count: 5
successCondition: result[0] < 500
failureLimit: 2
provider:
prometheus:
address: http://prometheus.monitoring.svc.cluster.local:9090
query: |
histogram_quantile(
0.99,
sum(
rate(
http_request_duration_milliseconds_bucket{
namespace="{{args.namespace}}",
service="{{args.service-name}}"
}[2m]
)
) by (le)
)
# Error rate must stay below 1%
- name: error-rate
interval: 60s
count: 5
successCondition: result[0] <= 0.01
failureLimit: 2
provider:
prometheus:
address: http://prometheus.monitoring.svc.cluster.local:9090
query: |
sum(
rate(
http_requests_total{
namespace="{{args.namespace}}",
service="{{args.service-name}}",
code=~"5.."
}[2m]
)
)
/
sum(
rate(
http_requests_total{
namespace="{{args.namespace}}",
service="{{args.service-name}}"
}[2m]
)
)