Esta es una guía de referencia para describir cómo se calculan las estadísticas en la página
/abouty dónde encontrar el código Ruby para cada estadística.
Nivel de usuario requerido: Todos los usuarios
Estadísticas de la página Acerca de
Todos los sitios de Discourse tienen una página /about integrada (por ejemplo, aquí está la página Acerca de para Meta) que contiene una lista de administradores y moderadores del sitio, junto con algunas estadísticas sobre el sitio en sí.
Estas estadísticas incluyen a todos los usuarios, incluidas las cuentas de administrador y moderador. Algunas estadísticas también incluirán cuentas anónimas (si están habilitadas en el sitio).
Si la configuración del sitio share anonymized statistics está habilitada (por defecto, esta configuración está habilitada), las “Estadísticas del sitio” en la página /about se expondrán como un archivo JSON que se puede recuperar en /about.json.
Si un sitio es público, la página /about junto con estas estadísticas también estará disponible públicamente.
El código Ruby para las estadísticas principales se encuentra en: discourse/lib/statistics.rb. El modelo
Statque orquesta las estadísticas principales y de complementos está en discourse/app/models/stat.rb.
A continuación se describe cómo se calcula cada una de estas estadísticas.
Temas
El número de temas creados dentro del período de tiempo indicado. Esta estadística no incluye temas no listados ni mensajes personales.
topics = Topic.listable_topics
{
last_day: topics.where("created_at > ?", 1.day.ago).count,
"7_days": topics.where("created_at > ?", 7.days.ago).count,
"30_days": topics.where("created_at > ?", 30.days.ago).count,
count: topics.count,
}
Publicaciones
El número de publicaciones creadas dentro del período de tiempo indicado. Los mensajes personales se incluyen aquí y se cuentan como publicaciones normales.
{
last_day: Post.where("created_at > ?", 1.day.ago).count,
"7_days": Post.where("created_at > ?", 7.days.ago).count,
"30_days": Post.where("created_at > ?", 30.days.ago).count,
count: Post.count,
}
Inscripciones
El número de usuarios válidos que se han registrado para nuevas cuentas dentro del período de tiempo indicado. Un “usuario válido” es un usuario real que también está activado, no suspendido y no silenciado. Si must approve users está habilitado, solo se cuentan los usuarios aprobados.
def self.valid_users
users = User.real.activated.not_suspended.not_silenced
users = users.approved if SiteSetting.must_approve_users
users
end
{
last_day: valid_users.where("created_at > ?", 1.day.ago).count,
"7_days": valid_users.where("created_at > ?", 7.days.ago).count,
"30_days": valid_users.where("created_at > ?", 30.days.ago).count,
count: valid_users.count,
}
Un usuario
realse define aquí: discourse/app/models/user.rb — excluye a los usuarios del sistema/bot y a las cuentas sombra de usuarios anónimos.
Usuarios activos
El número de usuarios válidos que han visitado el sitio dentro del período de tiempo indicado. Utiliza el mismo filtro valid_users que en Inscripciones (excluye usuarios inactivos, suspendidos y silenciados). Incluye usuarios en modo anónimo, pero no incluye usuarios sin cuenta.
{
last_day: valid_users.where("last_seen_at > ?", 1.day.ago).count,
"7_days": valid_users.where("last_seen_at > ?", 7.days.ago).count,
"30_days": valid_users.where("last_seen_at > ?", 30.days.ago).count,
}
Usuarios participantes
El número de usuarios válidos que han realizado una acción (crear un tema, una publicación, dar me gusta, etc.) dentro del período de tiempo indicado. Si el chat está habilitado, también se cuentan los usuarios que enviaron mensajes de chat o agregaron reacciones de chat.
{
last_day: participating_users_count(1.day.ago),
"7_days": participating_users_count(7.days.ago),
"30_days": participating_users_count(30.days.ago),
}
La implementación completa está en discourse/lib/statistics.rb.
Me gusta
El número total de me gusta que han recibido todos los temas y publicaciones dentro del período de tiempo indicado.
likes = UserAction.where(action_type: UserAction::LIKE)
{
last_day: likes.where("created_at > ?", 1.day.ago).count,
"7_days": likes.where("created_at > ?", 7.days.ago).count,
"30_days": likes.where("created_at > ?", 30.days.ago).count,
count: likes.count,
}
Visitantes y visitantes de la UE
Cuando la configuración del sitio display eu visitor stats está habilitada, la página Acerca de también mostrará estimaciones de recuentos de visitantes (total y basados en la UE). Estos se calculan combinando los datos de visitas de usuarios registrados con estimaciones de visitantes anónimos basadas en las proporciones de visualización de páginas.
Consulte los métodos
visitorsyeu_visitorsen discourse/lib/statistics.rb para ver el cálculo completo.
Mensajes de chat
El número de mensajes de chat enviados en todos los canales de chat. Cuando el chat está habilitado, también se registran las siguientes estadísticas: usuarios de chat (usuarios distintos que han enviado mensajes) y canales de chat (canales abiertos).
Estas estadísticas se registran como estadísticas de complementos por el complemento de chat mediante register_stat en plugins/chat/plugin.rb. Las consultas subyacentes están en plugins/chat/lib/chat/statistics.rb.
