diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2023-06-03 22:03:41 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-03 22:03:41 +0800 |
commit | 520eb57d7642a5fca3df319e5b5d1c7c9018087c (patch) | |
tree | a697c0be092c2fba660336a6bbebcee47e56c407 /templates/admin | |
parent | 4486dd39e7f6062926d72e0d104ed303eb01a400 (diff) | |
download | gitea-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.tmpl | 8 | ||||
-rw-r--r-- | templates/admin/navbar.tmpl | 3 | ||||
-rw-r--r-- | templates/admin/stats.tmpl | 17 |
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" .}} |