summaryrefslogtreecommitdiffstats
path: root/templates/admin
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 /templates/admin
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 'templates/admin')
-rw-r--r--templates/admin/dashboard.tmpl8
-rw-r--r--templates/admin/navbar.tmpl3
-rw-r--r--templates/admin/stats.tmpl17
3 files changed, 20 insertions, 8 deletions
diff --git a/templates/admin/dashboard.tmpl b/templates/admin/dashboard.tmpl
index e7d986ee17..20cf3ba7f4 100644
--- a/templates/admin/dashboard.tmpl
+++ b/templates/admin/dashboard.tmpl
@@ -6,14 +6,6 @@
</div>
{{end}}
<h4 class="ui top attached header">
- {{.locale.Tr "admin.dashboard.statistic"}}
- </h4>
- <div class="ui attached segment">
- <p>
- {{.locale.Tr "admin.dashboard.statistic_info" .Stats.Counter.User .Stats.Counter.Org .Stats.Counter.PublicKey .Stats.Counter.Repo .Stats.Counter.Watch .Stats.Counter.Star .Stats.Counter.Action .Stats.Counter.Access .Stats.Counter.Issue .Stats.Counter.Comment .Stats.Counter.Oauth .Stats.Counter.Follow .Stats.Counter.Mirror .Stats.Counter.Release .Stats.Counter.AuthSource .Stats.Counter.Webhook .Stats.Counter.Milestone .Stats.Counter.Label .Stats.Counter.HookTask .Stats.Counter.Team .Stats.Counter.UpdateTask .Stats.Counter.Attachment | Str2html}}
- </p>
- </div>
- <h4 class="ui top attached header">
{{.locale.Tr "admin.dashboard.operations"}}
</h4>
<div class="ui attached table segment">
diff --git a/templates/admin/navbar.tmpl b/templates/admin/navbar.tmpl
index eff5f1d83a..777fe29924 100644
--- a/templates/admin/navbar.tmpl
+++ b/templates/admin/navbar.tmpl
@@ -53,6 +53,9 @@
<div class="item">
{{.locale.Tr "admin.monitor"}}
<div class="menu">
+ <a class="{{if .PageIsAdminMonitorStats}}active {{end}}item" href="{{AppSubUrl}}/admin/monitor/stats">
+ {{.locale.Tr "admin.monitor.stats"}}
+ </a>
<a class="{{if .PageIsAdminMonitorCron}}active {{end}}item" href="{{AppSubUrl}}/admin/monitor/cron">
{{.locale.Tr "admin.monitor.cron"}}
</a>
diff --git a/templates/admin/stats.tmpl b/templates/admin/stats.tmpl
new file mode 100644
index 0000000000..c755969cb1
--- /dev/null
+++ b/templates/admin/stats.tmpl
@@ -0,0 +1,17 @@
+{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin monitor")}}
+<div class="admin-setting-content">
+ <h4 class="ui top attached header">
+ {{.locale.Tr "admin.dashboard.statistic"}}
+ </h4>
+ <div class="ui attached table segment">
+ <table class="ui very basic striped table unstackable">
+ {{range $statsKey := .StatsKeys}}
+ <tr>
+ <td width="200">{{$statsKey}}</td>
+ <td>{{index $.StatsCounter $statsKey}}</td>
+ </tr>
+ {{end}}
+ </table>
+ </div>
+</div>
+{{template "admin/layout_footer" .}}