summaryrefslogtreecommitdiffstats
path: root/models/activities/statistic.go
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2023-06-03 22:03:41 +0800
committerGitHub <noreply@github.com>2023-06-03 22:03:41 +0800
commit520eb57d7642a5fca3df319e5b5d1c7c9018087c (patch)
treea697c0be092c2fba660336a6bbebcee47e56c407 /models/activities/statistic.go
parent4486dd39e7f6062926d72e0d104ed303eb01a400 (diff)
downloadgitea-520eb57d7642a5fca3df319e5b5d1c7c9018087c.tar.gz
gitea-520eb57d7642a5fca3df319e5b5d1c7c9018087c.zip
Use a separate admin page to show global stats, remove `actions` stat (#25062)
Before, Gitea shows the database table stats on the `admin dashboard` page. It has some problems: * `count(*)` is quite heavy. If tables have many records, this blocks loading the admin page blocks for a long time * Some users had even reported issues that they can't visit their admin page because this page causes blocking or `50x error (reverse proxy timeout)` * The `actions` stat is not useful. The table is simply too large. Does it really matter if it contains 1,000,000 rows or 9,999,999 rows? * The translation `admin.dashboard.statistic_info` is difficult to maintain. So, this PR uses a separate page to show the stats and removes the `actions` stat. ![image](https://github.com/go-gitea/gitea/assets/2114189/babf7c61-b93b-4a62-bfaa-22983636427e) ## :warning: BREAKING The `actions` Prometheus metrics collector has been removed for the reasons mentioned beforehand. Please do not rely on its output anymore.
Diffstat (limited to 'models/activities/statistic.go')
-rw-r--r--models/activities/statistic.go5
1 files changed, 2 insertions, 3 deletions
diff --git a/models/activities/statistic.go b/models/activities/statistic.go
index 138f4d8fe9..9d379cd0c4 100644
--- a/models/activities/statistic.go
+++ b/models/activities/statistic.go
@@ -21,7 +21,7 @@ import (
type Statistic struct {
Counter struct {
User, Org, PublicKey,
- Repo, Watch, Star, Action, Access,
+ Repo, Watch, Star, Access,
Issue, IssueClosed, IssueOpen,
Comment, Oauth, Follow,
Mirror, Release, AuthSource, Webhook,
@@ -55,7 +55,6 @@ func GetStatistic() (stats Statistic) {
stats.Counter.Repo, _ = repo_model.CountRepositories(db.DefaultContext, repo_model.CountRepositoryOptions{})
stats.Counter.Watch, _ = e.Count(new(repo_model.Watch))
stats.Counter.Star, _ = e.Count(new(repo_model.Star))
- stats.Counter.Action, _ = db.EstimateCount(db.DefaultContext, new(Action))
stats.Counter.Access, _ = e.Count(new(access_model.Access))
type IssueCount struct {
@@ -83,7 +82,7 @@ func GetStatistic() (stats Statistic) {
Find(&stats.Counter.IssueByRepository)
}
- issueCounts := []IssueCount{}
+ var issueCounts []IssueCount
_ = e.Select("COUNT(*) AS count, is_closed").Table("issue").GroupBy("is_closed").Find(&issueCounts)
for _, c := range issueCounts {