DAY29 - 使用 Istio 的 Jaeger 追踪在各个 Service 穿梭的请求

本文章同时发布於:

文章为自己的经验与夥伴整理的内容,设计没有标准答案,如有可以改进的地方,请告诉我,我会尽我所能的修改,谢谢大家~

大家好,今天要介绍 Istio 的 Jaeger,Jaeger 可以对请求流量进行跟踪,是微服务中复杂请求的追踪方案

安装

启动 K8s 集群,步骤不再赘述,详细介绍可以看DAY23

要注意的是有利用$ kubectl apply -f安装了PrometheusGrafanaGrafanaJaeger

$ minikube start --kubernetes-version v1.16.0
$ istioctl install --set profile=demo
$ kubectl label namespace default istio-injection=enabled
$ kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.7/samples/addons/jaeger.yaml
$ kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.7/samples/addons/prometheus.yaml
$ kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.7/samples/addons/grafana.yaml
$ kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.7/samples/addons/Grafana.yaml
$ cd DAY29/helm-digimon
$ helm install . --generate-name
$ minikube tunnel

在 Istio 预设值values.pilot.traceSampling是设为 1%,意思是 100 个 requests 采样一次,所以我们必须打开网页并将 Create request 复制起来,利用 bash 打 100 次,进入web.backend.com之後开启开发者模式

并以 for 回圈请求 100 次

$ for i in $(seq 1 100); do {复制的cURL} done

以我来说会如下:

$ for i in $(seq 1 100); do curl 'http://api.backend.com/digimon.Digimon/Create' \
  -H 'Connection: keep-alive' \
  -H 'Accept: application/grpc-web-text' \
  -H 'X-User-Agent: grpc-web-javascript/0.1' \
  -H 'X-Grpc-Web: 1' \
  -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36' \
  -H 'Content-Type: application/grpc-web-text' \
  -H 'Origin: http://web.backend.com' \
  -H 'Referer: http://web.backend.com/' \
  -H 'Accept-Language: en-US,en;q=0.9,zh-TW;q=0.8,zh;q=0.7' \
  --data-binary 'AAAAAAgKBkFndW1vbg==' \
  --compressed \
  --insecure; done

开启 Jaeger

$ istioctl dashboard jaeger

选取istio-ingressgateway之後点选搜寻,会发现总共有 100 个追踪,

点选其中一个追踪,会列出此请求在经过了哪些 service,因为 Create request 本身没有经过不同的 service 所以 dashboard 只显示了一个 service,点选 service 就会在显示此 request 在此 service 上的 tag 状态,

以官方的例子,如果是众多 services,request 在不同 service 走动花费的时间就会如下显示,

参考


<<:  【第 29 个第一次】 没创业也该看看的最小可行性产品 MVP 概念,是人生哲学。

>>:  [Day29] 部署网站 - 我与 ASP.NET Core 3 的 30天

推论统计暖身 - 中央极限定理

在开始正式进入推论统计之前,我们需要熟悉两个基本观念,一个是中央极限定理,一个是假设检定。 这些观念...

【D3】建立MySQL资料库

前言 首先把之前做的资料库格式搬家,也就是取得每日的股票之交易资讯进入资料库,首先要做的就是建立资料...

卡夫卡的藏书阁【Book13】- KafkaJS 生产者 1

“Slept, awoke, slept, awoke, miserable life.” ― f...

[Day 18] 资料产品生命周期管理-自动决策

如同前面所说,资料模型需要运用到实际环境中才会发挥价值 Initiation 延续之前辅助决策的初始...

Day 4 - 安全签章: 讯息内文杂凑

图 4-1: 各栏位资料范例 安全签章的要件,我们已经拿到 Nonce 及 HashId 了,接下...