Monitor Windsurf AI IDE adoption, feature usage, and productivity impact across your team. Key metrics include AI completion acceptance rate (how often developers accept Supercomplete suggestions), Cascade flow completion rate (agentic tasks that succeed vs fail), per-developer usage patterns, and seat utilization for license optimization.
Access Windsurf Admin Dashboard > Analytics for team-wide metrics:
# Key metrics available in the dashboard
metrics:
completions_shown: total suggestions presented to developers
completions_accepted: suggestions accepted (acceptance rate = accepted/shown)
cascade_flows_run: agentic tasks initiated
cascade_flows_success: agentic tasks completed successfully
active_users_daily: unique developers using Windsurf per day
tokens_consumed: total AI tokens used across team
// windsurf-metrics-exporter.ts
async function exportWindsurfMetrics() {
const analytics = await fetch('https://api.windsurf.com/v1/admin/analytics?period=today', {
headers: { Authorization: `Bearer ${WINDSURF_ADMIN_KEY}` },
}).then(r => r.json());
emitGauge('windsurf_acceptance_rate', analytics.completions_accepted / analytics.completions_shown * 100);
emitGauge('windsurf_cascade_success_rate', analytics.cascade_success / analytics.cascade_total * 100);
emitGauge('windsurf_active_users', analytics.active_users);
emitGauge('windsurf_seat_utilization_pct', analytics.active_users / analytics.total_seats * 100);
}
// Identify underutilized seats for cost optimization
async function auditSeatUsage() {
const members = await fetch('https://api.windsurf.com/v1/admin/members', {
headers: { Authorization: `Bearer ${WINDSURF_ADMIN_KEY}` },
}).then(r => r.json());
const underutilized = members.filter((m: any) => m.completions_last_30d < 10);
console.log(`${underutilized.length} seats with <10 completions in 30 days:`);
underutilized.forEach((m: any) => console.log(` ${m.email}: ${m.completions_last_30d} completions`));
}
groups:
- name: windsurf
rules:
- alert: WindsurfLowAcceptanceRate
expr: windsurf_acceptance_rate < 20
for: 7d
annotations: { summary: "Windsurf completion acceptance rate below 20% -- review config" }
- alert: WindsurfCascadeFailures
expr: windsurf_cascade_success_rate < 50
for: 1d
annotations: { summary: "Over 50% of Cascade flows failing -- check workspace config" }
- alert: WindsurfLowUtilization
expr: windsurf_seat_utilization_pct < 50
for: 7d
annotations: { summary: "Less than 50% of Windsurf seats actively used" }
Track: daily active users vs total seats, acceptance rate trend (higher is better), Cascade flow success rate, completions per developer (identify power users), seat utilization for license optimization, and tokens consumed per developer. Low acceptance rates suggest configuration tuning is needed.
| Issue | Cause | Solution |
|---|---|---|
| Low acceptance rate | Suggestions not matching coding style | Add workspace-level coding standards in settings |
| Cascade flow failures | Insufficient tool permissions | Check .windsurf/settings.json for tool access |
| Seat utilization low | Team not adopted | Run training session, share productivity data |
| Analytics data missing | Enterprise API not enabled | Contact Windsurf support to enable admin API |
Basic usage: Apply windsurf observability to a standard project setup with default configuration options.
Advanced scenario: Customize windsurf observability for production environments with multiple constraints and team-specific requirements.