StatsD 및 AppSignal의 독립 에이전트를 사용하여 시스템 모니터링
기본적으로 AppSignal은 이러한 위성 프로세스를 모니터링하지 않습니다.모니터링을 어디로든 확장하고 모든 데이터를 하나의 응용 프로그램에 넣으려면 AppSignal의 standalone agent을 설치할 수 있습니다.
AppSignal의 독립 에이전트
독립 에이전트는 same software을 기반으로 하며, 일반적으로 루비, Elixir 또는 JavaScript 응용 프로그램을 테스트하는 데 사용됩니다.이 소프트웨어도 독립 모드에서 실행할 수 있다.
독립 실행형 에이전트는 모니터링에 사용할 수 있습니다.
인프라 시설: 우리 시스템의 일부분이지만 응용 프로그램 코드를 실행하지 않는 기계입니다.
백그라운드 작업: 예를 들어 밀집된cron 작업이나 장시간 실행되는 데이터 처리 스크립트입니다.이 백그라운드 작업이 지원되는 언어 (Ruby, Elixir 또는 Node.js) 로 작성된 경우 표준 통합을 사용할 수 있습니다.
더 많은 언어: 비기존 언어로 작성된 프로그램.
작업 원리
에이전트는 deb나 rpm 패키지로 제공되며 언어 의존성이 없습니다.Debian/Ubuntu 또는 Red Hat 기반 시스템에서 실행할 수 있습니다.자세한 설치 지침은 agent documentation을 참조하십시오.
일단 설치하면 에이전트는 몇 분 안에 설정되고 수호 프로세스로 영원히 실행되며 당신의 기초 구조를 묵묵히 감시합니다.이 프록시에는 AppSignaldashboard에 로그인한 사용자 정의 데이터를 이 서버에 중계하는 StatsD 서버도 포함되어 있습니다.
StatsD란 무엇입니까?
StatsD는 임의의 데이터를 수집하고 집합하는 표준입니다.그것은 로그 도량과 성능 정보에 중점을 두었다.UDP 연결에 경량급 텍스트 프로토콜을 사용하여 기계에 아주 작은 공간을 차지합니다.
StatsD 메시지는 다음과 같습니다.
KEY:VALUE|TYPE
그 중에서 KEY
은 임의의 문자열이고 VALUE
은 숫자이다.유형 값은 숫자의 처리 방식을 정의합니다.우리는 세 가지 유형의 지표를 지원한다.
c:이것은 호출할 때마다 점차적으로 증가하는 계수기입니다.예를 들어,
active_users:1|c
은 active_users
카운터에 1을 추가합니다.g: 계기는 값을 가져와 업데이트에 유지합니다.이는 처리량, 활성 사용자 수 또는 대기열에서 중단된 작업 수와 같이 시간에 따라 위아래로 변경되는 값을 기록하는 데 유용합니다.
t: 시간 값을 저장합니다.이런 유형은 추적 지속 시간에 매우 적합하다.AppSignal은 모든 기록 시간의 평균값, 계수 및 백분율을 계산합니다.
StatsD로 데이터 전송
독립 실행형 프록시 탐지 포트 8125의 UDP 패킷입니다.우리는 netcat을 사용하여 명령줄에서StatsD 형식의 문자열을 보낼 수 있습니다.
echo -n "myscript.myevent.counter:1|c" | nc -4u -w0 localhost 8125
UDP를 사용하기 때문에 응답을 기다릴 필요가 없습니다.Socat에도 적용:
echo -n "myscript.myevent.counter:1|c" | socat - udp:localhost:8125
이것은 모든 일괄 처리나cron 작업에 대한 검측을 쉽게 한다.예를 들어, 백업 작업에서 생성된 데이터의 양을 아래에서 대시보드를 사용하여 기록합니다.backup_size=$(du -m /backups | cut -f1)
echo -n "backup.data:$backup_size|g" | nc -4u -w0 localhost 8125
우리는 정수에 국한되지 않는다.StatsD는 부동 소수점에도 적용됩니다.echo -n "network.latency:0.2|g" | nc -4u -w0 localhost 8125
태그 사용
지표에 태그를 추가할 수 있습니다.StatsD 서버는 메시지 끝에 선택적 태그를 지원합니다.
KEY:VALUE|TYPE|#TAGS
우리는 같은 메시지에 여러 개의 태그를 적용하고 이후의 필터에 값을 부여할 수 있습니다.echo -n "backup.data:$backup_size|g|#backups,env:production" | nc -4u -w0 localhost 8125
잠시 후 AppSignal에서 데이터를 보는 방법을 배우겠습니다.테스트 언어
StatsD 서버는 UDP 패킷을 보낼 수 있는 모든 언어와 호환됩니다.우리 몇 가지 예를 봅시다.
Python은 유행하는 데이터 발굴과 기계 학습 언어이다.내장형
socket
라이브러리를 사용하여 Python 응용 프로그램에 플러그인을 추가할 수 있습니다.import time
# measure time taken for function
start = time.process_time()
train_my_model()
training_time = time.process_time() - start
# send value to statsd
import socket
UDP_IP = "127.0.0.1"
UDP_PORT = 8125
MESSAGE = b"model.training.time:" + bytes(str(training_time), 'utf-8') + b"|t"
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
java.net
라이브러리를 사용하면 Java에서 유사한 결과를 얻을 수 있습니다.byte[] buffer = "mybatch.exception.counter:1|c".getBytes();
InetAddress address = InetAddress.getByName("127.0.0.1");
DatagramPacket packet = new DatagramPacket(
buffer, buffer.length, address, 8125
);
DatagramSocket datagramSocket = new DatagramSocket();
datagramSocket.send(packet);
PHP는 또 다른 매우 유행하는 언어이다.socket_sendto
을 사용하여 UDP 패킷을 전송할 수 있습니다.$msg = "mywebsite.active_users:$ACTIVE_USERS|g";
$len = strlen($msg);
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_sendto($sock, $msg, $len, 0, '127.0.0.1', 8125);
socket_close($sock);
StatsD 클라이언트
지금까지 우리는 모든 언어에 내장된 네트워크 기능을 사용했다.하지만 더 많아요.많은 언어와 제품은 제3자 StatsD 클라이언트나 플러그인을 포함한다.StatsD에 부합되는 모든 클라이언트는 최소한 지원되는 데이터 형식에 대해 일해야 한다.너는 StatsD project wiki에서 고객 명단을 찾을 수 있다.
AppSignal에서 호스트 데이터 보기
호스트 지표 대시보드에는 시스템의 리소스 활용도가 표시됩니다.
AppSignal은 독립 실행형 에이전트를 실행하는 각 시스템에 항목을 추가합니다.
대시보드에는 로드 및 CPU 평균 디스크, 네트워크, 메모리 및 스위칭 사용률이 표시됩니다.
대시보드 생성
AppSignal은 사용자가 보낸 StatsD 값을 자동으로 대시보드를 생성하지 않습니다. 이를 위해 사용자 정의 대시보드를 만들어야 합니다.
먼저 대시보드 메뉴에서 Add 대시보드를 클릭합니다.
대시보드의 이름:
그래픽 추가 버튼을 클릭하여 그래픽 생성기를 표시합니다.
도면의 이름을 지정한 다음 를 클릭하여 메트릭을 추가합니다.
메뉴에서 관심 지표를 선택하십시오.
(선택 사항) 태그를 사용하여 필터링:
다음으로 개요를 보려면 [뒤로]를 클릭하십시오.표시하려는 데이터에 가장 적합한 데이터를 찾기 위해 다양한 그래픽 유형과 값 단위를 시도해야 할 수도 있습니다.
시간 데이터는 평균치와 백분율이 더 잘 보이기 때문에 면적도에서 더 좋아 보인다.
접선도는 계수기와 계기에 적용된다.
결과에 만족하면 Create graph를 클릭합니다.
끝내다
우리는 당신의 기계와 위성 코드를 감시하기 위해 AppSignal의 독립 서버를 사용하는 방법을 배웠습니다.내장된 StatsD 서버를 통해 임의의 성능 데이터를 기록하고 프로세스를 검사할 수 있습니다.
독립 에이전트 사용에 대한 자세한 내용은 다음 링크를 참조하십시오.
StatsD reference .
How to send custom metrics .
Creating dashboards in AppSignal .
Identifying and Resolving a Kafka Issue the Standalone Agent .
Reference
이 문제에 관하여(StatsD 및 AppSignal의 독립 에이전트를 사용하여 시스템 모니터링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/appsignal/monitoring-any-system-with-statsd-and-appsignal-s-standalone-agent-3c7l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)