Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

맞춤 측정항목을 사용하는 방법

맞춤 측정항목을 통한 심층 인사이트

AppSignal gem을 사용하면 이미 사용자 정의 계측을 사용하여 애플리케이션 성능에 대한 자세한 정보를 얻을 수 있습니다. 하지만 때로는 다른 측정항목도 추적하고 싶을 때가 있습니다.

1.0 사용 gem이 출시되면 AppSignal에 사용자 지정 메트릭을 보낼 수 있습니다. 이러한 메트릭을 사용하면 새 계정에서 데이터베이스 디스크 사용량에 이르기까지 애플리케이션의 모든 것을 추적할 수 있습니다. 이는 코드 계측을 대체하는 것이 아니라 시간이 지남에 따라 코드의 특정 데이터에 더 쉽게 액세스하고 측정할 수 있도록 하는 추가 방법입니다.

다음과 같은 세 가지 유형의 측정항목을 제공합니다.

게이지 사용자 수와 같은 항목을 저장하는 데 유용하게 덮어쓸 수 있는 숫자입니다.
카운터 주어진 값만큼 증가할 수 있는 숫자로, 예를 들어 프로세스가 실행되는 시간을 계산하는 데 유용합니다.
배포 평균과 개수를 저장할 숫자 모음입니다. 평균 판매 금액을 추적하는 데 유용합니다.

AppSignal gem에는 이러한 각 메트릭 유형에 대한 메서드가 있습니다. 이러한 방법을 사용하여 Google 시스템에 데이터를 보낼 수 있습니다.

게이지

게이지는 증가하거나 감소할 수 있는 메트릭에 이상적입니다. AppSignal의 게이지를 사용하여 활성 계정 수를 그래프로 표시합니다.

count = Account.active.count
Appsignal.set_gauge('account_count', count)

카운터

이름에서 알 수 있듯이 카운터는 어떤 일이 발생하는 횟수를 추적하는 좋은 방법입니다. 작업자는 여러 데이터 포인트가 포함된 페이로드를 처리합니다. 즉, 작업 수가 우리가 처리하는 데이터의 양을 정확하게 나타내지 않습니다. 카운터를 사용하여 처리하는 각 데이터 포인트에 대해 증분합니다.

minute.metrics.each do |metric|
  Appsignal.increment_counter('metric_count', metric.length)
end

배포

우리는 코드 조각이 실행되는 데 걸리는 평균 시간을 측정하기 위해 분포를 사용합니다. 예를 들어 작업은 여러 개의 맵/리듀스 작업을 실행할 수 있으며 계측으로 기간을 추적하더라도 여전히 각 작업의 평균 기간을 보고자 합니다. 좋은 그래프입니다.

Appsignal.add_distribution_value('mapreduce_duration', MapReduce::Minutely.new.run.time)

측정항목을 그래프로 변환

AppSignal에 메트릭을 보내는 것은 이야기의 절반에 불과합니다. 데이터를 보낸 후에는 메트릭을 표시할 그래프를 생성해야 합니다. "맞춤 측정항목" 페이지의 편집기에서 이 작업을 수행합니다.

사용자 지정 메트릭 기능을 사용하면 그래프가 있는 여러 화면을 만들 수 있습니다. YAML 형식을 통해 이러한 화면의 화면과 그래프를 정의할 수 있습니다.

예를 들어 계정 해제 그래프가 있는 화면을 만들려면 다음 YAML을 사용할 수 있는 계정 수와 함께 그래프를 표시합니다.

- title: Account overview
  graphs:
    - title: "Number of accounts"
      kind: gauge
      format: number
      fields:
        - account_count

그러면 다음 페이지가 생성됩니다.

필드가 있는 목록 대신 하나 이상의 메트릭 이름과 일치하는 정규식을 제공할 수도 있습니다. 아래 예는 타사 API에 대한 각 API 응답 코드에 대한 선이 있는 그래프를 렌더링합니다.

- title: API Responses
  graphs:
    - title: "API response codes"
      kind: count
      filter: "api_response_code_[0-9]+"
      format: number

이는 이제 AppSignal로 추적할 수 있는 많은 유용한 지표 중 일부일 뿐입니다. 맞춤 측정항목에 대한 자세한 내용은 설명서를 확인하거나 계정 설정에 도움이 필요한 경우 문의하세요.