Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

疑難排解

本頁整理常見問題的處理方式。

Druid schema 沒有更新

若修改 Rule output structure 後,Druid 沒有 ingest 資料或仍停留在舊 schema,可以 reset Kafka supervisor,再重新提交 ingestion spec。

curl -X POST http://localhost:8888/druid/indexer/v1/supervisor/osprey.execution_results/terminate
docker compose restart druid-spec-submitter

若要刪除全部 Druid 與 MinIO state 並重新開始,同時保留 Postgres 資料,可使用下列 commands。

docker compose down
docker volume rm osprey_middle_var osprey_historical_var osprey_broker_var osprey_coordinator_var osprey_router_var osprey_druid_shared osprey_minio_data
docker compose up -d

若要連同 Postgres 在內刪除所有資料,可使用下列 command。

docker compose down -v && docker compose up -d

Warning

docker volume rmdocker compose down -v 會刪除 volumes 及其中資料,難以復原。執行前應確認目前目錄、Compose project 與確切 volume names,並確認不需要保留其中資料或已完成可用備份。正式環境不可直接照用本頁的本機重建步驟。

測試資料沒有出現在介面中

介面預設查詢最近 24 小時。若選擇的時間範圍過大,例如數週或數月,Druid 需要掃描許多 segments,結果可能很慢或看起來是空白。

  • 將時間範圍縮小至產生測試資料前後的 1 至 4 小時
  • 點選顯示時間範圍旁的編輯圖示,切換至自訂日期與時間選擇器
  • Druid 的 Kafka consumer 使用 auto.offset.reset: latest,只會取得第一次執行 docker compose up 後產生的 Events。更早的 Events 不會出現,與選擇的時間範圍無關

Kafka topic disk 使用量增加

Topics 建立時會設定 48 小時與每個 partition 8 GB 的 retention limit。若部署時間早於這項設定,可以將設定套用到既有 Topics。

for topic in osprey.actions_input osprey.execution_results; do
  kafka-configs --bootstrap-server localhost:9092 \
    --entity-type topics --entity-name $topic --alter \
    --add-config retention.ms=172800000,retention.bytes=8589934592,segment.bytes=1073741824
done

uv: command not found

使用 installation script 或 pip 安裝 uv。

curl -LsSf https://astral.sh/uv/install.sh | sh
# Then restart your terminal

將網路取得的 installation script 傳入 shell 前,應先檢查官方來源與 script 內容。

Pre-commit hooks 失敗

手動執行 hooks 以查看詳細 errors。

uv run pre-commit run --all-files

Protobuf files 發生 MyPy errors

處理方式 Protobuf generated files 已在設定中排除。若仍看到 errors,請檢查 files 是否符合 pyproject.toml 中的 exclusion patterns。

Type checking 時發生 import errors

確認已安裝所有 dependencies。

uv sync