如何监控/追踪Apache Superset的用户使用情况?
监控Apache Superset终端用户使用情况的方法
1. 利用Superset内置的审计日志
Superset默认开启了审计日志功能,所有用户的操作(如访问仪表盘、查看图表、查询数据集)都会被记录到数据库的logs表中。你可以直接查询这个表获取所需数据:
- 查询活跃用户:统计指定时间范围内有操作记录的用户ID和用户名
SELECT DISTINCT user_id, username FROM logs WHERE action_time >= '2024-01-01' ORDER BY action_time DESC; - 统计仪表盘使用频次:按仪表盘ID和名称分组,计算访问次数
SELECT object_id, object_name, COUNT(*) AS access_count FROM logs WHERE action='dashboard_view' GROUP BY object_id, object_name ORDER BY access_count DESC; - 统计图表使用频次:类似仪表盘,筛选
action='chart_view'即可 - 统计数据集查询频次:筛选
action='dataset_view'或action='dataset_query'(根据具体操作类型)
2. 自定义仪表盘展示监控数据
你可以基于logs表创建Superset仪表盘,将上述统计结果可视化,直观查看活跃用户和各类资源的使用频次:
- 创建基于Superset元数据库的数据集,关联
logs表和ab_user表(获取完整用户信息) - 制作柱状图、表格等图表,分别展示活跃用户排名、仪表盘/图表/数据集的访问次数
- 将这些图表组合成专属监控仪表盘,设置定期刷新自动更新数据
3. 启用事件日志扩展监控(可选)
如果需要更精细化的事件追踪,可以在superset_config.py中配置事件日志,将日志输出到外部监控系统(如ELK、Prometheus):
from superset.utils.log import DBEventLogger EVENT_LOGGER = DBEventLogger()
之后通过外部工具聚合分析日志数据,实现更复杂的监控需求,比如用户行为路径分析。
注意:默认logs表不会永久保留所有日志,建议配置日志保留策略,或同步到外部存储系统长期保存。
内容的提问来源于stack exchange,提问作者JPB
相关产品推荐
相关产品推荐

