텔레메트리와 모니터링
Linkerd의 가장 강력한 기능 중 하나는 메시된(메시에 포함된) 애플리케이션의 관찰된 동작을 측정하고 보고하는 관측성(observability) 도구 모음이에요. Linkerd는 서비스 코드의 내부를 직접 들여다보지는 못하지만, 서비스 코드의 외부 동작은 아주 깊이 있게 관찰할 수 있어요.
Linkerd의 관측성 기능을 쓰려면 Viz 확장만 설치하면 돼요. 그러면 메트릭 수집과 대시보드가 자동으로 동작해요.
본문
Linkerd의 가장 강력한 기능 중 하나는 메시된 애플리케이션에서 관찰된 동작을 측정하고 보고하는 관측성 도구 모음이에요. Linkerd는 서비스 코드의 내부를 직접 들여다보지는 못하지만, 서비스 코드의 외부 동작에 대해서는 매우 깊은 통찰력을 가져요.
Linkerd의 관측성 기능에 접근하려면 Viz 확장만 설치하면 돼요.
`linkerd viz install | kubectl apply -f -
`
Linkerd의 텔레메트리와 모니터링 기능은 개발자가 아무 작업도 하지 않아도 자동으로 동작해요. 이 기능들은 다음과 같아요.
- HTTP, HTTP/2, gRPC 트래픽에 대한 최상위("골든") 메트릭(요청량, 성공률, 지연 분포) 기록.
- 다른 TCP 트래픽에 대한 TCP 수준 메트릭(인/아웃 바이트 등) 기록.
- 서비스별, 호출자/피호출자 쌍별, 또는 (Service Profiles로) 라우트/경로별 메트릭 보고.
- 서비스 간 런타임 관계를 보여주는 토폴로지 그래프 생성.
- 실시간, 주문형 요청 샘플링.
이 데이터는 여러 방식으로 소비할 수 있어요.
- Linkerd CLI를 통해, 예를 들어
linkerd viz stat-inbound와linkerd viz stat-outbound로. - Linkerd 대시보드와 미리 만들어진 Grafana 대시보드를 통해.
- Linkerd 내장 Prometheus 인스턴스에서 직접.
골든 메트릭
성공률 (Success Rate)
시간 창(기본 1분) 동안 성공한 요청의 비율이에요.
linkerd viz stat-outbound 명령의 출력에서 이 메트릭은 라우트와 개별 백엔드별로 표시돼요. 재시도(retry)가 구성된 라우트의 경우, 전자는 재시도 이후의 성공 비율(클라이언트 관점)을 계산하고 후자는 재시도 이전의 성공 비율(서비스의 잠재적 문제를 드러낼 수 있음)을 계산해요.
트래픽 (초당 요청 수)
이것은 서비스/라우트에 가해지는 부하가 얼마나 되는지에 대한 개요를 제공해요. 성공률과 마찬가지로 linkerd viz stat-outbound는 이 메트릭을 라우트 수준과 백엔드 수준으로 나누며, 각각 재시도 이후와 이전의 비율에 해당해요.
지연 (Latencies)
서비스/라우트별로 요청을 처리하는 데 걸린 시간이 50번째, 95번째, 99번째 백분위로 나뉘어요. 낮은 백분위는 시스템의 평균 성능에 대한 개요를, 꼬리 백분위는 이상치 동작을 잡아내는 데 도움을 줘요.
Linkerd 메트릭의 수명
Linkerd는 장기간의 과거 메트릭 저장소로 설계되지 않았어요. Linkerd의 Viz 확장이 Prometheus 인스턴스를 포함하긴 하지만, 이 인스턴스는 짧고 고정된 간격(현재 6시간)으로 메트릭을 만료시켜요.
오히려 Linkerd는 기존 메트릭 저장소를 보완하도록 설계되었어요. Linkerd의 메트릭이 가치 있다면, 이를 기존의 과거 메트릭 저장소로 내보내야 해요.
자세한 내용은 Exporting Metrics 문서를 참고해 주세요.