VK Cloud logo

Jaeger пайдалану

Kubernetes кластерлеріндегі Jaeger аддонының жұмысын HotROD пайдалану мысалында зерттеңіз — Jaeger үшін ресми демо-қосымша. HotROD бірнеше микросервистерден тұрады, олардың көмегімен сіз OpenTelemetry SDK арқылы Jaeger-де сұраулар трассировкаларын генерациялап, көре аласыз.

Дайындық қадамдары

  1. Жасаңыз Kubernetes кластерін өзекті нұсқада, егер бұл әлі жасалмаған болса.
  2. Егер бұл әлі жасалмаған болса, kubectl орнатып, баптаңыз.
  3. kubectl көмегімен кластерге қосылыңыз.
  4. Егер бұл әлі жасалмаған болса, Jaeger аддонын орнатыңыз.

1. HotROD үшін қосымша жасаңыз

  1. example-hotrod сынақ қосымшасының ресурстары орналасатын example-hotrod атаулар кеңістігін жасаңыз:

    kubectl create ns example-hotrod
  2. example-hotrod қосымшасы үшін манифест файлын және қосымшаға қатынау үшін сервисті жасаңыз.

    apiVersion: apps/v1kind: Deploymentmetadata:  name: example-hotrod  namespace: example-hotrodspec:  replicas: 1  selector:    matchLabels:      app: example-hotrod  template:    metadata:      labels:        app: example-hotrod   spec:     containers:       - name: hotrod         image: jaegertracing/example-hotrod:latest         ports:           - containerPort: 8080         env:           - name: OTEL_EXPORTER_OTLP_ENDPOINT             value: "http://jaeger-collector.jaeger.svc.cluster.local:4317"           - name: OTEL_EXPORTER_OTLP_PROTOCOL             value: "grpc"           - name: OTEL_SERVICE_NAME             value: "hotrod"---apiVersion: v1kind: Servicemetadata:  name: example-hotrod  namespace: example-hotrodspec:  selector:    app: example-hotrod  ports:     - name: http       port: 8080       targetPort: 8080

    Мұнда:

    • OTEL_EXPORTER_OTLP_ENDPOINTOTLP форматында қосымшаның телеметрия деректерін (трассировкалар, метрикалар, логтар) жіберуге арналған эндпоинт. Jaeger бэкендіне қосылу үшін пайдаланылады.
    • OTEL_EXPORTER_OTLP_PROTOCOL — деректерді беру протоколы, әдепкі бойынша grpc.

    Осы параметрлер туралы толығырақ OpenTelemetry ресми құжаттамасында.

  3. Барлық қажетті ресурстарды жасау үшін құрылған манифесті кластерде қолданыңыз:

    kubectl apply -f example-hotrod.yaml

Осы манифест жұмысының нәтижесінде example-hotrod қосымшасы бар pod іске қосылады, ол сервистер арасындағы HTTP-сұрауларды симуляциялайды, трассировкаларды автоматты түрде генерациялайды және оларды OTLP арқылы Jaeger-ге жібереді.

2. Жүктемені генерациялаңыз және сұраулар трассировкаларын алыңыз

  1. port-forward арқылы HotROD қосымшасының веб-интерфейсін іске қосыңыз:

    kubectl -n example-hotrod port-forward svc/example-hotrod 8080:8080

    Kubernetes сіздің жергілікті компьютеріңіз бен кластердегі example-hotrod сервисі арасында қосылым жасайды.

  2. Браузерде HotROD веб-интерфейсіне өтіңіз:

    http://localhost:8080
  3. HotROD веб-интерфейсіндегі кез келген әрекет батырмасын басыңыз. Бұл Jaeger-ге автоматты түрде жіберілетін сұраулар тізбегі мен трассировкаларды генерациялайды.

  4. port-forward арқылы трассировкаларды көруге арналған Jaeger веб-интерфейсі Query UI-ді іске қосыңыз:

    kubectl -n jaeger port-forward svc/jaeger-query 8000:80
  5. Браузерде Query UI интерфейсіне өтіп, генерацияланған трассировкаларды қараңыз:

    http://localhost:8000

    Мұнда мыналар қолжетімді болады:

    • барлық трассировкалар тізімі;
    • сұрауды орындау ұзақтығы;
    • спандар (spans);
    • қателер мен тайм-ауттар.

Пайдаланылмайтын ресурстарды жойыңыз

Жұмыс істеп тұрған кластер тарификацияланады және есептеу ресурстарын тұтынады. Егер Jaeger аддонының жұмысын тексеру үшін жасалған Kubernetes ресурстары сізге енді қажет болмаса, оларды жойыңыз:

  1. example-hotrod атаулар кеңістігін және онымен байланысты ресурстарды жойыңыз:

    kubectl delete ns example-hotrod
  2. Тоқтатыңыз жасалған кластерді, оны кейінірек пайдалану үшін, немесе жойыңыз оны біржола.