Arm MAP Metric Plugin Interface
Metric Plugin Interface for MAP
custom1.xml

An example metric definition file, as detailed in Metric Definition File. This corresponds to the example metric library custom1.c.

1 <!-- version is the file format version -->
2 <metricdefinitions version="1">
3 
4  <!-- id is the internal name for this metric, as used in the .map XML -->
5  <metric id="com.allinea.metrics.custom1.interrupts">
6  <!-- Specify whether this metric is always, default_yes, default_no, or never enabled -->
7  <enabled>default_yes</enabled>
8  <!-- The units this metric is measured in. -->
9  <units>/s</units>
10  <!-- Data type used to store the sample values, uint64_t or double -->
11  <dataType>uint64_t</dataType>
12  <!-- The domain the metric is to be sampled in, only time is supported. -->
13  <domain>time</domain>
14 
15  <!-- Example source
16  Specifies the source of data for this metric, i.e. a function in a
17  shared library.
18 
19  The function signature depends on the dataType:
20  - uint64_t: int function(metric_id_t metricId,
21  struct timespec* inCurrentSampleTime,
22  uint64_t *outValue);
23  - double: int function(metric_id_t metricId,
24  struct timespec* inCurrentSampleTime,
25  double *outValue);
26 
27  If the result is undefined for some reason the function may return
28  the special sentinel value ~0 (unsigned integers) or Nan (floating point)
29 
30  Return value is 0 if success, -1 if failure (and set errno)
31 
32  If divideBySampleTime is true then the values returned by outValue
33  will be divided by the sample interval to get the final value. -->
34  <source ref="com.allinea.metrics.custom1_src"
35  functionName="sample_interrupts"
36  divideBySampleTime="true"/>
37 
38  <!-- Display attributes used by the GUI -->
39  <display>
40  <!-- Display name for the metric as used in the GUI -->
41  <displayName>Interrupts</displayName>
42 
43  <!-- Brief description of the metric.. -->
44  <description>Total number of system interrupts taken</description>
45 
46  <!-- The type of metric, used by the GUI to group metrics -->
47  <type>interrupts</type>
48 
49  <!-- The colour to use for the metric graphs for this metric -->
50  <colour>green</colour>
51  </display>
52 
53  </metric>
54 
55  <!-- Metric group for interrupt metrics, used in the GUI -->
56  <metricGroup id="Custom1">
57  <!-- Display name for the group as use din the GUI -->
58  <displayName>Custom1</displayName>
59 
60  <!-- Brief description of the group -->
61  <description>Interrupt metrics</description>
62 
63  <!-- References to all the metrics included in the group -->
64  <metric ref="com.allinea.metrics.custom1.interrupts"/>
65  </metricGroup>
66 
67  <!-- Definition of the example source (metric plugin) used for the custom metric -->
68  <source id="com.allinea.metrics.custom1_src">
69  <!-- File name of the sample metric plugin shared library -->
70  <sharedLibrary>libcustom1.so</sharedLibrary>
71  </source>
72 
73 </metricdefinitions>