Browse code

xhttp_prom: docbook files space formating

for formating used oXygen XML Editor 13.2

Sergey Safarov authored on 16/09/2021 21:02:21
Showing 1 changed files
... ...
@@ -11,161 +11,130 @@
11 11
 
12 12
 <chapter>
13 13
 
14
-  <title>&adminguide;</title>
15
-  
16
-  <section>
17
-	<title>Overview</title>
18
-	<para>
19
-	  This module generates suitable metrics for a Prometheus monitoring platform.
20
-	</para>
21
-	<para>
22
-	  It answers Prometheus pull requests (HTTP requests to /metrics URL).
23
-	</para>
24
-	<para>
25
-	  The module generates metrics based on &kamailio; statistics, and also the user
26
-	  can create his own metrics (currently counters, gauges and histograms).
27
-	</para>
28
-	<para>
29
-	  The xHTTP_PROM module uses the xHTTP module to handle HTTP requests.
30
-	  Read the documentation of the xHTTP module for more details.
31
-	</para>
32
-	<para>
33
-	  NOTE: This module is based on xHTTP_RPC one.
34
-	</para>
35
-	<para>
36
-	  <emphasis>IMPORTANT</emphasis>: This module uses private memory to generate HTTP
37
-	  responses, and shared memory to store all the metrics.
38
-	  Remember to increase size of private and shared memory if you use a huge amount
39
-	  of metrics.
40
-	</para>
41
-	<para>
42
-	  Prometheus URLs:
43
-	  <itemizedlist>
44
-		<listitem>
45
-		  <para><ulink url="https://prometheus.io/">https://prometheus.io/</ulink></para>
46
-		</listitem>
47
-		<listitem>
48
-		  <para><ulink url="https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels">https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels</ulink></para>
49
-		</listitem>
50
-		<listitem>
51
-		  <para><ulink url="https://prometheus.io/docs/instrumenting/exposition_formats/">https://prometheus.io/docs/instrumenting/exposition_formats/</ulink></para>
52
-		</listitem>
53
-	  </itemizedlist>
54
-	</para>
55
-  </section>
56
-  <section>
57
-	<title>Dependencies</title>
14
+	<title>&adminguide;</title>
15
+
58 16
 	<section>
59
-	  <title>&kamailio; Modules</title>
60
-	  <para>
61
-		The following modules must be loaded before this module:
62
-		<itemizedlist>
63
-		  <listitem>
64
-			<para>
65
-			  <emphasis>xhttp</emphasis> -- xHTTP.
17
+		<title>Overview</title>
18
+		<para>This module generates suitable metrics for a Prometheus monitoring platform.</para>
19
+		<para>It answers Prometheus pull requests (HTTP requests to /metrics URL).</para>
20
+		<para>The module generates metrics based on &kamailio; statistics, and also the user can
21
+			create his own metrics (currently counters, gauges and histograms).</para>
22
+		<para>The xHTTP_PROM module uses the xHTTP module to handle HTTP requests. Read the
23
+			documentation of the xHTTP module for more details.</para>
24
+		<para>NOTE: This module is based on xHTTP_RPC one.</para>
25
+		<para>
26
+			<emphasis>IMPORTANT</emphasis>: This module uses private memory to generate HTTP
27
+			responses, and shared memory to store all the metrics. Remember to increase size of
28
+			private and shared memory if you use a huge amount of metrics.</para>
29
+		<para>Prometheus URLs: <itemizedlist>
30
+				<listitem>
31
+					<para><ulink url="https://prometheus.io/">https://prometheus.io/</ulink></para>
32
+				</listitem>
33
+				<listitem>
34
+					<para><ulink
35
+							url="https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels"
36
+							>https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels</ulink></para>
37
+				</listitem>
38
+				<listitem>
39
+					<para><ulink url="https://prometheus.io/docs/instrumenting/exposition_formats/"
40
+							>https://prometheus.io/docs/instrumenting/exposition_formats/</ulink></para>
41
+				</listitem>
42
+			</itemizedlist>
43
+		</para>
44
+	</section>
45
+	<section>
46
+		<title>Dependencies</title>
47
+		<section>
48
+			<title>&kamailio; Modules</title>
49
+			<para>The following modules must be loaded before this module: <itemizedlist>
50
+					<listitem>
51
+						<para>
52
+							<emphasis>xhttp</emphasis> -- xHTTP.</para>
53
+					</listitem>
54
+				</itemizedlist>
66 55
 			</para>
67
-		  </listitem>
68
-		</itemizedlist>
69
-	  </para>
56
+		</section>
57
+		<section>
58
+			<title>External Libraries or Applications</title>
59
+			<para>The following libraries or applications must be installed before running
60
+				&kamailio; with this module loaded: <itemizedlist>
61
+					<listitem>
62
+						<para>
63
+							<emphasis>None</emphasis>
64
+						</para>
65
+					</listitem>
66
+				</itemizedlist>
67
+			</para>
68
+		</section>
70 69
 	</section>
71 70
 	<section>
72
-	  <title>External Libraries or Applications</title>
73
-	  <para>
74
-		The following libraries or applications must be installed before running
75
-		&kamailio; with this module loaded:
76
-		<itemizedlist>
77
-		  <listitem>
71
+		<title>Parameters</title>
72
+		<section id="xhttp_prom.p.xhttp_prom_buf_size">
73
+			<title><varname>xhttp_prom_buf_size</varname> (integer)</title>
74
+			<para>Specifies the maximum length of the buffer (in bytes) used to write the metric
75
+				reply information in order to build the HTML response.</para>
78 76
 			<para>
79
-			  <emphasis>None</emphasis>
77
+				<emphasis> Default value is 0 (auto set to 1/3 of the size of the configured pkg
78
+					mem). </emphasis>
80 79
 			</para>
81
-		  </listitem>
82
-		</itemizedlist>
83
-	  </para>
84
-	</section>
85
-  </section>
86
-  <section>
87
-	<title>Parameters</title>
88
-	<section id="xhttp_prom.p.xhttp_prom_buf_size">
89
-	  <title><varname>xhttp_prom_buf_size</varname> (integer)</title>
90
-	  <para>
91
-		Specifies the maximum length of the buffer (in bytes) used
92
-		to write the metric reply information in order to
93
-		build the HTML response.
94
-	  </para>
95
-	  <para>
96
-		<emphasis>
97
-		  Default value is 0 (auto set to 1/3 of the size of the configured pkg mem).
98
-		</emphasis>
99
-	  </para>
100
-	  <example>
101
-		<title>Set <varname>xhttp_prom_buf_size</varname> parameter</title>
102
-		<programlisting format="linespecific">
80
+			<example>
81
+				<title>Set <varname>xhttp_prom_buf_size</varname> parameter</title>
82
+				<programlisting format="linespecific">
103 83
 ...
104 84
 modparam("xhttp_prom", "xhttp_prom_buf_size", 1024)
105 85
 ...
106 86
 		</programlisting>
107
-	  </example>
108
-	</section>
109
-	<section id="xhttp_prom.p.xhttp_prom_timeout">
110
-	  <title><varname>xhttp_prom_timeout</varname> (integer)</title>
111
-	  <para>
112
-		Specifies a timeout in minutes. A metric not used during this timeout is
113
-		automatically deleted. Listing metrics does not count as using them.
114
-	  </para>
115
-	  <para>
116
-		<emphasis>If set to 0 timeout is disabled.</emphasis>
117
- 		Negative values are not allowed.
118
-	  </para>
119
-	  <para>
120
-		<emphasis>
121
-		  Default value is 60 minutes.
122
-		</emphasis>
123
-	  </para>
124
-	  <example>
125
-		<title>Set <varname>xhttp_prom_timeout</varname> parameter</title>
126
-		<programlisting format="linespecific">
87
+			</example>
88
+		</section>
89
+		<section id="xhttp_prom.p.xhttp_prom_timeout">
90
+			<title><varname>xhttp_prom_timeout</varname> (integer)</title>
91
+			<para>Specifies a timeout in minutes. A metric not used during this timeout is
92
+				automatically deleted. Listing metrics does not count as using them.</para>
93
+			<para>
94
+				<emphasis>If set to 0 timeout is disabled.</emphasis> Negative values are not
95
+				allowed.</para>
96
+			<para>
97
+				<emphasis> Default value is 60 minutes. </emphasis>
98
+			</para>
99
+			<example>
100
+				<title>Set <varname>xhttp_prom_timeout</varname> parameter</title>
101
+				<programlisting format="linespecific">
127 102
 ...
128 103
 # Set timeout to 10 hours		  
129 104
 modparam("xhttp_prom", "xhttp_prom_timeout", 600)
130 105
 ...
131 106
 		</programlisting>
132
-	  </example>
133
-	</section>
134
-	<section id="xhttp_prom.p.xhttp_prom_stats">
135
-	  <title><varname>xhttp_prom_stats</varname> (str)</title>
136
-	  <para>
137
-		Specifies which internal statistics from &kamailio; to show.
138
-		
139
-		Possible values:
140
-		<itemizedlist>
141
-		  <listitem>
142
-			<para><emphasis>all</emphasis> - Show whole &kamailio; statistics</para>
143
-		  </listitem>
144
-		  <listitem>
145
-			<para><emphasis>group_name:</emphasis> - Show all statistics for a group</para>
146
-		  </listitem>
147
-		  <listitem>
148
-			<para><emphasis>statistic_name</emphasis> - Show a specific statistic.
149
-			It automatically finds the group.</para>
150
-		  </listitem>
151
-		</itemizedlist>
152
-	  </para>
153
-	  <para>
154
-		<emphasis>
155
-		  Default value is "", meaning do not display any &kamailio; statistics.
156
-		</emphasis>
157
-	  </para>
158
-	  <para>
159
-		<emphasis>
160
-		  IMPORTANT: &kamailio; internal statistics are parsed to convert - into _, so they
161
-		  accomplish with Prometheus guidelines for metric names.
162
-		  <ulink url="https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels">https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels</ulink>
163
-		</emphasis>
164
-		User generated statistics and label names are not parsed.
165
-	  </para>
166
-	  <example>
167
-		<title>Set <varname>xhttp_prom_stats</varname> parameter</title>
168
-		<programlisting format="linespecific">
107
+			</example>
108
+		</section>
109
+		<section id="xhttp_prom.p.xhttp_prom_stats">
110
+			<title><varname>xhttp_prom_stats</varname> (str)</title>
111
+			<para>Specifies which internal statistics from &kamailio; to show. Possible values: <itemizedlist>
112
+					<listitem>
113
+						<para><emphasis>all</emphasis> - Show whole &kamailio; statistics</para>
114
+					</listitem>
115
+					<listitem>
116
+						<para><emphasis>group_name:</emphasis> - Show all statistics for a
117
+							group</para>
118
+					</listitem>
119
+					<listitem>
120
+						<para><emphasis>statistic_name</emphasis> - Show a specific statistic. It
121
+							automatically finds the group.</para>
122
+					</listitem>
123
+				</itemizedlist>
124
+			</para>
125
+			<para>
126
+				<emphasis> Default value is "", meaning do not display any &kamailio; statistics.
127
+				</emphasis>
128
+			</para>
129
+			<para>
130
+				<emphasis> IMPORTANT: &kamailio; internal statistics are parsed to convert - into _,
131
+					so they accomplish with Prometheus guidelines for metric names. <ulink
132
+						url="https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels"
133
+						>https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels</ulink>
134
+				</emphasis> User generated statistics and label names are not parsed.</para>
135
+			<example>
136
+				<title>Set <varname>xhttp_prom_stats</varname> parameter</title>
137
+				<programlisting format="linespecific">
169 138
 ...
170 139
 # show all kamailio statistics.
171 140
 modparam("xhttp_prom", "xhttp_prom_stats", "all")
... ...
@@ -180,24 +149,19 @@ modparam("xhttp_prom", "xhttp_prom_stats", "200_replies")
180 149
 modparam("xhttp_prom", "xhttp_prom_stats", "")
181 150
 ...
182 151
 		</programlisting>
183
-	  </example>
184
-	</section>
185
-	<section id="xhttp_prom.p.xhttp_prom_beginning">
186
-	  <title><varname>xhttp_prom_beginning</varname> (str)</title>
187
-	  <para>
188
-		Specifies beginning of string the metrics are build with.
189
-	  </para>
190
-	  <para>
191
-		<emphasis>It defaults to "kamailio_"</emphasis>, so if not specified every
192
-		metric will start with "kamailio_".
193
-	  </para>
194
-	  <para>
195
-		Void string "" is also allowed, meaning no prefix string for every metric
196
-		name.
197
-	  </para>
198
-	  <example>
199
-		<title>Set <varname>xhttp_prom_beginning</varname> parameter</title>
200
-		<programlisting format="linespecific">
152
+			</example>
153
+		</section>
154
+		<section id="xhttp_prom.p.xhttp_prom_beginning">
155
+			<title><varname>xhttp_prom_beginning</varname> (str)</title>
156
+			<para>Specifies beginning of string the metrics are build with.</para>
157
+			<para>
158
+				<emphasis>It defaults to "kamailio_"</emphasis>, so if not specified every metric
159
+				will start with "kamailio_".</para>
160
+			<para>Void string "" is also allowed, meaning no prefix string for every metric
161
+				name.</para>
162
+			<example>
163
+				<title>Set <varname>xhttp_prom_beginning</varname> parameter</title>
164
+				<programlisting format="linespecific">
201 165
 ...
202 166
 # All metrics will start with "my_metric_".
203 167
 modparam("xhttp_prom", "xhttp_prom_beginning", "my_metric_")
... ...
@@ -206,49 +170,42 @@ modparam("xhttp_prom", "xhttp_prom_beginning", "my_metric_")
206 170
 modparam("xhttp_prom", "xhttp_prom_beginning", "");
207 171
 ...
208 172
 		</programlisting>
209
-	  </example>
210
-	</section>
211
-	<section id="xhttp_prom.p.prom_counter">
212
-	  <title><varname>prom_counter</varname> (str)</title>
213
-	  <para>
214
-		Create a counter metric.
215
-	  </para>
216
-	  <para>
217
-		This function declares a counter but the actual counter is only created
218
-		when using it (by adding to or resetting it)
219
-	  </para>
220
-	  <para>
221
-		It takes a list of attribute=value separated by semicolon, the attributes can
222
-		be name and label.
223
-	  </para>
224
-	  <itemizedlist>
225
-		<listitem>
226
-		  <para>
227
-			<emphasis>name</emphasis> - name of the counter. This attribute is mandatory.
228
-			It is used to generate the metric name. Each name is unique, no metric shall
229
-			repeat a name.
230
-		  </para>
231
-		</listitem>
232
-		<listitem>
233
-		  <para>
234
-			<emphasis>label</emphasis> - names of labels in the counter. Optional.
235
-			Only one label parameter at most allowed in counters.
236
-			Each label name is separated by <emphasis>:</emphasis> without spaces.
237
-			At most only three label names allowed in each label parameter.
238
-			<example><title><varname>prom_counter</varname> label example</title>
239
-			<programlisting format="linespecific">
173
+			</example>
174
+		</section>
175
+		<section id="xhttp_prom.p.prom_counter">
176
+			<title><varname>prom_counter</varname> (str)</title>
177
+			<para>Create a counter metric.</para>
178
+			<para>This function declares a counter but the actual counter is only created when using
179
+				it (by adding to or resetting it)</para>
180
+			<para>It takes a list of attribute=value separated by semicolon, the attributes can be
181
+				name and label.</para>
182
+			<itemizedlist>
183
+				<listitem>
184
+					<para>
185
+						<emphasis>name</emphasis> - name of the counter. This attribute is
186
+						mandatory. It is used to generate the metric name. Each name is unique, no
187
+						metric shall repeat a name.</para>
188
+				</listitem>
189
+				<listitem>
190
+					<para>
191
+						<emphasis>label</emphasis> - names of labels in the counter. Optional. Only
192
+						one label parameter at most allowed in counters. Each label name is
193
+						separated by <emphasis>:</emphasis> without spaces. At most only three label
194
+						names allowed in each label parameter. <example>
195
+							<title><varname>prom_counter</varname> label example</title>
196
+							<programlisting format="linespecific">
240 197
 # Create two labels called method and handler
241 198
 label = method:handler
242 199
 This would generate  {method="whatever", handler="whatever2"} when building
243 200
 the metric.
244 201
 			</programlisting>
245
-			</example>
246
-		  </para>
247
-		</listitem>
248
-	  </itemizedlist>
249
-	  <example>
250
-		<title>Set <varname>prom_counter</varname> parameter</title>
251
-		<programlisting format="linespecific">
202
+						</example>
203
+					</para>
204
+				</listitem>
205
+			</itemizedlist>
206
+			<example>
207
+				<title>Set <varname>prom_counter</varname> parameter</title>
208
+				<programlisting format="linespecific">
252 209
 ...
253 210
 		  
254 211
 # Create cnt_first counter with no labels.
... ...
@@ -266,49 +223,42 @@ using it by prom_counter_inc or prom_counter_reset functions.
266 223
 
267 224
 ...
268 225
 		</programlisting>
269
-	  </example>
270
-	</section>
271
-	<section id="xhttp_prom.p.prom_gauge">
272
-	  <title><varname>prom_gauge</varname> (str)</title>
273
-	  <para>
274
-		Create a gauge metric.
275
-	  </para>
276
-	  <para>
277
-		This function declares the gauge but the actual gauge is only created
278
-		when using it (by setting or resetting it)
279
-	  </para>
280
-	  <para>
281
-		It takes a list of attribute=value separated by semicolon, the attributes can
282
-		be name and value.
283
-	  </para>
284
-	  <itemizedlist>
285
-		<listitem>
286
-		  <para>
287
-			<emphasis>name</emphasis> - name of the gauge. This attribute is mandatory.
288
-			It is used to generate the metric name. Each name is unique, no metric shall
289
-			repeat a name.
290
-		  </para>
291
-		</listitem>
292
-		<listitem>
293
-		  <para>
294
-			<emphasis>label</emphasis> - names of labels in the gauge. Optional.
295
-			Only one label parameter at most allowed in gauges.
296
-			Each label name is separated by <emphasis>:</emphasis> without spaces.
297
-			At most only three label names allowed inside each label parameter.
298
-			<example><title><varname>prom_gauge</varname> label example</title>
299
-			<programlisting format="linespecific">
226
+			</example>
227
+		</section>
228
+		<section id="xhttp_prom.p.prom_gauge">
229
+			<title><varname>prom_gauge</varname> (str)</title>
230
+			<para>Create a gauge metric.</para>
231
+			<para>This function declares the gauge but the actual gauge is only created when using
232
+				it (by setting or resetting it)</para>
233
+			<para>It takes a list of attribute=value separated by semicolon, the attributes can be
234
+				name and value.</para>
235
+			<itemizedlist>
236
+				<listitem>
237
+					<para>
238
+						<emphasis>name</emphasis> - name of the gauge. This attribute is mandatory.
239
+						It is used to generate the metric name. Each name is unique, no metric shall
240
+						repeat a name.</para>
241
+				</listitem>
242
+				<listitem>
243
+					<para>
244
+						<emphasis>label</emphasis> - names of labels in the gauge. Optional. Only
245
+						one label parameter at most allowed in gauges. Each label name is separated
246
+						by <emphasis>:</emphasis> without spaces. At most only three label names
247
+						allowed inside each label parameter. <example>
248
+							<title><varname>prom_gauge</varname> label example</title>
249
+							<programlisting format="linespecific">
300 250
 # Create two labels called method and handler
301 251
 label = method:handler
302 252
 This would generate  {method="whatever", handler="whatever2"} when building
303 253
 the metric.
304 254
 			</programlisting>
305
-			</example>
306
-		  </para>
307
-		</listitem>
308
-	  </itemizedlist>
309
-	  <example>
310
-		<title>Set <varname>prom_gauge</varname> parameter</title>
311
-		<programlisting format="linespecific">
255
+						</example>
256
+					</para>
257
+				</listitem>
258
+			</itemizedlist>
259
+			<example>
260
+				<title>Set <varname>prom_gauge</varname> parameter</title>
261
+				<programlisting format="linespecific">
312 262
 ...
313 263
 
314 264
 # Create gg_first gauge with no labels
... ...
@@ -323,67 +273,54 @@ modparam("xhttp_prom", "prom_gauge", "name=gg_third; label=method:handler;");
323 273
 
324 274
 ...
325 275
 		</programlisting>
326
-	  </example>
327
-	</section>
328
-	<section id="xhttp_prom.p.prom_histogram">
329
-	  <title><varname>prom_histogram</varname> (str)</title>
330
-	  <para>
331
-		Create a histogram metric.
332
-	  </para>
333
-	  <para>
334
-		This function declares a histogram but the actual histogram is only created
335
-		when observing it.
336
-	  </para>
337
-	  <para>
338
-		It takes a list of attribute=value separated by semicolon, the attributes can
339
-		be name, label and buckets.
340
-	  </para>
341
-	  <itemizedlist>
342
-		<listitem>
343
-		  <para>
344
-			<emphasis>name</emphasis> - name of the histogram. This attribute is mandatory.
345
-			It is used to generate the metric name. Each name is unique, no metric shall
346
-			repeat a name.
347
-		  </para>
348
-		</listitem>
349
-		<listitem>
350
-		  <para>
351
-			<emphasis>label</emphasis> - names of labels in the histogram. Optional.
352
-			Only one label parameter at most allowed in histograms.
353
-			Each label name is separated by <emphasis>:</emphasis> without spaces.
354
-			At most only three label names allowed in each label parameter.
355
-			<example><title><varname>prom_histogram</varname> label example</title>
356
-			<programlisting format="linespecific">
276
+			</example>
277
+		</section>
278
+		<section id="xhttp_prom.p.prom_histogram">
279
+			<title><varname>prom_histogram</varname> (str)</title>
280
+			<para>Create a histogram metric.</para>
281
+			<para>This function declares a histogram but the actual histogram is only created when
282
+				observing it.</para>
283
+			<para>It takes a list of attribute=value separated by semicolon, the attributes can be
284
+				name, label and buckets.</para>
285
+			<itemizedlist>
286
+				<listitem>
287
+					<para>
288
+						<emphasis>name</emphasis> - name of the histogram. This attribute is
289
+						mandatory. It is used to generate the metric name. Each name is unique, no
290
+						metric shall repeat a name.</para>
291
+				</listitem>
292
+				<listitem>
293
+					<para>
294
+						<emphasis>label</emphasis> - names of labels in the histogram. Optional.
295
+						Only one label parameter at most allowed in histograms. Each label name is
296
+						separated by <emphasis>:</emphasis> without spaces. At most only three label
297
+						names allowed in each label parameter. <example>
298
+							<title><varname>prom_histogram</varname> label example</title>
299
+							<programlisting format="linespecific">
357 300
 # Create two labels called method and handler
358 301
 label = method:handler
359 302
 This would generate  {method="whatever", handler="whatever2"} when building
360 303
 the metric.
361 304
 			</programlisting>
362
-			</example>
363
-		  </para>
364
-		</listitem>
365
-		<listitem>
366
-		  <para>
367
-			<emphasis>buckets</emphasis> - specifies upper bounds for buckets in the
368
-			histogram. This attribute is optional.
369
-		  </para>
370
-		  <para>
371
-			Bucket values are separated by ":". Each value has to be a number.
372
-		  </para>
373
-		  <para>
374
-			"+Inf" upper bucket is always automatically included.
375
-		  </para>
376
-		  <para>At least one bucket value is needed (other than +Inf).</para>
377
-		  <para>Every bucket value has to increase in the list.</para>
378
-		  <para>
379
-			If no buckets specified, default bucket list is set to these values:
380
-		  </para>
381
-		  <para>[0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10]</para>
382
-		</listitem>
383
-	  </itemizedlist>
384
-	  <example>
385
-		<title>Set <varname>prom_histogram</varname> parameter</title>
386
-		<programlisting format="linespecific">
305
+						</example>
306
+					</para>
307
+				</listitem>
308
+				<listitem>
309
+					<para>
310
+						<emphasis>buckets</emphasis> - specifies upper bounds for buckets in the
311
+						histogram. This attribute is optional.</para>
312
+					<para>Bucket values are separated by ":". Each value has to be a number.</para>
313
+					<para>"+Inf" upper bucket is always automatically included.</para>
314
+					<para>At least one bucket value is needed (other than +Inf).</para>
315
+					<para>Every bucket value has to increase in the list.</para>
316
+					<para>If no buckets specified, default bucket list is set to these
317
+						values:</para>
318
+					<para>[0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10]</para>
319
+				</listitem>
320
+			</itemizedlist>
321
+			<example>
322
+				<title>Set <varname>prom_histogram</varname> parameter</title>
323
+				<programlisting format="linespecific">
387 324
 ...
388 325
 		  
389 326
 # Create my_histo histogram with no labels and default buckets.
... ...
@@ -403,34 +340,28 @@ using it by prom_histogram_observe function.
403 340
 
404 341
 ...
405 342
 		</programlisting>
406
-	  </example>
343
+			</example>
344
+		</section>
407 345
 	</section>
408
-  </section>
409
-  <section>
410
-	<title>Functions</title>
411
-	<section id="xhttp_prom.f.prom_counter_reset">
412
-	  <title>
413
-		<function moreinfo="none">prom_counter_reset(name, l0, l1, l2)</function>
414
-	  </title>
415
-	  <para>
416
-		Get a counter based on its name and labels and reset its value to 0.
417
-		Name parameter is mandatory. Values of labels are optional (from none up to three).
418
-		Name in prom_counter_reset has to match same name in prom_counter parameter.
419
-		Number of labels in prom_counter_reset has to match number of labels in prom_counter parameter.
420
-		First time a counter is used with this reset function the counter is created if it does not exist already.
421
-	  </para>
422
-	  <para>
423
-		This function accepts pseudovariables on its parameters.
424
-	  </para>
425
-	  <para>
426
-		Available via KEMI framework as <emphasis>counter_reset_l0</emphasis>,
427
-		<emphasis>counter_reset_l1</emphasis>,
428
-		<emphasis>counter_reset_l2</emphasis> and
429
-		<emphasis>counter_reset_l3</emphasis>.
430
-	  </para>
431
-	  <example>
432
-		<title><function>prom_counter_reset</function> usage</title>
433
-		<programlisting format="linespecific">
346
+	<section>
347
+		<title>Functions</title>
348
+		<section id="xhttp_prom.f.prom_counter_reset">
349
+			<title>
350
+				<function moreinfo="none">prom_counter_reset(name, l0, l1, l2)</function>
351
+			</title>
352
+			<para>Get a counter based on its name and labels and reset its value to 0. Name
353
+				parameter is mandatory. Values of labels are optional (from none up to three). Name
354
+				in prom_counter_reset has to match same name in prom_counter parameter. Number of
355
+				labels in prom_counter_reset has to match number of labels in prom_counter
356
+				parameter. First time a counter is used with this reset function the counter is
357
+				created if it does not exist already.</para>
358
+			<para>This function accepts pseudovariables on its parameters.</para>
359
+			<para>Available via KEMI framework as <emphasis>counter_reset_l0</emphasis>,
360
+					<emphasis>counter_reset_l1</emphasis>, <emphasis>counter_reset_l2</emphasis> and
361
+					<emphasis>counter_reset_l3</emphasis>.</para>
362
+			<example>
363
+				<title><function>prom_counter_reset</function> usage</title>
364
+				<programlisting format="linespecific">
434 365
 ...
435 366
 # Definition of counter with prom_counter with labels method and IP
436 367
 modparam("xhttp_prom", "prom_counter", "name=cnt01; label=method:IP;");
... ...
@@ -443,31 +374,25 @@ prom_counter_reset("cnt01", "push", "192.168.0.1");
443 374
 kamailio_cnt01 {method="push", IP="192.168.0.1"} 0 1234567890
444 375
 ...
445 376
 		</programlisting>
446
-	  </example>
447
-	</section>
448
-	<section id="xhttp_prom.f.prom_gauge_reset">
449
-	  <title>
450
-		<function moreinfo="none">prom_gauge_reset(name, l0, l1, l2)</function>
451
-	  </title>
452
-	  <para>
453
-		Get a gauge based on its name and labels and reset its value to 0.
454
-		Name parameter is mandatory. Values of labels are optional (from none up to three).
455
-		Name in prom_gauge_reset has to match same name in prom_gauge parameter.
456
-		Number of labels in prom_gauge_reset has to match number of labels in prom_gauge parameter.
457
-		First time a gauge is used with this reset function the gauge is created if it does not exist already.
458
-	  </para>
459
-	  <para>
460
-		This function accepts pseudovariables on its parameters.
461
-	  </para>
462
-	  <para>
463
-		Available via KEMI framework as <emphasis>gauge_reset_l0</emphasis>,
464
-		<emphasis>gauge_reset_l1</emphasis>,
465
-		<emphasis>gauge_reset_l2</emphasis> and
466
-		<emphasis>gauge_reset_l3</emphasis>.
467
-	  </para>
468
-	  <example>
469
-		<title><function>prom_gauge_reset</function> usage</title>
470
-		<programlisting format="linespecific">
377
+			</example>
378
+		</section>
379
+		<section id="xhttp_prom.f.prom_gauge_reset">
380
+			<title>
381
+				<function moreinfo="none">prom_gauge_reset(name, l0, l1, l2)</function>
382
+			</title>
383
+			<para>Get a gauge based on its name and labels and reset its value to 0. Name parameter
384
+				is mandatory. Values of labels are optional (from none up to three). Name in
385
+				prom_gauge_reset has to match same name in prom_gauge parameter. Number of labels in
386
+				prom_gauge_reset has to match number of labels in prom_gauge parameter. First time a
387
+				gauge is used with this reset function the gauge is created if it does not exist
388
+				already.</para>
389
+			<para>This function accepts pseudovariables on its parameters.</para>
390
+			<para>Available via KEMI framework as <emphasis>gauge_reset_l0</emphasis>,
391
+					<emphasis>gauge_reset_l1</emphasis>, <emphasis>gauge_reset_l2</emphasis> and
392
+					<emphasis>gauge_reset_l3</emphasis>.</para>
393
+			<example>
394
+				<title><function>prom_gauge_reset</function> usage</title>
395
+				<programlisting format="linespecific">
471 396
 ...
472 397
 # Definition of gauge with prom_gauge with labels method and IP
473 398
 modparam("xhttp_prom", "prom_gauge", "name=cnt01; label=method:IP;");
... ...
@@ -480,36 +405,26 @@ prom_gauge_reset("cnt01", "push", "192.168.0.1");
480 405
 kamailio_cnt01 {method="push", IP="192.168.0.1"} 0 1234567890
481 406
 ...
482 407
 		</programlisting>
483
-	  </example>
484
-	</section>
485
-	<section id="xhttp_prom.f.prom_counter_inc">
486
-	  <title>
487
-		<function moreinfo="none">prom_counter_inc(name, number, l0, l1, l2)</function>
488
-	  </title>
489
-	  <para>
490
-		Get a counter identified by its name and labels and increase its value by a number.
491
-		If counter does not exist it creates the counter, initializes it to zero and adds the number.
492
-	  </para>
493
-	  <para>
494
-		Name is mandatory, number is mandatory.
495
-		Number has to be positive or zero (integer).
496
-		l0, l1, l2 are values of labels and are optional.
497
-	  </para>
498
-	  <para>
499
-		name value and number of labels have to match a previous counter definition with prom_counter.
500
-	  </para>
501
-	  <para>
502
-		This function accepts pseudovariables on its parameters.
503
-	  </para>
504
-	  <para>
505
-		Available via KEMI framework as <emphasis>counter_inc_l0</emphasis>,
506
-		<emphasis>counter_inc_l1</emphasis>,
507
-		<emphasis>counter_inc_l2</emphasis> and
508
-		<emphasis>counter_inc_l3</emphasis>.
509
-	  </para>
510
-	  <example>
511
-		<title><function>prom_counter_inc</function> usage</title>
512
-		<programlisting format="linespecific">
408
+			</example>
409
+		</section>
410
+		<section id="xhttp_prom.f.prom_counter_inc">
411
+			<title>
412
+				<function moreinfo="none">prom_counter_inc(name, number, l0, l1, l2)</function>
413
+			</title>
414
+			<para>Get a counter identified by its name and labels and increase its value by a
415
+				number. If counter does not exist it creates the counter, initializes it to zero and
416
+				adds the number.</para>
417
+			<para>Name is mandatory, number is mandatory. Number has to be positive or zero
418
+				(integer). l0, l1, l2 are values of labels and are optional.</para>
419
+			<para>name value and number of labels have to match a previous counter definition with
420
+				prom_counter.</para>
421
+			<para>This function accepts pseudovariables on its parameters.</para>
422
+			<para>Available via KEMI framework as <emphasis>counter_inc_l0</emphasis>,
423
+					<emphasis>counter_inc_l1</emphasis>, <emphasis>counter_inc_l2</emphasis> and
424
+					<emphasis>counter_inc_l3</emphasis>.</para>
425
+			<example>
426
+				<title><function>prom_counter_inc</function> usage</title>
427
+				<programlisting format="linespecific">
513 428
 ...
514 429
 # Definition of cnt01 counter with no labels.
515 430
 modparam("xhttp_prom", "prom_counter", "name=cnt01;");
... ...
@@ -527,36 +442,25 @@ prom_counter_inc("cnt02", "15", "push", "192.168.0.1");
527 442
 kamailio_cnt02 {method="push", IP="192.168.0.1"} 15 1234567890
528 443
 ...
529 444
 		</programlisting>
530
-	  </example>
531
-	</section>
532
-	<section id="xhttp_prom.f.prom_gauge_set">
533
-	  <title>
534
-		<function moreinfo="none">prom_gauge_set(name, number, l0, l1, l2)</function>
535
-	  </title>
536
-	  <para>
537
-		Get a gauge identified by its name and labels and set its value to a number.
538
-		If gauge does not exist it creates the gauge and assigns the value to it.
539
-	  </para>
540
-	  <para>
541
-		Name is mandatory, number is mandatory.
542
-		Number is a string that will be parsed as a float.
543
-		l0, l1, l2 are values of labels and are optional.
544
-	  </para>
545
-	  <para>
546
-		name value and number of labels have to match a previous gauge definition with prom_gauge.
547
-	  </para>
548
-	  <para>
549
-		This function accepts pseudovariables on its parameters.
550
-	  </para>
551
-	  <para>
552
-		Available via KEMI framework as <emphasis>gauge_set_l0</emphasis>,
553
-		<emphasis>gauge_set_l1</emphasis>,
554
-		<emphasis>gauge_set_l2</emphasis> and
555
-		<emphasis>gauge_set_l3</emphasis>.
556
-	  </para>
557
-	  <example>
558
-		<title><function>prom_gauge_set</function> usage</title>
559
-		<programlisting format="linespecific">
445
+			</example>
446
+		</section>
447
+		<section id="xhttp_prom.f.prom_gauge_set">
448
+			<title>
449
+				<function moreinfo="none">prom_gauge_set(name, number, l0, l1, l2)</function>
450
+			</title>
451
+			<para>Get a gauge identified by its name and labels and set its value to a number. If
452
+				gauge does not exist it creates the gauge and assigns the value to it.</para>
453
+			<para>Name is mandatory, number is mandatory. Number is a string that will be parsed as
454
+				a float. l0, l1, l2 are values of labels and are optional.</para>
455
+			<para>name value and number of labels have to match a previous gauge definition with
456
+				prom_gauge.</para>
457
+			<para>This function accepts pseudovariables on its parameters.</para>
458
+			<para>Available via KEMI framework as <emphasis>gauge_set_l0</emphasis>,
459
+					<emphasis>gauge_set_l1</emphasis>, <emphasis>gauge_set_l2</emphasis> and
460
+					<emphasis>gauge_set_l3</emphasis>.</para>
461
+			<example>
462
+				<title><function>prom_gauge_set</function> usage</title>
463
+				<programlisting format="linespecific">
560 464
 ...
561 465
 # Definition of gg01 gauge with no labels.
562 466
 modparam("xhttp_prom", "prom_gauge", "name=gg01;");
... ...
@@ -574,37 +478,28 @@ prom_gauge_set("gg02", "2.8", "push", "192.168.0.1");
574 478
 kamailio_gg02 {method="push", IP="192.168.0.1"} 2.8 1234567890
575 479
 ...
576 480
 		</programlisting>
577
-	  </example>
578
-	</section>
579
-	<section id="xhttp_prom.f.prom_histogram_observe">
580
-	  <title>
581
-		<function moreinfo="none">prom_histogram_observe(name, number, l0, l1, l2)</function>
582
-	  </title>
583
-	  <para>
584
-		Get a histogram identified by its name and labels and observe a value in it.
585
-		If histogram does not exist it creates the histogram and accumulate the value in its
586
-		buckets, counter and sum.
587
-	  </para>
588
-	  <para>
589
-		Name is mandatory, number is mandatory.
590
-		Number is a string that will be parsed as a float.
591
-		l0, l1, l2 are values of labels and are optional.
592
-	  </para>
593
-	  <para>
594
-		name value and number of labels have to match a previous histogram definition with prom_histogram.
595
-	  </para>
596
-	  <para>
597
-		This function accepts pseudovariables on its parameters.
598
-	  </para>
599
-	  <para>
600
-		Available via KEMI framework as <emphasis>histogram_observe_l0</emphasis>,
601
-		<emphasis>histogram_observe_l1</emphasis>,
602
-		<emphasis>histogram_observe_l2</emphasis> and
603
-		<emphasis>histogram_observe_l3</emphasis>.
604
-	  </para>
605
-	  <example>
606
-		<title><function>prom_histogram_observe</function> usage</title>
607
-		<programlisting format="linespecific">
481
+			</example>
482
+		</section>
483
+		<section id="xhttp_prom.f.prom_histogram_observe">
484
+			<title>
485
+				<function moreinfo="none">prom_histogram_observe(name, number, l0, l1,
486
+					l2)</function>
487
+			</title>
488
+			<para>Get a histogram identified by its name and labels and observe a value in it. If
489
+				histogram does not exist it creates the histogram and accumulate the value in its
490
+				buckets, counter and sum.</para>
491
+			<para>Name is mandatory, number is mandatory. Number is a string that will be parsed as
492
+				a float. l0, l1, l2 are values of labels and are optional.</para>
493
+			<para>name value and number of labels have to match a previous histogram definition with
494
+				prom_histogram.</para>
495
+			<para>This function accepts pseudovariables on its parameters.</para>
496
+			<para>Available via KEMI framework as <emphasis>histogram_observe_l0</emphasis>,
497
+					<emphasis>histogram_observe_l1</emphasis>,
498
+					<emphasis>histogram_observe_l2</emphasis> and
499
+					<emphasis>histogram_observe_l3</emphasis>.</para>
500
+			<example>
501
+				<title><function>prom_histogram_observe</function> usage</title>
502
+				<programlisting format="linespecific">
608 503
 ...
609 504
 # Definition of hist01 histogram with no labels and default buckets.
610 505
 modparam("xhttp_prom", "prom_histogram", "name=hist01;");
... ...
@@ -628,21 +523,18 @@ hist02_count{method="push", IP="192.168.0.1"} 1 1592574659768
628 523
 
629 524
 ...
630 525
 		</programlisting>
631
-	  </example>
632
-	</section>
633
-	<section id="xhttp_prom.f.prom_dispatch">
634
-	  <title>
635
-		<function moreinfo="none">prom_dispatch()</function>
636
-	  </title>
637
-	  <para>
638
-		Handle the HTTP request and generate a response.
639
-	  </para>
640
-	  <para>
641
-		Available via KEMI framework as <emphasis>xhttp_prom.dispatch</emphasis>
642
-	  </para>
643
-	  <example>
644
-		<title><function>prom_dispatch</function> usage</title>
645
-		<programlisting format="linespecific">
526
+			</example>
527
+		</section>
528
+		<section id="xhttp_prom.f.prom_dispatch">
529
+			<title>
530
+				<function moreinfo="none">prom_dispatch()</function>
531
+			</title>
532
+			<para>Handle the HTTP request and generate a response.</para>
533
+			<para>Available via KEMI framework as <emphasis>xhttp_prom.dispatch</emphasis>
534
+			</para>
535
+			<example>
536
+				<title><function>prom_dispatch</function> usage</title>
537
+				<programlisting format="linespecific">
646 538
 ...
647 539
 # Needed to use SIP frames as HTTP ones.
648 540
 tcp_accept_no_cl=yes
... ...
@@ -665,11 +557,11 @@ event_route[xhttp:request] {
665 557
 }
666 558
 ...
667 559
 		</programlisting>
668
-	  </example>
669
-	  <example>
670
-		<title><function>prom_dispatch</function> usage (more complete)</title>
671
-		<para>Another example with counters and gauge:</para>
672
-		<programlisting format="linespecific">
560
+			</example>
561
+			<example>
562
+				<title><function>prom_dispatch</function> usage (more complete)</title>
563
+				<para>Another example with counters and gauge:</para>
564
+				<programlisting format="linespecific">
673 565
 ...
674 566
 # Needed to use SIP frames as HTTP ones.
675 567
 tcp_accept_no_cl=yes
... ...
@@ -737,23 +629,20 @@ kamailio_sl_sent_replies 15 1554839325427
737 629
 kamailio_sl_xxx_replies 0 1554839325461
738 630
 ...
739 631
 		</programlisting>
740
-	  </example>
741
-	</section>
742
-	<section id="xhttp_prom.f.prom_check_uri">
743
-	  <title>
744
-		<function moreinfo="none">prom_check_uri()</function>
745
-	  </title>
746
-	  <para>
747
-		Check if path of HTTP URL equals /metrics. This avoids us to check hu variable
748
-		from xHTTP module.
749
-	  </para>
750
-	  <para>NOTE: Remember not to block /metrics URL in xHTTP module</para>
751
-	  <para>
752
-		Available via KEMI framework as <emphasis>xhttp_prom.check_uri</emphasis>
753
-	  </para>
754
-	  <example>
755
-		<title><function>prom_check_uri</function> usage</title>
756
-		<programlisting format="linespecific">
632
+			</example>
633
+		</section>
634
+		<section id="xhttp_prom.f.prom_check_uri">
635
+			<title>
636
+				<function moreinfo="none">prom_check_uri()</function>
637
+			</title>
638
+			<para>Check if path of HTTP URL equals /metrics. This avoids us to check hu variable
639
+				from xHTTP module.</para>
640
+			<para>NOTE: Remember not to block /metrics URL in xHTTP module</para>
641
+			<para>Available via KEMI framework as <emphasis>xhttp_prom.check_uri</emphasis>
642
+			</para>
643
+			<example>
644
+				<title><function>prom_check_uri</function> usage</title>
645
+				<programlisting format="linespecific">
757 646
 ...
758 647
 # Needed to use SIP frames as HTTP ones.
759 648
 tcp_accept_no_cl=yes
... ...
@@ -775,155 +664,186 @@ event_route[xhttp:request] {
775 664
 }
776 665
 ...
777 666
 		</programlisting>
778
-	  </example>
667
+			</example>
668
+		</section>
779 669
 	</section>
780
-  </section>
781
-  <section>
782
-	<title><acronym>RPC</acronym> Commands</title>
783
-	<section  id="xhttp_prom.rpc.counter_reset">
784
-	  <title><function moreinfo="none">xhttp_prom.counter_reset</function></title>
785
-	  <para>
786
-		Set a counter to zero.
787
-	  </para>
788
-      <para>
789
-        Name: <emphasis>xhttp_prom.counter_reset</emphasis>
790
-      </para>
791
-      <para>Parameters:</para>
792
-	  <itemizedlist>
793
-		<listitem><para><emphasis>name</emphasis>: name of the counter (mandatory)</para></listitem>
794
-		<listitem><para><emphasis>l0</emphasis>: value of the first label (optional)</para></listitem>
795
-		<listitem><para><emphasis>l1</emphasis>: value of second label (optional)</para></listitem>
796
-		<listitem><para><emphasis>l2</emphasis>: value of the third label (optional)</para></listitem>
797
-	  </itemizedlist>
798
-	  <example>
799
-		<title><function>xhttp_prom.counter_reset</function> usage</title>
800
-		<programlisting format="linespecific">
670
+	<section>
671
+		<title><acronym>RPC</acronym> Commands</title>
672
+		<section id="xhttp_prom.rpc.counter_reset">
673
+			<title><function moreinfo="none">xhttp_prom.counter_reset</function></title>
674
+			<para>Set a counter to zero.</para>
675
+			<para>Name: <emphasis>xhttp_prom.counter_reset</emphasis>
676
+			</para>
677
+			<para>Parameters:</para>
678
+			<itemizedlist>
679
+				<listitem>
680
+					<para><emphasis>name</emphasis>: name of the counter (mandatory)</para>
681
+				</listitem>
682
+				<listitem>
683
+					<para><emphasis>l0</emphasis>: value of the first label (optional)</para>
684
+				</listitem>
685
+				<listitem>
686
+					<para><emphasis>l1</emphasis>: value of second label (optional)</para>
687
+				</listitem>
688
+				<listitem>
689
+					<para><emphasis>l2</emphasis>: value of the third label (optional)</para>
690
+				</listitem>
691
+			</itemizedlist>
692
+			<example>
693
+				<title><function>xhttp_prom.counter_reset</function> usage</title>
694
+				<programlisting format="linespecific">
801 695
 		  ...
802 696
 		  &kamcmd; xhttp_prom.counter_reset "cnt01" "push" "192.168.0.1"
803 697
 		  ...
804 698
 		</programlisting>
805
-	  </example>
806
-    </section>
807
-	<section  id="xhttp_prom.rpc.counter_inc">
808
-	  <title><function moreinfo="none">xhttp_prom.counter_inc</function></title>
809
-	  <para>
810
-		Add a number to a counter based on its name and labels.
811
-	  </para>
812
-      <para>
813
-        Name: <emphasis>xhttp_prom.counter_inc</emphasis>
814
-      </para>
815
-      <para>Parameters:</para>
816
-	  <itemizedlist>
817
-		<listitem><para><emphasis>name</emphasis>: name of the counter (mandatory)</para></listitem>
818
-		<listitem><para><emphasis>number</emphasis>: integer to add to counter value. Negative values not allowed.</para></listitem>
819
-		<listitem><para><emphasis>l0</emphasis>: value of the first label (optional)</para></listitem>
820
-		<listitem><para><emphasis>l1</emphasis>: value of second label (optional)</para></listitem>
821
-		<listitem><para><emphasis>l2</emphasis>: value of the third label (optional)</para></listitem>
822
-	  </itemizedlist>
823
-	  <example>
824
-		<title><function>xhttp_prom.counter_inc</function> usage</title>
825
-		<programlisting format="linespecific">
699
+			</example>
700
+		</section>
701
+		<section id="xhttp_prom.rpc.counter_inc">
702
+			<title><function moreinfo="none">xhttp_prom.counter_inc</function></title>
703
+			<para>Add a number to a counter based on its name and labels.</para>
704
+			<para>Name: <emphasis>xhttp_prom.counter_inc</emphasis>
705
+			</para>
706
+			<para>Parameters:</para>
707
+			<itemizedlist>
708
+				<listitem>
709
+					<para><emphasis>name</emphasis>: name of the counter (mandatory)</para>
710
+				</listitem>
711
+				<listitem>
712
+					<para><emphasis>number</emphasis>: integer to add to counter value. Negative
713
+						values not allowed.</para>
714
+				</listitem>
715
+				<listitem>
716
+					<para><emphasis>l0</emphasis>: value of the first label (optional)</para>
717
+				</listitem>
718
+				<listitem>
719
+					<para><emphasis>l1</emphasis>: value of second label (optional)</para>
720
+				</listitem>
721
+				<listitem>
722
+					<para><emphasis>l2</emphasis>: value of the third label (optional)</para>
723
+				</listitem>
724
+			</itemizedlist>
725
+			<example>
726
+				<title><function>xhttp_prom.counter_inc</function> usage</title>
727
+				<programlisting format="linespecific">
826 728
 		  ...
827 729
 		  &kamcmd; xhttp_prom.counter_inc "cnt01" 15 "push" "192.168.0.1"
828 730
 		  ...
829 731
 		</programlisting>
830
-	  </example>
831
-    </section>
832
-	<section  id="xhttp_prom.rpc.gauge_reset">
833
-	  <title><function moreinfo="none">xhttp_prom.gauge_reset</function></title>
834
-	  <para>
835
-		Set gauge value to zero. Select gauge based on its name and labels.
836
-	  </para>
837
-      <para>
838
-        Name: <emphasis>xhttp_prom.gauge_reset</emphasis>
839
-      </para>
840
-      <para>Parameters:</para>
841
-	  <itemizedlist>
842
-		<listitem><para><emphasis>name</emphasis>: name of the gauge (mandatory)</para></listitem>
843
-		<listitem><para><emphasis>l0</emphasis>: value of the first label (optional)</para></listitem>
844
-		<listitem><para><emphasis>l1</emphasis>: value of second label (optional)</para></listitem>
845
-		<listitem><para><emphasis>l2</emphasis>: value of the third label (optional)</para></listitem>
846
-	  </itemizedlist>
847
-	  <example>
848
-		<title><function>xhttp_prom.gauge_reset</function> usage</title>
849
-		<programlisting format="linespecific">
732
+			</example>
733
+		</section>
734
+		<section id="xhttp_prom.rpc.gauge_reset">
735
+			<title><function moreinfo="none">xhttp_prom.gauge_reset</function></title>
736
+			<para>Set gauge value to zero. Select gauge based on its name and labels.</para>
737
+			<para>Name: <emphasis>xhttp_prom.gauge_reset</emphasis>
738
+			</para>
739
+			<para>Parameters:</para>
740
+			<itemizedlist>
741
+				<listitem>
742
+					<para><emphasis>name</emphasis>: name of the gauge (mandatory)</para>
743
+				</listitem>
744
+				<listitem>
745
+					<para><emphasis>l0</emphasis>: value of the first label (optional)</para>
746
+				</listitem>
747
+				<listitem>
748
+					<para><emphasis>l1</emphasis>: value of second label (optional)</para>
749
+				</listitem>
750
+				<listitem>
751
+					<para><emphasis>l2</emphasis>: value of the third label (optional)</para>
752
+				</listitem>
753
+			</itemizedlist>
754
+			<example>
755
+				<title><function>xhttp_prom.gauge_reset</function> usage</title>
756
+				<programlisting format="linespecific">
850 757
 		  ...
851 758
 		  &kamcmd; xhttp_prom.gauge_reset "gg01" "push" "192.168.0.1"
852 759
 		  ...
853 760
 		</programlisting>
854
-	  </example>
855
-    </section>
856
-	<section  id="xhttp_prom.rpc.gauge_set">
857
-	  <title><function moreinfo="none">xhttp_prom.gauge_set</function></title>
858
-	  <para>
859
-		Set a gauge to a number. Select the gauge by its name and labels.
860
-	  </para>
861
-      <para>
862
-        Name: <emphasis>xhttp_prom.gauge_set</emphasis>
863
-      </para>
864
-      <para>Parameters:</para>
865
-	  <itemizedlist>
866
-				<listitem><para><emphasis>name</emphasis>: name of the gauge (mandatory)</para></listitem>
867
-		<listitem><para><emphasis>number</emphasis>: float value to set the gauge to (mandatory)</para></listitem>
868
-		<listitem><para><emphasis>l0</emphasis>: value of the first label (optional)</para></listitem>
869
-		<listitem><para><emphasis>l1</emphasis>: value of second label (optional)</para></listitem>
870
-		<listitem><para><emphasis>l2</emphasis>: value of the third label (optional)</para></listitem>
871
-	  </itemizedlist>
872
-	  <example>
873
-		<title><function>xhttp_prom.gauge_set</function> usage</title>
874
-		<programlisting format="linespecific">
761
+			</example>
762
+		</section>
763
+		<section id="xhttp_prom.rpc.gauge_set">
764
+			<title><function moreinfo="none">xhttp_prom.gauge_set</function></title>
765
+			<para>Set a gauge to a number. Select the gauge by its name and labels.</para>
766
+			<para>Name: <emphasis>xhttp_prom.gauge_set</emphasis>
767
+			</para>
768
+			<para>Parameters:</para>
769
+			<itemizedlist>
770
+				<listitem>
771
+					<para><emphasis>name</emphasis>: name of the gauge (mandatory)</para>
772
+				</listitem>
773
+				<listitem>
774
+					<para><emphasis>number</emphasis>: float value to set the gauge to
775
+						(mandatory)</para>
776
+				</listitem>
777
+				<listitem>
778
+					<para><emphasis>l0</emphasis>: value of the first label (optional)</para>
779
+				</listitem>
780
+				<listitem>
781
+					<para><emphasis>l1</emphasis>: value of second label (optional)</para>
782
+				</listitem>
783
+				<listitem>
784
+					<para><emphasis>l2</emphasis>: value of the third label (optional)</para>
785
+				</listitem>
786
+			</itemizedlist>
787
+			<example>
788
+				<title><function>xhttp_prom.gauge_set</function> usage</title>
789
+				<programlisting format="linespecific">
875 790
 		  ...
876 791
 		  &kamcmd; xhttp_prom.gauge_set "gg01" -- -5.2
877 792
 		  ...
878 793
 		</programlisting>
879
-	  </example>
880
-    </section>
881
-	<section  id="xhttp_prom.rpc.histogram_observe">
882
-	  <title><function moreinfo="none">xhttp_prom.histogram_observe</function></title>
883
-	  <para>
884
-		Observe a number in a histogram. Select the histogram by its name and labels.
885
-	  </para>
886
-      <para>
887
-        Name: <emphasis>xhttp_prom.histogram_observe</emphasis>
888
-      </para>
889
-      <para>Parameters:</para>
890
-	  <itemizedlist>
891
-		<listitem><para><emphasis>name</emphasis>: name of the histogram (mandatory)</para></listitem>
892
-		<listitem><para><emphasis>number</emphasis>: float value to observe in the histogram (mandatory)</para></listitem>
893
-		<listitem><para><emphasis>l0</emphasis>: value of the first label (optional)</para></listitem>
894
-		<listitem><para><emphasis>l1</emphasis>: value of second label (optional)</para></listitem>
895
-		<listitem><para><emphasis>l2</emphasis>: value of the third label (optional)</para></listitem>
896
-	  </itemizedlist>
897
-	  <example>
898
-		<title><function>xhttp_prom.histogram_observe</function> usage</title>
899
-		<programlisting format="linespecific">
794
+			</example>
795
+		</section>
796
+		<section id="xhttp_prom.rpc.histogram_observe">
797
+			<title><function moreinfo="none">xhttp_prom.histogram_observe</function></title>
798
+			<para>Observe a number in a histogram. Select the histogram by its name and
799
+				labels.</para>
800
+			<para>Name: <emphasis>xhttp_prom.histogram_observe</emphasis>
801
+			</para>
802
+			<para>Parameters:</para>
803
+			<itemizedlist>
804
+				<listitem>
805
+					<para><emphasis>name</emphasis>: name of the histogram (mandatory)</para>
806
+				</listitem>
807
+				<listitem>
808
+					<para><emphasis>number</emphasis>: float value to observe in the histogram
809
+						(mandatory)</para>
810
+				</listitem>
811
+				<listitem>
812
+					<para><emphasis>l0</emphasis>: value of the first label (optional)</para>
813
+				</listitem>
814
+				<listitem>
815
+					<para><emphasis>l1</emphasis>: value of second label (optional)</para>
816
+				</listitem>
817
+				<listitem>
818
+					<para><emphasis>l2</emphasis>: value of the third label (optional)</para>
819
+				</listitem>
820
+			</itemizedlist>
821
+			<example>
822
+				<title><function>xhttp_prom.histogram_observe</function> usage</title>
823
+				<programlisting format="linespecific">
900 824
 		  ...
901 825
 		  &kamcmd; xhttp_prom.histogram_observe "hist01" -- -5.2
902 826
 		  ...
903 827
 		</programlisting>
904
-	  </example>
905
-    </section>
906
-	<section  id="xhttp_prom.rpc.metric_list_print">
907
-	  <title><function moreinfo="none">xhttp_prom.metric_list_print</function></title>
908
-	  <para>
909
-		List of all user defined metrics.
910
-	  </para>
911
-      <para>
912
-        Name: <emphasis>xhttp_prom.metric_list_print</emphasis>
913
-      </para>
914
-      <para>Parameters:<emphasis>none</emphasis></para>
915
-	  <para>
916
-		<emphasis>NOTE:</emphasis>: If you list a lot of metrics you may need to increase
917
-		buffer size of your RPC transport layer.
918
-	  </para>
919
-	  <example>
920
-		<title><function>xhttp_prom.metric_list_print</function> usage</title>
921
-		<programlisting format="linespecific">
828
+			</example>
829
+		</section>
830
+		<section id="xhttp_prom.rpc.metric_list_print">
831
+			<title><function moreinfo="none">xhttp_prom.metric_list_print</function></title>
832
+			<para>List of all user defined metrics.</para>
833
+			<para>Name: <emphasis>xhttp_prom.metric_list_print</emphasis>
834
+			</para>
835
+			<para>Parameters:<emphasis>none</emphasis></para>
836
+			<para>
837
+				<emphasis>NOTE:</emphasis>: If you list a lot of metrics you may need to increase
838
+				buffer size of your RPC transport layer.</para>
839
+			<example>
840
+				<title><function>xhttp_prom.metric_list_print</function> usage</title>
841
+				<programlisting format="linespecific">
922 842
 		  ...
923 843
 		  &kamcmd; xhttp_prom.metric_list_print
924 844
 		  ...
925 845
 		</programlisting>
926
-	  </example>
846
+			</example>
847
+		</section>
927 848
 	</section>
928
-  </section>
929
-</chapter>	
849
+</chapter>