X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2FStatus.html;h=eb7df68469d671119a6d0a485ecf28b516676bdf;hb=9aa198dfc90054de34cf1af8f3238d004416ebc9;hp=b5da5e3f5bf9883af1f5986835f962717155a2e8;hpb=c9b357c3316c2ed2b6697775150cf731eaf4236a;p=freeside.git diff --git a/httemplate/view/Status.html b/httemplate/view/Status.html index b5da5e3f5..eb7df6846 100644 --- a/httemplate/view/Status.html +++ b/httemplate/view/Status.html @@ -87,6 +87,50 @@ tie my %status, 'Tie::IxHash', ], ; +if ( $db eq 'PostgreSQL' ) { + + my $enabled = FS::Record->scalar_sql('SHOW wal_level') eq 'hot_standby' + && FS::Record->scalar_sql('SHOW archive_mode') eq 'on'; + + my $slave = + FS::Record->scalar_sql('SHOW archive_command') =~ / postgres\@([\w\.\-]+): / + ? $1 : ''; + + $status{'Replication'} = [ + { 'title' => 'Status', #? + 'value' => $enabled ? 'Enabled' : 'Disabled', + }, + ]; + + if ( $enabled ) { + push @{ $status{'Replication'} }, + { 'title' => 'Slave', + 'value' => $slave || '(Missing, or unparseable archive_command)', + }, + ; + if ( $slave ) { + #how far behind is it? will be easier once we're off 9.1 + # http://www.keithf4.com/monitoring_streaming_slave_lag/ + # except pg_stat_replication still doesn't fill in the columns we need as + # non-Pg user :/ + push @{ $status{'Replication'} }, + { 'title' => 'Slave', + 'value' => $slave || '(Missing, or unparseable archive_command)', + }, + ; + } + } + +} else { + + $status{'Replication'} = [ + { 'title' => 'Enabled', + 'value' => "(Not yet checked on $db)", + }, + ]; + +} + if ( _is_running('cdrd') ) { my $delay = FS::Record->scalar_sql(' @@ -106,11 +150,6 @@ if ( _is_running('cdrd') ) { $s. 's'; } - $status{'CDR Processing'} = [ - { 'title' => 'Current processing delay', - 'value' => $delay, - }, - ]; my $pr_delay = FS::Record->scalar_sql(' SELECT AVG(end_date-start_date) @@ -129,19 +168,21 @@ if ( _is_running('cdrd') ) { $s. 's'; } - $status{'CDR Processing'} = [ - { 'title' => 'Average billing time', - 'value' => $pr_delay, - }, - ]; - my $dayago = time2str('%Y-%m-$d %X', time - 86400); + my $dayago = time2str('%Y-%m-%d %X', time - 86400); my $cdrs = FS::Record->scalar_sql(qq{ SELECT COUNT(*) FROM cdr WHERE ( freesidestatus IS NULL OR freesidestatus = '' ) AND calldate > '$dayago' }); + $status{'CDR Processing'} = [ + { 'title' => 'Current processing delay', + 'value' => $delay, + }, + { 'title' => 'Average billing time', + 'value' => $pr_delay, + }, { 'title' => 'Unprocessed CDRs (last 24 hours)', 'value' => $cdrs, },