diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
commit | 47e6e7c84f008a53061e661f31ae96629bc694ef (patch) | |
tree | 648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /src/perl/MMV/MMV.pm | |
download | pcp-debian/3.9.10.tar.gz |
Debian 3.9.10debian/3.9.10debian
Diffstat (limited to 'src/perl/MMV/MMV.pm')
-rw-r--r-- | src/perl/MMV/MMV.pm | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/src/perl/MMV/MMV.pm b/src/perl/MMV/MMV.pm new file mode 100644 index 0000000..9f3d7ea --- /dev/null +++ b/src/perl/MMV/MMV.pm @@ -0,0 +1,120 @@ +package PCP::MMV; + +use strict; +use warnings; +use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); + +require Exporter; +require DynaLoader; + +@ISA = qw(Exporter DynaLoader); +@EXPORT = qw( + mmv_stats_init mmv_stats_stop mmv_units + mmv_lookup_value_desc + mmv_inc_value mmv_set_value mmv_set_string + mmv_stats_add mmv_stats_inc mmv_stats_set + mmv_stats_add_fallback mmv_stats_inc_fallback + mmv_stats_interval_start mmv_stats_interval_end + mmv_stats_set_string + MMV_FLAG_NOPREFIX MMV_FLAG_PROCESS + MMV_INDOM_NULL + MMV_TYPE_NOSUPPORT + MMV_TYPE_I32 MMV_TYPE_U32 + MMV_TYPE_I64 MMV_TYPE_U64 + MMV_TYPE_FLOAT MMV_TYPE_DOUBLE + MMV_TYPE_STRING MMV_TYPE_ELAPSED + MMV_COUNT_ONE + MMV_SEM_COUNTER MMV_SEM_INSTANT MMV_SEM_DISCRETE + MMV_SPACE_BYTE MMV_SPACE_KBYTE MMV_SPACE_MBYTE + MMV_SPACE_GBYTE MMV_SPACE_TBYTE + MMV_TIME_NSEC MMV_TIME_USEC MMV_TIME_MSEC + MMV_TIME_SEC MMV_TIME_MIN MMV_TIME_HOUR +); +@EXPORT_OK = qw(); +$VERSION = '1.00'; + +sub MMV_INDOM_NULL { 0xffffffff; } + +# flags for pmdammv +sub MMV_FLAG_NOPREFIX { 0x1; } # metric names not prefixed by file name +sub MMV_FLAG_PROCESS { 0x2; } # instrumented process must be running + +# data type of metric values +sub MMV_TYPE_NOSUPPORT { 0xffffffff; } # not implemented in this version +sub MMV_TYPE_I32 { 0; } # 32-bit signed integer +sub MMV_TYPE_U32 { 1; } # 32-bit unsigned integer +sub MMV_TYPE_I64 { 2; } # 64-bit signed integer +sub MMV_TYPE_U64 { 3; } # 64-bit signed integer +sub MMV_TYPE_FLOAT { 4; } # 32-bit floating point +sub MMV_TYPE_DOUBLE { 5; } # 64-bit floating point +sub MMV_TYPE_STRING { 6; } # null-terminated string +sub MMV_TYPE_ELAPSED { 10; } # 64-bit elapsed time + +# units - space scale +sub MMV_SPACE_BYTE { 0; } # bytes +sub MMV_SPACE_KBYTE { 1; } # kilobytes +sub MMV_SPACE_MBYTE { 2; } # megabytes +sub MMV_SPACE_GBYTE { 3; } # gigabytes +sub MMV_SPACE_TBYTE { 4; } # terabytes + +# units - time scale +sub MMV_TIME_NSEC { 0; } # nanoseconds +sub MMV_TIME_USEC { 1; } # microseconds +sub MMV_TIME_MSEC { 2; } # milliseconds +sub MMV_TIME_SEC { 3; } # seconds +sub MMV_TIME_MIN { 4; } # minutes +sub MMV_TIME_HOUR { 5; } # hours + +# units - count scale (for metrics such as count events, syscalls, +# interrupts, etc - these are simply powers of ten and not enumerated here +# (e.g. 6 for 10^6, or -3 for 10^-3). +sub MMV_COUNT_ONE { 0; } # 1 + +# semantics/interpretation of metric values +sub MMV_SEM_COUNTER { 1; } # cumulative counter, monotonic increasing +sub MMV_SEM_INSTANT { 3; } # instantaneous value, continuous domain +sub MMV_SEM_DISCRETE { 4; } # instantaneous value, discrete domain + + +bootstrap PCP::MMV $VERSION; + +1; +__END__ + +=head1 NAME + +PCP::MMV - Perl module for Memory Mapped Value instrumentation + +=head1 SYNOPSIS + + use PCP::MMV; + +=head1 DESCRIPTION + +The PCP::MMV Perl module contains the language bindings for +building Perl programs instrumented with the Performance Co-Pilot +Memory Mapped Value infrastructure - an efficient data transport +mechanism for making performance data from within a Perl program +available as PCP metrics using the MMV PMDA. + +=head1 SEE ALSO + +mmv_stats_init(3), mmv_inc_value(3), mmv_lookup_value_desc(3), +mmv(4) and pmda(3). + +The PCP mailing list pcp@mail.performancecopilot.org can be used for +questions about this module. + +Further details can be found at http://www.performancecopilot.org + +=head1 AUTHOR + +Nathan Scott, E<lt>nathans@debian.orgE<gt> + +Copyright (C) 2009 by Aconex. + +This library is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License, version 2 (see +the "COPYING" file in the PCP source tree for further details). + +=cut |