최대 1 분 소요

4가지의 GUI 도구

  • istio
  • kiali
  • jaeger
  • grafana

kiali

Response TimeWorkload graph에서만 볼 수 있다.

workload graphservice graphdetail은 다른다.

workload graph

image-20220722181404402

  • Overview
  • pod logging
  • inbound/outbound

Service graph

image-20220722181647798

  • Overview
  • pod metric

image-20220725100049367

graph에서 바로 트래픽을 컨트롤 할 수 있다.

k get vs(virtualservices)
k get dr(destinationroles)

Tracing Tool

  • zipkin
  • jaeger
  • Yeager

Jaeger

image-20220725102509048

Header를 확장시켜야 하는 이유

image-20220725104813954

모든 span이 동일한 x-request-id를 사용하는 것을 확인 할 수 있다.

즉 동일한 아이디로 그룹화 된다.

x-request-id: 고유한 아이디로 추적에 사용, istio가 자동으로 생성

애플리케이션은 request로부터 다음 헤더를 수집해 전달해야한다.

  • x-request-id
  • x-b3-traceid
  • x-b3-spanid
  • x-b3-parentspanid
  • x-b3-sampled
  • x-b3-flags
  • x-ot-span-context
def getForwardHeaders(request):
    headers = {}

    # x-b3-*** headers can be populated using the opentracing span
    span = get_current_span()
    carrier = {}
    tracer.inject(
        span_context=span.context,
        format=Format.HTTP_HEADERS,
        carrier=carrier)

    headers.update(carrier)

    # ...

    incoming_headers = ['x-request-id', 'x-datadog-trace-id', 'x-datadog-parent-id', 'x-datadog-sampled']

    # ...

    for ihdr in incoming_headers:
        val = request.headers.get(ihdr)
        if val is not None:
            headers[ihdr] = val

    return headers

-> webapp -(xrequest-id=47)> Proxy -> proxy -> API Gateway -(xrequest-id=47)> Proxy

모든 애플리케이션에서 구현하여야 한다.

Grafana

  • istio workload
  • istio servicedashboard

image-20220725151022525

태그:

카테고리:

업데이트:

댓글남기기