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 플래그를 사용해야 합니다. For the JP region, the endpoint is automatically selected based on your license key, so no additional flag is required. 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 업데이트) 소스 코드 확인 이 통합은 오픈 소스 소프트웨어입니다. 즉 , 소스 코드를 탐색하고 개선 사항을 보내거나 고유한 포크를 만들어 빌드할 수 있습니다.