如何在Prometheus上显示一段时间内访问Superset dashboard的用户数?
How to display the number of users visiting a Superset dashboard within a time interval on Prometheus?
我想监控 Superset 仪表板,并计划将我自己的自定义 Python 导出器与 Prometheus 一起使用。每次记录仪表板以供某些用户访问时,我都会将仪表设置为值 1。我的目标图是:y 轴作为访问次数,x 轴作为时间,dashboard_id 作为图。
我的Python出口商如下:
class DashboardMonitor:
def __init__(self):
self.dashboard_gaguge_map = defaultdict(Gauge)
def create_dashboard_gauges(self, dashboards_list):
for dashboard_id, dashboard_name in dashboards_list.items():
gauge_name = 'dashboard_{}_gauge'.format(dashboard_id)
gauge_description = dashboard_name
dashboard_gauge = Gauge(gauge_name, gauge_description)
self.dashboard_gaguge_map[dashboard_id] = dashboard_gauge
def get_dashboard_gauge(self, dashboard_id):
return self.dashboard_gaguge_map.get(dashboard_id, None)
def set_dashboard_gauge(self, dashboard_id):
dashboard_gauge = self.get_dashboard_gauge(dashboard_id)
dashboard_gauge.set(1)
我当前对 Prometheus 的查询是:
sum(rate(dashboard_1_gauge[1m])) * 60
绘制以下内容:
我不确定绘图是否显示了我想要的样子,或者每次我在日志中遇到该仪表板时将仪表设置为 1 的方法是否是执行此操作的最佳方法。
我该怎么做?
如 https://prometheus.io/docs/prometheus/latest/querying/functions/#rate 所述,rate
应仅与计数器一起使用,而不应与仪表一起使用。
我会将此指标更改为计数器,然后使用 sum(rate(dashboard_1_counter[1m]))
绘制每秒访问使用率图表,或者如果您想获得每个时间段中的访问计数,则使用 sum(increase(dashboard_1_counter[1m]))
,比如本例中的 1m
。
我想监控 Superset 仪表板,并计划将我自己的自定义 Python 导出器与 Prometheus 一起使用。每次记录仪表板以供某些用户访问时,我都会将仪表设置为值 1。我的目标图是:y 轴作为访问次数,x 轴作为时间,dashboard_id 作为图。
我的Python出口商如下:
class DashboardMonitor:
def __init__(self):
self.dashboard_gaguge_map = defaultdict(Gauge)
def create_dashboard_gauges(self, dashboards_list):
for dashboard_id, dashboard_name in dashboards_list.items():
gauge_name = 'dashboard_{}_gauge'.format(dashboard_id)
gauge_description = dashboard_name
dashboard_gauge = Gauge(gauge_name, gauge_description)
self.dashboard_gaguge_map[dashboard_id] = dashboard_gauge
def get_dashboard_gauge(self, dashboard_id):
return self.dashboard_gaguge_map.get(dashboard_id, None)
def set_dashboard_gauge(self, dashboard_id):
dashboard_gauge = self.get_dashboard_gauge(dashboard_id)
dashboard_gauge.set(1)
我当前对 Prometheus 的查询是:
sum(rate(dashboard_1_gauge[1m])) * 60
绘制以下内容:
我不确定绘图是否显示了我想要的样子,或者每次我在日志中遇到该仪表板时将仪表设置为 1 的方法是否是执行此操作的最佳方法。
我该怎么做?
如 https://prometheus.io/docs/prometheus/latest/querying/functions/#rate 所述,rate
应仅与计数器一起使用,而不应与仪表一起使用。
我会将此指标更改为计数器,然后使用 sum(rate(dashboard_1_counter[1m]))
绘制每秒访问使用率图表,或者如果您想获得每个时间段中的访问计数,则使用 sum(increase(dashboard_1_counter[1m]))
,比如本例中的 1m
。