mirror of https://github.com/istio/istio.io.git
39 lines
21 KiB
HTML
39 lines
21 KiB
HTML
<!doctype html><html lang=en itemscope itemtype=https://schema.org/WebPage><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=theme-color content="#466BB0"><meta name=title content="Distributed Tracing FAQ"><meta name=description content="Distributed Tracing Q & A."><meta name=keywords content="microservices,services,mesh"><meta property="og:title" content="Distributed Tracing FAQ"><meta property="og:type" content="website"><meta property="og:description" content="Distributed Tracing Q & A."><meta property="og:url" content="/v1.8/faq/distributed-tracing/"><meta property="og:image" content="/v1.8/img/istio-whitelogo-bluebackground-framed.svg"><meta property="og:image:alt" content="Istio Logo"><meta property="og:image:width" content="112"><meta property="og:image:height" content="150"><meta property="og:site_name" content="Istio"><meta name=twitter:card content="summary"><meta name=twitter:site content="@IstioMesh"><title>Istioldie 1.8 / Distributed Tracing FAQ</title><script async src="https://www.googletagmanager.com/gtag/js?id=UA-98480406-2"></script><script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}
|
||
gtag('js',new Date());gtag('config','UA-98480406-2');</script><link rel=alternate type=application/rss+xml title="Istio Blog" href=/v1.8/blog/feed.xml><link rel=alternate type=application/rss+xml title="Istio News" href=/v1.8/news/feed.xml><link rel=alternate type=application/rss+xml title="Istio Blog and News" href=/v1.8/feed.xml><link rel="shortcut icon" href=/v1.8/favicons/favicon.ico><link rel=apple-touch-icon href=/v1.8/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/v1.8/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/v1.8/favicons/favicon-32x32.png sizes=32x32><link rel=icon type=image/png href=/v1.8/favicons/android-36x36.png sizes=36x36><link rel=icon type=image/png href=/v1.8/favicons/android-48x48.png sizes=48x48><link rel=icon type=image/png href=/v1.8/favicons/android-72x72.png sizes=72x72><link rel=icon type=image/png href=/v1.8/favicons/android-96x96.png sizes=96xW96><link rel=icon type=image/png href=/v1.8/favicons/android-144x144.png sizes=144x144><link rel=icon type=image/png href=/v1.8/favicons/android-192x192.png sizes=192x192><link rel=manifest href=/v1.8/manifest.json><meta name=apple-mobile-web-app-title content="Istio"><meta name=application-name content="Istio"><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Work+Sans:400|Chivo:400|Work+Sans:500,300,600,300italic,400italic,500italic,600italic|Chivo:500,300,600,300italic,400italic,500italic,600italic"><link rel=stylesheet href=/v1.8/css/all.css><script src=/v1.8/js/themes_init.min.js></script></head><body class="language-unknown archive-site"><script>const branchName="release-1.8";const docTitle="Distributed Tracing FAQ";const iconFile="\/v1.8/img/icons.svg";const buttonCopy='Copy to clipboard';const buttonPrint='Print';const buttonDownload='Download';</script><script src="https://www.google.com/cse/brand?form=search-form" defer></script><script src=/v1.8/js/all.min.js data-manual defer></script><header><nav><a id=brand href=/v1.8/><span class=logo><svg viewBox="0 0 300 300"><circle cx="150" cy="150" r="146" stroke-width="2"/><polygon points="65 240 225 240 125 270"/><polygon points="65 230 125 220 125 110"/><polygon points="135 220 225 230 135 30"/></svg></span><span class=name>Istioldie 1.8</span></a><div id=hamburger><svg class="icon hamburger"><use xlink:href="/v1.8/img/icons.svg#hamburger"/></svg></div><div id=header-links><a title="Learn how to deploy, use, and operate Istio." href=/v1.8/docs/>Docs</a>
|
||
<a title="Posts about using Istio." href=/v1.8/blog/2020/>Blog<i class=dot data-prefix=/blog></i></a>
|
||
<a title="Timely news about the Istio project." href=/v1.8/news/>News<i class=dot data-prefix=/news></i></a>
|
||
<a class=current title="Frequently Asked Questions about Istio." href=/v1.8/faq/>FAQ</a>
|
||
<a title="Get a bit more in-depth info about the Istio project." href=/v1.8/about/>About</a><div class=menu><button id=gearDropdownButton class=menu-trigger title="Options and settings" aria-label="Options and Settings" aria-controls=gearDropdownContent><svg class="icon gear"><use xlink:href="/v1.8/img/icons.svg#gear"/></svg></button><div id=gearDropdownContent class=menu-content aria-labelledby=gearDropdownButton role=menu><a tabindex=-1 role=menuitem lang=en id=switch-lang-en class=active>English</a>
|
||
<a tabindex=-1 role=menuitem lang=zh id=switch-lang-zh>中文</a><div role=separator></div><a tabindex=-1 role=menuitem class=active id=light-theme-item>Light Theme</a>
|
||
<a tabindex=-1 role=menuitem id=dark-theme-item>Dark Theme</a><div role=separator></div><a tabindex=-1 role=menuitem id=syntax-coloring-item>Color Examples</a><div role=separator></div><h6>Other versions of this site</h6><a tabindex=-1 role=menuitem onclick="navigateToUrlOrRoot('https://istio.io/faq\/distributed-tracing\/');return false;">Current Release</a>
|
||
<a tabindex=-1 role=menuitem onclick="navigateToUrlOrRoot('https://preliminary.istio.io/faq\/distributed-tracing\/');return false;">Next Release</a>
|
||
<a tabindex=-1 role=menuitem href=https://istio.io/archive>Older Releases</a></div></div><button id=search-show title="Search this site" aria-label=Search><svg class="icon magnifier"><use xlink:href="/v1.8/img/icons.svg#magnifier"/></svg></button></div><form id=search-form name=cse role=search><input type=hidden name=cx value=002184991200833970123:iwwf17ikgf4>
|
||
<input type=hidden name=ie value=utf-8>
|
||
<input type=hidden name=hl value=en>
|
||
<input type=hidden id=search-page-url value=/v1.8/search>
|
||
<input id=search-textbox class=form-control name=q type=search aria-label="Search this site">
|
||
<button id=search-close title="Cancel search" type=reset aria-label="Cancel search"><svg class="icon cancel-x"><use xlink:href="/v1.8/img/icons.svg#cancel-x"/></svg></button></form></nav></header><div class=banner-container></div><main class="primary notoc"><div id=sidebar-container class="sidebar-container sidebar-offcanvas"><nav id=sidebar aria-label="Section Navigation"><div class=directory><div class=card><div id=header0 class=header title="Frequently Asked Questions about Istio."><svg class="icon faq"><use xlink:href="/v1.8/img/icons.svg#faq"/></svg>FAQ</div><div class="body default" aria-labelledby=header0><ul role=tree aria-expanded=true class=leaf-section aria-labelledby=header0><li role=none><a role=treeitem title="General Q & A." href=/v1.8/faq/general/>General</a></li><li role=none><a role=treeitem title="Setup Q & A." href=/v1.8/faq/setup/>Setup</a></li><li role=none><a role=treeitem title="Application Specific Q & A." href=/v1.8/faq/applications/>Applications</a></li><li role=none><a role=treeitem title="Security Q & A." href=/v1.8/faq/security/>Security</a></li><li role=none><a role=treeitem title="Metrics and Logs Q & A." href=/v1.8/faq/metrics-and-logs/>Metrics and Logs</a></li><li role=none><span role=treeitem class=current title="Distributed Tracing Q & A.">Distributed Tracing</span></li><li role=none><a role=treeitem title="Traffic Management Q & A." href=/v1.8/faq/traffic-management/>Traffic Management</a></li></ul></div></div></div></nav></div><div class=article-container><nav aria-label=Breadcrumb><ol><li><a href=/v1.8/ title="Connect, secure, control, and observe services.">Istio</a></li><li><a href=/v1.8/faq/ title="Frequently Asked Questions about Istio.">FAQ</a></li><li>Distributed Tracing</li></ol></nav><article aria-labelledby=title><div class=title-area><i class=title-icon><svg class="icon faq"><use xlink:href="/v1.8/img/icons.svg#faq"/></svg></i><div style=width:100%><h1 id=title>Distributed Tracing FAQ</h1></div></div><nav class="toc-inlined toc-forced"><hr><div class=directory role=directory><nav id=InlineTableOfContents><ol><li role=none aria-label="How does distributed tracing work with Istio?"><a href=#how-distributed-tracing-works>How does distributed tracing work with Istio?</a></li><li role=none aria-label="What is required for distributed tracing with Istio?"><a href=#how-to-support-tracing>What is required for distributed tracing with Istio?</a></li><li role=none aria-label="How does Envoy-based tracing work?"><a href=#how-envoy-based-tracing-works>How does Envoy-based tracing work?</a></li><li role=none aria-label="What is the minimal Istio configuration required for distributed tracing?"><a href=#minimal-requirements>What is the minimal Istio configuration required for distributed tracing?</a></li><li role=none aria-label="What generates the initial Zipkin (B3) HTTP headers?"><a href=#initial-zipkin-header>What generates the initial Zipkin (B3) HTTP headers?</a></li><li role=none aria-label="Why can't Istio propagate headers instead of the application?"><a href=#istio-copy-headers>Why can't Istio propagate headers instead of the application?</a></li><li role=none aria-label="Why are my requests not being traced?"><a href=#no-tracing>Why are my requests not being traced?</a></li><li role=none aria-label="How can I control the volume of traces?"><a href=#control-sampling>How can I control the volume of traces?</a></li><li role=none aria-label="How do I disable tracing?"><a href=#disabling-tracing>How do I disable tracing?</a></li><li role=none aria-label="Can Istio send tracing information to an external Zipkin-compatible backend?"><a href=#external-zipkin>Can Istio send tracing information to an external Zipkin-compatible backend?</a></li><li role=none aria-label="Does Istio support request tracing for vert.x event bus messages?"><a href=#vert.x>Does Istio support request tracing for vert.x event bus messages?</a></li></ol></nav></div><hr></nav><div class=faq><h5 id=how-distributed-tracing-works class=question>How does distributed tracing work with Istio?</h5><div class=answer><p>Istio integrates with distributed tracing systems using <a href=#how-envoy-based-tracing-works>Envoy-based</a> tracing. With Envoy-based tracing integration, <a href=#istio-copy-headers>applications are responsible for forwarding tracing headers</a> for subsequent outgoing requests.</p><p>You can find additional information in the Istio Distributed Tracing (<a href=/v1.8/docs/tasks/observability/distributed-tracing/jaeger/>Jaeger</a>, <a href=/v1.8/docs/tasks/observability/distributed-tracing/lightstep/>Lightstep</a>, <a href=/v1.8/docs/tasks/observability/distributed-tracing/zipkin/>Zipkin</a>) Tasks and
|
||
in the <a href=https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/observability/tracing>Envoy tracing docs</a>.</p></div><h5 id=how-to-support-tracing class=question>What is required for distributed tracing with Istio?</h5><div class=answer><p>Istio enables reporting of trace spans for workload-to-workload communications within a mesh. However, in order for various trace spans to be stitched together for a complete view of the traffic flow, applications must propagate the trace context between incoming and outgoing requests.</p><p>In particular, Istio relies on applications to <a href=https://github.com/openzipkin/b3-propagation>propagate the B3 trace headers</a>, as well as the Envoy-generated request ID. These headers include:</p><ul><li><code>x-request-id</code></li><li><code>x-b3-traceid</code></li><li><code>x-b3-spanid</code></li><li><code>x-b3-parentspanid</code></li><li><code>x-b3-sampled</code></li><li><code>x-b3-flags</code></li><li><code>b3</code></li></ul><p>If you are using Lightstep, you will also need to forward the following headers:</p><ul><li><code>x-ot-span-context</code></li></ul><p>Header propagation may be accomplished through client libraries, such as <a href=https://zipkin.io/pages/tracers_instrumentation.html>Zipkin</a> or <a href=https://github.com/jaegertracing/jaeger-client-java/tree/master/jaeger-core#b3-propagation>Jaeger</a>. It may also be accomplished manually, as documented in the <a href=/v1.8/docs/tasks/observability/distributed-tracing/overview/#trace-context-propagation>Distributed Tracing Task</a>.</p></div><h5 id=how-envoy-based-tracing-works class=question>How does Envoy-based tracing work?</h5><div class=answer><p>For Envoy-based tracing integrations, Envoy (the sidecar proxy) sends tracing information directly to tracing backends on behalf of the applications being proxied.</p><p>Envoy:</p><ul><li>generates request IDs and trace headers (i.e. <code>X-B3-TraceId</code>) for requests as they flow through the proxy</li><li>generates trace spans for each request based on request and response metadata (i.e. response time)</li><li>sends the generated trace spans to the tracing backends</li><li>forwards the trace headers to the proxied application</li></ul><p>Istio supports the Envoy-based integrations of <a href=/v1.8/docs/tasks/observability/distributed-tracing/lightstep/>Lightstep</a> and <a href=/v1.8/docs/tasks/observability/distributed-tracing/zipkin/>Zipkin</a>, as well as all Zipkin API-compatible backends, including <a href=/v1.8/docs/tasks/observability/distributed-tracing/jaeger/>Jaeger</a>.</p></div><h5 id=minimal-requirements class=question>What is the minimal Istio configuration required for distributed tracing?</h5><div class=answer><p>The <a href=https://archive.istio.io/1.4/docs/setup/install/helm/>Istio minimal profile</a> with tracing enabled is all that is required for Istio to integrate with Zipkin-compatible backends.</p></div><h5 id=initial-zipkin-header class=question>What generates the initial Zipkin (B3) HTTP headers?</h5><div class=answer><p>The Istio sidecar proxy (Envoy) generates the initial <a href=https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/headers#x-request-id>headers</a>, if they are not provided by the request.</p></div><h5 id=istio-copy-headers class=question>Why can't Istio propagate headers instead of the application?</h5><div class=answer><p>Although an Istio sidecar will process both inbound and outbound requests for an associated application instance, it has no implicit way of correlating
|
||
the outbound requests to the inbound request that caused them. The only way this correlation can be achieved is if the application
|
||
propagates relevant information (i.e. headers) from the inbound request to the outbound requests. Header propagation may be accomplished through client
|
||
libraries or manually. Further discussion is provided in <a href=/v1.8/faq/distributed-tracing/#how-to-support-tracing>What is required for distributed tracing with Istio?</a>.</p></div><h5 id=no-tracing class=question>Why are my requests not being traced?</h5><div class=answer><p>Since Istio 1.0.3, the sampling rate for tracing has been reduced to 1% in the <code>default</code>
|
||
<a href=/v1.8/docs/setup/additional-setup/config-profiles/>configuration profile</a>.
|
||
This means that only 1 out of 100 trace instances captured by Istio will be reported to the tracing backend.
|
||
The sampling rate in the <code>demo</code> profile is still set to 100%. See
|
||
<a href=/v1.8/docs/tasks/observability/distributed-tracing/configurability/#trace-sampling>this section</a>
|
||
for more information on how to set the sampling rate.</p><p>If you still do not see any trace data, please confirm that your ports conform to the Istio <a href=/v1.8/faq/traffic-management/#naming-port-convention>port naming conventions</a> and that the appropriate container port is exposed (via pod spec, for example) to enable
|
||
traffic capture by the sidecar proxy (Envoy).</p><p>If you only see trace data associated with the egress proxy, but not the ingress proxy, it may still be related to the Istio <a href=/v1.8/faq/traffic-management/#naming-port-convention>port naming conventions</a>. Starting with <a href=/v1.8/news/releases/1.3.x/announcing-1.3/#intelligent-protocol-detection-experimental>Istio 1.3</a> the protocol for <strong>outbound</strong> traffic is automatically detected.</p></div><h5 id=control-sampling class=question>How can I control the volume of traces?</h5><div class=answer><p>Istio, via Envoy, currently supports a percentage-based sampling strategy for trace generation.
|
||
Please see <a href=/v1.8/docs/tasks/observability/distributed-tracing/configurability/#trace-sampling>this section</a> for more information on how to set this sampling rate.</p></div><h5 id=disabling-tracing class=question>How do I disable tracing?</h5><div class=answer><p>If you already have installed Istio with tracing enabled, you can disable it as follows:</p><pre><code class=language-plain data-expandlinks=true data-repo=istio># Fill <istio namespace> with the namespace of your istio mesh.Ex: istio-system
|
||
TRACING_POD=`kubectl get po -n <istio namespace> | grep istio-tracing | awk '{print $1}'`
|
||
$ kubectl delete pod $TRACING_POD -n <istio namespace>
|
||
$ kubectl delete services tracing zipkin -n <istio namespace>
|
||
# Now, manually remove instances of trace_zipkin_url from the file and save it.
|
||
</code></pre><p>Then follow the steps of the <a href=/v1.8/docs/tasks/observability/distributed-tracing/zipkin/#cleanup>cleanup section of the Distributed Tracing task</a>.</p><p>If you don’t want tracing functionality at all, then <a href=/v1.8/docs/tasks/observability/distributed-tracing/zipkin/#before-you-begin>disable tracing</a> when installing Istio.</p></div><h5 id=external-zipkin class=question>Can Istio send tracing information to an external Zipkin-compatible backend?</h5><div class=answer><p>To do so, you must you use the fully qualified domain name of the Zipkin-compatible instance. For example:
|
||
<code>zipkin.mynamespace.svc.cluster.local</code>.</p></div><h5 id=vert.x class=question>Does Istio support request tracing for vert.x event bus messages?</h5><div class=answer><p>Istio does not currently provide support for pub/sub and event bus protocols. Any use of those technologies is best-effort and subject to breakage.</p></div></div></article><nav class=pagenav><div class=left><a title="Metrics and Logs Q & A." href=/v1.8/faq/metrics-and-logs/><svg class="icon left-arrow"><use xlink:href="/v1.8/img/icons.svg#left-arrow"/></svg>Metrics and Logs</a></div><div class=right><a title="Traffic Management Q & A." href=/v1.8/faq/traffic-management/>Traffic Management<svg class="icon right-arrow"><use xlink:href="/v1.8/img/icons.svg#right-arrow"/></svg></a></div></nav><div id=endnotes-container aria-hidden=true><h2>Links</h2><ol id=endnotes></ol></div></div></main><footer><div class=user-links><a class=channel title="Go download Istio 1.8.3 now" href=/v1.8/docs/setup/getting-started/#download aria-label="Download Istio"><span>download</span><svg class="icon download"><use xlink:href="/v1.8/img/icons.svg#download"/></svg>
|
||
</a><a class=channel title="Join the Istio discussion board to participate in discussions and get help troubleshooting problems" href=https://discuss.istio.io aria-label="Istio discussion board"><span>discuss</span><svg class="icon discourse"><use xlink:href="/v1.8/img/icons.svg#discourse"/></svg></a>
|
||
<a class=channel title="Stack Overflow is where you can ask questions and find curated answers on deploying, configuring, and using Istio" href=https://stackoverflow.com/questions/tagged/istio aria-label="Stack Overflow"><span>stack overflow</span><svg class="icon stackoverflow"><use xlink:href="/v1.8/img/icons.svg#stackoverflow"/></svg></a>
|
||
<a class=channel title="Interactively discuss issues with the Istio community on Slack" href=https://slack.istio.io aria-label=slack><span>slack</span><svg class="icon slack"><use xlink:href="/v1.8/img/icons.svg#slack"/></svg></a>
|
||
<a class=channel title="Follow us on Twitter to get the latest news" href=https://twitter.com/IstioMesh aria-label=Twitter><span>twitter</span><svg class="icon twitter"><use xlink:href="/v1.8/img/icons.svg#twitter"/></svg></a><div class=tag>for everyone</div></div><div class=info><p class=copyright>Istio Archive
|
||
1.8.3<br>© 2020 Istio Authors, <a href=https://policies.google.com/privacy>Privacy Policy</a><br>Archived on February 9, 2021</p></div><div class=dev-links><a class=channel title="GitHub is where development takes place on Istio code" href=https://github.com/istio/community aria-label=GitHub><span>github</span><svg class="icon github"><use xlink:href="/v1.8/img/icons.svg#github"/></svg></a>
|
||
<a class=channel title="Access our team drive if you'd like to take a look at the Istio technical design documents" href=https://groups.google.com/forum/#!forum/istio-team-drive-access aria-label="team drive"><span>drive</span><svg class="icon drive"><use xlink:href="/v1.8/img/icons.svg#drive"/></svg></a>
|
||
<a class=channel title="If you'd like to contribute to the Istio project, consider participating in our working groups" href=https://github.com/istio/community/blob/master/WORKING-GROUPS.md aria-label="working groups"><span>working groups</span><svg class="icon working-groups"><use xlink:href="/v1.8/img/icons.svg#working-groups"/></svg></a><div class=tag>for developers</div></div></footer><div id=scroll-to-top-container aria-hidden=true><button id=scroll-to-top title="Back to top"><svg class="icon top"><use xlink:href="/v1.8/img/icons.svg#top"/></svg></button></div></body></html> |