開始使用
Demo script 可以用範例資料與實際 Rule 快速展示 Osprey 的運作方式,不需要撰寫程式碼或設定,結束後也能用單一 command 清理。若要逐一執行服務、修改程式碼及除錯,請參考英文官方文件的本機開發章節。
執行 demo 的步驟如下。
-
確認已安裝必要工具。 需要安裝支援 Compose v2 plugin 的 Docker,並啟動 Docker daemon。Script 會在進行其他操作前先檢查這些項目。
docker --version && docker compose version技術堆疊也需要多個未使用的 ports,script 會預先檢查並列出已被占用的 ports。實際會開啟的服務包括
5002的 Osprey UI 與8888的 Druid console,worker 與 UI API 則使用5001及5004。 -
從 repository clone 執行 script。
./demo.sh也可以在尚未 clone repository 的情況下執行。這個方式會將 repository clone 到
./osprey-demo。curl -sSL https://raw.githubusercontent.com/roostorg/osprey/main/demo.sh | bashScript 會啟動完整技術堆疊,包括 Kafka、Druid、PostgreSQL、MinIO、Osprey worker、API 與 UI,總共超過 12 個 containers。測試資料 producer 每秒會傳送一個合成貼文 event。若找到先前執行留下的服務,script 會在停止前詢問;不論是否找到服務,先前 demo 的 volumes 都會移除,讓每次 demo 從乾淨狀態開始。首次執行需要下載及建立 images,可能花費數分鐘。
Warning
Demo 會移除先前 demo 使用的 volumes 與其中資料。只應在確認目標是 Osprey demo 資源後執行。直接將網路取得的 script 傳入 shell 前,也應先下載並檢查內容及來源版本。
-
等待
Demo Ready!banner。 Script 會等待所有服務回報 healthy,再等待第一批 Events 流入,整個過程需要幾分鐘。完成後會在瀏覽器開啟介面,或印出可自行開啟的 URL,並預先填入查詢最近一天 Events 的條件。
可以嘗試的操作
Demo ruleset 包含一個 ContainsHello Rule。任何包含 hello 的貼文都會讓作者被停用並套用 meow Label。Producer 會從小型詞庫組成五個字的貼文,因此約三分之一產生的貼文會觸發這個 Rule。
- 查看 Event Stream。 右側面板會顯示處理中的 Events。點選符合
ContainsHello的 event,查看擷取的 Features 與 Effects - 用查詢篩選。 在查詢列輸入
ContainsHello == True,只顯示觸發 Rule 的貼文。其他語法請見查詢語法 - 使用 Top N 分組。 預先填入的查詢會依
UserId分組,顯示哪些合成使用者最常被停用 - 開啟 Rules Visualizer。 從導覽列開啟關係圖,查看 demo 的 Features 與 Rule 之間的 dependency graph
使用者指南說明完整調查流程。SML 與自行撰寫 Rules 的方式目前請參考英文官方文件的撰寫規則章節。
停止 demo
從 repository 目錄執行。若 script 代為 clone,則從 osprey-demo/ 執行。
docker compose --profile test_data down -v
這個 command 會停止所有 containers,並刪除包括全部 demo 產生資料在內的 volumes。
發生問題時
Script 是方便使用的 wrapper。可以直接執行同一套技術堆疊並查看 logs。
docker compose --profile test_data up -d
docker compose logs --follow osprey-worker
服務穩定後開啟 http://localhost:5002。常見問題請見英文官方文件的疑難排解章節;各項 demo 服務的說明則位於本機開發章節。