- Установка jaeger
kubectl create -f https://raw.githubusercontent.com/jaegertracing/jaeger-kubernetes/master/all-in-one/jaeger-all-in-one-template.yml
- Развертывание приложений
kubectl apply -f manifests.yaml
- Убеждаемся, что всё корректно разложилось:
kubectl get po --all-namespaces
- Определяем IP сервиса api-gateway и делаем тестовые запросы:
Получение автомобилей:
minikube ssh -- curl -i $(kubectl get po -n api-gateway -o jsonpath='{.items[*].status.podIP}'):8090/cars
Покупка:
minikube ssh -- "curl -i -d '{\"name\": \"chevy s-10\"}' $(kubectl get po -n api-gateway -o jsonpath='{.items[*].status.podIP}'):8090/process"
- Откроем интерфейс jaeger
minikube service jaeger-query
- Получите информацию:
- Как происходит запрос /cars? Какие сервисы затрагивает и в какой последовательности?
- Как происходит запрос /process? Какие сервисы затрагивает? Есть ли параллельные вызовы?
- Задеплойте вторую версию:
kubectl apply -f manifestsv2.yaml
- Дождитесь Running:
kubectl get po --all-namespaces
-
Выполните запросы из пункта 4 (несколько раз до получения 500 ошибки).
-
С помощью jaeger UI получите информацию в чем root cause ошибки.