Statistiche Nuovi Post sulla dashboard danneggiate

Ciao a tutti,

da uno o due settimane, dall’ultimo aggiornamento, le nuove statistiche sui post nel pannello di controllo sono rotte. Non visualizza più nulla. È un problema solo per me o un bug comune? Non ho trovato nulla facendo una ricerca qui.

Cordiali saluti

Mi scusi, può chiarire, sta dicendo che questi grafici non funzionano?

Quando ha aggiornato la sua istanza l’ultima volta, può aggiornarla ora?

Mi scusi per la poca chiarezza, ecco uno screenshot:

Ho aggiornato stasera a 05685d430f.

Se ricordo bene, è da circa una o due settimane che aggiorno ogni cinque giorni circa al momento.

E sì, al momento non c’è molto traffico, ma abbiamo nuovi post. :wink: Ho anche cliccato e scelto l’anno da oggi. Niente nemmeno lì.

La prima cosa che mi viene in mente è “dati insufficienti”, ma lo segnalerò al team xp dello staff che potrà aiutarmi a eseguire il debug.

1 Mi Piace

Grazie! Un altro screenshot, dove puoi vedere che ci sono nuovi argomenti. Quindi ci devono essere anche nuovi post. Almeno tanti quanti gli argomenti (ma di sicuro qui ce ne sono di più :wink:).

Se vai alla pagina del report completo su \u003chttps://YOURSITE.COM/admin/reports/posts?end_date=2025-02-17\u0026start_date=2025-01-17\u003e, riesci a visualizzare dei dati, modificando le date/filtri? Vedi errori nei log su \u003chttps://YOURSITE.COM/logs\u003e o nella scheda Network di Chrome DevTools quando carichi questa pagina o la dashboard?

1 Mi Piace

No, anche lì è tutto vuoto. Posso anche modificare le date di inizio e fine, non cambia.

No, nessuno. Solo alcune notifiche di deprecazione, non correlate alle statistiche (secondo l’ora).

In effetti, ci sono degli errori. Quando carico la pagina, sono 9, diventano di più col tempo.

Questo aiuta? Devo copiare e incollare (testo) uno/tutti questi errori?

2 Mi Piace

In effetti, ho riscontrato anch’io questa situazione. Anche la mia community non visualizza il conteggio corretto dei post.

Non corretto o niente affatto come qui?

1 Mi Piace

Ho fatto un po’ di ricerca, sembra che gli errori di domQueryService provengano dall’estensione Chrome Bitwarden, è improbabile che causino problemi. Gli errori del mini-profiler possono essere ignorati.

L’errore di fingerprint-report proviene da GitHub - discourse/discourse-fingerprint: A plugin that computes user fingerprints to help administrators combat internet trolls., e sebbene sia un problema che dobbiamo risolvere, non sembra impedire il caricamento del report dei post a livello locale.

Quel file body_tag_1.js a volte causa problemi ad altre persone su Discourse Lost ability to scroll through HA community site - community-feedback - Home Assistant Community. Hai qualche Adblocker? Se sì, prova a disabilitarli. Se no o se non funziona, prova ad abilitare la Modalità Sicura Using Safe Mode to troubleshoot issues with themes and plugins e vedi se riesci a caricare la pagina, se ci riesci indicherebbe un problema con un plugin o un tema.

Infine, prova a caricare il JSON del report e vedi se ottieni dei risultati qui:

https://YOURSITE.COM/admin/reports/bulk.json?reports[posts][facets][]=prev_period&reports[posts][start_date]=2025-01-18&reports[posts][end_date]=2025-02-18&reports[posts][limit]=50

4 Mi Piace

Li ho, quelli già presenti in Opera, che è il browser che sto usando sul computer. Uso anche Pi-hole con diverse blocklist.

Ma: questi problemi si verificano anche sul mio iPad nell’app Discourse e in altre reti, inclusi i dati mobili. Quindi niente ad blocker o cose del genere.

Posso, ma non più oggi. :wink:

Certo:

{"reports":[{"type":"posts","title":"Beiträge","xaxis":"Tag","yaxis":"Anzahl neuer Beiträge","description":"Neue Beiträge, die in dieser Zeit erstellt wurden","description_link":null,"data":[],"start_date":"2025-01-18T00:00:00Z","end_date":"2025-02-18T23:59:59Z","prev_data":null,"prev_start_date":"2024-12-17T00:00:00Z","prev_end_date":"2025-01-18T00:00:00Z","prev30Days":null,"dates_filtering":true,"report_key":"reports:posts:20250118:20250218:[:prev_period]:50:4","primary_color":"rgba(113,184,254,1)","secondary_color":"rgba(113,184,254,0.1)","available_filters":[{"id":"category","type":"category","default":null}],"labels":[{"type":"date","property":"x","title":"Tag"},{"type":"number","property":"y","title":"Anzahl"}],"average":false,"percent":false,"higher_is_better":true,"modes":["chart","table"],"prev_period":0,"limit":50}]}

Dato che questo non mostra nulla, se ho letto bene, la modalità sicura ha senso?

1 Mi Piace

Ok, grazie, questo è utile e indica che mancano i dati stessi, e non che c’è qualche errore nel frontend :thinking:

La query SQL che supporta questo report è piuttosto semplice, se hai accesso a Data Explorer o direttamente al tuo DB puoi provare a eseguirla e modificarla per vedere se ti darà qualche dato:

SELECT 
  COUNT(*) AS "count_all", 
  date(posts.created_at) AS "date_posts_created_at" 
FROM 
  "posts" 
  INNER JOIN "topics" ON "topics"."deleted_at" IS NULL 
  AND "topics"."id" = "posts"."topic_id" 
WHERE 
  "posts"."deleted_at" IS NULL 
  AND (
    topics.archetype <> 'private_message'
  ) 
  AND (
    posts.created_at >= '2025-02-01' 
    AND posts.created_at <= '2025-02-28'
  ) 
  AND "posts"."post_type" = 1 
GROUP BY 
  date(posts.created_at) 
ORDER BY 
  date(posts.created_at)

E qui c’è il codice del report stesso:

Temo che sia un po’ complicato eseguire ulteriori debug senza avere accesso al tuo sito in modo da poter esaminare il database.

1 Mi Piace

La query in Data Explorer restituisce dati:

1 Mi Piace

Mi dispiace Roi, questo si è un po’ perso. Suppongo che ci sia qualcosa che non va nel codice del report stesso? discourse/app/models/concerns/reports/posts.rb at 8596aa34c46071eb42ffbb9e19ad733d1765578e · discourse/discourse · GitHub .

Hai accesso alla console rails del tuo sito? Se sì, prova questo e vedi se ti restituisce dei dati:

Report.find("posts", start_date: 4.weeks.ago, end_date: Time.zone.now).data

Questo stamperà anche le query SQL che esegue, quindi potrebbero esserci ulteriori indizi lì.

1 Mi Piace

Nessun problema! Non sembra perfetto sulla dashboard dell’amministratore, ma non è critico come altri bug.

Sì.

Hm, stavo facendo la cosa giusta?

root@prometheus-discourse-sidemount:/var/www/discourse# rails c
Il nome del plugin è 'discourse-docs', ma la directory del plugin si chiama 'discourse-knowledge-explorer'
Il nome del plugin è 'discourse-user-notes', ma la directory del plugin si chiama 'discourse-staff-notes'
[1] pry(main)> Report.find("posts", start_date: 4.weeks.ago, end_date: Time.zone.now).data
=> []
[2] pry(main)>

La risposta è vuota. Questo spiegherebbe la casella vuota sulla dashboard dell’amministratore. Ma hai scritto che anche nella risposta dovrebbe esserci un’istruzione SQL?

1 Mi Piace

Ah scusa, forse l’ho visto solo perché lo stavo eseguendo localmente. Prova questo:

MethodProfiler.output_sql_to_stderr!
Report.find("posts", start_date: 4.weeks.ago, end_date: Time.zone.now).data

Ora otterrai molto più rumore dalle query, ma le ultime query saranno quelle del report:

1 Mi Piace

Ok, molto più rumore. :wink: È questo che stai cercando o ti serve altro da quanto sopra?

debugsql (sql): SELECT COUNT(*) AS "count_all", date(posts.created_at) AS "date_posts_created_at" FROM "posts" INNER JOIN "topics" ON "topics"."deleted_at" IS NULL AND "topics"."id" = "posts"."topic_id" WHERE "posts"."deleted_at" IS NULL AND (topics.archetype <> 'private_message') AND NOT ((topics.category_id IN (NULL))) AND (posts.created_at >= '2025-02-03 06:00:45.160432' AND posts.created_at <= '2025-03-03 06:00:45.160586') AND "posts"."post_type" = 1 GROUP BY date(posts.created_at) ORDER BY date(posts.created_at)
debugsql (sec): 0.001
debugsql (sql): SELECT "category_custom_fields"."category_id" FROM "category_custom_fields" WHERE "category_custom_fields"."name" = 'private_topics_enabled'
debugsql (sec): 0.0
debugsql (sql): SELECT COUNT(*) FROM "posts" INNER JOIN "topics" ON "topics"."deleted_at" IS NULL AND "topics"."id" = "posts"."topic_id" WHERE "posts"."deleted_at" IS NULL AND (topics.archetype <> 'private_message') AND NOT ((topics.category_id IN (NULL))) AND "posts"."post_type" = 1
debugsql (sec): 0.0
debugsql (sql): SELECT COUNT(*) FROM "posts" INNER JOIN "topics" ON "topics"."deleted_at" IS NULL AND "topics"."id" = "posts"."topic_id" WHERE "posts"."deleted_at" IS NULL AND (topics.archetype <> 'private_message') AND NOT ((topics.category_id IN (NULL))) AND "posts"."post_type" = 1 AND (posts.created_at >= '2025-01-04 06:00:45.160432' and posts.created_at < '2025-02-03 06:00:45.160432')
debugsql (sec): 0.0
debugsql (sql): COMMIT
debugsql (sec): 0.0
=> []
1 Mi Piace

Sì, è quello che mi serve :slight_smile: La parte che mi salta all’occhio è AND NOT ((topics.category_id IN (NULL))); non ce l’ho nella query che mostro nello screenshot qui sopra. Questo escluderebbe tutti gli argomenti senza categoria dal conteggio, il che, a seconda della configurazione del tuo forum, potrebbe essere molto?

Non vedo nel codice da dove provenga. Il prossimo passo che proverei a fare in Data Explorer:

SELECT 
  COUNT(*) AS "count_all", 
  date(posts.created_at) AS "date_posts_created_at" 
FROM 
  "posts" 
  INNER JOIN "topics" ON "topics"."deleted_at" IS NULL 
  AND "topics"."id" = "posts"."topic_id" 
WHERE 
  "posts"."deleted_at" IS NULL 
  AND (
    topics.archetype <> 'private_message'
  ) 
  AND (
    posts.created_at >= '2025-02-03 06:00:45.160432' 
    AND posts.created_at <= '2025-03-03 06:00:45.160586'
  ) 
  AND "posts"."post_type" = 1 
GROUP BY 
  date(posts.created_at) 
ORDER BY 
  date(posts.created_at)

(Ho rimosso la clausola AND NOT qui), e vedere se ottieni qualche risultato. Se eseguo questo localmente ottengo:

 count_all | date_posts_created_at
-----------+-----------------------
         1 | 2025-02-03
         8 | 2025-02-04
         7 | 2025-02-05
         1 | 2025-02-06
         7 | 2025-02-12
         4 | 2025-02-26

Mentre se mantengo la clausola category_id che le tue query mostrano, non ottengo dati.

1 Mi Piace

Funziona:

:sign_of_the_horns:

Tutti i nostri post hanno una categoria.

Da dove viene questa condizione aggiuntiva? :thinking:

1 Mi Piace

Sì, non sono molto sicuro :frowning: È una possibilità remota, ma potrebbe essere un plugin che aggiunge/modifica qualcosa? :thinking: Quali plugin usi? La prima query sopra (quella con count_all) proviene da qui:

Se chiamare semplicemente questo nella console aggiunge ancora quella clausola category_id IN (NULL), allora qualcosa è molto strano:

Post.public_posts_count_per_day(4.weeks.ago, Time.zone.now)
1 Mi Piace