2014-09-25 - Version 2.1 released

This release fix a lot of issue reported since six month and adds some
improvments:

Allow system information commands to be executed remotely
Allow sar to be executed on a remote serveur using ssh connection.
New options to pgcluu_collectd:
    -M or --max-size option to allow an output dir size limit.
    --no-database to avoid collecting statistics from a database.
    -C count to terminate program after collecting data for X times.
    -E or --end-after to terminate program after for some time.
    -V or --version to show version information.

New or enhanced reports/features:
    Add report of connections waiting for a lock.
    Add average duration time in statement report.
    Add pg_stat_statements report.
    Add pg_default and pg_global to tablespace size report.


Other changes/fixes:

	- Allow system information commands to be executed remotely. Thanks to
	  Ahmad Iftekhar Rumman for the report.
	- Add --no-database to avoid collecting statistics from a database.
	  Useful if you just want to collect sar statistics.
	- Fix query to collect information from pg_stat_activity that fail on
	  postgres-xl and certainly postgres-xc. Thanks to xiao huan for the
	  report.
	- Fix pgcluu_collectd to stop capturing activity when option -C is
	  omitted. Thanks to Thomas Reiss.
	- Fix pg_settings query unit is available in >= 8.2 and boot and reset
	  since 8.4. Thanks to Euler Taveira de Oliveira for the patch.
	- Fix unopen filehandle in printing system disk device statistics.
	  Thanks to Ahmad Iftekhar Rumman for the report.
	- Cosmetic fixes in docs. Thanks to Euler Taveira de Oliveira for the
	  patch.
	- Documentation update with the new -C option to pgcluu_collectd.
	- Terminate program after collecting data for X times. This is another
	  option to end the program. Instead of doing some math with time
	  counter, use a numeric counter. It can be combined with -i option too.
	  Also, time (-E) has precedence over numeric (-C). Thanks to Euler
	  Taveira de Oliveira for the patch.
	- Add report of kernel nr_hugepages report, 9.4+ now support huge page
	  supported. Thanks to Euler Taveira de Oliveira for the patch.
	- Fix connection report enabled when a database has no connection.
	  Thanks to Guillaume Lelarge for the report.
	- Add configuration report of recovery.conf and postgresql.auto.conf.
	  Thanks to Guillaume Lelarge and Julien Rouhaud for the report.
	- Removed useless Type column in Indexes ans Tables size reports. Thanks
	  to Guillaume Lelarge for the report.
	- Disable Conflict and Canceled queries menus when this is not a standby
	  server. Thanks to Guillaume Lelarge for the report.
	- Fix some typo reported in issue #20. Thanks to Guillaume Lelarge for
	  the report.
	- Change Returned and Fetched legend to Table (returned) and Index
	  (fetched). Thanks to Guillaume Lelarge for the report.
	- Fix keep tick formatting when zooming. Thanks to Julien Rouhaud for
	  the patch.
	- Fix non exclusion of devices in System Network and Devices submenu.
	  Thanks to Thomas Reiss for the report.
	- Fix some error uninitialized value in concatenation.
	- Allow pgbouncer statistics collect+report only. Thanks to Eric
	  Veldhuyzen for the report.
	- Add boot_val and reset_val to pg_settings output.
	- Fix multiline in df system information. Thanks to Nicolas Thauvin
	  for the report.
	- Add -M or --max-size option to allow an output dir size limit. For
	  example using -M 100MB will interrupt pgcluu_collectd when output dir
	  will reach this size. Require the du system command. Thanks to Nicolas
	  Thauvin for the feature request.
	- Add new option -E or --end-after to tell pgcluu_collectd to run for
	  some time before terminating automatically. Thanks to Nicolas Thauvin
	  for the feature resquest.
	- Fix issue with pg_stat_statements metrics when the extension was not
	  installed in a schema searchable in the search_path connected user
	  value. Thanks to Nicolas Thauvin for the report.
	- Failure on null value on replication report when pg_basebackup was
	  running. Thanks to Emmanuel Vinet for the report.
	- Add/fix report of connections waiting for a lock. Thanks to Guillaume
	  Lelarge for the report.
	- Replace label Waiting and Waiting in xact by Idle and Idle in xact in
	  connection graph. Thanks to Guillaume Lelarge for the report.
	- Fix metrics that was not accepted if passed alone: pg_settings,
	  lock_granted,lock_modes,lock_types. Thanks to Fabio Pardi for the
	  report.
	- Add information about -v|--verbose and -V|--version to documentation.
	- Add -V | --version option. Thanks to Fabio Pardi for the feature
	  request.
	- Fix several issues in disabling menu in cluster reports.
	- Fix temporary statistics report, menu was always disabled. Thanks to
	  Julien Rouhaud for the report.
	- Fix wring number of CPU sockets that was reporting the total number
	  of cores. Thanks to Thomas Reiss for the report.
	- Add collect of the extensions version. Thanks to Jehan-Guillaume de
	  Rorthais for the request.
	- Add support to individual reports when the --metrics option have been
	  used with pgcluu_collectd.
	- Fix some uninitialized variables and errors when pgcluu has only some
	  metrics to parse.
	- It will not search for pg_database_size.csv anymore to contruct the
	  list of database and read pgbouncer file to get list of database with
	  pgbouncer.
	- Generation of database related reports (cluster, database, pgbouncer)
	  have been review to use non global filehandle. It will not search for
	  pg_database_size.csv anymore to contruct the list of database and
	  prevent case where some reports was genereted twice.
	- Speed improvement.
	- Rename --os-info option into --sysinfo and add --no-sysinfo option to
	  completly disable the generation of sysinfo.txt
	- Fix --metrics option that was not limiting the kind of metrics to use.
	  Thanks to Fabio Pardi for the report.
	- Fix bug in device lookup in sar file that was generating undefined
	  filehandle. Thanks to Toth Csaba for the help
	- Fix several part where pgcluu crash using undefined variable if the
	  database in not found in pg_database_size.csv.
	- Fix error print on an undefined value when a database does not have
	  lock defined. Thanks to Csaba Toth for the report.
	- Fix typo in System memory utilization report description.
	- Fix typo in Commits/Rollbacks report description.
	- Fix typo in Read Tuples report description.
	- Fix typo in locks per type report description.
	- Fix typo in Statistics about cache utilisation per relation.
	- Change description of Replication lag report.
	- Add sorttable.js to resources directory.
	- Fix position of index.html#home.
	- Fix parsing of --db-only, --dev-only ... comma separated list.
	- Fix typo in ssh related option. Thanks to Jehan-Guillaume de Rorthais
	  for the report.
	- Fix code to set ssh command and allow collect of configuration files
	  through ssh.
	- Allow sar to be executed on a remote serveur using ssh connection.
	  Add --enable-ssh to activate this feature, the remote host is defined
	  using -h option. There is several new options --ssh-* to be able to
	  take full control of the ssh connection.
	- Add average duration time in statement report.
	- Add pg_stat_statements report.
	- Override statements statistics on each loop.
	- Replace multiple space by single one in pg_stat_statements queries.
	- Fix pg_stat_statements collect to replace semi-colon by SEMICOLON
	  keyword to prevent breaking CSV format.
	- Add pg_default and pg_global to tablespace size report. Fix issue on
	  spclocation display on per tablespace reports.

2014-03-22 - Version 2.0 released

This major release adds more than twenty new reports. pgCluu now reports
everything you want to know about your PostgreSQL server from a cluster,
database, or operating system point of view. It is also able to collect
statistics about pgBouncer, shared buffer utilization using pg_buffercache,
most frequent and time consuming queries with pg_stat_statements and really
much more, see full list bellow. 

New or enhanced reports/features:

	- Allow pgcluu_collected to collect sar and configuration files
	  remotely together with PostgreSQL statistics using a ssh connection.
	  That mean that pgCluu is fully able to audit a remote server.
	- Add pg_stat_statements report showing most frequent and time
	  consuming queries.
	- Add reports for unused and redundant indexes per database.
	- Add report about archiver statistics with PostgreSQL 9.4 new
	  pg_stat_archiver view.
	- Add report about wal files created vs recycled and the max number
	  of wal files.
	- Add reports about network interfaces utilization and network errors.
	- Add reports about system cache page in/out from/to disk.
	- Add report of isdirty statistics.
	- Add --exclude-time to pgcluu_collectd options to stop collecting
	  statistics during a period of time. Ex: --exclude-time "22:00-06:00"
	  to stop collecting data from 22:00 to 06:00 am the next day.
	- Add report about percentage of shared buffer used per database
	- Add report about percentage of each databases loaded in shared buffer
	- Add report about usagecount distribution in shared buffer
	- Add report about usagecount distribution in dirty shared buffer
	- Add report of number of shared buffer/pages used by a relation
	- Add report number of buffers loaded in cache for a relation relation
	  and the percentage of the relation loaded (1).
	- Add reports about configuration files (postgresql.conf, pg_hba.conf and
	  pg_ident.conf), pgcluu_collectd must be run as postgresql user.
	- Add report of user functions statistics.
	- Add report about the pgbouncer settings in Configuration submenu.
	- Add copy of pgbouncer.ini file in Configuration submenu.
	- Add report of pg_settings in Configuration submenu..
	- Add report with SQL orders to create missing indexes on foreign keys.
	- Allow HTML table sort with a modified version of the javascript library
	  sorttable.js
	- Moved System info report from sar sytem menu to a dedicated main SysInfo
	  menu.
	- Add the number and list of extensions used inside the PG cluster.
	- Add reports about Locks per types, Locks per modes and Locks granted or not.
	- Add report about I/O statistics per index.
	- Add report about I/O statistics per table.
	- Add last manual vacuum/analyze datatime on database info report.
	- Add per database index statistics.
	- Add report of size and number of tuples per table of a database.
	- Add statistics reports per table (idx_scan/seq_scan, vacuums/analyzes,
	  Insert/update/delete/hot update and live/dead tuples).
	- Add count of user triggers in database information slide.
	- Add Database info submenu per database to display the general information
	  about a database (installed extension, schemas, number of Stored procedures
	  and of all kind of object.
	- Add last know size of the database in the Database info slide.
	- Add total number of databases on cluster key values.
	- Add report of tablespaces utilization.
	- Add report of pgbouncer statistics per dbname and per pool (dbname/username).


(1) [Shared buffers statistics are collected automatically when pg_buffercache
     extension is installed and the -B | --enable-buffercache option is used.]


Other changes/fixes:

	- Allow sar to be executed on a remote server using ssh connection.
	  Add --enable-ssh to activate this feature, the remote host is defined
	  using -h option. There is several new options --ssh-* to be able to
	  take full control of the ssh connection.
        - Waiting interval is now calculated with the interval value minus the
	  execution time of each loop.
	- Add output information when a kill signal is sent to pgcluu_collectd.
	- Option -p | --dev-only have change to -D | --device-only and add new
	  option -N | --network-only to limit report on some network interfaces.
	- Pretty print system memory information.
	- Fix graphs when a new database is created or dropped during an audit.
	- Add -B | --enable-buffercache to activate pg_buffercache statistics.
	  It is disable by default.
	- Reorder Database menu with submenu and prevent moving to non existent
	  reports by disabling the submenu.
	- Reorder cluster menu, using submenu and fix title of replication lag
	  report.
	- Add vm.dirty_background_bytes and vm.dirty_bytes to sysctl collect.
	- Add support to PostgreSQL 8.1 by using temporary table not COPY (sql).
	  Thanks to kenstir for the patch.
	- Reopen stdin/out/err so that daemon mode works correctly. Thanks to
	  kenstir for the patch.
	- Fix affected tuples per operation per database where tuples fetched
	  was used as select instead of tuples returned.
	- Review code and use one method per report.
	- Update documentation and usage about --exclude-time
	- Fix detection of non official release, like devel or EnterpriseDB
	  major version detection.
	- Change icon of CPU in SysInfo report.
	- Remove full path from sar and psql command to allow definition by
	  environment variables.
	- Fix CPU report refresh when comming from a report in the same
	  system.html page.
	- Change label of the 'Reset' button to 'To chart' to be less confusing.
	  This button allow to switch from image to chart (opposite as 'To image')
	  and not to reset a zoom in the graph.
	- Add -n, --top-number command line option to redefine the default top
	  10 tables or indexes I/O statistics.
	- Fix interval given to the sar command, should be one second and not
	  the value of $INTERVAL.
	- Fix sar report with overlapped time.
	- Fix empty file pg_stat_user_tables.csv.
	- Add database name inside pg_class_size.csv output and add function
	  get_proc_count(dbname) to retrieve function from a given database.
	- Add -T | --notablespace option to avoid printing an error message
	  when the connection user is not superuser.
	- Remove pg_default and pg_global from tablespace report.
	- Change link on program name to pgcluu www site.
	- Move print of Postgresql full version at bottom of the home page.
	- Reduce font size of key value on home and information slides.
	- Update Flotr2 javascript library to fix redraw of crosshair.
	- Command line options that can be used multiple time can now also
	  be used one time using a comma separated list of object names.

2014-01-28 - Version 1.1 released

This release adds lot of report improvements and bug fixes. There is also
several new features or reports.

	- Format mouse tracker on graphs to show all dataset values at a time.
	- Add run queue length report to system menu.
	- Add checkpoint write and sync times reports.
	- Add report of PostgreSQL version
	- Split background writer buffer and count statistics into separated
	  reports.
	- Add report of maxwritten_clean into bgwriter reports.
	- Add report of kernel parameters to the system info page.
	- Add collect of system kernel tuning parameters.
	- Remove embedded CSS and javascript on each HTML page, resources are
	  now automatically copied into the output directory if not already
	  present. Thanks to Guillaume Lelarge for the suggestion.
	- Allow pgcluu to parse sar file generated from sa file, use commands
	  like "sar -A -p -f /var/log/sysstat/sa*". Thanks to Julien Rouhaud
	  for the feature request.
	- Split commit, rollback and backend graph by using a second yaxis for
	  backend. Thanks to GUillaume Lelarge for the report.
	- Add System Information report.
	- Move Cache hit/miss ratio on second yaxis and change dataset colors.
	  Thanks to Guillaume Lelarge for the report.
	- Add collect of OS release information.
	- Allow pgcluu_collectd to grab OS information (cpu, memory, etc.) and
	  add --os-info option to only grab that information (for testing).
	- Reformat dashboard information.
	- Add -z | --timezone to set the hour(s) from GMT time to adjust times
	  on sar report. Thanks to Bricklen for the feature request.

and some more changes/fixes:

	- Add vertical crosshair on graph.
	- Update copyright date to 2014
	- Disable database report of number of canceled queries when not on
	  hot standby node.
	- Disable checkpoint write report following the pg version (< 9.2).
	- Disable temporary files and deadlocks reports following the postgresql
	  version (< 9.2).
	- Add storage of pg version into sysinfo.txt
	- Fix missing legend of checkpoints_timed in checkpoint report.
	- Fix warning on META_MERGE for ExtUtils::MakeMaker < 6.46. Thanks to
	  Julien Rouhaud for the patch.
	- Fix typo in pgcluu_collectd calls. Thanks to Jacky Rigoreau for the
	  report.
	- Fix issue where information slide was not displayed when clicking on
	  the information button.
	- Change documentation about resources files that are now autogenerated.
	- Fix grab of statistics from an 8.4 cluster (access to not-available-yet
	  statistics catalogs). Thanks to Guillaume Lelarge for the report.
	- Fix issue on parsing CentOs release. Thanks to bricklen for the help.
	- Fix issue "Use of uninitialized value $val in substitution line 3312".
	  Thanks to bricklen for the report.
	- Fix call method "print" on an undefined value at ./pgcluu line 1303.
	  Thanks to Guillaume Lelarge for the report.
	- Fix sar dashboard report.
	- Remove decimal from hit cache ratio report. Thanks to Guillaume Lelarge
	  for the report.
	- Dashboard review: cluster label rewrite, remove empty values from
	  report, add start/end date of database stats and sar stats. Thanks to
	  Guillaume Lelarge for the feature/change requests.
	- Fix some warning on uninitialized value on dashboard. Thanks to Julien
	  Rouhaud for the report.
	- Fix Illegal division by zero at ./pgcluu line 1132. Thanks to Julien
	  Rouhaud for the report.
	- Fix issue in building timestamps in sar data. Thanks to Bricklen for
	  the report.
	- Fix sysstat version execution error with locale different to C or en_*.
	  Thanks to forall for the report.
	- Fix broken sar charts when collect time is greater than 24 hours.
	- Add -z | --timezone option to documentation.
	- Fix error: print() on closed filehandle GEN9 at pgcluu line 1942.
	  Thanks to Bricklen for the report.


2013-11-18 - Version 1.0 released

This is the first public release of pgCluu, that is a packaging of the tools I
use every day to collect statistics and build reports of PostgreSQL Clusters
for performances auditing and troubleshooting.

At this time it collect and report most of what is helpful for a PostgreSQL
Cluster performance auditing. There's lot of others reports to be included:

	- Statistics reports concerning tables.
	- Statistics reports about pg_stat_statement.
	- More Sar statistiques reports.
	- ...

This will comes in next release. 

The goal of this project is to provide a complete PostgreSQL auditing tool that
do not need any dependency so that it can be run on any server.

If you just have a sar output file, pgCluu can be use to draw graphs about the
system utilization only.

For more information take a look at http://pgcluu.darold.net/


