절 및 리소스 항목 별칭을 사용하여 수퍼 메트릭을 개선할 수 있습니다.
Where 절
Where 절은 특정 메트릭 값이 수퍼 메트릭에서 사용되어야 하는지 여부를 확인합니다. 이 절을 사용하면 where=(${metric=metric_group|my_metric} > 0)과 같은 동일한 개체의 다양한 메트릭에 연결할 수 있습니다.
예: count(${objecttype = ExampleAdapter, adaptertype = ExampleObject, metric = ExampleGroup|Rating, depth=2, where =($value==1})
IsFresh 함수
where 절에서 isFresh 함수를 사용하여 메트릭의 마지막 값이 최신인지 여부를 확인합니다.
VMware Aria Operations에 게시된 모든 메트릭에 대해 최신 게시 시간이 있는 지점이 해당 메트릭의 마지막 지점으로 호출됩니다. 해당 메트릭의 마지막 지점 값을 해당 메트릭의 마지막 값이라고 합니다. 메트릭의 마지막 지점 이후에 경과된 시간이 해당 메트릭의 예상 게시 간격보다 작은 경우 메트릭의 마지막 지점이 새로운 것으로 간주됩니다.
- ${this, metric=a|b, where=($value.isFresh())}는 마지막 값이 새로운 경우 메트릭 a|b의 마지막 값을 반환합니다.
- ${this, metric=a|b, where=($value == 7 && $value.isFresh())}는 메트릭의 마지막 값이 7과 같고 새로운 경우 메트릭 a|b의 마지막 값을 반환합니다.
- ${this, metric=a|b, where=(${metric=c|d} == 7 && ${metric=c|d}.isFresh())}는 메트릭 c|d의 마지막 값이 7과 같고 새로운 경우에만 메트릭 a|b의 마지막 값을 반환합니다.
리소스 항목 별칭 사용
리소스 항목은 수퍼 메트릭 계산을 위해 VMware Aria Operations 에서 메트릭 데이터를 검색하는 데 사용됩니다. 리소스 항목은 $로 시작하여 {..} 블록으로 이어지는 수식의 일부입니다. 수퍼 메트릭을 계산할 때 동일한 리소스 항목을 여러 번 사용해야 하는 경우가 있을 수 있습니다. 계산을 변경해야 하는 경우 모든 리소스 항목을 변경해야 하며 이로 인해 오류가 발생할 수 있습니다. 리소스 항목 별칭을 사용하여 수식을 다시 쓸 수 있습니다.
다음은 리소스 항목이 두 번 사용된 예입니다.
(min(${adaptertype=VMWARE, objecttype=HostSystem, attribute= cpu|demand|active_longterm_load, depth=5, where=($value>=0)}) + 0.0001)/(max(${adaptertype=VMWARE, objecttype=HostSystem, attribute=cpu|demand|active_longterm_load, depth=5, where=($value>=0)}) + 0.0001)"다음은 리소스 항목 별칭을 사용하여 수식을 쓰는 방법에 대한 예시입니다. 두 수식의 출력은 동일합니다.
(min(${adaptertype=VMWARE, objecttype=HostSystem, attribute= cpu|demand|active_longterm_load, depth=5, where=($value>=0)} as cpuload) + 0.0001)/(max(cpuload) + 0.0001)"- 별칭을 만들 경우 리소스 항목 뒤에 as라고 쓰고 alias:name을 입력하십시오. 예: ${…} as alias_name.
- 별칭은 ()[]+-*/%|&!=<>,.?:$와 같은 특수 문자를 포함할 수 없으며, 숫자로 시작할 수 없습니다.
- 수퍼 메트릭 수식의 모든 이름과 마찬가지로, 별칭 이름도 대소문자를 구분합니다.
- 별칭 사용은 선택 사항입니다. 별칭을 정의한 다음, 수식에서 사용하지 않을 수도 있습니다.
- 각 별칭은 한번만 사용할 수 있습니다. 예: ${resource1,…} as r1 + ${resource2,…} as R1.
- 동일한 리소스 항목에 여러 별칭을 지정할 수 있습니다. 예: ${…} as a1 as a2.
조건식 ?: 삼항 연산자
수식에 삼항 연산자를 사용하여 조건식을 실행할 수 있습니다.
예: expression_condition ? expression_if_true : expression_if_false.
조건식의 결과는 숫자로 변환됩니다. 값이 0이 아니면 조건이 true인 것으로 간주됩니다.
예: -0.7 ? 10 : 20 = 10. 2 + 2 / 2 - 3 ? 4 + 5 / 6 : 7 + 8 = 15 (7 + 8).
조건에 따라, expression_if_true 또는 expression_if_false가 실행되며, 둘 다 실행되지는 않습니다. 이러한 방식을 사용해 ${this, metric=cpu|demandmhz} as a != 0 ? 1/a : -1과 같은 수식으로 작성할 수 있습니다. 삼항 연산자는 모든 수식에 다른 삼항 연산자와 같은 다른 연산자를 포함할 수 있습니다.
예: !1 ? 2 ? 3 : 4 : 5 = 5.