Skip to content

Commit 95ed3de

Browse files
authored
Add metrics verification tasks for power monitoring components (#193)
1 parent 59e50c1 commit 95ed3de

File tree

7 files changed

+99
-1
lines changed

7 files changed

+99
-1
lines changed

.zuul.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/ci-framework'].src_dir }}/scenarios/centos-9/multinode-ci.yml"
7171
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/telemetry-operator'].src_dir }}/ci/vars-autoscaling.yml"
7272
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/infrawatch/feature-verification-tests'].src_dir }}/ci/vars-metric-verification-test.yml"
73+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/telemetry-operator'].src_dir }}/ci/vars-power-monitoring.yml"
7374
roles:
7475
- zuul: github.com/openstack-k8s-operators/ci-framework
7576
required-projects: *required_projects

roles/common/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ can be set at the play level.
155155
- ceilometer_agent_compute
156156
- ceilometer_agent_ipmi
157157
- node_exporter
158+
- kepler
158159

159160
- name: "Verify Endpoint"
160161
ansible.builtin.import_role:

roles/telemetry_verify_metrics/README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,16 @@ Tests:
2424
- Verify Ceilometer metrics are being exposed and stored
2525
- Use openstack observabilityclient to verify Ceilometer central metrics are stored in Prometheus
2626
- Use openstack observabilityclient to verify Ceilometer compute metrics are stored in Prometheus
27+
- Use openstack observabilityclient to verify Ceilometer ipmi metrics are stored in Prometheus
2728
- Verify NodeExporter metrics are being exposed and stored
2829
- Use openstack observabilityclient to verify NodeExporter metrics are stored in Prometheus
30+
- Verify Kepler metrics are being exposed and stored
31+
- Use openstack observabilityclient to verify Kepler metrics are stored in Prometheus
2932

3033
Role Variables
3134
--------------
3235
openstack\_cmd - command to access openstack cli. For example: "oc rsh openstackclient openstack"
33-
telemetry\_verify\_metrics\_metric\_sources\_to\_test - List of sources to test. Current set of possible sources: ceilometer\_compute\_agent, ceilometer\_central\_agent, node\_exporter, rabbitmq
36+
telemetry\_verify\_metrics\_metric\_sources\_to\_test - List of sources to test. Current set of possible sources: ceilometer\_compute\_agent, ceilometer\_central\_agent, ceilometer\_ipmi_\_agent, node\_exporter, rabbitmq, kepler
3437

3538
Example Playbook
3639
----------------

roles/telemetry_verify_metrics/defaults/main.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,6 @@ telemetry_verify_metrics_metric_sources_to_test:
44
- ceilometer_central_agent
55
- node_exporter
66
- rabbitmq
7+
- kepler
8+
# NOTE: IPMI metrics can only be verified when compute nodes are baremetal
9+
# - ceilometer_ipmi_agent

roles/telemetry_verify_metrics/tasks/main.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,22 @@
4141
tags: test
4242
when: '"ceilometer_central_agent" in telemetry_verify_metrics_metric_sources_to_test'
4343

44+
- name: Verify Ceilometer ipmi metrics are being exposed and stored
45+
ansible.builtin.include_tasks:
46+
file: verify_ceilometer_ipmi_metrics.yml
47+
tags: power_monitoring
48+
when: '"ceilometer_ipmi_agent" in telemetry_verify_metrics_metric_sources_to_test'
49+
4450
- name: Verify NodeExporter metrics are being exposed and stored
4551
ansible.builtin.include_tasks:
4652
file: verify_node_exporter_metrics.yml
4753
tags: test
4854
when: '"node_exporter" in telemetry_verify_metrics_metric_sources_to_test'
55+
56+
- name: Verify Kepler metrics are being exposed and stored
57+
ansible.builtin.include_tasks:
58+
file: verify_kepler_metrics.yml
59+
tags:
60+
- test
61+
- power_monitoring
62+
when: '"kepler" in telemetry_verify_metrics_metric_sources_to_test'
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
- name: Verify ceilometer scrapeconfig exists
2+
ansible.builtin.include_role:
3+
name: common
4+
vars:
5+
common_cr_test_id: RHOSO-1221
6+
common_cr_list:
7+
- kind: scrapeconfigs.monitoring.rhobs
8+
name: telemetry-ceilometer
9+
10+
- name: Verify ceilometer ipmi agent container is up
11+
ansible.builtin.include_tasks:
12+
file: check_compute_node_containers.yml
13+
vars:
14+
common_container_test_id: RHOSO-1230
15+
common_container_list:
16+
- ceilometer_agent_ipmi
17+
loop: "{{ groups['computes'] }}"
18+
loop_control:
19+
loop_var: compute_node
20+
21+
- name: Verify ceilometer controlplane pod is running
22+
ansible.builtin.include_role:
23+
name: common
24+
vars:
25+
common_pod_test_id: RHOSO-1242
26+
common_pod_status_str: "Running"
27+
common_pod_nspace: openstack
28+
common_pod_list:
29+
- ceilometer-0
30+
31+
- name: |
32+
TEST Use openstack observabilityclient to verify ceilometer ipmi metrics are stored in prometheus
33+
RHOSO-1217
34+
ansible.builtin.shell: |
35+
{{ openstack_cmd }} metric show ceilometer_hardware_ipmi_fan --disable-rbac
36+
register: result
37+
delay: 30
38+
retries: 10
39+
until: result.rc == 0 and "ceilometer_hardware_ipmi" in result.stdout
40+
changed_when: false
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
- name: Verify node exporter scrapeconfigs exist
2+
ansible.builtin.include_role:
3+
name: common
4+
vars:
5+
common_cr_test_id: RHOSO-1222
6+
common_cr_list:
7+
- kind: scrapeconfigs.monitoring.rhobs
8+
name: telemetry-kepler
9+
kepler_dashboard_metrics:
10+
- kepler_vm_platform_joules_total
11+
- kepler_node_platform_joules_total
12+
- kepler_process_joules_total
13+
- kepler_container_joules_total
14+
- kepler_node_info
15+
16+
- name: Verify Kepler container is up
17+
ansible.builtin.include_tasks:
18+
file: check_compute_node_containers.yml
19+
vars:
20+
common_container_test_id: RHOSO-1231
21+
common_container_list:
22+
- kepler
23+
loop: "{{ groups['computes'] }}"
24+
loop_control:
25+
loop_var: compute_node
26+
27+
- name: |
28+
TEST Use openstack observabilityclient to verify kepler metrics are stored in prometheus
29+
RHOSO-1216
30+
ansible.builtin.shell: |
31+
{{ openstack_cmd }} metric show --disable-rbac kepler_node_info
32+
register: result
33+
delay: 30
34+
retries: 10
35+
changed_when: false
36+
until: result.rc == 0 and "kepler_node_info" in result.stdout

0 commit comments

Comments
 (0)