Download Latest Version pgcluu-3.4.tar.gz (1.2 MB)
Email in envelope

Get an email when there's a new version of pgCluu

Home / 3.0
Name Modified Size InfoDownloads / Week
Parent folder
README.txt 2019-09-18 14.0 kB
pgcluu-3.0.tar.gz 2019-09-18 1.1 MB
Totals: 2 Items   1.2 MB 0
2019-09-18 - Version 3.0 released

This release is a major release that adds lot of improvement and
new reports. It also improve performances and fully support a CGI
mode with dynamic content for realtime reports.

New or enhanced reports/features:

  * The CGI mode to provide dynamic reports on time selection is now
    production ready and has left the beta stage. See documentation
    on how to enable it. Debian packaging enable this mode by default.
  * Installation and configuration is fully managed from Makefile.PL
    script. This will help distribution packaging with additional
    configuration directives to control the behavior of pgcluu scripts
    with generic systemd service and timer files. 
  * Add incremental mode to pgcluu. That mean that you don't have to
    remove the content of the report directory anymore before running
    pgcluu again and when pgcluu detect that you are running in this
    mode. The incremental mode is detected from statistic directory
    when you have used the --rotate-daily or --rotate-hourly option
    to pgcluu_collectd.
  * Rewrite Stats I/O reports to display read/hit per table or indexes
    during the audit period reported.
  * Move Xlog (Wal bytes written) report under replication menu as
    data comes from pg_stat_replication.
  * Explode System and Cluster reports into several reports dedicated
    files to limit the size of the HTML files in incremental mode.
  * Add collect and report of vm.nr_overcommit_hugepages.
  * Add report on pages scanned to report number of pages scanned by
    the kswapd daemon and number of pages scanned directly per second
    (pgscank/s and pgscand/s). It also reports the number of pages
    the system has reclaimed from cache (pagecache and swapcache) per
    second to satisfy its memory demands (pgsteal/s). On a second
    axis %vmeffto reports the the efficiency of page reclaim.
  * All pages reports have been moved as sub menu of the Page menu and
    pgfree has been removed from the page fault report.
  * Limit system cache statistics report to pgpgin/s and pgpgout/s and
    a new report is dedicated to Page fault statistics with majflt/s,
    minflt/s and pgfree/s dataset. Dataset minflt/s is calculated from
    sar output as result of "fault/s - majflt/s".
  * All statistics about pg_stat_user_* and pg_stat_xact_user_* views
    are now stored as a snapshot at start and at end of the audit
    period and each hour if you are running in incremental mode. The
    old behavior was to append the snapshot at each running interval
    to the data file but this is not necessary and this can use huge
    disk space if you have lot of table and indexes in your database.
    Backward compatibility is preserved.
  * New report of json versus jsonb columns in each database.
  * Add keepalive kernel configuration in SysInfo report.
  * Separate bgwriter "allocated" buffers in a dedicated report for
    better reading.
  * Add new report about estimated memory workload based on the value
    of Committed_AS from /proc/meminfo. Committed_AS is the total
    amount of memory estimated to complete the workload. This value
    represents the worst case scenario value, and also includes swap
    memory. The report show the memory workload aver the time.

New command line options:

  - Add option -x, --external-menu to pgcluu to save the common menu
    in menu.html and load it into each report using w3-include-html
    attribute from w3.js. This will only work if access to HTML report
    is through a Web server, not using the file:// protocol.
  - Add new option --retention to pgcluu to set number of rolling days
    to keep in report directory. Default is to store indefinitely.
  - Add option --retention NDAYS to pgcluu_collectd to set the number
    of rolling days to keep in data directory in incremental mode.
    Default is to store indefinitely.

New configuration directives :

  * Add configuration directive STATS_REPORT_CACHING to pgcluu.conf
    file. This directive must be enabled in CGI mode. In this case the
    pgcluu script must be run periodically at least each 5 minutes to
    build and update cached statistics. In cache mode pgcluu generate
    binary file in the statistics directory and nothing in the report
    directory. The pgcluu.service and pgcluu.timer can be use, pgcluu
    will read the configuration file and switch automatically to cache
    mode if STATS_REPORT_CACHING is enabled.

  * Add MAX_RENDERED_DAYS configuration directive to set the maximum
    number of days in a graph. Using default pgcluu_collectd 1 minute
    interval each, daily graph will have 1440 points. Having too much
    data to render is not a good point for performances with the
    current code. The user can set is own graph period, default is to
    limit to the first seven days of the selected period. This mean a
    maximum of 10080 points for one week, this seems a safe limit.

It also fixes some issues reported by users since last five months:

  - New report on memory workload based on values of Committed_AS from
    /proc/meminfo. Thanks to Jehan-Guillaume de Rorthais for the
    feature request.
  - Separate bgwriter "allocated" buffers in a dedicated report.
    Thanks to Guillaume Lelarge for the report.
  - Use MASK to 0022 for directory and file creation and add a note
    about securing the stats repository in the source code.
    It can be changed to 0027 if you want to secure the data directory
    Note that in CGI mode the www-data user or group need read access
    to all files in the stat directory. The systemd service files take
    care of setting the privilege for the postgres and www-data users.
  - Make perlcritic more happy.
  - Try to handle automatically systemd RPM specific path in install
    process (/lib/systemd/system/).
  - Update resources files minimization.
  - Fix declaration of config file.
  - Change Perl installation paths to be vendor paths by default and
    adapt path replacement by DESTDIR.
  - Keep pgcluu.conf after a make clean to be able to see the content.
  - Update documentation about new installation behavior.
  - Fix perl replacement issues on service file
  - Update MANIFEST and META.yml files
  - Update path to man page in documentation.
  - Replace DATADIR by STATDIR and HTMLDIR by RSCDIR in Makefile.PL.
    Add missing REPORTDIR variable, default /var/lib/pgcluu/report.
  - Change default PIDDIR to /var/run/postgresql.
  - Replace path in services files following environment variables
    defined with Makefile.PL.
  - The configuration file pgcluu.conf is now auto-generated by script
    Makefile.PL
  - Add support to some new environment variables to fully customize
    the installation paths (HTMLDIR,CGIDIR,CONFDIR,PIDDIR,DATADIR,
    APACHECONF,MANDIR,DOCDIR,SYSTEMDDIR,RETENTION). Default are:
    
            DESTDIR     => /usr/local
            INSTALLDIRS => site
            CONFDIR     => DESTDIR/etc
            PIDDIR      => /var/run
            DATADIR     => /var/lib/pgcluu/data
            HTMLDIR     => DESTDIR/share/pgcluu
            CGIDIR      => /usr/lib/cgi-bin
            APACHECONF  => /etc/apache2/conf-available
            MANDIR      => DESTDIR/share/man
            DOCDIR      => DESTDIR/share/doc
            SYSTEMDIR   => DESTDIR/lib/systemd/system
            RETENTION   => 0
    
    If INSTALLDIRS is set to 'vendor':
    
            CONFDIR     => /etc
            DESTDIR     => /usr
    
    The configuration file is auto-generated by the Makefile.PL script
    and saved into CONFDIR/pgcluu.conf. If the destination file exists
    it is not overridden. The file is saved as example in directory
    DOCDIR/pgcluu/examples/pgcluu.conf.dist
    
    The man page is saved as DESTDIR/share/man/pgcluu.1p.gz and a
    symbolic link pgcluu_collectd.1p.gz is created to this file. The
    documentation, README, changelog.gz, LICENSE files are saved under
    DESTDIR/share/doc/.
    
    For the CGI mode, resources (css & js files from the cgi-bin/rsc)
    are saved under the DESTDIR/share/pgcluu/rsc directory. The CGI
    script is saved under /usr/lib/cgi-bin/pgcluu.cgi. The Apache
    configuration file under /etc/apache2/conf-available/pgcluu.conf
    with a symbolic link /etc/apache2/conf-enabled/pgcluu.conf created
    to this file. Its content: 

            Alias /pgcluu HTMLDIR/
            <Directory HTMLDIR/>
                Options FollowSymLinks MultiViews
                AllowOverride None
                Require local
                #Require ip 192.1.168.0/24
            </Directory>
    
    The systemd files (pgcluu_collectd.service, pgcluu.service and
    pgcluu.timer) are saved as examples into DOCDIR/pgcluu/examples/
    and into the systemd directory SYSTEMDDIR/
    
    The right path to the configuration file is set into all scripts
    pgcluu, pgcluu_collectd and pgcluu.cgi. The path where the pid
    file must be saved is replaced into pgcluu_collectd with the value
    of PIDFILE variable.
  - Enable configuration reading to pgcluu_collectd. The configuration
    directive supported by this script is STATS_COLLECTD_RETENTION. It
    is used to set the retention limit in the statistics directory
    expressed in number of days. This directive is only used by script
    pgcluu_collectd in incremental mode. Only the last number of days
    will be preserved, obsolete directories will be removed. It can be
    used to preserved disk space. Default store indefinitely.
  - Enable configuration reading to script pgcluu. The configuration
    directive supported by this script is STATS_REPORT_RETENTION. It
    is used to set the retention limit in static html report directory
    expressed in number of days. This directive is only used by pgcluu
    in incremental mode. Only last number of days will be preserved,
    obsolete directories will be removed. It can be used to preserved
    disk space. Default store indefinitely.
  - Fix some uninitialized variables during report generation of
    pg_stat_user_tables and pg_stat_user_indexes.
  - Set default configuration file path to /etc/pgcluu.conf and no
    more /usr/local/etc/pgcluu.conf
  - Change $CONFIG_FILE declaration in CGI script.
  - Update copyright year.
  - Limit number of days to process for a single time period
    controlled by configuration directive MAX_RENDERED_DAYS.
  - Disable Year and Month time selector for the moment, this is too
    much data to render with the actual implementation of pgcluu.cgi
  - Separate cluster / database actions.
  - Only display latest information in CGI mode for all database
    table and index reports that reports a list of statistics.
    These informations can not be cumulated over time selection.
  - Add map between actions and binary file to only load relevant
    files
  - Improve report generation by reading only required data.
  - Prevent reading sar stat from data file when already read from
    binary file.
  - Fix multiple call to set_device_list() and compute_sarfile_stats()
  - Only display latest information in CGI mode for menu Home, SysInfo
    and Database.
  - Fix offset caching for incremental mode.
  - Fix missing call to dump_sar_binary() when build cache from hourly
    rotation.
  - Fix missing System menu on some condition.
  - Submit immediately the time selector when day/week/month/year is
    selected.
  - Add more information on incremental mode to documentation.
  - Fix CGI Time selector behavior.
  - Fix calendar output for days that have already been processed.
  - Fix issue in CPU parsing from sar output since addition of Softnet
    stats in version 11.7.2.
  - Update minified javascript files and add file w3.js to the list
    of resources files.
  - Add resources/w3.js Javascript library to be able to include a
    HTML file into an other. Used to not include the menu in each HTML
    file from menu.html.
  - Explode cluster.html output into per report dedicated files to
    limit the size of a HTML file in incremental mode. This should
    be applied to other huge files (system.html and database-DB.html).
  - Fix some HTML tags.
  - Add documentation about Dynamic Reports generation using the CGI
    mode. Thanks to Maiken Saveljev for most part of the installation
    guide.
  - Add information about incremental mode and --retention option at
    end of pgcluu help.
  - Add example for incremental mode at end of help message.
  - Add a warning about storing indefinitely statistics with script
    pgcluu_collectd that can fill disk space in the short or medium
    term. Obsolete statistics can be removed using new command line
    option '--retention ndays' with pgcluu_collectd.
  - Update documentation about pgcluu_collectd --retention option.
    Thanks to Christoph Courtois for the feature request.
  - Document sorttable license. The license is called X11 in the
    file, but MIT on the website. Stick with MIT because that's what
    the other js files are using. Thanks to Christoph Berg for the
    patch.
  - Add pages reports changes to CGI.
  - Add report on pages scanned to report number of pages scanned by
    the kswapd daemon and number of pages scanned directly per second
    (pgscank/s and pgscand/s). Thanks to Jehan-Guillaume de Rorthais
    for the feature request.
  - Additional fixes and improvements on CGI devices detection to
    display system menu.
  - Fix unwanted "no dataset" in table stats.
  - Modifiy pgcluu to support new changes in pgcluu_collected about
    pg_stat_(user|all)_* statistics storage. This patch also remove
    use of global variable %all_vacuum_stats that was duplicating
    storage with %all_stat_user_tables that already contain vacumm
    and analyze statistics.
  - Add description of %vmeff to reports.
  - Fix missing wait of compression child process resulting in zombi
    process. Thanks to Jehan Guillaume de Rorthais for the report.
  - Suppress which command error in some distribution. Thanks to
    Michael Vitale for the report.

Source: README.txt, updated 2019-09-18