이 페이지에서는 Google Distributed Cloud (GDC) 에어 갭에서 LoggingRule
커스텀 리소스를 배포하여 기존 로그에서 새 측정항목을 생성하는 방법을 설명합니다.
기록 규칙을 사용하면 자주 사용되거나 계산 비용이 많이 드는 표현식을 미리 계산하여 대시보드와 알림의 성능을 개선할 수 있습니다. LoggingRule
맞춤 리소스 내에 정의된 이러한 규칙은 기존 로그에서 새로운 시계열 측정항목을 생성하여 데이터 관측 가능성을 향상합니다.
사전 계산된 결과를 저장함으로써 기록 규칙은 표현식이 필요할 때마다 중복 계산을 제거합니다. 이 메서드는 특히 동일한 표현식을 반복적으로 평가해야 하는 복잡한 대시보드와 알림의 경우 쿼리 시간을 크게 단축합니다. 기본적으로 LoggingRule
리소스를 사용하면 기록 규칙 내에서 필요한 계산을 지정하여 기존 로깅 데이터에서 새 측정항목을 파생할 수 있습니다.
시작하기 전에
LoggingRule
커스텀 리소스를 관리하는 데 필요한 권한을 얻으려면 조직 IAM 관리자 또는 프로젝트 IAM 관리자에게 연결된 LoggingRule
역할 중 하나를 부여해 달라고 요청하세요.
필요한 액세스 수준과 권한에 따라 조직 또는 프로젝트에서 이 리소스에 대한 생성자, 편집자 또는 뷰어 역할을 획득할 수 있습니다. 자세한 내용은 IAM 권한 준비를 참고하세요.
녹화 규칙 만들기
기록 규칙을 만들려면 기록된 로그의 이름과 숫자 값을 생성하는 유효한 표현식을 정의합니다. 이 표현식은 평가될 때 새 측정항목을 생성합니다. 관리 API 서버의 프로젝트 네임스페이스에 LoggingRule
커스텀 리소스를 배포하여 녹화 규칙을 활성화합니다.
기록 규칙에 대한 자세한 내용은 https://grafana.com/docs/loki/latest/rules/를 참고하세요.
다음 단계에 따라 프로젝트 네임스페이스에 레코딩 규칙을 만드세요.
- 녹화 규칙을 만들려는 GDC 프로젝트를 확인합니다.
LoggingRule
커스텀 리소스를 정의하는 YAML 파일을 만듭니다.전체
LoggingRule
사양에는 로그 기반 녹화 규칙의 예가 나와 있습니다. 자세한 내용은 API 참조 문서를 참고하세요.필요에 따라 YAML 파일에서 다음 값을 바꿉니다.
필드 이름 설명 namespace
프로젝트 네임스페이스입니다. name
규칙 구성의 이름입니다. source
녹화 규칙의 로그 소스입니다. 유효한 옵션은 operational
및audit
입니다.interval
규칙 평가 간격의 기간(초)입니다. limit
선택사항. 최대 알림 수입니다. 무제한 알림의 경우 0
로 설정합니다.recordRules
새 측정항목을 계산하기 위한 정의입니다. recordRules.record
새 측정항목의 레코드 이름입니다. 값은 결과가 저장되는 시계열을 정의하는 유효한 측정항목 이름이어야 합니다. recordRules.expr
숫자 값으로 평가되어야 하는 로그 규칙의 LogQL 표현식입니다. recordRules.labels
선택사항. 새 측정항목에 추가하거나 덮어쓸 라벨의 키-값 쌍입니다. YAML 파일을 저장합니다.
녹화 규칙과 동일한 네임스페이스 내의 관리 API 서버에
LoggingRule
구성을 적용합니다.kubectl --kubeconfig KUBECONFIG_PATH apply -f LOGGING_RULE_NAME.yaml
다음을 바꿉니다.
KUBECONFIG_PATH
: 관리 API 서버의 kubeconfig 파일 경로입니다.LOGGING_RULE_NAME
:LoggingRule
정의 파일의 이름입니다.
LoggingRule
사양 완료
LoggingRule
커스텀 리소스에는 관측 가능성을 위해 기존 로그를 기반으로 새 측정항목을 만드는 조건을 설명하는 기록 규칙이 포함되어 있습니다.
다음 YAML 파일은 LoggingRule
맞춤 리소스의 템플릿을 보여줍니다. 자세한 내용은 API 참조 문서를 참고하세요.
# Configures either an alert or a target record for precomputation.
apiVersion: logging.gdc.goog/v1
kind: LoggingRule
metadata:
# Choose a namespace that matches the project namespace.
# The alert or record is produced in the same namespace.
namespace: PROJECT_NAMESPACE
name: LOGGING_RULE_NAME
spec:
# Choose the log source to base alerts on (operational or audit logs).
# Optional.
# Valid options: 'operational' and 'audit'
# Default value: 'operational'
source: operational
# Rule evaluation interval.
interval: 60s
# Configure the limit for the number of alerts.
# A value of '0' means no limit.
# Optional.
# Default value: '0'
limit: 0
# Configure recording rules to generate new metrics based on existing logs.
# Recording rules precompute expressions that are frequently needed or computationally expensive.
# Results are saved as a new set of time series.
recordRules:
# Define the time series where you want to write the recording rule.
# The value must be a valid metric name.
- record: MyMetricsName
# Define the LogQL expression to evaluate for this rule.
expr: rate({service_name="bob-service"} [1m])
# Define labels to add or overwrite.
# Map of key-value pairs.
# Optional.
labels:
verb: read
다음을 바꿉니다.
PROJECT_NAMESPACE
: 프로젝트 네임스페이스LOGGING_RULE_NAME
:LoggingRule
정의 파일의 이름입니다.