The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Zabbix::Utils -- Useful miscellanea related to Zabbix

DESCRIPTION

This is a collection of miscellaneous things useful to have in the event that you're doing something with the Zabbix::API distribution.

FUNCTIONS

None so far.

EXPORTS

None by default.

EXPORTABLE

RE_FORMULA

This constant (in the use constant sense) is a regular expression that will match against parts of formulas of calculated items thusly:

  use Zabbix::Utils qw/RE_FORMULA/;

  # interpolating constants is problematic
  my $regexp = RE_FORMULA;

  my $formula = 'last("MyROuter2:ifHCInOctets5")+last("MyROuter2:ifHCInOctets23")';

  while ($formula =~ m/$regexp/g) {

      print Dumper(\%+);

  }

Which should output:

  $VAR1 = {
            'function_call' => 'last("MyROuter2:ifHCInOctets5")',
            'function_args_quote' => '"',
            'item' => 'ifHCInOctets5',
            'function_args' => 'MyROuter2:ifHCInOctets5',
            'host' => 'MyROuter2'
          };
  $VAR1 = {
            'function_call' => 'last("MyROuter2:ifHCInOctets23")',
            'function_args_quote' => '"',
            'item' => 'ifHCInOctets23',
            'function_args' => 'MyROuter2:ifHCInOctets23',
            'host' => 'MyROuter2'
          };

Item arguments (system.uptime[minutes]) appear in item_arg which is not represented here (fixme!).

You'll have noticed that this makes use of the excellent "named capture buffers" feature, which means you need Perl 5.10 or higher.

RE_EXPRESSION

Like RE_FORMULA, this matches against trigger expressions:

  use Zabbix::Utils qw/RE_EXPRESSION/;

  my $regexp = RE_EXPRESSION;

  my $expression = '{www.zabbix.com:system.cpu.load[all,avg1].last(0)}>5';
  $expression =~ m/$regexp/;

  print Dumper(\%+);

Which should output:

  $VAR1 = {  };

SEE ALSO

Zabbix::API, the Zabbix API documentation at http://www.zabbix.com/documentation/start.

AUTHOR

Fabrice Gabolde <fabrice.gabolde@uperto.com>

COPYRIGHT AND LICENSE

Copyright (C) 2011 SFR

This library is free software; you can redistribute it and/or modify it under the terms of the GPLv3.