1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
#
# Exercise libpcp_import "batching" extensions in Perl import API
#
# Copyright (c) 2013 Red Hat.
#
use strict;
use warnings;
$| = 1; # don't buffer output
use PCP::LogImport;
my $ctx1;
my $ctx2;
my $hdl1;
my $hdl2;
sub check
{
my ($sts, $name) = @_;
if ($sts < 0) { print $name . ": Error: " . pmiErrStr($sts) . "\n"; }
else {
print $name . ": OK";
if ($sts != 0) { print " ->$sts"; }
print "\n";
}
}
$ctx1 = pmiStart("myarchive", 0);
check($ctx1, "pmiStart");
$_ = pmiSetHostname("batching.com");
check($_, "pmiSetHostname");
$_ = pmiSetTimezone("GMT-12");
check($_, "pmiSetTimezone");
$_ = pmiUseContext($ctx1);
check($_, "pmiUseContext");
$_ = pmiAddMetric("my.metric.foo", pmid_build(PMI_DOMAIN,0,1), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_INSTANT, pmiUnits(1,-1,0,PM_SPACE_MBYTE,PM_TIME_SEC,0));
check($_, "pmiAddMetric");
$_ = pmiAddMetric("my.metric.bar", PM_ID_NULL, PM_TYPE_U64, pmInDom_build(PMI_DOMAIN,1), PM_SEM_INSTANT, pmiUnits(1,-1,0,PM_SPACE_MBYTE,PM_TIME_SEC,0));
check($_, "pmiAddMetric");
$_ = pmiAddMetric("my.metric.long", PM_ID_NULL, PM_TYPE_64, PM_INDOM_NULL, PM_SEM_INSTANT, pmiUnits(0,0,0,0,0,0));
check($_, "pmiAddMetric");
$_ = pmiAddMetric("my.metric.double", PM_ID_NULL, PM_TYPE_DOUBLE, PM_INDOM_NULL, PM_SEM_INSTANT, pmiUnits(0,0,0,0,0,0));
check($_, "pmiAddMetric");
$_ = pmiAddMetric("my.metric.string", PM_ID_NULL, PM_TYPE_STRING, PM_INDOM_NULL, PM_SEM_INSTANT, pmiUnits(0,0,0,0,0,0));
check($_, "pmiAddMetric");
$_ = pmiAddMetric("my.metric.float", PM_ID_NULL, PM_TYPE_FLOAT, PM_INDOM_NULL, PM_SEM_DISCRETE, pmiUnits(0,0,0,0,0,0));
check($_, "pmiAddMetric");
$_ = pmiAddMetric("my.metric.strung", PM_ID_NULL, PM_TYPE_STRING, PM_INDOM_NULL, PM_SEM_INSTANT, pmiUnits(0,0,0,0,0,0));
check($_, "pmiAddMetric");
$_ = pmiBatchPutValue("my.metric.string", "", "a third string value");
check($_, "pmiBatchPutValue");
$_ = pmiBatchWrite(2, 70000);
check($_, "pmiBatchWrite");
$_ = pmiBatchPutValue("my.metric.strung", "", "a first string value");
check($_, "pmiBatchPutValue");
$_ = pmiBatchPutValue("my.metric.string", "", "a second string value");
check($_, "pmiBatchPutValue");
$_ = pmiBatchWrite(0, 110000);
check($_, "pmiBatchWrite");
$hdl1 = pmiGetHandle("my.metric.string", "");
check($hdl1, "pmiGetHandle");
$_ = pmiBatchPutValueHandle($hdl1, "a fourth string value");
check($_, "pmiBatchPutValueHandle");
$hdl2 = pmiGetHandle("my.metric.strung", "");
check($hdl2, "pmiGetHandle");
$_ = pmiBatchPutValueHandle($hdl2, "a fifth string value");
check($_, "pmiBatchPutValueHandle");
$_ = pmiBatchWrite(3, 10000);
check($_, "pmiBatchWrite");
$_ = pmiBatchEnd();
check($_, "pmiBatchEnd");
pmiDump();
|