我做到了
helm install ibm-charts/ibm-istio --name=istio --namespace istio-system --set grafana.enabled=true,kiali.enabled=true,tracing.enabled=true
我有很多服务,例如kubectl get svc
,并希望在Jaegar下拉列表中看到一些有关它们的信息,但我只看到与Istio相关的信息。我的服务可以正确显示在Grafana等工具中。
要在Jaegar中查看有关它们的信息,我还需要配置一些其他东西吗?
答案 0 :(得分:2)
下面是一个可以帮助您进行跟踪的python代码段。正如@rinormaloku所说,您需要转发上述标头以获取跨度。
import sys
from flask import Flask, abort, request
import requests
app = Flask(__name__)
def getForwardHeaders(request):
headers = {}
incoming_headers = [ 'x-request-id',
'x-b3-traceid',
'x-b3-spanid',
'x-b3-parentspanid',
'x-b3-sampled',
'x-b3-flags',
'x-ot-span-context'
]
for ihdr in incoming_headers:
val = request.headers.get(ihdr)
if val is not None:
headers[ihdr] = val
print("incoming: "+ihdr+":"+val, file=sys.stderr)
return headers
@app.route("/")
def f1():
tracking_headers = getForwardHeaders(request)
return requests.get('http://paytm-svc', headers=tracking_headers).content
上面的代码片段正在kubernetes中的istio上工作。
如果您仍然遇到其他错误,请告诉我。
答案 1 :(得分:1)
需要对应用程序进行检测以传递以下标头:
x-request-id
x-b3-traceid
x-b3-spanid
x-b3-parentspanid
x-b3-sampled
x-b3-flags
x-ot-span-context
这对于大多数框架都是自动的,可以在OpenTracing Contrib repository中找到实现。除此之外,要使Pods and Services成为服务网格的一部分,它们需要满足here指定的要求。特别注意命名端口。
但是,由于没有任何痕迹,因此设置jaeger似乎失败,有时会从群集中卸载istio并重新安装可解决此问题。