Questa è una guida di riferimento che descrive come vengono calcolate le statistiche nella pagina
/aboute dove trovare il codice Ruby per ciascuna statistica.
Livello utente richiesto: Tutti gli utenti
Statistiche della pagina About
Tutti i siti Discourse dispongono di una pagina /about integrata (ad esempio, ecco la pagina About per Meta) che contiene un elenco di amministratori e moderatori del sito, insieme ad alcune statistiche relative al sito stesso.
Queste statistiche includono tutti gli utenti, inclusi gli account di amministratore e moderatore. Alcune statistiche includono anche account anonimi (se abilitati sul sito).
Se l’impostazione del sito share anonymized statistics è abilitata (di default è abilitata), le “Statistiche del sito” nella pagina /about saranno esposte come file JSON recuperabile all’indirizzo /about.json.
Se un sito è pubblico, la pagina /about insieme a queste statistiche sarà disponibile pubblicamente.
Il codice Ruby per le statistiche principali si trova in: discourse/lib/statistics.rb. Il modello
Statche orchestra le statistiche principali e quelle dei plugin si trova in discourse/app/models/stat.rb.
Di seguito è descritta la modalità di calcolo di ciascuna di queste statistiche.
Argomenti
Il numero di argomenti creati entro il periodo di tempo indicato. Questa statistica non include gli argomenti non elencati o i messaggi privati.
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,
}
Post
Il numero di post creati entro il periodo di tempo indicato. I messaggi privati sono inclusi qui e contati come post regolari.
{
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,
}
Iscrizioni
Il numero di utenti validi che hanno registrato nuovi account entro il periodo di tempo indicato. Un “utente valido” è un utente reale che è anche attivato, non sospeso e non silenziato. Se must approve users è abilitato, vengono contati solo gli utenti approvati.
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 utente
realeè definito qui: discourse/app/models/user.rb — esclude gli utenti di sistema/bot e gli account ombra degli utenti anonimi.
Utenti attivi
Il numero di utenti validi che hanno visitato il sito entro il periodo di tempo indicato. Utilizza lo stesso filtro valid_users delle Iscrizioni (esclude utenti inattivi, sospesi e silenziati). Include gli utenti in modalitĂ anonima, ma non include gli utenti senza account.
{
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,
}
Utenti partecipanti
Il numero di utenti validi che hanno eseguito un’azione (creato un argomento, un post, un like, ecc.) entro il periodo di tempo indicato. Se la chat è abilitata, vengono contati anche gli utenti che hanno inviato messaggi chat o aggiunto reazioni 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),
}
L’implementazione completa si trova in discourse/lib/statistics.rb.
Like
Il numero totale di like ricevuti da tutti gli argomenti e i post entro il periodo di tempo indicato.
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,
}
Visitatori e Visitatori UE
Quando l’impostazione del sito display eu visitor stats è abilitata, la pagina About mostrerà anche i conteggi stimati dei visitatori (totali e basati nell’UE). Questi vengono calcolati combinando i dati di visita degli utenti registrati con i visitatori anonimi stimati in base ai rapporti delle visualizzazioni di pagina.
Consulta i metodi
visitorseeu_visitorsin discourse/lib/statistics.rb per il calcolo completo.
Messaggi Chat
Il numero di messaggi chat inviati su tutti i canali chat. Quando la chat è abilitata, vengono registrate anche le seguenti statistiche: utenti chat (utenti distinti che hanno inviato messaggi) e canali chat (canali aperti).
Queste statistiche sono registrate come statistiche del plugin dal plugin chat tramite register_stat in plugins/chat/plugin.rb. Le query sottostanti si trovano in plugins/chat/lib/chat/statistics.rb.
