You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Prometheus跟踪独立用户登录并在Grafana展示方案咨询

ShinyProxy登录用户指标统计落地方案

Prometheus存储适配性结论

完全适合作为该需求的后端存储。独立登录用户数属于典型的时序事件类统计场景,和Prometheus的设计定位完全匹配,依托你现有已经部署好的Prometheus+Grafana技术栈即可实现,不需要额外引入其他存储组件,查询性能可以满足日常运维看板的需求。

推荐使用的Prometheus指标类型

选用*Counter(单调递增计数器)*类型实现埋点:

  • 指标名建议定义为shinyproxy_user_login_total
  • 固定携带user标签,存储用户的全局唯一标识(如用户名、工号、统一认证ID,禁止使用昵称、部门等非唯一值)
  • 可选携带login_result标签,取值为success/failed,用于区分登录成功/失败事件
  • 埋点触发时机固定在用户登录认证成功的逻辑节点,不要在普通接口请求处重复打点,避免产生冗余无效指标

不建议使用Gauge类型:Gauge仅记录瞬时状态值,无法回溯历史时间窗口内的事件分布,无法支撑任意时间周期的独立用户统计需求。

Grafana对应查询语句

在Grafana面板中选择Prometheus数据源,输入以下PromQL即可自动适配页面顶部选定的时间周期,返回对应周期内的独立登录用户数:

count(
  count_over_time(shinyproxy_user_login_total{login_result="success"}[$__range]) > 0
)

语句逻辑说明:

  1. $__range是Grafana内置变量,会自动替换为用户在看板选择的时间范围长度,无需手动修改
  2. count_over_time(...)会筛选出选定时间范围内存在登录成功记录的所有用户时序
  3. 外层count()对符合条件的时序计数,最终结果就是该时间周期内的独立登录用户总数

配置注意事项

  • Prometheus抓取ShinyProxy指标端点的间隔建议设置为15s-30s,间隔过长可能漏采短时间内发生的登录事件
  • 若需要统计周期内实际启动应用的活跃用户而非仅登录用户,可将埋点触发时机调整为用户成功启动ShinyProxy应用的节点,指标名改为shinyproxy_app_start_total,查询逻辑完全一致
  • 单指标携带user标签产生的时序基数等于你的平台总用户规模,十万级以内的用户量对Prometheus无额外性能压力,不需要做特殊调优

内容的提问来源于stack exchange,提问作者Bennimi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 19:57:31