mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Include wait information on the activity tab of the dashboards. Fixes #1859
This commit is contained in:
@@ -140,7 +140,11 @@ def check_precondition(f):
|
||||
# Set template path for sql scripts
|
||||
g.server_type = g.manager.server_type
|
||||
g.version = g.manager.version
|
||||
g.template_path = 'dashboard/sql/9.1_plus'
|
||||
|
||||
if g.version < 90600:
|
||||
g.template_path = 'dashboard/sql/9.1_plus'
|
||||
else:
|
||||
g.template_path = 'dashboard/sql/9.6_plus'
|
||||
|
||||
return f(*args, **kwargs)
|
||||
|
||||
@@ -174,6 +178,17 @@ def index(sid=None, did=None):
|
||||
|
||||
prefs = Preferences.module('dashboards')
|
||||
|
||||
# Get the server version
|
||||
if sid is not None:
|
||||
g.manager = get_driver(
|
||||
PG_DEFAULT_DRIVER).connection_manager(sid)
|
||||
g.conn = g.manager.connection()
|
||||
|
||||
g.version = g.manager.version
|
||||
|
||||
if not g.conn.connected():
|
||||
g.version = 0
|
||||
|
||||
session_stats_refresh_pref = prefs.preference('session_stats_refresh')
|
||||
rates['session_stats_refresh'] = session_stats_refresh_pref.get()
|
||||
tps_stats_refresh_pref = prefs.preference('tps_stats_refresh')
|
||||
@@ -189,9 +204,9 @@ def index(sid=None, did=None):
|
||||
if sid is None and did is None:
|
||||
return render_template('/dashboard/welcome_dashboard.html')
|
||||
if did is None:
|
||||
return render_template('/dashboard/server_dashboard.html', sid=sid, rates=rates)
|
||||
return render_template('/dashboard/server_dashboard.html', sid=sid, rates=rates, version=g.version)
|
||||
else:
|
||||
return render_template('/dashboard/database_dashboard.html', sid=sid, did=did, rates=rates)
|
||||
return render_template('/dashboard/database_dashboard.html', sid=sid, did=did, rates=rates, version=g.version)
|
||||
|
||||
|
||||
def get_data(sid, did, template):
|
||||
|
||||
@@ -104,6 +104,6 @@
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
pgAdmin.Dashboard.init_database_dashboard({{ sid }}, {{ did }}, {{ rates.session_stats_refresh }}, {{ rates.tps_stats_refresh }}, {{ rates.ti_stats_refresh }}, {{ rates.to_stats_refresh }}, {{ rates.bio_stats_refresh }} );
|
||||
pgAdmin.Dashboard.init_database_dashboard({{ sid }}, {{ did }}, {{ version }}, {{ rates.session_stats_refresh }}, {{ rates.tps_stats_refresh }}, {{ rates.ti_stats_refresh }}, {{ rates.to_stats_refresh }}, {{ rates.bio_stats_refresh }} );
|
||||
|
||||
</script>
|
||||
|
||||
@@ -353,7 +353,7 @@ function(r, $, pgAdmin, _, Backbone) {
|
||||
},
|
||||
|
||||
// Rock n' roll on the server dashboard
|
||||
init_server_dashboard: function(sid, session_stats_refresh, tps_stats_refresh, ti_stats_refresh, to_stats_refresh, bio_stats_refresh) {
|
||||
init_server_dashboard: function(sid, version, session_stats_refresh, tps_stats_refresh, ti_stats_refresh, to_stats_refresh, bio_stats_refresh) {
|
||||
var div_sessions = document.getElementById('graph-sessions');
|
||||
var div_tps = document.getElementById('graph-tps');
|
||||
var div_ti = document.getElementById('graph-ti');
|
||||
@@ -430,6 +430,29 @@ function(r, $, pgAdmin, _, Backbone) {
|
||||
cell: "string"
|
||||
}];
|
||||
|
||||
if (version < 90600) {
|
||||
server_activity_columns = server_activity_columns.concat(
|
||||
[{
|
||||
name: "waiting",
|
||||
label: "{{ _('Waiting?') }}",
|
||||
editable: false,
|
||||
cell: "string"
|
||||
}]);
|
||||
} else {
|
||||
server_activity_columns = server_activity_columns.concat(
|
||||
[{
|
||||
name: "wait_event_type",
|
||||
label: "{{ _('Wait Event Type') }}",
|
||||
editable: false,
|
||||
cell: "string"
|
||||
},{
|
||||
name: "wait_event",
|
||||
label: "{{ _('Wait Event') }}",
|
||||
editable: false,
|
||||
cell: "string"
|
||||
}]);
|
||||
}
|
||||
|
||||
var server_locks_columns = [{
|
||||
name: "pid",
|
||||
label: "{{ _('Process ID') }}",
|
||||
@@ -616,7 +639,7 @@ function(r, $, pgAdmin, _, Backbone) {
|
||||
},
|
||||
|
||||
// Rock n' roll on the database dashboard
|
||||
init_database_dashboard: function(sid, did, session_stats_refresh, tps_stats_refresh, ti_stats_refresh, to_stats_refresh, bio_stats_refresh) {
|
||||
init_database_dashboard: function(sid, did, version, session_stats_refresh, tps_stats_refresh, ti_stats_refresh, to_stats_refresh, bio_stats_refresh) {
|
||||
var div_sessions = document.getElementById('graph-sessions');
|
||||
var div_tps = document.getElementById('graph-tps');
|
||||
var div_ti = document.getElementById('graph-ti');
|
||||
@@ -684,6 +707,29 @@ function(r, $, pgAdmin, _, Backbone) {
|
||||
cell: "string"
|
||||
}];
|
||||
|
||||
if (version < 90600) {
|
||||
database_activity_columns = database_activity_columns.concat(
|
||||
[{
|
||||
name: "waiting",
|
||||
label: "{{ _('Waiting?') }}",
|
||||
editable: false,
|
||||
cell: "string"
|
||||
}]);
|
||||
} else {
|
||||
database_activity_columns = database_activity_columns.concat(
|
||||
[{
|
||||
name: "wait_event_type",
|
||||
label: "{{ _('Wait Event Type') }}",
|
||||
editable: false,
|
||||
cell: "string"
|
||||
},{
|
||||
name: "wait_event",
|
||||
label: "{{ _('Wait Event') }}",
|
||||
editable: false,
|
||||
cell: "string"
|
||||
}]);
|
||||
}
|
||||
|
||||
var database_locks_columns = [{
|
||||
name: "pid",
|
||||
label: "{{ _('Process ID') }}",
|
||||
|
||||
@@ -114,6 +114,6 @@
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
pgAdmin.Dashboard.init_server_dashboard({{ sid }}, {{ rates.session_stats_refresh }}, {{ rates.tps_stats_refresh }}, {{ rates.ti_stats_refresh }}, {{ rates.to_stats_refresh }}, {{ rates.bio_stats_refresh }} );
|
||||
pgAdmin.Dashboard.init_server_dashboard({{ sid }}, {{ version }}, {{ rates.session_stats_refresh }}, {{ rates.tps_stats_refresh }}, {{ rates.ti_stats_refresh }}, {{ rates.to_stats_refresh }}, {{ rates.bio_stats_refresh }} );
|
||||
|
||||
</script>
|
||||
|
||||
@@ -5,7 +5,8 @@ SELECT
|
||||
application_name,
|
||||
client_addr,
|
||||
backend_start,
|
||||
state
|
||||
state,
|
||||
CASE WHEN waiting THEN '{{ _('yes') }}' ELSE '{{ _('no') }}' END AS waiting
|
||||
FROM
|
||||
pg_stat_activity
|
||||
{% if did %}WHERE
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
SELECT
|
||||
pid,
|
||||
datname,
|
||||
usename,
|
||||
application_name,
|
||||
client_addr,
|
||||
backend_start,
|
||||
state,
|
||||
wait_event_type,
|
||||
wait_event
|
||||
FROM
|
||||
pg_stat_activity
|
||||
{% if did %}WHERE
|
||||
datname = (SELECT datname FROM pg_database WHERE oid = {{ did }}){% endif %}
|
||||
ORDER BY pid
|
||||
@@ -0,0 +1,3 @@
|
||||
SELECT
|
||||
(SELECT sum(blks_read) FROM pg_stat_database{% if did %} WHERE datname = (SELECT datname FROM pg_database WHERE oid = {{ did }}){% endif %}) AS "{{ _('Reads') }}",
|
||||
(SELECT sum(blks_hit) FROM pg_stat_database{% if did %} WHERE datname = (SELECT datname FROM pg_database WHERE oid = {{ did }}){% endif %}) AS "{{ _('Hits') }}"
|
||||
@@ -0,0 +1,10 @@
|
||||
SELECT
|
||||
name,
|
||||
category,
|
||||
setting,
|
||||
unit,
|
||||
short_desc
|
||||
FROM
|
||||
pg_settings
|
||||
ORDER BY
|
||||
category
|
||||
@@ -0,0 +1,23 @@
|
||||
SELECT
|
||||
pid,
|
||||
locktype,
|
||||
datname,
|
||||
relation::regclass,
|
||||
page,
|
||||
tuple,
|
||||
virtualxid
|
||||
transactionid,
|
||||
classid::regclass,
|
||||
objid,
|
||||
objsubid,
|
||||
virtualtransaction,
|
||||
mode,
|
||||
granted,
|
||||
fastpath
|
||||
FROM
|
||||
pg_locks l
|
||||
LEFT OUTER JOIN pg_database d ON (l.database = d.oid)
|
||||
{% if did %}WHERE
|
||||
datname = (SELECT datname FROM pg_database WHERE oid = {{ did }}){% endif %}
|
||||
ORDER BY
|
||||
pid, locktype
|
||||
@@ -0,0 +1,12 @@
|
||||
SELECT
|
||||
gid,
|
||||
database,
|
||||
owner,
|
||||
transaction,
|
||||
prepared
|
||||
FROM
|
||||
pg_prepared_xacts
|
||||
{% if did %}WHERE
|
||||
database = (SELECT datname FROM pg_database WHERE oid = {{ did }}){% endif %}
|
||||
ORDER BY
|
||||
gid, database, owner
|
||||
@@ -0,0 +1,4 @@
|
||||
SELECT
|
||||
(SELECT count(*) FROM pg_stat_activity{% if did %} WHERE datname = (SELECT datname FROM pg_database WHERE oid = {{ did }}){% endif %}) AS "{{ _('Total') }}",
|
||||
(SELECT count(*) FROM pg_stat_activity WHERE state = 'active'{% if did %} AND datname = (SELECT datname FROM pg_database WHERE oid = {{ did }}){% endif %}) AS "{{ _('Active') }}",
|
||||
(SELECT count(*) FROM pg_stat_activity WHERE state = 'idle'{% if did %} AND datname = (SELECT datname FROM pg_database WHERE oid = {{ did }}){% endif %}) AS "{{ _('Idle') }}"
|
||||
@@ -0,0 +1,4 @@
|
||||
SELECT
|
||||
(SELECT sum(tup_inserted) FROM pg_stat_database{% if did %} WHERE datname = (SELECT datname FROM pg_database WHERE oid = {{ did }}){% endif %}) AS "{{ _('Inserts') }}",
|
||||
(SELECT sum(tup_updated) FROM pg_stat_database{% if did %} WHERE datname = (SELECT datname FROM pg_database WHERE oid = {{ did }}){% endif %}) AS "{{ _('Updates') }}",
|
||||
(SELECT sum(tup_deleted) FROM pg_stat_database{% if did %} WHERE datname = (SELECT datname FROM pg_database WHERE oid = {{ did }}){% endif %}) AS "{{ _('Deletes') }}"
|
||||
@@ -0,0 +1,3 @@
|
||||
SELECT
|
||||
(SELECT sum(tup_fetched) FROM pg_stat_database{% if did %} WHERE datname = (SELECT datname FROM pg_database WHERE oid = {{ did }}){% endif %}) AS "{{ _('Fetched') }}",
|
||||
(SELECT sum(tup_returned) FROM pg_stat_database{% if did %} WHERE datname = (SELECT datname FROM pg_database WHERE oid = {{ did }}){% endif %}) AS "{{ _('Returned') }}"
|
||||
@@ -0,0 +1,4 @@
|
||||
SELECT
|
||||
(SELECT sum(xact_commit) + sum(xact_rollback) FROM pg_stat_database{% if did %} WHERE datname = (SELECT datname FROM pg_database WHERE oid = {{ did }}){% endif %}) AS "{{ _('Transactions') }}",
|
||||
(SELECT sum(xact_commit) FROM pg_stat_database{% if did %} WHERE datname = (SELECT datname FROM pg_database WHERE oid = {{ did }}){% endif %}) AS "{{ _('Commits') }}",
|
||||
(SELECT sum(xact_rollback) FROM pg_stat_database{% if did %} WHERE datname = (SELECT datname FROM pg_database WHERE oid = {{ did }}){% endif %}) AS "{{ _('Rollbacks') }}"
|
||||
Reference in New Issue
Block a user