Netstamp 將「量測什麼」與「從哪裡量測」分開管理;所有工作流程都建立在這項設計上。
控制器
控制器是中央 Go 服務,負責提供網頁應用程式與 API、驗證使用者及探測器、儲存設定與量測結果、更新指派、評估警示規則、傳送通知,並整理公開狀態資料。
控制器本身不執行網路檢查。實際工作由探測器代理程式完成,再將簽署過的結果批次送回控制器。
專案
專案是探測器、檢查、標籤、結果、警示、成員與狀態頁共同使用的協作及權限邊界。每位使用者可以加入多個專案,並在各專案中擁有不同角色。
專案角色和執行個體層級的系統管理員互不相依。系統管理員可以管理 Netstamp 執行個體,但不會因此自動加入所有專案。
探測器
探測器代表一個已註冊的網路觀測位置。Linux 代理程式會:
- 使用探測器 ID 與一次性密鑰進行驗證;
- 回報心跳、代理程式版本、位址、公用 IP、自治系統資訊,以及 IPv4/IPv6 支援能力;
- 輪詢自己目前有效的指派;
- 排程 Ping、TCP、HTTP 與 Traceroute;
- 暫存並批次送出結果。
探測器位置與標籤是控制器中的中繼資料,用於地圖、篩選與指派,不會改變代理程式實際執行的位置。
檢查
檢查會定義目標、類型、執行間隔、選用標籤、選用的探測器選取條件,以及各類型專屬的設定。一項檢查可以指派給多部探測器。
| 類型 | 主要結果資料 |
|---|---|
| Ping | 傳送與接收數量、遺失率、RTT 最小值/平均值/中位數/最大值/標準差及樣本 |
| TCP | 是否可連線、連線耗時、解析後位址、IP family、逾時或錯誤 |
| HTTP | DNS/連線/TLS/TTFB/總耗時、狀態碼、重新導向、內文判斷、回應大小與憑證詳細資料 |
| Traceroute | 各躍點的位址、名稱、遺失率與 RTT,以及目的地是否可達、路徑執行紀錄與拓撲 |
標籤與選取條件
標籤是專案範圍內的 key/value,例如 region=tokyo、provider=isp-a 或 role=edge。探測器與檢查都能附加標籤,方便分類管理。
檢查的選取條件是一段針對探測器標籤評估的邏輯運算式。條件留空時會符合專案內所有啟用中的探測器;儲存檢查前,介面會預覽符合條件的探測器。
指派
指派是控制器產生的一對一關係,連結一項檢查與一部探測器。相關標籤、探測器或檢查變更後,系統會重新整理指派資料;代理程式只會收到自己目前有效的指派。
check selector + enabled probe labels -> effective assignment -> agent execution -> result如果檢查已存在卻沒有結果,請先查看選取條件預覽、探測器是否啟用及上線,以及有效指派清單,再深入檢查執行器。
結果與分析
每次執行都會產生對應類型的結果。Netstamp 將最新結果與時間序列存放在 PostgreSQL/TimescaleDB。分析工作區可選擇探測器、檢查、時間範圍與指標序列,並依查詢範圍及資料點上限使用原始資料或彙總資料。
警示規則與事件
警示規則會將指標門檻條件套用到一項檢查。評估器會區分觸發、恢復、樣本不足與沒有資料等狀態;設定觸發持續時間後,短暫越過門檻不會立刻開啟事件。
事件資料會記錄 open、acknowledged 與 resolved 狀態。通知是專案資源,可連結到一條或多條警示規則。
公開狀態頁
公開狀態頁是明確啟用、無須登入即可存取的 /status/<slug> 頁面。頁面由依序排列的 folder 與 assignment group 組成;每個區塊可顯示狀態、歷史、延遲或地圖,並由頁面設定控制是否公開目標、探測器、位置、事件及產生時間。
兩套權限範圍
- 執行個體管理負責註冊政策、SMTP、使用者、系統管理員,以及資料匯出與匯入。
- 專案成員資格以 owner、admin、editor、viewer 角色管理專案設定與監控資源。
完整權限矩陣請參閱權限。