로그 기반 측정항목 라벨

이 페이지에서는 로그 기반 측정항목 기본 라벨에 관한 자세한 내용과 함께 로그 기반 측정항목의 라벨을 만들고 사용하는 방법을 설명합니다.

이미 라벨에 대한 지식이 있다면 이 페이지의 라벨 만들기로 바로 넘어가도 됩니다.

개요

라벨을 사용하면 로그 기반 측정항목에 라벨 값당 하나씩 여러 개의 시계열을 포함할 수 있습니다. 모든 로그 기반 측정항목은 기본 라벨과 함께 제공됩니다.

추출기 표현식을 지정하면 카운터 유형과 분포 유형 측정항목 모두에서 사용자 정의 라벨을 추가로 만들 수 있습니다. 추출기 표현식은 로그 항목에서 라벨 값을 추출하는 방법을 Stackdriver Logging에 알리는 역할을 합니다. 값을 다음 중 하나로 지정할 수 있습니다.

  • 로그 항목에서 명명된 필드의 전체 콘텐츠
  • 정규 표현식과 일치하는 명명된 필드의 일부

내장된 로그 항목 필드(예: httpRequest.status) 또는 textPayload, jsonPayload, protoPayload 페이로드 필드에서 라벨을 추출할 수 있습니다.

사용자 정의 라벨의 제한사항

추출된 라벨 값이 너무 길어서도 안 되고 각 라벨에 값이 너무 많아서도 안 됩니다.

  • 측정항목당 최대 10개의 사용자 정의 라벨을 만들 수 있습니다.

  • 라벨을 만든 후에는 삭제할 수 없습니다.

    • 이미 만들어진 라벨의 추출기 표현식과 설명을 수정하는 것은 가능합니다.

    • 이미 만들어진 라벨의 이름이나 값 유형은 변경할 수 없습니다.

  • 라벨 값의 첫 1,024자만 유지됩니다.

  • 각 로그 기반 측정항목의 활성 시계열은 약 30,000개로 제한되며, 기본 라벨을 포함해 각 라벨에서 가능한 값의 개수에 따라 달라집니다.

    예를 들어 VM 인스턴스와 같은 100개의 리소스에서 로그 항목을 가져오고 20개의 가능한 값으로 라벨을 정의하는 경우 측정항목에는 최대 2,000개의 시계열이 있을 수 있습니다.

시계열이나 데이터 포인트가 너무 많으면 비용이 높아지고 활동이 제한될 수 있습니다. 로그 기반 측정항목 비용에 관한 자세한 내용은 Stackdriver 가격을 참조하세요. 측정항목 관련 할당량과 한도에 관한 자세한 내용은 할당량 및 한도문제해결을 참조하세요.

기본 라벨

시스템 로깅 측정항목을 비롯한 모든 로그 기반 측정항목에는 일부 사전 정의된 라벨이 제공됩니다.

  • 리소스 라벨: 모든 측정항목은 모니터링 리소스 객체를 사용하여 시계열 데이터의 소스를 식별합니다. 각 리소스 유형에는 유형 이름과 하나 이상의 라벨이 포함되어 있습니다. 리소스 유형의 예로는 VM 인스턴스, CloudSQL 데이터베이스, 부하 분산기 등이 있습니다.

    Stackdriver Monitoring에서 리소스와 라벨은 다른 측정항목 라벨과 분리되어 나열되어 있으나 측정항목에서 추가 시계열을 만드는 효과는 동일합니다. 자세한 내용은 측정항목, 시계열, 리소스를 참조하세요.

  • 로그: 이 라벨은 로그 항목 logName 필드의 LOG_ID 부분 값을 포함합니다.

  • 심각도: 이 라벨은 로그 항목 severity 필드의 값을 포함합니다.

측정항목 탐색기의 다음 스크린샷은 시스템 로그 기반 측정항목 중 하나의 라벨을 보여줍니다. 필터 입력란을 클릭하면 라벨 목록을 가져올 수 있습니다.

측정항목 탐색기

스크린샷에는 다음 정보가 표시됩니다.

  • 측정항목 탐색기가 logging/log_entry_count 측정항목과 gce_instance 리소스 유형(Compute Engine VM 인스턴스)의 시계열을 사용하고 있습니다.

    이 측정항목에는 다른 리소스 유형의 시계열도 포함되어 있으나 측정항목 탐색기를 통해 한 번에 하나의 리소스 유형만 볼 수 있습니다.

  • gce_instance 리소스 유형에는 3가지 리소스 라벨(project_id, instance_id, zone)이 있습니다.

  • 측정항목에는 2가지 측정항목 라벨(logseverity)이 있습니다. 이 섹션에는 사용자가 정의한 라벨도 표시됩니다.

라벨 만들기

측정항목을 만들 때 사용자 정의 라벨을 만드세요. 카운터 측정항목과 분포 측정항목 모두에 라벨을 만들 수 있습니다. 시스템 로그 기반 측정항목에는 라벨을 추가할 수 없습니다.

Logging 콘솔

  1. 로그 기반 측정항목을 만들 때 측정항목 편집기 패널에 라벨을 추가하는 옵션이 있습니다.

    라벨 메뉴

  2. 항목 추가를 클릭합니다. 각 라벨에 대한 내용을 보려면 내용이 이미 입력되어 있는 다음 양식을 참조하세요.

    라벨 만들기

    : 로그 항목에 포함된 필드와 값을 모두 보려면 로그 항목을 선택하고 그 옆에 있는 펼치기 아이콘을 클릭한 후 모두 펼치기를 클릭하세요.

  3. 라벨 양식에서 다음 필드를 채웁니다.

    1. 이름: 라벨의 이름을 선택합니다(예: ID).

      이름은 다음 기준을 충족해야 합니다.

      • 길이는 100자(영문 기준) 이하여야 합니다.
      • 정규 표현식([a-zA-Z][a-zA-Z0-9_]*)과 일치해야 합니다.
      • 'log'보다는 긴 문자열로 구성되어야 합니다.
    2. 설명: 라벨을 설명합니다. 예상되는 로그 값의 형식을 가능한 한 구체적으로 설명하세요(예: Instance number).

    3. 라벨 유형: 문자열, 부울, 정수 중에서 선택합니다.

    4. 필드 이름: 라벨 값이 포함된 로그 항목 필드의 이름을 입력합니다. 입력하는 동안 선택사항이 제시됩니다. 이 샘플의 경우 필드는 다음과 같습니다.

      labels."compute.googleapis.com/resource_id"
      
    5. 추출 정규 표현식: 라벨의 값이 필드의 전체 내용으로 구성되었다면 이 필드를 비워 두어도 됩니다. 그렇지 않으면 필드 값에서 라벨 값을 추출하는 정규 표현식(regexp)을 지정하세요. 예를 들어 필드에는 일반적으로 다음 텍스트가 포함된다고 가정해 보겠습니다.

      The instance number is 0123456789; the ID is my-test-instance22
      

      라벨 값을 인스턴스 숫자로 지정하려는 경우 정확한 숫자를 추출하는 정규 표현식이 여러 개 있으며, 그중 하나는 다음과 같습니다.

      The instance number is ([0-9]+); .*
      

      정규 표현식 캡처 그룹으로 알려진 괄호로 추출할 텍스트 부분을 식별합니다. 정규 표현식에 관한 자세한 내용은 RE2 구문을 참조하세요.

  4. 완료를 클릭하면 라벨이 만들어집니다. 위의 단계를 반복하여 라벨을 추가할 수 있습니다.

Logging API

Stackdriver Logging API의 projects.metrics.create 메소드에 대한 호출 요청 본문에서 LogMetric 객체의 일부로 라벨이 지정되어 있습니다. 전체 메소드 호출에 관한 자세한 내용은 카운터 측정항목 만들기 또는 분포 측정항목 만들기를 참조하세요.

LogMetric에서 metricDescriptorlabelExtractors 필드 모두에 라벨마다 세그먼트를 추가해야 합니다.

구문은 다음과 같습니다.

{
  ...
  metricDescriptor: {
      labels: [
        { key: [LABEL_NAME], valueType: [LABEL_TYPE],
          description: [LABEL_DESCRIPTION] },
        ...
      ]
  },
  labelExtractors: {
    [LABEL_NAME]: [EXTRACTOR_EXPRESSION],
    ...
  },
}

구문 요소의 의미는 다음과 같습니다.

  • [LABEL_NAME]: 라벨의 이름(문자열)입니다.
  • [VALUE_TYPE]: 라벨의 유형(STRING, BOOL, INT64)입니다.
  • [LABEL_DESCRIPTION]: 라벨의 설명입니다.
  • [EXTRACTOR_EXPRESSION]: 정규 표현식(선택사항)에 로그 항목 필드 이름을 결합하는 문자열입니다. 다음 중 하나입니다.

    EXTRACT([FIELD])
    REGEXP_EXTRACT([FIELD], [REGEXP])
    

다음은 라벨이 2개인 예제입니다.

{
  ...
  metricDescriptor: {
      labels: [
        { key: "label_name_a", valueType: STRING },
        { key: "label_name_b", valueType: INT64 },
      ]
  },
  labelExtractors: {
    "label_name_a":
      "REGEXP_EXTRACT(jsonPayload.field_a, \"before ([a-zA-Z ]+) after\"",
    "label_name_b": "EXTRACT(jsonPayload.field_b)",
  },
}

자세한 내용은 LogMetric 유형을 참조하세요.

Cloud SDK

Cloud SDK를 사용해 라벨이 지정된 로그 기반 측정항목을 만드는 방법은 gcloud beta logging metrics create로 이동하세요.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Stackdriver Logging
도움이 필요하시나요? 지원 페이지를 방문하세요.