summaryrefslogtreecommitdiff
path: root/src/perl/MMV/MMV.pm
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2014-10-26 12:33:50 +0400
committerIgor Pashev <pashev.igor@gmail.com>2014-10-26 12:33:50 +0400
commit47e6e7c84f008a53061e661f31ae96629bc694ef (patch)
tree648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /src/perl/MMV/MMV.pm
downloadpcp-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.pm120
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