跳至主要內容
在 GitHub 上編輯此頁面

日誌記錄

事件日誌

Superset 預設會將特殊操作事件記錄在其內部資料庫 (DBEventLogger) 中。這些日誌可以透過導覽至 安全性 > 操作日誌 在 UI 上存取。您可以透過實作自己的事件日誌類別來自由自訂這些日誌。當啟用自訂日誌類別時,DBEventLogger 會被停用,並且日誌不再填入 UI 日誌檢視中。 為了同時實現這兩者,自訂日誌類別應擴展內建的 DBEventLogger 日誌類別。

以下是一個簡單的 JSON 到 stdout 類別的範例

    def log(self, user_id, action, *args, **kwargs):
records = kwargs.get('records', list())
dashboard_id = kwargs.get('dashboard_id')
slice_id = kwargs.get('slice_id')
duration_ms = kwargs.get('duration_ms')
referrer = kwargs.get('referrer')

for record in records:
log = dict(
action=action,
json=record,
dashboard_id=dashboard_id,
slice_id=slice_id,
duration_ms=duration_ms,
referrer=referrer,
user_id=user_id
)
print(json.dumps(log))

最後更新您的設定,以傳入您要使用的記錄器的實例

EVENT_LOGGER = JSONStdOutEventLogger()

StatsD 日誌記錄

如果需要,可以將 Superset 設定為將事件記錄到 StatsD。大多數點擊的端點以及 SQL Lab 中的關鍵事件(例如查詢開始和結束)都會被記錄。

要設定 StatsD 日誌記錄,只需在您的 superset_config.py 中設定記錄器即可。

from superset.stats_logger import StatsdStatsLogger
STATS_LOGGER = StatsdStatsLogger(host='localhost', port=8125, prefix='superset')

請注意,也可以透過衍生 superset.stats_logger.BaseStatsLogger 來實作您自己的記錄器。