57dc91585d
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.
98 lines
2.6 KiB
YAML
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]
|
|
)
|
|
)
|