Func로 건강도 함수 사용자 정의하기¶
Guance는 Func 플랫폼을 통해 건강도 계산 로직을 사용자 정의할 수 있도록 지원합니다. 사용자는 직접 함수를 작성하여 DQL, 구성 엔터티, 이벤트 등의 데이터를 활용해 건강도를 자유롭게 계산하고, 플랫폼 기본 알고리즘을 대체할 수 있습니다.
함수 스크립트 작성¶
Func에서 함수 스크립트를 생성합니다. 함수 이름은 사용자 정의할 수 있지만, 다음 입력/출력 제약 조건을 충족해야 합니다.
입력 매개변수:
| 필드 | 필수 여부 | 설명 |
|---|---|---|
entity |
예 | 현재 건강도를 계산할 엔터티 목록. 각 엔터티 객체에는 전체 URN, 엔터티 이름, 유형, 태그 등의 기본 정보가 포함됩니다. |
출력 형식:
입력 매개변수 entity를 순회하며 엔터티별로 건강도를 계산합니다. 함수는 각 엔터티의 전체 URN을 key로 하고, 다음 필드를 포함하는 객체를 value로 하는 객체를 반환해야 합니다.
| 필드 | 필수 여부 | 설명 |
|---|---|---|
health_status |
예 | 건강 상태. 고정 값: healthy(정상), warning(주의), critical(심각), unknown(알 수 없음) |
health_score |
예 | 0–100점 건강 점수. 계산할 수 없는 경우 null 반환 |
{
"实体A的URN": {"health_status": "healthy", "health_score": 95},
"实体B的URN": {"health_status": "warning", "health_score": 65}
}
함수 예시:
'''
사용자 정의 건강도 함수 예시
설명:
1. 함수 이름은 사용자 정의할 수 있으며 입력 매개변수는 entity를 포함해야 합니다.
2. entity는 현재 건강도를 계산할 엔터티 목록입니다.
3. 함수 내부에서는 DQL, components, events 등을 통해 데이터를 자유롭게 조회하고 계산할 수 있습니다.
4. entity를 순회하며 엔터티별로 계산하고, 엔터티의 전체 URN을 key로 결과를 반환합니다.
5. 각 엔터티의 결과에는 health_status와 health_score가 포함되어야 합니다.
'''
@DFF.API('自定义系统健康度', category='dataPlatform.entityHealthFunc')
def myCustomHealth(entity):
result = {}
for item in entity:
# 현재 엔터티를 기반으로 구성 엔터티, 연관 알림 등의 데이터를 조회합니다.
# 사용자 정의 계산 로직...
urn = item['urn']
result[urn] = {
'health_status': 'healthy',
'health_score': 95
}
return result
함수 분류 추가¶
작성이 완료되면 함수에 분류 태그를 반드시 추가해야 합니다. 그렇지 않으면 해당 함수는 건강도 구성의 선택 목록에 표시되지 않습니다.
분류 태그는 고정되어 있습니다.
함수 게시¶
코드 작성이 완료되면 게시를 클릭합니다. 게시되지 않은 함수는 건강도 구성에 표시되지 않습니다.
건강도 구성에서 사용¶
게시에 성공하면 통합 카탈로그 > 엔터티 유형 관리로 이동하여 작업 열의 ‘건강도 구성’을 클릭하고 ‘사용자 정의 함수’를 선택합니다.
이때 드롭다운 목록에는 게시되었고 dataPlatform.entityHealthFunc로 분류된 모든 함수가 표시됩니다. 생성한 함수를 선택하고 저장하면 적용됩니다.
자주 묻는 질문¶
함수가 건강도 구성의 드롭다운 목록에 표시되지 않는 이유는 무엇인가요?
다음 세 가지를 확인하세요.
- 함수가 게시되었는지 여부
category='dataPlatform.entityHealthFunc'분류가 추가되었는지 여부- 함수가
@DFF.API데코레이터로 올바르게 등록되었는지 여부
함수 실행이 실패하면 어떻게 되나요?
플랫폼에서 함수 출력을 검증합니다. 출력 형식이 요구 사항을 충족하지 않거나 실행 중 예외가 발생하면 해당 시스템의 건강도는 ‘알 수 없음’으로 표시됩니다.
함수 내부에서 사용할 수 있는 데이터는 무엇인가요?
함수 내부에서는 DQL을 통해 메트릭, 로그, 이벤트 등의 데이터를 조회할 수 있으며, entity의 구성 엔터티 정보도 읽을 수 있습니다. 자세한 조회 방법은 Func 플랫폼 문서를 참조하세요.