OpenTelemetry와 Istio: 당신이 알아야 할 모든 것
많은 서비스가 서로 통신할 때 OpenTelemetry는 이채를 띠고 k8s는 이를 위탁 관리하는 가장 좋은 플랫폼이기 때문이다.
OpenTelemetry를 사용하기 시작하는 것은 많은 지식을 필요로 하기 때문에 도전일 수도 있다.입문점이 높기 때문에 설정Istio을 분포식 추적을 생성하는 것은 좋은 생각인 것 같습니다. 설정이 상대적으로 빠르고 간단하기 때문입니다.
본문에서, 당신은 Istio를 사용하여 흔적을 수집하는 장점, 나쁜 점, 추악한 점을 이해하게 될 것입니다.마지막으로 Istio를 사용하는 것이 적합한지 여부를 결정할 수 있습니다.
OpenTelemetry와 Istio: 예
Istio는 모든 API 호출의 출처와 방향을 알고 있기 때문에 서비스 간 통신을 구축하기 쉽다. (경고가 첨부되어 있다. 아래에 상세하게 소개할 것이다.)
간단한 설정:
--set tracing.enabled=true
이제 추적을 사용하려면 해당 목적지를 정확하게 가리키기만 하면 됩니다.`--set values.global.tracer.Zipkin.address=<jaeger-collector-address>:9411`
응용 프로그램 코드에서 SDK를 구현해야 하는 다른 추적 데이터 수집 옵션과 비교하면 쉽다.우리의 코드에서 SDK를 실현하는 것은 훨씬 복잡하고 인격에 해를 끼치는 작업이다. (비록 우리가 더 많은 데이터를 수집하고 더 큰 유연성을 제공할 수 있지만.)
OpenTelemetry 및 Istio: 나쁜 메시지
서비스 간 단일 "점프"
응용 프로그램에 데이터 수집에 사용할 코드가 없기 때문에 일부 상하문에서 일부 데이터를 수집할 수 있다.
아래의 도표를 보세요.서비스 A가 서비스 B를 호출하면 Istio가 이벤트를 나타내는 범위를 만듭니다.그러나 서비스 B가 서비스 C를 호출할 때 Istio는 서비스 A의 같은 연속 추적에서 기원된 것을 식별할 수 없습니다.
이것은 새로운 추적을 만들었습니다.
이 문제를 해결하기 위해서는 Istio에서 상하문 전파를 추출하고 하류 서비스에 주입하기 위해 모든 서비스에 OpenTelemetry SDK를 설치해야 합니다.
즉, 정확한 추적을 얻기 위해 OpenTelemetry를 설치해야 할 수도 있습니다.
(OpenTelemetry 기본 사용W3C context propagation 규범은 Istio 사용B3 context propagation 규범은 수정할 수 있음을 주의하십시오).
서비스 대 서비스 통신
Istio Visualization Track을 사용하면 HTTP와 gRPC 통신만 볼 수 있습니다.데이터베이스, 캐시, 메시지 시스템이 보이지 않습니다.
샘플링
우리가 더 전통적인 방법 (예를 들어 로그와 도량) 으로 문제를 해결할 수 없을 때, 우리는 추적을 사용하여 생산 중의 문제를 디버깅한다.이러한 상황에서, 당신은 더욱 세밀한 데이터를 필요로 하며, 모든 정보는 매우 중요하다.
추적을 수집하기 위해 Istio를 설정하는 것은 쉽지만, 사용자가 해결하고자 하는 문제를 해결할 수 없습니다.
내가 만난 흔적을 수집하는 조직에서는 100%의 데이터를 수집하지 않는다.그들 모두는 사용하고 있다.
샘플링 자체가 복잡한 문제로 많은 도구가 필요하다.불행하게도, Istio는 수집할 데이터의 비율만 설정할 수 있습니다.HTTP 라우팅에 따라 백분율 단위가 다른 기능은 지원되지 않습니다.
여기서 OpenTelemetry가 다시 한 번 유용하게 사용되었다.
더 좋은 결정을 내리기 위해서는 OpenTelemetry를 사용하여 샘플링을 더욱 깊이 있게 해야 할 수도 있습니다.
OpenTelemetry 및 Istio: 못생김
앞에서 말한 바와 같이 Istio와 OpenTelemetry를 동시에 실행하려면 OpenTelemetry를 B3로 설정하거나, B3을 W3C로 변환하는 전용 코드를 작성해야 합니다. (중단 추적에 들어가지 않으면 판단하지 않습니다.)
어쨌든 이것은 상당히 추하다.
나는 이것이 단지 시간점일 뿐이라고 가정한다. Istio는 정확한 상하문 전파를 사용하여 추적을 생성할 수 있을 것이다.
참고로 OpenTelemetry가 당신에게 적합하다고 생각하고 서로 다른 배치 전략을 연구하기를 원합니다.
OpenTelemetry 시작
내가 아는 거의 모든 조직은 Istio의 분포식 추적을 시도한 적이 있다.그러나 짧은 시간 안에 OpenTelemetry를 추가하거나 코드로만 이루어진 OpenTelemetry의 Istio를 삭제했다.
둘 다 실행할 수 있지만 설정이 필요합니다.그것 또한 수집된 데이터의 양을 증가시켰다. 이것은 HTTP 요청이 Istio와 OpenTelemetry SDK를 뛰어넘을 수 있다는 것을 의미한다.
스스로 해 보아라, 무엇이 너에게 가장 적합한지.
또한 OpenTelemetry에 대한 정보를 더 알고 싶다면, 이 무료 6부작 OpenTelemetry (공급업체와 무관) 를 보십시오.
기본적으로 OpenTelemetry를 사용하면 가장 기본적인 것부터 확장, 배치, 생산에 이르기까지 모든 것을 배울 수 있습니다.
1회: 원격 측정 기초 개방
2회: 통합 코드(로그, 메트릭 및 추적)
3회: 생산+수집기에 배치
4회: 대량의 데이터를 샘플링하고 처리한다
제5회: 맞춤형 기기
6회: OpenTelemetry 테스트
Reference
이 문제에 관하여(OpenTelemetry와 Istio: 당신이 알아야 할 모든 것), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aspecto/opentelemetry-and-istio-everything-you-need-to-know-2865텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)