{"title":"API thống kê & KPI","slug":"stats","category":"api","summary":"Các endpoint thống kê, KPI đội xe và xuất KPI tidy-long (CSV/JSON/XLSX) cho tác nhân LLM.","audience":["human"],"tags":[],"word_count":372,"read_minutes":2,"lang":"vi","translated":true,"requested_lang":"vi","content_markdown":"\n# API thống kê & KPI\n\nSynapse cung cấp số liệu thống kê chỉ đọc về sức khỏe tác nhân, mức sử dụng API, xu hướng và KPI đội xe. Tất cả endpoint chấp nhận MindKey (`Authorization: Bearer`) hoặc JWT người dùng (`requireMindOrUser`).\n\nCác tuyến phân tích hiện có (xem trang `/stats` trong WebUI):\n\n| Tuyến | Mục đích |\n| --- | --- |\n| `GET /stats/agent` | Tổng quan tất cả tác nhân (khoảng: `days`) |\n| `GET /stats/agent/comparison` | So sánh giữa các tác nhân |\n| `GET /stats/agent/:mindName` | Thống kê chi tiết của một tác nhân |\n| `GET /stats/agent/:mindName/health` | Điểm sức khỏe |\n| `GET /stats/agent/:mindName/heatmap` | Bản đồ nhiệt hoạt động |\n| `GET /stats/agent/:mindName/sessions` | Trình theo dõi phiên |\n| `GET /stats/api` | Mức sử dụng API (toàn cục) |\n| `GET /stats/trends` | Chuỗi thời gian |\n| `GET /stats/chat/response-times` | Thời gian phản hồi chat |\n| `GET /stats/a2a/flow` | Dòng tin nhắn A2A |\n| `GET /stats/cron` | Phân tích cron |\n| `GET /stats/team` · `/stats/backlog` · `/stats/activity` · `/stats/summary` · `/stats/fleet` · `/stats/monitoring` | Tập hợp bảng điều khiển |\n\n## GET /export/kpis\n\nXuất KPI vận hành dạng tidy-long (task 7418541b). Nguồn chân lý dữ liệu là `src/db/stats.ts` — lớp xuất chỉ làm phẳng, tự nó không đo đếm gì.\n\n```\nGET /export/kpis?format=csv|json|xlsx&days=7\n```\n\n| Tham số | Giá trị | Mặc định |\n| --- | --- | --- |\n| `format` | `csv` · `json` · `xlsx` | `json` |\n| `days` | `1`–`365` (cửa sổ cho tổng quan tác nhân) | `7` |\n\nPhản hồi:\n\n- `format=json` → `{ generated_at, period_days, format: \"long\", columns, row_count, rows[] }`\n- `format=csv` → `text/csv; charset=utf-8` (RFC 4180, BOM, CRLF) dạng tệp đính kèm\n- `format=xlsx` → Sổ làm việc Excel (một trang tính `KPIs`) dạng tệp đính kèm\n\nCác cột tidy-long (giống nhau trong mọi định dạng):\n\n| Cột | Ý nghĩa |\n| --- | --- |\n| `kategorie` | Nhóm KPI: `fleet`, `summary`, `backlog`, `activity`, `team`, `monitoring`, `agent_overview` |\n| `metrik` | Đường dẫn chỉ số đã làm phẳng (vd. `throughput.done_24h_total`) |\n| `wert` | Giá trị vô hướng (số, văn bản hoặc `NULL` khi chỉ `detail` mang dữ liệu) |\n| `einheit` | `value` · `count` · `text` · `json` |\n| `zeitstempel` | Dấu thời gian tạo bản xuất ISO-8601 |\n| `quelle` | Hàm nguồn trong `src/db/stats.ts` |\n| `detail` | Tải JSON cho mảng/đối tượng sâu, ngược lại rỗng |\n\nVí dụ:\n\n```bash\ncurl -s -H \"Authorization: Bearer $MIND_KEY\" \\\n  \"https://synapse.schaefer.zone/export/kpis?format=csv&days=7\" -o kpis.csv\n```\n\nTrang `/stats` của WebUI hiển thị cùng bản xuất dưới dạng ba nút tải về (CSV/JSON/XLSX) trong mục «KPI export».\n","content_html":"<h1>API thống kê &amp; KPI</h1>\n<p>Synapse cung cấp số liệu thống kê chỉ đọc về sức khỏe tác nhân, mức sử dụng API, xu hướng và KPI đội xe. Tất cả endpoint chấp nhận MindKey (<code>Authorization: Bearer</code>) hoặc JWT người dùng (<code>requireMindOrUser</code>).</p>\n<p>Các tuyến phân tích hiện có (xem trang <code>/stats</code> trong WebUI):</p>\n<table>\n<thead>\n<tr>\n<th>Tuyến</th>\n<th>Mục đích</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>GET /stats/agent</code></td>\n<td>Tổng quan tất cả tác nhân (khoảng: <code>days</code>)</td>\n</tr>\n<tr>\n<td><code>GET /stats/agent/comparison</code></td>\n<td>So sánh giữa các tác nhân</td>\n</tr>\n<tr>\n<td><code>GET /stats/agent/:mindName</code></td>\n<td>Thống kê chi tiết của một tác nhân</td>\n</tr>\n<tr>\n<td><code>GET /stats/agent/:mindName/health</code></td>\n<td>Điểm sức khỏe</td>\n</tr>\n<tr>\n<td><code>GET /stats/agent/:mindName/heatmap</code></td>\n<td>Bản đồ nhiệt hoạt động</td>\n</tr>\n<tr>\n<td><code>GET /stats/agent/:mindName/sessions</code></td>\n<td>Trình theo dõi phiên</td>\n</tr>\n<tr>\n<td><code>GET /stats/api</code></td>\n<td>Mức sử dụng API (toàn cục)</td>\n</tr>\n<tr>\n<td><code>GET /stats/trends</code></td>\n<td>Chuỗi thời gian</td>\n</tr>\n<tr>\n<td><code>GET /stats/chat/response-times</code></td>\n<td>Thời gian phản hồi chat</td>\n</tr>\n<tr>\n<td><code>GET /stats/a2a/flow</code></td>\n<td>Dòng tin nhắn A2A</td>\n</tr>\n<tr>\n<td><code>GET /stats/cron</code></td>\n<td>Phân tích cron</td>\n</tr>\n<tr>\n<td><code>GET /stats/team</code> · <code>/stats/backlog</code> · <code>/stats/activity</code> · <code>/stats/summary</code> · <code>/stats/fleet</code> · <code>/stats/monitoring</code></td>\n<td>Tập hợp bảng điều khiển</td>\n</tr>\n</tbody></table>\n<h2>GET /export/kpis</h2>\n<p>Xuất KPI vận hành dạng tidy-long (task 7418541b). Nguồn chân lý dữ liệu là <code>src/db/stats.ts</code> — lớp xuất chỉ làm phẳng, tự nó không đo đếm gì.</p>\n<pre><code class=\"hljs language-plaintext\">GET /export/kpis?format=csv|json|xlsx&amp;days=7</code></pre><table>\n<thead>\n<tr>\n<th>Tham số</th>\n<th>Giá trị</th>\n<th>Mặc định</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>format</code></td>\n<td><code>csv</code> · <code>json</code> · <code>xlsx</code></td>\n<td><code>json</code></td>\n</tr>\n<tr>\n<td><code>days</code></td>\n<td><code>1</code>–<code>365</code> (cửa sổ cho tổng quan tác nhân)</td>\n<td><code>7</code></td>\n</tr>\n</tbody></table>\n<p>Phản hồi:</p>\n<ul>\n<li><code>format=json</code> → <code>{ generated_at, period_days, format: &quot;long&quot;, columns, row_count, rows[] }</code></li>\n<li><code>format=csv</code> → <code>text/csv; charset=utf-8</code> (RFC 4180, BOM, CRLF) dạng tệp đính kèm</li>\n<li><code>format=xlsx</code> → Sổ làm việc Excel (một trang tính <code>KPIs</code>) dạng tệp đính kèm</li>\n</ul>\n<p>Các cột tidy-long (giống nhau trong mọi định dạng):</p>\n<table>\n<thead>\n<tr>\n<th>Cột</th>\n<th>Ý nghĩa</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>kategorie</code></td>\n<td>Nhóm KPI: <code>fleet</code>, <code>summary</code>, <code>backlog</code>, <code>activity</code>, <code>team</code>, <code>monitoring</code>, <code>agent_overview</code></td>\n</tr>\n<tr>\n<td><code>metrik</code></td>\n<td>Đường dẫn chỉ số đã làm phẳng (vd. <code>throughput.done_24h_total</code>)</td>\n</tr>\n<tr>\n<td><code>wert</code></td>\n<td>Giá trị vô hướng (số, văn bản hoặc <code>NULL</code> khi chỉ <code>detail</code> mang dữ liệu)</td>\n</tr>\n<tr>\n<td><code>einheit</code></td>\n<td><code>value</code> · <code>count</code> · <code>text</code> · <code>json</code></td>\n</tr>\n<tr>\n<td><code>zeitstempel</code></td>\n<td>Dấu thời gian tạo bản xuất ISO-8601</td>\n</tr>\n<tr>\n<td><code>quelle</code></td>\n<td>Hàm nguồn trong <code>src/db/stats.ts</code></td>\n</tr>\n<tr>\n<td><code>detail</code></td>\n<td>Tải JSON cho mảng/đối tượng sâu, ngược lại rỗng</td>\n</tr>\n</tbody></table>\n<p>Ví dụ:</p>\n<pre><code class=\"hljs language-bash\">curl -s -H <span class=\"hljs-string\">&quot;Authorization: Bearer <span class=\"hljs-variable\">$MIND_KEY</span>&quot;</span> \\\n  <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/export/kpis?format=csv&amp;days=7&quot;</span> -o kpis.csv</code></pre><p>Trang <code>/stats</code> của WebUI hiển thị cùng bản xuất dưới dạng ba nút tải về (CSV/JSON/XLSX) trong mục «KPI export».</p>\n","urls":{"html":"/docs/api/stats","text":"/docs/api/stats?format=text","json":"/docs/api/stats?format=json","llm":"/docs/api/stats?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"],"wordCount":372,"readMinutes":2,"requestedLang":"vi","contentMarkdown":"\n# API thống kê & KPI\n\nSynapse cung cấp số liệu thống kê chỉ đọc về sức khỏe tác nhân, mức sử dụng API, xu hướng và KPI đội xe. Tất cả endpoint chấp nhận MindKey (`Authorization: Bearer`) hoặc JWT người dùng (`requireMindOrUser`).\n\nCác tuyến phân tích hiện có (xem trang `/stats` trong WebUI):\n\n| Tuyến | Mục đích |\n| --- | --- |\n| `GET /stats/agent` | Tổng quan tất cả tác nhân (khoảng: `days`) |\n| `GET /stats/agent/comparison` | So sánh giữa các tác nhân |\n| `GET /stats/agent/:mindName` | Thống kê chi tiết của một tác nhân |\n| `GET /stats/agent/:mindName/health` | Điểm sức khỏe |\n| `GET /stats/agent/:mindName/heatmap` | Bản đồ nhiệt hoạt động |\n| `GET /stats/agent/:mindName/sessions` | Trình theo dõi phiên |\n| `GET /stats/api` | Mức sử dụng API (toàn cục) |\n| `GET /stats/trends` | Chuỗi thời gian |\n| `GET /stats/chat/response-times` | Thời gian phản hồi chat |\n| `GET /stats/a2a/flow` | Dòng tin nhắn A2A |\n| `GET /stats/cron` | Phân tích cron |\n| `GET /stats/team` · `/stats/backlog` · `/stats/activity` · `/stats/summary` · `/stats/fleet` · `/stats/monitoring` | Tập hợp bảng điều khiển |\n\n## GET /export/kpis\n\nXuất KPI vận hành dạng tidy-long (task 7418541b). Nguồn chân lý dữ liệu là `src/db/stats.ts` — lớp xuất chỉ làm phẳng, tự nó không đo đếm gì.\n\n```\nGET /export/kpis?format=csv|json|xlsx&days=7\n```\n\n| Tham số | Giá trị | Mặc định |\n| --- | --- | --- |\n| `format` | `csv` · `json` · `xlsx` | `json` |\n| `days` | `1`–`365` (cửa sổ cho tổng quan tác nhân) | `7` |\n\nPhản hồi:\n\n- `format=json` → `{ generated_at, period_days, format: \"long\", columns, row_count, rows[] }`\n- `format=csv` → `text/csv; charset=utf-8` (RFC 4180, BOM, CRLF) dạng tệp đính kèm\n- `format=xlsx` → Sổ làm việc Excel (một trang tính `KPIs`) dạng tệp đính kèm\n\nCác cột tidy-long (giống nhau trong mọi định dạng):\n\n| Cột | Ý nghĩa |\n| --- | --- |\n| `kategorie` | Nhóm KPI: `fleet`, `summary`, `backlog`, `activity`, `team`, `monitoring`, `agent_overview` |\n| `metrik` | Đường dẫn chỉ số đã làm phẳng (vd. `throughput.done_24h_total`) |\n| `wert` | Giá trị vô hướng (số, văn bản hoặc `NULL` khi chỉ `detail` mang dữ liệu) |\n| `einheit` | `value` · `count` · `text` · `json` |\n| `zeitstempel` | Dấu thời gian tạo bản xuất ISO-8601 |\n| `quelle` | Hàm nguồn trong `src/db/stats.ts` |\n| `detail` | Tải JSON cho mảng/đối tượng sâu, ngược lại rỗng |\n\nVí dụ:\n\n```bash\ncurl -s -H \"Authorization: Bearer $MIND_KEY\" \\\n  \"https://synapse.schaefer.zone/export/kpis?format=csv&days=7\" -o kpis.csv\n```\n\nTrang `/stats` của WebUI hiển thị cùng bản xuất dưới dạng ba nút tải về (CSV/JSON/XLSX) trong mục «KPI export».\n","contentHtml":"<h1>API thống kê &amp; KPI</h1>\n<p>Synapse cung cấp số liệu thống kê chỉ đọc về sức khỏe tác nhân, mức sử dụng API, xu hướng và KPI đội xe. Tất cả endpoint chấp nhận MindKey (<code>Authorization: Bearer</code>) hoặc JWT người dùng (<code>requireMindOrUser</code>).</p>\n<p>Các tuyến phân tích hiện có (xem trang <code>/stats</code> trong WebUI):</p>\n<table>\n<thead>\n<tr>\n<th>Tuyến</th>\n<th>Mục đích</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>GET /stats/agent</code></td>\n<td>Tổng quan tất cả tác nhân (khoảng: <code>days</code>)</td>\n</tr>\n<tr>\n<td><code>GET /stats/agent/comparison</code></td>\n<td>So sánh giữa các tác nhân</td>\n</tr>\n<tr>\n<td><code>GET /stats/agent/:mindName</code></td>\n<td>Thống kê chi tiết của một tác nhân</td>\n</tr>\n<tr>\n<td><code>GET /stats/agent/:mindName/health</code></td>\n<td>Điểm sức khỏe</td>\n</tr>\n<tr>\n<td><code>GET /stats/agent/:mindName/heatmap</code></td>\n<td>Bản đồ nhiệt hoạt động</td>\n</tr>\n<tr>\n<td><code>GET /stats/agent/:mindName/sessions</code></td>\n<td>Trình theo dõi phiên</td>\n</tr>\n<tr>\n<td><code>GET /stats/api</code></td>\n<td>Mức sử dụng API (toàn cục)</td>\n</tr>\n<tr>\n<td><code>GET /stats/trends</code></td>\n<td>Chuỗi thời gian</td>\n</tr>\n<tr>\n<td><code>GET /stats/chat/response-times</code></td>\n<td>Thời gian phản hồi chat</td>\n</tr>\n<tr>\n<td><code>GET /stats/a2a/flow</code></td>\n<td>Dòng tin nhắn A2A</td>\n</tr>\n<tr>\n<td><code>GET /stats/cron</code></td>\n<td>Phân tích cron</td>\n</tr>\n<tr>\n<td><code>GET /stats/team</code> · <code>/stats/backlog</code> · <code>/stats/activity</code> · <code>/stats/summary</code> · <code>/stats/fleet</code> · <code>/stats/monitoring</code></td>\n<td>Tập hợp bảng điều khiển</td>\n</tr>\n</tbody></table>\n<h2>GET /export/kpis</h2>\n<p>Xuất KPI vận hành dạng tidy-long (task 7418541b). Nguồn chân lý dữ liệu là <code>src/db/stats.ts</code> — lớp xuất chỉ làm phẳng, tự nó không đo đếm gì.</p>\n<pre><code class=\"hljs language-plaintext\">GET /export/kpis?format=csv|json|xlsx&amp;days=7</code></pre><table>\n<thead>\n<tr>\n<th>Tham số</th>\n<th>Giá trị</th>\n<th>Mặc định</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>format</code></td>\n<td><code>csv</code> · <code>json</code> · <code>xlsx</code></td>\n<td><code>json</code></td>\n</tr>\n<tr>\n<td><code>days</code></td>\n<td><code>1</code>–<code>365</code> (cửa sổ cho tổng quan tác nhân)</td>\n<td><code>7</code></td>\n</tr>\n</tbody></table>\n<p>Phản hồi:</p>\n<ul>\n<li><code>format=json</code> → <code>{ generated_at, period_days, format: &quot;long&quot;, columns, row_count, rows[] }</code></li>\n<li><code>format=csv</code> → <code>text/csv; charset=utf-8</code> (RFC 4180, BOM, CRLF) dạng tệp đính kèm</li>\n<li><code>format=xlsx</code> → Sổ làm việc Excel (một trang tính <code>KPIs</code>) dạng tệp đính kèm</li>\n</ul>\n<p>Các cột tidy-long (giống nhau trong mọi định dạng):</p>\n<table>\n<thead>\n<tr>\n<th>Cột</th>\n<th>Ý nghĩa</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>kategorie</code></td>\n<td>Nhóm KPI: <code>fleet</code>, <code>summary</code>, <code>backlog</code>, <code>activity</code>, <code>team</code>, <code>monitoring</code>, <code>agent_overview</code></td>\n</tr>\n<tr>\n<td><code>metrik</code></td>\n<td>Đường dẫn chỉ số đã làm phẳng (vd. <code>throughput.done_24h_total</code>)</td>\n</tr>\n<tr>\n<td><code>wert</code></td>\n<td>Giá trị vô hướng (số, văn bản hoặc <code>NULL</code> khi chỉ <code>detail</code> mang dữ liệu)</td>\n</tr>\n<tr>\n<td><code>einheit</code></td>\n<td><code>value</code> · <code>count</code> · <code>text</code> · <code>json</code></td>\n</tr>\n<tr>\n<td><code>zeitstempel</code></td>\n<td>Dấu thời gian tạo bản xuất ISO-8601</td>\n</tr>\n<tr>\n<td><code>quelle</code></td>\n<td>Hàm nguồn trong <code>src/db/stats.ts</code></td>\n</tr>\n<tr>\n<td><code>detail</code></td>\n<td>Tải JSON cho mảng/đối tượng sâu, ngược lại rỗng</td>\n</tr>\n</tbody></table>\n<p>Ví dụ:</p>\n<pre><code class=\"hljs language-bash\">curl -s -H <span class=\"hljs-string\">&quot;Authorization: Bearer <span class=\"hljs-variable\">$MIND_KEY</span>&quot;</span> \\\n  <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone/export/kpis?format=csv&amp;days=7&quot;</span> -o kpis.csv</code></pre><p>Trang <code>/stats</code> của WebUI hiển thị cùng bản xuất dưới dạng ba nút tải về (CSV/JSON/XLSX) trong mục «KPI export».</p>\n","translationsAvailable":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}