皆さん、
1〜2週間前のアップグレードの後、ダッシュボードの新しい投稿の統計が正しく表示されなくなっています。何も表示されません。これは私だけの問題ですか、それとも一般的なバグですか?ここでの検索では何も見つかりませんでした。
よろしくお願いします
皆さん、
1〜2週間前のアップグレードの後、ダッシュボードの新しい投稿の統計が正しく表示されなくなっています。何も表示されません。これは私だけの問題ですか、それとも一般的なバグですか?ここでの検索では何も見つかりませんでした。
よろしくお願いします
申し訳ありません、不明瞭でした。スクリーンショットはこちらです。
今晩、05685d430fに更新しました。
記憶が正しければ、これは約1〜2週間前からで、現在5日ごとにアップグレードしています。
そして、現時点ではトラフィックはそれほど多くありませんが、新しい投稿があります。
今日から年を選択してクリックもしましたが、そこにも何もありませんでした。
まず思いつくのは「データ不足」ですが、デバッグのサポートができるスタッフのXPチームに伝えておきます。
ありがとうございます!新しいトピックがあることがわかる別のスクリーンショットです。したがって、新しい投稿もあるはずです。少なくともトピックの数と同じくらい(でも、ここでは間違いなくそれ以上ですね😉)。
フルレポートページ(https://YOURSITE.COM/admin/reports/posts?end_date=2025-02-17&start_date=2025-01-17)にアクセスして、日付/フィルターを調整しても、データが表示されますか?このページまたはダッシュボードを読み込む際に、ログ(https://YOURSITE.COM/logs)またはChrome DevToolsのネットワークタブにエラーが表示されますか?
いいえ、そこもすべて空です。開始日と終了日を調整しても、変更されません。
いいえ、何もありません。非推奨の通知がいくつかあるだけですが、時間的には統計に関連していないようです。
確かに、エラーがあります。ページを読み込むと9件で、時間が経つにつれて増えていきます。
これで役立ちますか?これらのエラーのいずれか/すべてをコピー&ペースト(テキスト)しましょうか?
私も同様の状況に遭遇しました。私のコミュニティでも、投稿数が正しく表示されません。
正しくない、それともここでは何も表示されない、ということですか?
少し調査したところ、domQueryService のエラーは Bitwarden Chrome 拡張機能からのもので、問題を引き起こす可能性は低いようです。ミニプロファイラーのエラーは無視できます。
fingerprint-report のエラーは GitHub - discourse/discourse-fingerprint: A plugin that computes user fingerprints to help administrators combat internet trolls. からのもので、修正が必要な問題ですが、ローカルでは投稿レポートの読み込みを妨げているようには見えません。
他の人も Discourse で時々問題があるようです。body_tag_1.js ファイルについて、Lost ability to scroll through HA community site - community-feedback - Home Assistant Community 。広告ブロッカーを使用していますか?もしそうなら、無効にしてみてください。それでもうまくいかない場合は、セーフモードを有効にして Using Safe Mode to troubleshoot issues with themes and plugins ページを読み込めるか確認してみてください。読み込める場合は、プラグインまたはテーマの問題が考えられます。
最後に、レポートの JSON を読み込んで、ここで結果が得られるか確認してください。
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
Operaにすでに搭載されているものを使用しています。Operaは私がコンピューターで使用しているブラウザです。また、いくつかのブロックリストを持つPi-holeも使用しています。
しかし、これらの問題はiPadのDiscourseアプリや、モバイルデータを含む他のネットワークでも発生します。したがって、広告ブロッカーなどは関係ありません。
できますが、今日はもうできません。 ![]()
はい、こちらです。
{"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}]}
これは何も表示しないので、正しく読めているなら、セーフモードは意味がありますか?
はい、ありがとうございます。それは役立ちますし、フロントエンドのエラーではなく、データ自体が欠落していることを示していますね ![]()
このレポートの基盤となっているSQLクエリは非常にシンプルです。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-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)
そして、レポートコード自体はこちらです。
残念ながら、データベースを調査するためにあなたのサイトにアクセスできないと、これ以上デバッグするのは難しいです。
Data Explorer のクエリはデータが返ってきました。
申し訳ありません、Roi さん。これは少し見落としていました。レポートコード自体に何か問題があるのではないでしょうか? discourse/app/models/concerns/reports/posts.rb at 8596aa34c46071eb42ffbb9e19ad733d1765578e · discourse/discourse · GitHub 。
サイトの Rails コンソールにアクセスできますか?もしそうなら、これを試してデータが得られるか確認してください。
Report.find("posts", start_date: 4.weeks.ago, end_date: Time.zone.now).data
これにより、実行される SQL クエリも出力されるため、さらに手がかりが得られる可能性があります。
心配いりません!管理ダッシュボードでは完璧に見えませんが、他のバグほどクリティカルではありません。
はい。
うーん、これで合っていましたか?
root@prometheus-discourse-sidemount:/var/www/discourse# rails c
Plugin name is 'discourse-docs', but plugin directory is named 'discourse-knowledge-explorer'
Plugin name is 'discourse-user-notes', but plugin directory is named 'discourse-staff-notes'
[1] pry(main)> Report.find("posts", start_date: 4.weeks.ago, end_date: Time.zone.now).data
=> []
[2] pry(main)>
答えは空でした。管理ダッシュボードの空のボックスはそれで説明がつきます。しかし、答えにはSQLステートメントも含まれると書かれていましたか?
ああ、すみません、ローカルで実行していたから見えただけかもしれません。こちらをお試しください。
MethodProfiler.output_sql_to_stderr!
Report.find("posts", start_date: 4.weeks.ago, end_date: Time.zone.now).data
これで多くのクエリノイズが表示されますが、最後の数個のクエリがレポートからのものになります。
了解しました、ノイズがかなり増えましたね
これをお探しのものでしょうか、それとも上記からもっと何か必要ですか?
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
=> []
はい、それが求めているものです
気になったのは AND NOT ((topics.category_id IN (NULL))) の部分です。これは、上記のスクリーンショットで示したクエリにはありません。これは、カテゴリのないすべてのトピックをカウントから除外することになります。フォーラムの設定によっては、かなりの数になる可能性があります。
コードのどこからそれが来るのか分かりません。次のステップとして、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)
(ここでは AND NOT 句を削除しました)を実行して、結果が得られるか確認します。ローカルで実行すると、次のようになります。
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
一方、クエリで示されている category_id 句を維持すると、データは表示されません。
ええ、私も本当にわかりません
可能性は低いですが、プラグインが何かを追加/変更している可能性はありますか?
どのプラグインを使用していますか? 上記の最初のクエリ(count_all を含むもの)はここから来ています。
コンソールでこれを呼び出すだけで category_id IN (NULL) 句が追加される場合、それは非常に奇妙です。
Post.public_posts_count_per_day(4.weeks.ago, Time.zone.now)