日誌記錄
事件日誌
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
來實作您自己的記錄器。