@@ -126,6 +126,8 @@ depending on your configuration, you may need set the
126
126
``kolla_enable_prometheus_ceph_mgr_exporter `` variable to ``true `` in order to
127
127
enable the ceph mgr exporter.
128
128
129
+ .. _os-capacity :
130
+
129
131
OpenStack Capacity
130
132
==================
131
133
@@ -149,9 +151,19 @@ project domain name in ``stackhpc-monitoring.yml``:
149
151
stackhpc_os_capacity_openstack_region_name : <openstack_region_name>
150
152
151
153
Additionally, you should ensure these credentials have the correct permissions
152
- for the exporter. If you are deploying in a cloud with internal TLS, you may be required
153
- to disable certificate verification for the OpenStack Capacity exporter
154
- if your certificate is not signed by a trusted CA.
154
+ for the exporter.
155
+
156
+ If you are deploying in a cloud with internal TLS, you may be required
157
+ to provide a CA certificate for the OpenStack Capacity exporter if your
158
+ certificate is not signed by a trusted CA. For example, to use a CA certificate
159
+ named ``vault.crt `` that is also added to the Kolla containers:
160
+
161
+ .. code-block :: yaml
162
+
163
+ stackhpc_os_capacity_openstack_cacert : " {{ kayobe_env_config_path }}/kolla/certificates/ca/vault.crt"
164
+
165
+ Alternatively, to disable certificate verification for the OpenStack Capacity
166
+ exporter:
155
167
156
168
.. code-block :: yaml
157
169
@@ -169,3 +181,69 @@ If you notice ``HaproxyServerDown`` or ``HaproxyBackendDown`` prometheus
169
181
alerts after deployment it's likely the os_exporter secrets have not been
170
182
set correctly, double check you have entered the correct authentication
171
183
information appropiate to your cloud and re-deploy.
184
+
185
+ Friendly Network Names
186
+ =======================
187
+ For operators that prefer to see descriptive or friendly interface names the
188
+ following play can be run. This takes network names as defined in kayobe and
189
+ relabels the devices/interfaces in Prometheus to make use of these names.
190
+
191
+ **Check considerations and known limitations to see if this is suitable in any
192
+ given environment before applying. **
193
+
194
+ This reuses existing fields to provide good compatibility with existing
195
+ dashboards and alerts.
196
+
197
+ To enable the change:
198
+
199
+ .. code-block :: console
200
+
201
+ kayobe playbook run etc/kayobe/ansible/prometheus-network-names.yml
202
+ kayobe overcloud service reconfigure --kt prometheus
203
+
204
+ This first generates a template based on the prometheus.yml.j2
205
+ ``etc/kayobe/ansible/ `` and which is further templated for use with
206
+ kolla-ansible.
207
+ This is then rolled out via service reconfigure.
208
+
209
+
210
+ This helps Prometheus provide insights that can be more easily understood by
211
+ those without an intimate understanding of a given site. Prometheus Node
212
+ Exporter and cAdvisor both provide network statistics using the
213
+ interface/device names. This play causes Prometheus to relabel these fields to
214
+ human readable names based on the networks as defined in kayobe
215
+ e.g. bond1.1838 may become storage_network.
216
+
217
+ The default labels are preserved with the prefix ``original_ ``.
218
+
219
+ * For node_exporter, ``device `` is then used for network names, while
220
+ ``original_device `` is used for the interface itself.
221
+ * For cAdvisor, ``interface `` is used for network names, and
222
+ ``original_interface `` is used to preserve the interface name.
223
+
224
+ :Known-Limitations/Considerations/Requirements:
225
+
226
+ Before enabling this feature, the implications must be discussed with the
227
+ customer. The following are key considerations for that conversation:
228
+
229
+ * Only network names defined within kayobe are within scope.
230
+ * Tenant network interfaces, including SR-IOV are not considered or modified.
231
+ * Only the interface directly attributed to a network will be relabelled.
232
+ This may be a bond, a vlan tagged sub-interface, or both.
233
+ The parent bond, or bond members are not relabelled unless they are
234
+ captured within a distinct defined network.
235
+ * Modified entries will be within existing labels. This may be breaking for
236
+ anything that expects the original structure, including custom dashboards,
237
+ alerting, billing, etc.
238
+ * After applying, there will be inconsistency in the time-series db for the
239
+ duration of the retention period i.e until previously ingested entries
240
+ expire.
241
+ The metrics gathered prior to applying these modifications will be unaltered,
242
+ with all new metrics using the new structure.
243
+ * The interface names and their purpose must be consistent and unique within
244
+ the environment. i.e if eth0 is defined as admin_interface on one node, no
245
+ other node can include a different network definition using eth0.
246
+ This does not apply in the case when both devices are bond members.
247
+ e.g. bond0 on a controller has eth0 and eth1 as members. bond1 on a compute
248
+ uses eth0 and eth1 as members. This is not problematic as it is only
249
+ the bond itself that is relabelled.
0 commit comments