Hubert,
:-) Your script was one of the first that I found, thanks to the power
of Google.
My issue with your script is that, for one reason or another, when
piping the logs through rsyslog, we end up with log lines that your perl
code won't help, like:
Jul 12 04:02:10 artemis postgres[27803]: [53-1] 2010-07-12 04:02:10.980
CDT food@scheduler 27803 192.168.1.10(50304)LOG: statement: BEGIN;SET
statement_timeout=30000;COMMIT;SELECT last_value, slots, used,
ROUND(used/slots*100) AS percent, CASE WHEN slots < used THEN 0 ELSE
slots - used END AS numleft FROM (SELECT last_value,
CEIL((LEAST(max_value, 2147483647)-min_value::numeric
+1)/increment_by::NUMERIC) AS slots, CEIL((last_value-min_value::numeric
+1)/increment_by::NUMERIC) AS used FROM public.minor_preference_id_seq)
foo
Jul 12 04:02:11 artemis postgres[28022]: [24-1] 2010-07-12 04:02:11.167
CDT food@scheduler 28022 192.168.1.10(47322)LOG: duration: 273.333 ms
Jul 12 04:02:11 artemis postgres[27487]: [13097-1] 2010-07-12
04:02:11.337 CDT food@scheduler 27487 192.168.1.10(39055)LOG: duration:
376.298 ms
Jul 12 04:02:11 artemis postgres[27803]: [54-1] 2010-07-12 04:02:11.456
CDT food@scheduler 27803 192.168.1.10(50304)LOG: duration: 476.522 ms
IE, the duration ends up on a different line, and basically none of the
statements ever match in your perl script.
Any guess here?
--
Anthony
On Wed, 2010-07-14 at 14:28 +0200, hubert depesz lubaczewski wrote:
> On Tue, Jul 13, 2010 at 02:53:25PM -0500, Anthony Presley wrote:
> > I'm bordering on insanity, trying to track down an IDLE in transaction
> > problem.
>
> you might find this helpful:
> http://www.depesz.com/index.php/2008/08/28/hunting-idle-in-transactions/
>
> Pozdrawiam,
>
> Hubert Lubaczewski
>