{%- extends "_layout.html" %} {%- block content %}

{{ _("Event database") }}



{%- if query_status_events %}
{%- for query_data in query_status_events %} {% if 'query_name' in query_data and query_data.query_name %} {% else %} {% endif %} {% if 'query_start' in query_data and query_data.query_start %} {% else %} {% endif %} {% if 'query' in query_data and query_data.query %} {% else %} {% endif %} {% if 'query_name' in query_data and query_data.query_name %} {% else %} {% endif %} {%- endfor %}
{{ _("PID") }} {{ _("Name") }} {{ _("Owner") }} {{ _("State") }} {{ _("Start time") }} {{ _("Duration") }} {{ _("Query") }} {{ get_icon("actions") }}
{{ query_data.pid }} {{ query_data.query_name }} {{ macros_site.render_endpoint_link('users.show', params = {'item_id': query_data.user_id, 'item': query_data.user}, label = query_data.user.fullname, with_icon = True) }} --- --- {{ query_data.state }} {{ babel_format_datetime(query_data.query_start) }} {{ babel_format_timedelta(get_datetime_utc(aware = True) - query_data.query_start) }} --- ---
{{ query_data.query }}
--- {{ macros_page.render_menu_context_actions( query_data, action_menu = context_action_menu_query) }} ---
{%- else %} {%- call macros_site.render_alert('info', False) %} {{ _("There are currently no running user queries.") }} {%- endcall %} {%- endif %}

{#- Reference for this hack: https://stackoverflow.com/a/11842865 -#}

{{ _("List of available tables:") }}

{%- for table_name, table_data in database_status_events['tables'] | dictsort %} {{ table_name }} {%- endfor %}

{%- for table_name, table_data in database_status_events['tables'] | dictsort %} {#- Reference for this hack: https://stackoverflow.com/a/11842865 -#}

{{ _('Table %(table_name)s', table_name = table_name) }} {{ get_icon("backtotop") }}

{{ _("Estimated number of records:") }} {%- if table_data['row_estimate'] %} {{ babel_format_decimal(table_data['row_estimate']) }} {%- else %} {{ table_data['row_estimate'] }} {%- endif %}
{{ _("Table size:") }} {{ table_data['table_bytes_str'] }} ({{ babel_format_percent(table_data['table_bytes'] / table_data['total_bytes']) }})
{{ _("Index size:") }} {{ table_data['index_bytes_str'] }} ({{ babel_format_percent(table_data['index_bytes'] / table_data['total_bytes']) }})
{{ _("Tablespace size:") }} {{ table_data['toast_bytes_str'] }} ({{ babel_format_percent(table_data['toast_bytes'] / table_data['total_bytes']) }})
{{ _("Total size:") }} {{ table_data['total_bytes_str'] }} ({{ babel_format_percent(table_data['total_bytes'] / table_data['total_bytes']) }})
{{ _("Oldest record:") }} {%- if 'dt_oldest' in table_data and table_data['dt_oldest'] %} {{ babel_format_datetime(table_data['dt_oldest']) }} ({{ _('%(delta)s ago', delta = babel_format_timedelta(current_datetime_utc - table_data['dt_oldest'])) }}) {%- else %} {{ _("unknown") }} {%- endif %}
{{ _("Newest record:") }} {%- if 'dt_newest' in table_data and table_data['dt_newest'] %} {{ babel_format_datetime(table_data['dt_newest']) }} ({{ _('%(delta)s ago', delta = babel_format_timedelta(current_datetime_utc - table_data['dt_newest'])) }}) {%- else %} {{ _("unknown") }} {%- endif %}
{{ _("Record timespan:") }} {%- if ('dt_oldest' in table_data and table_data['dt_oldest'] and 'dt_newest' in table_data and table_data['dt_newest']) %} {{ babel_format_timedelta(table_data['dt_newest'] - table_data['dt_oldest']) }} {%- else %} {{ _("unknown") }} {%- endif %}
{{ table_data['table_bytes_str'] }}
{{ table_data['index_bytes_str'] }}
{% if not loop.last %}
{% endif %} {%- endfor %}
{{ macros_chart.render_dashboard_panels(chart_sections, 'dbstatus-events', active_first = False) }}

{{ _("Configuration") }}


{#- Reference: https://www.postgresql.org/docs/current/view-pg-settings.html -#} {%- for setting in ['autovacuum_vacuum_cost_limit', 'autovacuum_vacuum_delay', 'bytea_output', 'checkpoint_timeout', 'default_statistics_target', 'effective_cache_size', 'effective_io_concurrency', 'maintenance_work_mem', 'min_parallel_index_scan_size', 'max_connections', 'max_parallel_workers', 'max_parallel_workers_per_gather', 'max_wal_size', 'parallel_tuple_cost', 'parallel_setup_cost', 'random_page_cost', 'seq_page_cost', 'shared_buffers', 'wal_buffers', 'work_mem'] | sort %} {%- if setting in database_status_events['pg_settings'] %} {%- endif %} {%- endfor %}
{{ _("Name") }} {{ _("Type") }} {{ _("Value [unit]") }} {{ _("Boot / Reset") }} {{ _("Description") }}
{{ _("version:") }} string {{ sw_versions['postgresql'] }}
{{ setting }}: {{ database_status_events['pg_settings'][setting].vartype }} {%- if database_status_events['pg_settings'][setting].vartype in ['integer', 'real'] %} {{ get_icon("help") }} {%- elif database_status_events['pg_settings'][setting].vartype in ['enum'] %} {{ get_icon("help") }} {%- endif %} {% if database_status_events['pg_settings'][setting].setting != database_status_events['pg_settings'][setting].boot_val %} {%- endif %} {%- if database_status_events['pg_settings'][setting].vartype in ['integer', 'real'] %} {{ babel_format_decimal(database_status_events['pg_settings'][setting].setting) }} {%- else %} {{ database_status_events['pg_settings'][setting].setting }} {%- endif %} {% if database_status_events['pg_settings'][setting].setting != database_status_events['pg_settings'][setting].boot_val %} {%- endif %} [{{ database_status_events['pg_settings'][setting].unit | default("none") }}] {{ get_icon("help") }} {%- if database_status_events['pg_settings'][setting].vartype in ['integer', 'real'] %} {{ babel_format_decimal(database_status_events['pg_settings'][setting].boot_val) }} / {{ babel_format_decimal(database_status_events['pg_settings'][setting].reset_val) }} {%- else %} {{ database_status_events['pg_settings'][setting].boot_val }} / {{ database_status_events['pg_settings'][setting].reset_val }} {%- endif %} {{ database_status_events['pg_settings'][setting].category }} {{ get_icon("help") }}
{%- if permission_can('developer') %}
{{ macros_site.render_raw_var('query_status_events', query_status_events) }} {{ macros_site.render_raw_var('database_status_events', database_status_events) }} {{ macros_site.render_raw_var('database_statistics_events', database_statistics_events) }} {{ macros_site.render_raw_var('sw_versions', sw_versions) }} {%- endif %} {%- endblock content %}