日志记录
事件日志记录
默认情况下,Superset 在其内部数据库中记录特殊操作事件(DBEventLogger)。 这些日志可以通过导航到 Security > Action Log 在 UI 上访问。 您可以自由定制这些日志,通过实现自己的事件日志类。 当启用自定义日志类时,DBEventLogger 被禁用,日志不会在 UI 日志视图中填充。 为了同时实现,自定义日志类应该扩展内置的 DBEventLogger 日志类。
这是一个简单的 JSON-to-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
中配置 logger 即可。
from superset.stats_logger import StatsdStatsLogger
STATS_LOGGER = StatsdStatsLogger(host='localhost', port=8125, prefix='superset')
请注意,也可以通过继承 superset.stats_logger.BaseStatsLogger
来实现自己的 logger。