正在运行 3.1.0.beta1 (9e55a1ca88)
我们的自托管站点要求所有用户都已注册,不允许匿名访问,并且所有帐户都需要版主批准,通常在请求后一到两个小时内完成。
我们注意到两名新用户,其中一名用户创建已有 8 小时,但报告的“已访问天数”为 2 天。另一名用户创建于 1 天前,报告的“已访问天数”为 3 天。
搜索后发现了“已访问天数异常”帖子,但该帖子似乎不相关。我应该检查什么来找出问题所在,或者我们做错了什么?
感谢您的协助,Kirk
正在运行 3.1.0.beta1 (9e55a1ca88)
我们的自托管站点要求所有用户都已注册,不允许匿名访问,并且所有帐户都需要版主批准,通常在请求后一到两个小时内完成。
我们注意到两名新用户,其中一名用户创建已有 8 小时,但报告的“已访问天数”为 2 天。另一名用户创建于 1 天前,报告的“已访问天数”为 3 天。
搜索后发现了“已访问天数异常”帖子,但该帖子似乎不相关。我应该检查什么来找出问题所在,或者我们做错了什么?
感谢您的协助,Kirk
你好,欢迎你 @kgrier ![]()
关于这些用户有什么特别之处吗?可能是他们的创建方式或创建时间?他们有什么共同点吗?
抱歉回复晚了。圣巴巴拉(Santa Barbara)过多的降雨让我分心了。
我们所有的用户都是自行注册的,所以账户是那样创建的,然后需要版主批准才能访问论坛。我曾以为可能存在一个“午夜跨越”问题,即用户在2100注册,然后在0100获得批准,显示为两天,但有我发布的那个三天用户。
我不知道这种情况发生了多久,因为我没有仔细看,但我们的一个版主看了。我正在关注我们收到的注册信息,看看每个新用户是否都会发生这种情况。
如果有什么数据探索器(Data Explorer)查询能帮上忙,请告诉我,我会运行它并汇报结果。
感谢您提供的任何帮助/见解。
但是这个3天用户是一天多以前创建的。所以他们也可以在午夜之前注册(第1天),几个小时后访问(第2天),然后在一天后(第3天)。这不到两天,所以显示一天是正确的。
我在元(meta)上也看到过2天的差异
我找不到现有的,但也许是这样的:
SELECT u.id AS user_id,
u.created_at,
u.approved_at,
us.days_visited
FROM users u
JOIN user_stats us ON u.id = us.user_id
WHERE u.approved_at IS NOT NULL
ORDER BY u.created_at DESC
或者一个稍微多一点的,使其更具可读性:
SELECT u.id AS user_id,
CONCAT(u.created_at::date, ' at ', to_char(u.created_at, 'HH:MM')) "user_created",
CONCAT(u.approved_at::date, ' at ', to_char(u.approved_at, 'HH:MM')) "user_approved",
us.days_visited
FROM users u
JOIN user_stats us ON u.id = us.user_id
WHERE u.approved_at IS NOT NULL
ORDER BY u.created_at DESC
我认为“访问天数”的值会在正好到达凌晨 12:00 UTC 时发生变化。因此,用户可以在到达凌晨 12:00 UTC 之前加入,然后在该时间点之前保持活跃(然后“访问天数”会增加)。
(类似于 Moin 下面的回复:)
很高兴看到它发生在 Meta。我讨厌我是一个人的时候,然后你就知道你做错了 ![]()
我将“创建时间:1 天前”解释为昨天,因为账户上的创建时间戳似乎是用户注册时的时间,而不是他们被批准时的时间(这很有意义,因为注册是一次访问)。我可以看到“访问 2 天”,并且有 UTC 滚动,但无法达到“访问 3 天”。如果真是这样,“创建”不应该是“2 天前”吗?
那个“3 天用户”自 1 月 11 日以来没有回来,所以当前的报告看起来是正确的——1 月 9 日至 1 月 11 日。
但是数据浏览器显示创建时间是 1 月 10 日,而不是用户活动中的 1 月 9 日。是否有什么本地时间与 UTC 的问题?也许在报告时间时注明时区?这两个查询相隔一分钟运行。
Discourse 是否会记录它所认为的“访问”及其持续时间?如果是这样,我是否可以查询用户在网站上的日期/时间?对于一个繁忙的网站来说,这将是大量数据,所以也许只保留最后 X 天?这将允许在时间线上进行映射。
我可以创建几个测试账户来看看报告会发生什么。虽然不是什么大事,但如果我们不了解报告背后的计算方式,就会让人对其他统计数据产生疑问。
DE 报告
用户信息现在:
是的。查看个人资料时,它会显示您本地时区的本地时间,而不是 UTC,除非您的本地时区恰好是 UTC,而 DE 显示的是存储的 UTC 值 ![]()
感谢 @ClawdiaWolf
编辑:我对之前发布的“3天”用户进行了一些测试,修改了查询以包含首次和最后在线时间。他在线时间不到44小时,跨越了三个00:00 UTC午夜,因此是三天。
用户活动显示似乎有些奇怪,报告“1天前创建”,但“访问天数3天”是不一致的。这听起来像是过度简化数据的结果。
我认为最好直接显示UTC时间戳,让用户自行解释。“1天前”是不确定的。需要多少小时才能算一天?听起来跨越0000 UTC就足够了。那么在UTC时间0001 UTC查看时,一个用户在2359 UTC创建就是“1天前”?
这可能是技术上正确的——如果我在UTC时区,该用户是“昨天,即1天前”创建的,但在其他任何地方,这都不正确,或者不是人们的理解方式。我不确定这对于从管理员的角度理解活动是否有用。
我也意识到我的理解仍然不完整,感谢大家继续教导我。目前,我已建议我们的版主使用DE查询来了解用户的事件,如果他们需要详细的准确性。
我将把它转给#ux,因为似乎没有什么坏处(尽管信息显示可以更清晰)。但如果你以后发现其他问题,我们随时可以再把它转回来。
![]()