기존 측정항목에서 새 측정항목 만들기

이 페이지에서는 Google Distributed Cloud (GDC) 에어 갭에서 MonitoringRule 커스텀 리소스를 배포하여 기존 측정항목에서 새 측정항목을 생성하는 방법을 설명합니다.

기록 규칙을 사용하면 자주 사용되거나 계산 비용이 많이 드는 표현식을 미리 계산하여 대시보드 및 알림의 성능을 개선할 수 있습니다. MonitoringRule 커스텀 리소스 내에 정의된 이러한 규칙은 기존 측정항목에서 새로운 시계열 측정항목을 생성하여 데이터 관측 가능성을 높입니다.

기록 규칙은 미리 계산된 결과를 저장하여 표현식이 필요할 때마다 중복 계산을 없앱니다. 이 메서드는 특히 동일한 표현식을 반복적으로 평가해야 하는 복잡한 대시보드 및 알림의 쿼리 시간을 크게 단축합니다. 기본적으로 MonitoringRule 리소스를 사용하면 기록 규칙 내에서 필요한 계산을 지정하여 기존 측정항목에서 새 측정항목을 파생시킬 수 있습니다.

시작하기 전에

MonitoringRule 커스텀 리소스를 관리하려면 필요한 권한이 있어야 합니다.

IAM 조직 역할 요청

조직 IAM 관리자에게 문의하여 다음 역할을 요청하세요.

  • MonitoringRule PA Creator (monitoringrule-pa-creator): MonitoringRule 커스텀 리소스를 만듭니다.
  • MonitoringRule PA Editor (monitoringrule-pa-editor): MonitoringRule 커스텀 리소스를 수정하거나 삭제합니다.
  • MonitoringRule PA Viewer (monitoringrule-pa-viewer): MonitoringRule 커스텀 리소스를 봅니다.

IAM 프로젝트 역할 요청

프로젝트 IAM 관리자에게 문의하여 다음 역할을 요청하세요.

  • MonitoringRule Editor (monitoringrule-editor): 프로젝트 네임스페이스에서 MonitoringRule 커스텀 리소스를 수정하거나 삭제합니다.
  • MonitoringRule Viewer (monitoringrule-viewer): 프로젝트 네임스페이스에서 MonitoringRule 커스텀 리소스를 봅니다.

기록 규칙 만들기

기록 규칙을 만들려면 기록된 측정항목의 이름과 숫자 값을 생성하는 유효한 표현식을 정의합니다. 이 표현식은 평가될 때 새 측정항목을 생성합니다. 기록 규칙을 활성화하려면 Management API 서버의 프로젝트 네임스페이스에 MonitoringRule 커스텀 리소스를 배포합니다.

기록 규칙에 대한 자세한 내용은 https://grafana.com/docs/loki/latest/rules/를 참고하세요.

프로젝트 네임스페이스에서 기록 규칙을 만들려면 다음 단계를 따르세요.

  1. 기록 규칙을 만들려는 GDC 프로젝트를 결정합니다.
  2. MonitoringRule 커스텀 리소스를 정의하는 YAML 파일을 만듭니다.

    전체 MonitoringRule 사양 은 측정항목 기반 기록 규칙의 예를 보여줍니다. 자세한 내용은 API 참고 문서를 참조하세요.

  3. 필요에 따라 YAML 파일에서 다음 값을 바꿉니다.

    필드 이름 설명
    namespace 프로젝트 네임스페이스입니다.
    name 규칙 구성의 이름입니다.
    interval 규칙 평가 간격의 기간(초)입니다.
    limit 선택사항. 최대 알림 수입니다. 무제한 알림은 0으로 설정합니다.
    recordRules 새 측정항목을 계산하기 위한 정의입니다.
    recordRules.record 새 측정항목의 기록 이름입니다. 값은 결과가 저장되는 시계열을 정의하는 유효한 측정항목 이름이어야 합니다.
    recordRules.expr 측정항목 규칙의 PromQL 표현식으로, 숫자 값으로 평가되어야 합니다.
    recordRules.labels 선택사항. 새 측정항목에 추가하거나 덮어쓸 라벨의 키-값 쌍입니다.
  4. YAML 파일을 저장합니다.

  5. 기록 규칙과 동일한 네임스페이스 내에서 MonitoringRule 구성을 Management API 서버에 적용합니다.

    kubectl --kubeconfig KUBECONFIG_PATH apply -f MONITORING_RULE_NAME.yaml
    

    다음을 바꿉니다.

    • KUBECONFIG_PATH: 관리 API 서버의 kubeconfig 파일 경로
    • MONITORING_RULE_NAME: MonitoringRule 정의 파일의 이름

전체 MonitoringRule 사양

MonitoringRule 커스텀 리소스에는 관측 가능성을 위해 기존 측정항목을 기반으로 새 측정항목을 만드는 조건을 설명하는 기록 규칙이 포함되어 있습니다.

다음 YAML 파일은 MonitoringRule 커스텀 리소스의 템플릿을 보여줍니다. 자세한 내용은 API 참고 문서를 참조하세요.

# Configures either an alert or a target record for precomputation.
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringRule
metadata:
  # Choose a namespace that matches the project namespace.
  # The alert or record is produced in the same namespace.
  namespace: PROJECT_NAMESPACE
  name: MONITORING_RULE_NAME
spec:
  # 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 metrics.
  # 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 PromQL 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: 프로젝트 네임스페이스
  • MONITORING_RULE_NAME: MonitoringRule 정의 파일의 이름