5.4.3. 인스턴스 워크로드에 사용 가능한 Telemetry 검색
인스턴스 워크로드에 사용 가능한 Telemetry를 검색하고 vCPU 사용률을 백분율로 표현합니다.
사전 요구 사항
- 인스턴스 워크로드를 생성하는 자동 스케일링 그룹 리소스를 사용하여 heat 스택을 생성합니다.
프로세스
openstack 클라이언트 Pod에 액세스합니다.
$ oc rsh openstackclient자동 스케일링 그룹 heat 스택의 ID를 검색합니다.
$ openstack stack show stack1 -c id -c stack_status +--------------+--------------------------------------+ | Field | Value | +--------------+--------------------------------------+ | id | 0d6e19a9-2e1c-4728-b9ed-320da60c3c9d | | stack_status | CREATE_COMPLETE | +--------------+--------------------------------------+스택 ID의 값을 환경 변수로 설정합니다.
$ export STACK_ID=$(openstack stack show stack1 -c id -f value)데이터를 반환할 워크로드 인스턴스의 ID를 검색합니다. 서버 목록을 긴 양식을 사용하여 자동 스케일링 그룹의 일부인 인스턴스를 필터링할 수 있습니다.
$ openstack server list --long --fit-width -c ID -c Name -c Properties | grep "metering.server_group='$STACK_ID'" | 94a776a6-ab74-41ec-9c21-26d3ca0a0138 | autoscaling_server_stack1-autoscalinggroup-l3qthrzpad67-nonm7balfxrn-sx6oebhyi3qo | metering.server_group='168364ae-afe2-4275-af28-aae01ee63b00' |반환된 인스턴스 워크로드 이름 중 하나에 대한 인스턴스 ID를 설정합니다.
$ INSTANCE_ID=94a776a6-ab74-41ec-9c21-26d3ca0a0138인스턴스 리소스 ID에 대한 지표가 저장되었는지 확인합니다. 사용 가능한 메트릭이 없는 경우 인스턴스가 생성된 이후 시간이 충분하지 않습니다. 충분한 시간이 경과한 경우 인스턴스가 실행 중인 컴퓨팅 노드에서
podman logs ceilometer_agent_compute를 실행하여 데이터 수집 서비스에 대한 로그를 확인할 수 있으며oc logs prometheus-metric-storage-0 -c prometheus를 실행하여 시계열 데이터베이스 서비스 Prometheus의 로그를 확인할 수 있습니다.$ openstack metric query "ceilometer_cpu{resource='$INSTANCE_ID'}" -c resource -c resource_name -c value -c unit +--------------------------------------+-----------------------------------------------------------------------------------------------------+------+--------------+ | resource | resource_name | unit | value | +--------------------------------------+-----------------------------------------------------------------------------------------------------+------+--------------+ | a19f11ba-7834-4143-bf83-766af8199f04 | autoscaling_server_stack1-autoscalinggroup-5yzjn6ow4x6v-gmu2apozwluw-t7nqx63tybxh:instance-0000003c | ns | 204290000000 | +--------------------------------------+-----------------------------------------------------------------------------------------------------+------+--------------+수집된 ceilometer 지표를 표시합니다.
$ openstack metric list | grep ceilometer | ceilometer_cpu | | ceilometer_disk_device_allocation | | ceilometer_disk_device_capacity | | ceilometer_disk_device_read_bytes | | ceilometer_disk_device_read_latency | | ceilometer_disk_device_read_requests | | ceilometer_disk_device_usage | | ceilometer_disk_device_write_bytes | | ceilometer_disk_device_write_latency | | ceilometer_disk_device_write_requests | | ceilometer_image_size | | ceilometer_memory_usage | | ceilometer_network_incoming_bytes | | ceilometer_network_incoming_bytes_delta | | ceilometer_network_incoming_packets | | ceilometer_network_incoming_packets_drop | | ceilometer_network_incoming_packets_error | | ceilometer_network_outgoing_bytes | | ceilometer_network_outgoing_bytes_delta | | ceilometer_network_outgoing_packets | | ceilometer_network_outgoing_packets_drop | | ceilometer_network_outgoing_packets_error |인스턴스 워크로드에 대해 구성된 플레이버를 검토하여 워크로드 인스턴스에 적용되는 vCPU 코어 수를 검색합니다.
$ openstack server show $INSTANCE_ID -cflavor -f value m1.small (692533fe-0912-417e-b706-5d085449db53) $ openstack flavor show 692533fe-0912-417e-b706-5d085449db53 -c vcpus -f value 1백분율로 계산된 값을 사용하여 증가 메트릭을 반환합니다. 증가 속도는 지정된 창에서 지표가 증가한 CPU 시간 나노초 값으로 반환됩니다. 이 수를 1000000000으로 나누어 값을 초 단위로 가져옵니다. 그런 다음 이 값은 100을 곱하여 백분율로 변환됩니다. 마지막으로 총 값을 인스턴스에 할당된 플레이버에서 제공하는 vCPU 수로 나눕니다. 이 예에서는 vCPU 값이 1 vCPU 값을 제공하여 CPU 시간의 백분율로 표시됩니다.
$ openstack metric query "rate(ceilometer_cpu{resource=~'$INSTANCE_ID'}[150s])/1000000000*100/1" -c resource_name -c value -c resource +--------------------------------------+-----------------------------------------------------------------------------------------------------+--------------------+ | resource | resource_name | value | +--------------------------------------+-----------------------------------------------------------------------------------------------------+--------------------+ | a19f11ba-7834-4143-bf83-766af8199f04 | autoscaling_server_stack1-autoscalinggroup-5yzjn6ow4x6v-gmu2apozwluw-t7nqx63tybxh:instance-0000003c | 0.6166666666666667 | +--------------------------------------+-----------------------------------------------------------------------------------------------------+--------------------+offset 키워드를 쿼리에 추가하여 기록 결과를 봅니다. 다음 명령은 이전 단계와 유사한 출력을 제공하지만 과거의 데이터 10분은 다음과 같습니다.
$ openstack metric query "rate(ceilometer_cpu{resource=~'$INSTANCE_ID'}[150s] offset 10m)/1000000000*100/1" -c resource_name -c value -c resource +--------------------------------------+-----------------------------------------------------------------------------------------------------+--------------------+ | resource | resource_name | value | +--------------------------------------+-----------------------------------------------------------------------------------------------------+--------------------+ | a19f11ba-7834-4143-bf83-766af8199f04 | autoscaling_server_stack1-autoscalinggroup-5yzjn6ow4x6v-gmu2apozwluw-t7nqx63tybxh:instance-0000003c | 0.6083333333333333 | +--------------------------------------+-----------------------------------------------------------------------------------------------------+--------------------+