Jaeger пайдалану
Kubernetes кластерлеріндегі Jaeger аддонының жұмысын HotROD пайдалану мысалында зерттеңіз — Jaeger үшін ресми демо-қосымша. HotROD бірнеше микросервистерден тұрады, олардың көмегімен сіз OpenTelemetry SDK арқылы Jaeger-де сұраулар трассировкаларын генерациялап, көре аласыз.
- Жасаңыз Kubernetes кластерін өзекті нұсқада, егер бұл әлі жасалмаған болса.
- Егер бұл әлі жасалмаған болса,
kubectlорнатып, баптаңыз. kubectlкөмегімен кластерге қосылыңыз.- Егер бұл әлі жасалмаған болса, Jaeger аддонын орнатыңыз.
-
example-hotrodсынақ қосымшасының ресурстары орналасатынexample-hotrodатаулар кеңістігін жасаңыз:kubectl create ns example-hotrod -
example-hotrodқосымшасы үшін манифест файлын және қосымшаға қатынау үшін сервисті жасаңыз.apiVersion: apps/v1kind: Deploymentmetadata:name: example-hotrodnamespace: example-hotrodspec:replicas: 1selector:matchLabels:app: example-hotrodtemplate:metadata:labels:app: example-hotrodspec:containers:- name: hotrodimage: jaegertracing/example-hotrod:latestports:- containerPort: 8080env:- name: OTEL_EXPORTER_OTLP_ENDPOINTvalue: "http://jaeger-collector.jaeger.svc.cluster.local:4317"- name: OTEL_EXPORTER_OTLP_PROTOCOLvalue: "grpc"- name: OTEL_SERVICE_NAMEvalue: "hotrod"---apiVersion: v1kind: Servicemetadata:name: example-hotrodnamespace: example-hotrodspec:selector:app: example-hotrodports:- name: httpport: 8080targetPort: 8080Мұнда:
OTEL_EXPORTER_OTLP_ENDPOINT— OTLP форматында қосымшаның телеметрия деректерін (трассировкалар, метрикалар, логтар) жіберуге арналған эндпоинт. Jaeger бэкендіне қосылу үшін пайдаланылады.OTEL_EXPORTER_OTLP_PROTOCOL— деректерді беру протоколы, әдепкі бойыншаgrpc.
Осы параметрлер туралы толығырақ OpenTelemetry ресми құжаттамасында.
-
Барлық қажетті ресурстарды жасау үшін құрылған манифесті кластерде қолданыңыз:
kubectl apply -f example-hotrod.yaml
Осы манифест жұмысының нәтижесінде example-hotrod қосымшасы бар pod іске қосылады, ол сервистер арасындағы HTTP-сұрауларды симуляциялайды, трассировкаларды автоматты түрде генерациялайды және оларды OTLP арқылы Jaeger-ге жібереді.
-
port-forwardарқылы HotROD қосымшасының веб-интерфейсін іске қосыңыз:kubectl -n example-hotrod port-forward svc/example-hotrod 8080:8080Kubernetes сіздің жергілікті компьютеріңіз бен кластердегі
example-hotrodсервисі арасында қосылым жасайды. -
Браузерде HotROD веб-интерфейсіне өтіңіз:
http://localhost:8080 -
HotROD веб-интерфейсіндегі кез келген әрекет батырмасын басыңыз. Бұл Jaeger-ге автоматты түрде жіберілетін сұраулар тізбегі мен трассировкаларды генерациялайды.
-
port-forwardарқылы трассировкаларды көруге арналған Jaeger веб-интерфейсі Query UI-ді іске қосыңыз:kubectl -n jaeger port-forward svc/jaeger-query 8000:80 -
Браузерде Query UI интерфейсіне өтіп, генерацияланған трассировкаларды қараңыз:
http://localhost:8000Мұнда мыналар қолжетімді болады:
- барлық трассировкалар тізімі;
- сұрауды орындау ұзақтығы;
- спандар (spans);
- қателер мен тайм-ауттар.
Жұмыс істеп тұрған кластер тарификацияланады және есептеу ресурстарын тұтынады. Егер Jaeger аддонының жұмысын тексеру үшін жасалған Kubernetes ресурстары сізге енді қажет болмаса, оларды жойыңыз:
-
example-hotrodатаулар кеңістігін және онымен байланысты ресурстарды жойыңыз:kubectl delete ns example-hotrod -
Тоқтатыңыз жасалған кластерді, оны кейінірек пайдалану үшін, немесе жойыңыз оны біржола.