StatsD 통합을 통해 StatsD 형식 데이터를 New Relic으로 쉽게 가져올 수 있습니다. 데이터에 임의의 태그(키-값 쌍)를 추가할 수도 있습니다. 메트릭이 New Relic에 있으면 데이터를 쿼리 하고 사용자 지정 차트와 대시보드를 만들 수 있습니다.
StatsD 통합을 시도하고 싶으십니까? 무료 로 New Relic 계정을 만드 십시오! 신용 카드가 필요하지 않습니다.
요구 사항 이 통합은 지표 API 와 이벤트 API를 사용하여 데이터를 수집합니다. 이러한 API를 사용하려면 라이선스 키 이 필요합니다.
통합은 Metric API 요구 사항 및 데이터 제한을 준수합니다. 속도 제한에 도달했는지 확인하려면 NrIntegrationError
이벤트 의 다음 NRQL 쿼리를 실행하세요.
SELECT count ( * ) FROM NrIntegrationError
WHERE newRelicFeature = 'Metrics'
LIMIT 100 SINCE 1 day ago
통합은 amd64 및 arm64 아키텍처용 DockerHub 에서 Linux 컨테이너 이미지로 사용할 수 있습니다.
설치 이 섹션에서는 표준 설치를 수행하는 방법을 설명합니다. Kubernetes에서 StatsD를 실행 하려면 Kubernetes 설치 를 참조하세요.
StatsD 통합을 설치하려면 다음 명령을 실행하고 뉴렐릭 계정 ID 와 라이선스 키 을 포함하세요. 그러면 gostatsd
에서 사용하는 TOML 설정 파일이 생성됩니다.
> -d --restart unless-stopped \
> --name newrelic-statsd \
> -e NR_ACCOUNT_ID = YOUR_ACCOUNT_ID \
> -e NR_API_KEY = NEW_RELIC_LICENSE_KEY \
> newrelic/nri-statsd:latest
조직이 EU 데이터 센터 지역 에 있는 경우 위 명령에 다음을 추가합니다.
설치 후 다음을 수행할 수 있습니다.
Kubernetes용 설치 다음은 배포 및 서비스 개체에 대한 Kubernetes 매니페스트의 예입니다.
Kubernetes 매니페스트 예시 다음은 Kubernetes 환경에서 StatsD를 구현하고 배포하고 newrelic-statsd
이라는 StatsD 서비스를 생성하기 위한 Kubernetes 매니페스트의 예입니다. 귀하의 계정 ID 와 라이선스 키 을(를) 삽입해야 합니다.
deployment.yml :
serviceAccountName : newrelic - statsd
image : newrelic/nri - statsd : latest
value : "NEW_RELIC_ACCOUNT_ID"
value : "NEW_RELIC_LICENSE_KEY"
service.yml :
service-account.yml :
구성 세부사항은 Kubernetes 구성 을 참조하십시오.
구성 설치 절차 에서 환경 변수와 함께 nri-statsd
을 실행하면 TOML 구성 파일이 생성됩니다. 또한 다음 구성 옵션을 설정할 수 있습니다.
구성 옵션
설명
expiry-interval
끈
이 시간 동안 메트릭이 업데이트되지 않으면 해당 메트릭 보고가 중지됩니다. 기본값은 5m
입니다.
플러시 간격 사이에 값이 업데이트된 경우에만 측정항목을 보내려면 이를 1ms
으로 구성합니다. 측정항목을 만료하지 않으려면 0
로 설정하십시오.
percent-threshold
정수 목록
메트릭 집계에 사용되는 백분위수를 지정합니다. 기본값: 90
.
metrics-addr
끈
지표를 수신할 주소를 나타냅니다. 기본값: :8125
. nri-statsd v2.3.0
(goStatsD v34.2.1
)부터 Unix 소켓 소켓(UDS)을 통한 연결이 지원됩니다. 설정에서 [host]:port
대신 metrics-addr=/some/path/newrelic-statsd.socket
사용하십시오.
팁 StatsD 통합을 사용할 때 FedRAMP 준수를 보장하려면 사용자 지정 구성에서 다음 끝점을 정의해야 합니다.
address = ' https://gov-insights-collector.newrelic.com/v1/accounts/$NR_ACCOUNT_ID/events '
address-metrics = ' https://gov-infra-api.newrelic.com/metric/v1 '
다음은 기본 구성을 덮어써서 구성을 사용자 지정하는 몇 가지 예입니다.
사용자 지정 구성의 예 percent-threshold = [90, 99]
address = ' https://insights-collector.newrelic.com/v1/accounts/$NR_ACCOUNT_ID/events '
address-metrics = ' https://metric-api.newrelic.com/metric/v1 '
api-key = ' NEW_RELIC_LICENSE_KEY '
Disable timer sub-metrics:
기본적으로 nri_statsd
은 타이머 측정항목에 대해 플러시 간격에 대한 표준 편차, 평균, 중앙값, 합계, 하한 및 상한을 계산합니다. 이러한 측정항목을 비활성화하려면 disabled-sub-metrics
구성 섹션을 추가하고 비활성화하려는 항목에 대해 true
를 설정하면 됩니다. 다음은 예입니다.
Docker: 기본 구성 덮어쓰기 컨테이너에서 실행하는 동안 기본 nri-statsd
구성을 덮어쓰려면 컨테이너 내부에 구성 파일을 마운트하면 됩니다.
상황에 따라 필요에 따라 다음 템플릿을 채택할 수 있습니다.
예시:
address-metrics = ' https://metric-api.newrelic.com/metric/v1 '
api-key = ' NEW_RELIC_LICENSE_KEY '
적절한 경로에 마운트된 파일로 컨테이너를 실행하려면:
> -v ${ PWD } /nri-statsd.toml:/etc/opt/newrelic/nri-statsd.toml \
$ newrelic/nri-statsd:latest
Kubernetes: 기본 구성 덮어쓰기 Kubernetes에서 실행되는 nri-statsd
를 구성하는 가장 좋은 방법은 configMap
을 사용하고 configMap
를 컨테이너에 마운트하는 것입니다. (Docker에서 설정 파일을 마운트하는 것과 유사한 과정입니다.)
예시:
address = 'https : //metric - api.newrelic.com/metric/v1'
api - key = '$NEW_RELIC_LICENSE_KEY'
configMap을 사용하려면 배포 사양 템플릿에서 볼륨을 선언한 다음 컨테이너 사양에서 volumeMount
을 선언합니다.
예시:
- mountPath : /etc/opt/newrelic/
- name : nri - statsd - config
미터법 형식 통합은 StatsD 프로토콜 을 사용하여 메트릭을 수신합니다. 선택적으로 샘플 속도를 구성하고 태그를 추가할 수 있습니다.
다음은 우리가 사용하는 메트릭 데이터 형식입니다.
<metric name>:<value>|<type>|@<sample rate>|#<tags>
다음은 이러한 필드에 대한 설명입니다.
분야 명
설명
<metric name>
끈
Required. 지표의 이름입니다.
<value>
끈
Required. 지표 유형 :
@<sample rate>
뜨다
Optional 간단한 카운터 또는 타이머 카운터의 경우. 많은 지표를 전송해야 하는 경우 샘플링을 사용하여 네트워크 트래픽을 줄일 수 있습니다. 단점은 데이터 해상도가 감소한다는 것입니다.
이것이 1
미만의 샘플 레이트에서 작동하는 방식의 예: 이 값을 0.1
로 설정하면 카운터는 10번 중 1번 측정값을 보냅니다.
#<tags>
끈
Optional. 지표에 첨부된 태그는 속성(핵심 가치 쌍)으로 변환됩니다. 태그 지정 옵션에 대한 자세한 내용은 태그 를 참조하세요.
측정항목 유형 다음은 측정항목의 유형과 형식을 지정하는 방법입니다.
카운터 카운터는 이벤트 발생 횟수를 측정합니다. 예에는 보고 간격당 캐시 적중 및 보고 간격당 생성된 스레드 수가 포함됩니다.
카운터는 값에 부호를 추가하여 동일한 플러시 간격 동안 증가 또는 감소할 수 있습니다. 다음 예에서 카운터 값은 2
입니다.
각 플러시에서 현재 카운트가 전송되고 0
으로 재설정됩니다. 카운트가 업데이트되지 않으면 다음 플러시에서 0
값을 보냅니다. expiry-interval
를 1ms
으로 설정하여 이 동작을 비활성화할 수 있습니다.
다음은 10번 중 1번 샘플링되는 카운터의 예입니다.
계량기 게이지는 시간에 따라 증가하거나 감소할 수 있는 값을 나타냅니다. 게이지의 예로는 온도, CPU 사용량 및 메모리가 있습니다. 다음은 예입니다.
게이지가 업데이트되지 않으면 다음 플러시에서 이전 값을 보냅니다. expiry-interval
을 1ms
로 설정하여 이 동작을 비활성화할 수 있습니다.
시간제 노동자 타이머 메트릭 유형은 타이밍 데이터를 측정합니다.
기본적으로 nri_statsd
은 타이머 측정항목에 대해 플러시 간격에 대한 표준 편차, 평균, 중앙값, 합계, 하한 및 상한을 계산합니다. 이들은 다음 형식의 하위 메트릭으로 전송됩니다.
<metric_base_name>.std_dev
<metric_base_name>.median
<metric_base_name>.summary
<metric_base_name>.sum_squares
<metric_base_name>.per_second
구성된 백분위수는 다음 메트릭을 생성합니다. 백분위수 임계값이 태그로 첨부됩니다.
<metric_base_name>.sum_squares.percentiles
<metric_base_name>.sum.percentiles
<metric_base_name>.count.percentiles
<metric_base_name>.upper.percentiles
<metric_base_name>.mean.percentiles
백분위수 임계값은 percent-threshold
구성 옵션으로 조정할 수 있습니다. 이는 disabled-sub-metrics
구성 섹션 을 통해 제어할 수 있습니다.
속성 (키-값 쌍)으로 저장하는 데이터에 태그를 추가할 수 있습니다. 태그 추가에는 두 가지 옵션이 있습니다.
모든 메트릭에 적용되는 기본 태그 추가: 모든 메트릭에 적용됩니다. 그것들은 고정되어 있으며 시간이 지나도 변하지 않습니다. 메트릭 수준 태그 추가: 특정 메트릭에 적용되며 두 제출 간에 값을 변경할 수 있습니다. 시작 명령 에서 환경 변수를 정의하여 메트릭 및 이벤트에 태그를 추가합니다.
다음은 두 개의 태그를 만드는 예입니다.
$ -e TAGS = "environment:production region:us"
다음은 시작 명령 에 사용된 환경 변수입니다.
> -d --restart unless-stopped \
> --name newrelic-statsd \
> -e NR_ACCOUNT_ID = YOUR_ACCOUNT_ID \
> -e NR_API_KEY = NEW_RELIC_LICENSE_KEY \
> -e TAGS = "environment:production region:us" \
> newrelic/nri-statsd:latest
측정항목 형식 을 정의할 때 다음 형식을 사용하여 태그를 추가할 수 있습니다.
<bucket name>:<value>|<type>|#<tags>
이 예에서 <tags>
은 쉼표로 구분된 태그 목록입니다. 태그 형식은 simple
또는 key:value
입니다.
다음은 사용자 지정 태그가 포함된 NRQL 쿼리의 예입니다.
SELECT count ( * ) FROM Metric WHERE environment = 'production'
알림 생성 NRQL 경고 조건 을 사용하여 StatsD 데이터에 대해 경고할 수 있습니다.
경고 예 이 절차에서는 일부 샘플 데이터를 보낸 다음 해당 데이터를 사용하여 경고 조건을 만드는 과정을 안내합니다.
먼저 이 데이터를 New Relic의 StatsD 컨테이너로 보냅니다.
$ echo "prod.test.num:32|g" | nc -v -w 1 -u localhost 8125
다음으로 이 쿼리를 사용하여 NRQL 경고 조건 을 만듭니다.
SELECT latest ( prod . test . num ) FROM Metric WHERE metricName = 'prod.test.num'
다음은 이 NRQL 경고 조건 생성을 보여주는 이미지입니다. 전송된 샘플 데이터는 차트 오른쪽 상단의 파란색 점으로 표시됩니다.
이제 다음 설정으로 경고 조건을 만들 수 있습니다.
NRQL 공지 조건을 생성할 때 반드시 Condition name 을 설정하세요.
값이 50을 초과하는 메트릭이 전송되면 인시던트가 생성되고 알림이 전송됩니다. 인시던트는 24시간 후에 자동으로 종료됩니다. 경고가 작동하는지 테스트하려면 다음 명령을 실행합니다.
$ echo "prod.test.num:60|g" | nc -v -w 1 -u localhost 8125
데이터 찾기 및 사용 데이터를 쿼리하려면 New Relic 쿼리 옵션을 사용합니다. 예를 들어 다음과 같은 NRQL 쿼리를 실행할 수 있습니다.
SELECT count ( * ) FROM Metric WHERE metricName = 'myMetric' and environment = 'production'
Metric
데이터 유형을 쿼리하는 방법에 대한 자세한 내용은 측정항목 데이터 쿼리 를 참조하세요.
문제점 해결 문제 :
StatsD 통합을 실행하는 단계를 따랐지만 여전히 뉴렐릭에서 예상 지표를 확인해야 합니다.
솔루션 :
설정 문제를 해결하려면 아래 단계를 따르세요.
라이선스 키 에 40자리 16진수 라이선스 키가 포함되어 있고 선택한 뉴렐릭 계정 ID에 대한 유효한 라이선스인지 확인하세요.귀하의 뉴렐릭 계정에 대해 올바른 데이터 센터(미국 또는 EU)가 선택되었는지 확인하세요. 팁: License_key가 "eu"로 시작하는 경우 NR_EU_REGION=true
플래그를 사용해야 합니다. StatsD 통합과 관련된 NrIntegrationError
없는지 확인하세요. 자세한 로그는 환경 변수 NR_STATSD_VERBOSE
을 사용하여 활성화할 수 있습니다. 다음 변수를 추가하여 docker run 명령을 수정합니다: -e NR_STATSD_VERBOSE=true
. 통합이 예상한 지표를 보내고 있는지 확인하기 위해 테스트 지표를 푸시할 수 있습니다. NetCat nc
유틸리티 사용 예:echo "example.gauge:123|g" | nc -u -w0 127.0.0.1 8125
(실행 중인 컨테이너 IP/주소로 127.0.0.1
업데이트) 소스 코드 확인 이 통합은 오픈 소스 소프트웨어입니다. 즉 , 소스 코드를 탐색하고 개선 사항을 보내거나 고유한 포크를 만들어 빌드할 수 있습니다.