From 76e9f6d64dffbdfe09960fa7025d6bd8d000c8b6 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Tue, 29 Aug 2017 10:27:06 +0200 Subject: [PATCH] Sync docs from master to gh-pages --- antrun/build-main.xml | 18 + checkstyle-cachefile | 2 + checkstyle-checker.xml | 20 + checkstyle-header.txt | 202 ++ checkstyle-result.xml | 3 + css/highlight.css | 35 + css/manual-multipage.css | 9 + css/manual-singlepage.css | 6 + css/manual.css | 344 ++ images/background.png | Bin 0 -> 18255 bytes images/caution.png | Bin 0 -> 2099 bytes images/important.png | Bin 0 -> 2085 bytes images/logo.png | Bin 0 -> 4387 bytes images/note.png | Bin 0 -> 2257 bytes images/sts_exception.png | Bin 0 -> 66176 bytes images/tip.png | Bin 0 -> 931 bytes images/warning.png | Bin 0 -> 2130 bytes images/web-selected.png | Bin 0 -> 182685 bytes multi/_additional_resources.html | 3 + multi/_customizations.html | 149 + multi/_features.html | 22 + multi/_instrumentation.html | 18 + multi/_integrations.html | 160 + multi/_managing_spans_with_annotations.html | 47 + multi/_metrics.html | 7 + multi/_naming_spans.html | 27 + multi/_running_examples.html | 3 + multi/_sampling.html | 26 + multi/_sending_spans_to_zipkin.html | 7 + multi/_span_data_as_messages.html | 68 + multi/_span_lifecycle.html | 63 + multi/css/highlight.css | 35 + multi/css/manual-multipage.css | 9 + multi/css/manual-singlepage.css | 6 + multi/css/manual.css | 344 ++ multi/images/background.png | Bin 0 -> 18255 bytes multi/images/caution.png | Bin 0 -> 2099 bytes multi/images/important.png | Bin 0 -> 2085 bytes multi/images/logo.png | Bin 0 -> 4387 bytes multi/images/note.png | Bin 0 -> 2257 bytes multi/images/sts_exception.png | Bin 0 -> 66176 bytes multi/images/tip.png | Bin 0 -> 931 bytes multi/images/warning.png | Bin 0 -> 2130 bytes multi/images/web-selected.png | Bin 0 -> 182685 bytes multi/pr01.html | 3 + multi/spring-cloud-sleuth.html | 297 ++ single/css/highlight.css | 35 + single/css/manual-multipage.css | 9 + single/css/manual-singlepage.css | 6 + single/css/manual.css | 344 ++ single/images/background.png | Bin 0 -> 18255 bytes single/images/caution.png | Bin 0 -> 2099 bytes single/images/important.png | Bin 0 -> 2085 bytes single/images/logo.png | Bin 0 -> 4387 bytes single/images/note.png | Bin 0 -> 2257 bytes single/images/sts_exception.png | Bin 0 -> 66176 bytes single/images/tip.png | Bin 0 -> 931 bytes single/images/warning.png | Bin 0 -> 2130 bytes single/images/web-selected.png | Bin 0 -> 182685 bytes single/spring-cloud-sleuth.html | 858 +++++ spring-cloud-sleuth.html | 3174 +------------------ spring-cloud-sleuth.xml | 1808 +++++++++++ 62 files changed, 5074 insertions(+), 3093 deletions(-) create mode 100644 antrun/build-main.xml create mode 100644 checkstyle-cachefile create mode 100644 checkstyle-checker.xml create mode 100644 checkstyle-header.txt create mode 100644 checkstyle-result.xml create mode 100644 css/highlight.css create mode 100644 css/manual-multipage.css create mode 100644 css/manual-singlepage.css create mode 100644 css/manual.css create mode 100644 images/background.png create mode 100644 images/caution.png create mode 100644 images/important.png create mode 100644 images/logo.png create mode 100644 images/note.png create mode 100644 images/sts_exception.png create mode 100644 images/tip.png create mode 100644 images/warning.png create mode 100644 images/web-selected.png create mode 100644 multi/_additional_resources.html create mode 100644 multi/_customizations.html create mode 100644 multi/_features.html create mode 100644 multi/_instrumentation.html create mode 100644 multi/_integrations.html create mode 100644 multi/_managing_spans_with_annotations.html create mode 100644 multi/_metrics.html create mode 100644 multi/_naming_spans.html create mode 100644 multi/_running_examples.html create mode 100644 multi/_sampling.html create mode 100644 multi/_sending_spans_to_zipkin.html create mode 100644 multi/_span_data_as_messages.html create mode 100644 multi/_span_lifecycle.html create mode 100644 multi/css/highlight.css create mode 100644 multi/css/manual-multipage.css create mode 100644 multi/css/manual-singlepage.css create mode 100644 multi/css/manual.css create mode 100644 multi/images/background.png create mode 100644 multi/images/caution.png create mode 100644 multi/images/important.png create mode 100644 multi/images/logo.png create mode 100644 multi/images/note.png create mode 100644 multi/images/sts_exception.png create mode 100644 multi/images/tip.png create mode 100644 multi/images/warning.png create mode 100644 multi/images/web-selected.png create mode 100644 multi/pr01.html create mode 100644 multi/spring-cloud-sleuth.html create mode 100644 single/css/highlight.css create mode 100644 single/css/manual-multipage.css create mode 100644 single/css/manual-singlepage.css create mode 100644 single/css/manual.css create mode 100644 single/images/background.png create mode 100644 single/images/caution.png create mode 100644 single/images/important.png create mode 100644 single/images/logo.png create mode 100644 single/images/note.png create mode 100644 single/images/sts_exception.png create mode 100644 single/images/tip.png create mode 100644 single/images/warning.png create mode 100644 single/images/web-selected.png create mode 100644 single/spring-cloud-sleuth.html create mode 100644 spring-cloud-sleuth.xml diff --git a/antrun/build-main.xml b/antrun/build-main.xml new file mode 100644 index 000000000..af782ece6 --- /dev/null +++ b/antrun/build-main.xml @@ -0,0 +1,18 @@ + + + + :nofooter: +:linkcss: +:stylesdir: css +:stylesheet: manual-singlepage.css + += {docs-main} + +{spring-cloud-version} + +== Pick The Documentation Option + +- link:single/{docs-main}.html[Single HTML] +- link:multi/{docs-main}.html[Multi HTML] + + \ No newline at end of file diff --git a/checkstyle-cachefile b/checkstyle-cachefile new file mode 100644 index 000000000..c203c9d25 --- /dev/null +++ b/checkstyle-cachefile @@ -0,0 +1,2 @@ +#Tue Aug 29 10:25:58 CEST 2017 +configuration*?=AAF64E6F43093085564EA8A1303772CC40B65829 diff --git a/checkstyle-checker.xml b/checkstyle-checker.xml new file mode 100644 index 000000000..1ab895ffb --- /dev/null +++ b/checkstyle-checker.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/checkstyle-header.txt b/checkstyle-header.txt new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/checkstyle-header.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/checkstyle-result.xml b/checkstyle-result.xml new file mode 100644 index 000000000..472022e45 --- /dev/null +++ b/checkstyle-result.xml @@ -0,0 +1,3 @@ + + + diff --git a/css/highlight.css b/css/highlight.css new file mode 100644 index 000000000..ffefef72d --- /dev/null +++ b/css/highlight.css @@ -0,0 +1,35 @@ +/* + code highlight CSS resemblign the Eclipse IDE default color schema + @author Costin Leau +*/ + +.hl-keyword { + color: #7F0055; + font-weight: bold; +} + +.hl-comment { + color: #3F5F5F; + font-style: italic; +} + +.hl-multiline-comment { + color: #3F5FBF; + font-style: italic; +} + +.hl-tag { + color: #3F7F7F; +} + +.hl-attribute { + color: #7F007F; +} + +.hl-value { + color: #2A00FF; +} + +.hl-string { + color: #2A00FF; +} \ No newline at end of file diff --git a/css/manual-multipage.css b/css/manual-multipage.css new file mode 100644 index 000000000..0c484531c --- /dev/null +++ b/css/manual-multipage.css @@ -0,0 +1,9 @@ +@IMPORT url("manual.css"); + +body.firstpage { + background: url("../images/background.png") no-repeat center top; +} + +div.part h1 { + border-top: none; +} diff --git a/css/manual-singlepage.css b/css/manual-singlepage.css new file mode 100644 index 000000000..4a7fd1400 --- /dev/null +++ b/css/manual-singlepage.css @@ -0,0 +1,6 @@ +@IMPORT url("manual.css"); + +body { + background: url("../images/background.png") no-repeat center top; +} + diff --git a/css/manual.css b/css/manual.css new file mode 100644 index 000000000..0ecbe2e88 --- /dev/null +++ b/css/manual.css @@ -0,0 +1,344 @@ +@IMPORT url("highlight.css"); + +html { + padding: 0pt; + margin: 0pt; +} + +body { + color: #333333; + margin: 15px 30px; + font-family: Helvetica, Arial, Freesans, Clean, Sans-serif; + line-height: 1.6; + -webkit-font-smoothing: antialiased; +} + +code { + font-size: 16px; + font-family: Consolas, "Liberation Mono", Courier, monospace; +} + +:not(a)>code { + color: #6D180B; +} + +:not(pre)>code { + background-color: #F2F2F2; + border: 1px solid #CCCCCC; + border-radius: 4px; + padding: 1px 3px 0; + text-shadow: none; + white-space: nowrap; +} + +body>*:first-child { + margin-top: 0 !important; +} + +div { + margin: 0pt; +} + +hr { + border: 1px solid #CCCCCC; + background: #CCCCCC; +} + +h1,h2,h3,h4,h5,h6 { + color: #000000; + cursor: text; + font-weight: bold; + margin: 30px 0 10px; + padding: 0; +} + +h1,h2,h3 { + margin: 40px 0 10px; +} + +h1 { + margin: 70px 0 30px; + padding-top: 20px; +} + +div.part h1 { + border-top: 1px dotted #CCCCCC; +} + +h1,h1 code { + font-size: 32px; +} + +h2,h2 code { + font-size: 24px; +} + +h3,h3 code { + font-size: 20px; +} + +h4,h1 code,h5,h5 code,h6,h6 code { + font-size: 18px; +} + +div.book,div.chapter,div.appendix,div.part,div.preface { + min-width: 300px; + max-width: 1200px; + margin: 0 auto; +} + +p.releaseinfo { + font-weight: bold; + margin-bottom: 40px; + margin-top: 40px; +} + +div.authorgroup { + line-height: 1; +} + +p.copyright { + line-height: 1; + margin-bottom: -5px; +} + +.legalnotice p { + font-style: italic; + font-size: 14px; + line-height: 1; +} + +div.titlepage+p,div.titlepage+p { + margin-top: 0; +} + +pre { + line-height: 1.0; + color: black; +} + +a { + color: #4183C4; + text-decoration: none; +} + +p { + margin: 15px 0; + text-align: left; +} + +ul,ol { + padding-left: 30px; +} + +li p { + margin: 0; +} + +div.table { + margin: 1em; + padding: 0.5em; + text-align: center; +} + +div.table table,div.informaltable table { + display: table; + width: 100%; +} + +div.table td { + padding-left: 7px; + padding-right: 7px; +} + +.sidebar { + line-height: 1.4; + padding: 0 20px; + background-color: #F8F8F8; + border: 1px solid #CCCCCC; + border-radius: 3px 3px 3px 3px; +} + +.sidebar p.title { + color: #6D180B; +} + +pre.programlisting,pre.screen { + font-size: 15px; + padding: 6px 10px; + background-color: #F8F8F8; + border: 1px solid #CCCCCC; + border-radius: 3px 3px 3px 3px; + clear: both; + overflow: auto; + line-height: 1.4; + font-family: Consolas, "Liberation Mono", Courier, monospace; +} + +table { + border-collapse: collapse; + border-spacing: 0; + border: 1px solid #DDDDDD !important; + border-radius: 4px !important; + border-collapse: separate !important; + line-height: 1.6; +} + +table thead { + background: #F5F5F5; +} + +table tr { + border: none; + border-bottom: none; +} + +table th { + font-weight: bold; +} + +table th,table td { + border: none !important; + padding: 6px 13px; +} + +table tr:nth-child(2n) { + background-color: #F8F8F8; +} + +td p { + margin: 0 0 15px 0; +} + +div.table-contents td p { + margin: 0; +} + +div.important *,div.note *,div.tip *,div.warning *,div.navheader *,div.navfooter *,div.calloutlist * + { + border: none !important; + background: none !important; + margin: 0; +} + +div.important p,div.note p,div.tip p,div.warning p { + color: #6F6F6F; + line-height: 1.6; +} + +div.important code,div.note code,div.tip code,div.warning code { + background-color: #F2F2F2 !important; + border: 1px solid #CCCCCC !important; + border-radius: 4px !important; + padding: 1px 3px 0 !important; + text-shadow: none !important; + white-space: nowrap !important; +} + +.note th,.tip th,.warning th { + display: none; +} + +.note tr:first-child td,.tip tr:first-child td,.warning tr:first-child td + { + border-right: 1px solid #CCCCCC !important; + padding-top: 10px; +} + +div.calloutlist p,div.calloutlist td { + padding: 0; + margin: 0; +} + +div.calloutlist>table>tbody>tr>td:first-child { + padding-left: 10px; + width: 30px !important; +} + +div.important,div.note,div.tip,div.warning { + margin-left: 0px !important; + margin-right: 20px !important; + margin-top: 20px; + margin-bottom: 20px; + padding-top: 10px; + padding-bottom: 10px; +} + +div.toc { + line-height: 1.2; +} + +dl,dt { + margin-top: 1px; + margin-bottom: 0; +} + +div.toc>dl>dt { + font-size: 32px; + font-weight: bold; + margin: 30px 0 10px 0; + display: block; +} + +div.toc>dl>dd>dl>dt { + font-size: 24px; + font-weight: bold; + margin: 20px 0 10px 0; + display: block; +} + +div.toc>dl>dd>dl>dd>dl>dt { + font-weight: bold; + font-size: 20px; + margin: 10px 0 0 0; +} + +tbody.footnotes * { + border: none !important; +} + +div.footnote p { + margin: 0; + line-height: 1; +} + +div.footnote p sup { + margin-right: 6px; + vertical-align: middle; +} + +div.navheader { + border-bottom: 1px solid #CCCCCC; +} + +div.navfooter { + border-top: 1px solid #CCCCCC; +} + +.title { + margin-left: -1em; + padding-left: 1em; +} + +.title>a { + position: absolute; + visibility: hidden; + display: block; + font-size: 0.85em; + margin-top: 0.05em; + margin-left: -1em; + vertical-align: text-top; + color: black; +} + +.title>a:before { + content: "\00A7"; +} + +.title:hover>a,.title>a:hover,.title:hover>a:hover { + visibility: visible; +} + +.title:focus>a,.title>a:focus,.title:focus>a:focus { + outline: 0; +} diff --git a/images/background.png b/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..15dca6fbe2669fae3609605e49c69cc414f1b6ed GIT binary patch literal 18255 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 EKU&lfD*ylh literal 0 HcmV?d00001 diff --git a/images/caution.png b/images/caution.png new file mode 100644 index 0000000000000000000000000000000000000000..8a5e4fca039d0247dcf55ae0e719cdb457509422 GIT binary patch literal 2099 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 literal 0 HcmV?d00001 diff --git a/images/logo.png b/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ade2ce6ed9d9e9f2f4d9c5729a252ee618a0a5a7 GIT binary patch literal 4387 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 Gh5jGOsoGNj literal 0 HcmV?d00001 diff --git a/images/tip.png b/images/tip.png new file mode 100644 index 0000000000000000000000000000000000000000..6530abb4b5a5d68e3b1c98de512d264c1f8ba883 GIT binary patch literal 931 zcmV;U16=%xP)bSEogsT%F|x0xuT7xdRv7>Rev?4wv{qrDN}+xS$8V5!!ga&#Y1*BgqL?&c}jPc zG_JlfMSD5I%DQQcHXTbGWQtKpeL6yAB|UI5CQ=~#`}=c}Um;E%R)9u^qI0>&GHQ-g zOm;DCkym+{WF$}@UWrV1mtnTPtu!WtY$r7BOpo|N_#mqWGhK#KR0MD7eW*yPaY&xBTRfcG-E5p&`2dq z875XFdy+3GStd(wD_Mg`dys8Xd_houJju_&*4)mZt2Tk1H)DTRJY^_lf>>*ZU2Th5 zWQ3Ly{;kf91GM2s4Vfv8a-fcsXpb+4t> zmM%11X*>M&PQZNVdARf4d*2x!aq1>jOzQ?>>R)(Ok;sOJ)7jfk$Fdif23? z-}3V78&9qod*O;uGk%fEW^;|k`Lo>bOq2iF72o-IGb2gTw+4B~#iYz(oL}sS7|$R2 zDGfrR{|@~AQJ&v(#4u|ZtJP}t520N48P!$8U;|Vfuq=8>E$w`o2Jf`%eqhqbr%IH1zV?O3uDWqKZId-wMQ*MFefpD5X*w@ zok{kNA?%%$F{M!OUcE^^x{~(wkHK|_*9Yg`KNS88FaVH_sda1Xfs6nE002ovPDHLk FV1jwin)(0$ literal 0 HcmV?d00001 diff --git a/images/warning.png b/images/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..0d5b5244605adbb7ab05a1549746a9c35490f95b GIT binary patch literal 2130 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Ⓢ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

pfrFayM9z~ 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∋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 sjR literal 0 HcmV?d00001 diff --git a/multi/_additional_resources.html b/multi/_additional_resources.html new file mode 100644 index 000000000..5a0ead44d --- /dev/null +++ b/multi/_additional_resources.html @@ -0,0 +1,3 @@ + + + 1. Additional resources

1. Additional resources

Marcin Grzejszczak talking about Spring Cloud Sleuth and Zipkin

click here to see the video

\ No newline at end of file diff --git a/multi/_customizations.html b/multi/_customizations.html new file mode 100644 index 000000000..bd820bf2d --- /dev/null +++ b/multi/_customizations.html @@ -0,0 +1,149 @@ + + + 8. Customizations

8. Customizations

Thanks to the SpanInjector and SpanExtractor you can customize the way spans +are created and propagated.

There are currently two built-in ways to pass tracing information between processes:

  • via Spring Integration
  • via HTTP

Span ids are extracted from Zipkin-compatible (B3) headers (either Message +or HTTP headers), to start or join an existing trace. Trace information is +injected into any outbound requests so the next hop can extract them.

The key change in comparison to the previous versions of Sleuth is that Sleuth is implementing +the Open Tracing’s TextMap notion. In Sleuth it’s called SpanTextMap. Basically the idea +is that any means of communication (e.g. message, http request, etc.) can be abstracted via +a SpanTextMap. This abstraction defines how one can insert data into the carrier and +how to retrieve it from there. Thanks to this if you want to instrument a new HTTP library +that uses a FooRequest as a mean of sending HTTP requests then you have to create an +implementation of a SpanTextMap that delegates calls to FooRequest in terms of retrieval +and insertion of HTTP headers.

8.1 Spring Integration

For Spring Integration there are 2 interfaces responsible for creation of a Span from a Message. +These are:

  • MessagingSpanTextMapExtractor
  • MessagingSpanTextMapInjector

You can override them by providing your own implementation.

8.2 HTTP

For HTTP there are 2 interfaces responsible for creation of a Span from a Message. +These are:

  • HttpSpanExtractor
  • HttpSpanInjector

You can override them by providing your own implementation.

8.3 Example

Let’s assume that instead of the standard Zipkin compatible tracing HTTP header names +you have

  • for trace id - correlationId
  • for span id - mySpanId

This is a an example of a SpanExtractor

static class CustomHttpSpanExtractor implements HttpSpanExtractor {
+
+	@Override public Span joinTrace(SpanTextMap carrier) {
+		Map<String, String> map = TextMapUtil.asMap(carrier);
+		long traceId = Span.hexToId(map.get("correlationid"));
+		long spanId = Span.hexToId(map.get("myspanid"));
+		// extract all necessary headers
+		Span.SpanBuilder builder = Span.builder().traceId(traceId).spanId(spanId);
+		// build rest of the Span
+		return builder.build();
+	}
+}
+
+static class CustomHttpSpanInjector implements HttpSpanInjector {
+
+	@Override
+	public void inject(Span span, SpanTextMap carrier) {
+		carrier.put("correlationId", span.traceIdString());
+		carrier.put("mySpanId", Span.idToHex(span.getSpanId()));
+	}
+}

And you could register it like this:

@Bean
+HttpSpanInjector customHttpSpanInjector() {
+	return new CustomHttpSpanInjector();
+}
+
+@Bean
+HttpSpanExtractor customHttpSpanExtractor() {
+	return new CustomHttpSpanExtractor();
+}

Spring Cloud Sleuth does not add trace/span related headers to the Http Response for security reasons. If you need the headers then a custom SpanInjector +that injects the headers into the Http Response and a Servlet filter which makes use of this can be added the following way:

static class CustomHttpServletResponseSpanInjector extends ZipkinHttpSpanInjector {
+
+	@Override
+	public void inject(Span span, SpanTextMap carrier) {
+		super.inject(span, carrier);
+		carrier.put(Span.TRACE_ID_NAME, span.traceIdString());
+		carrier.put(Span.SPAN_ID_NAME, Span.idToHex(span.getSpanId()));
+	}
+}
+
+static class HttpResponseInjectingTraceFilter extends GenericFilterBean {
+
+	private final Tracer tracer;
+	private final HttpSpanInjector spanInjector;
+
+	public HttpResponseInjectingTraceFilter(Tracer tracer, HttpSpanInjector spanInjector) {
+		this.tracer = tracer;
+		this.spanInjector = spanInjector;
+	}
+
+	@Override
+	public void doFilter(ServletRequest request, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+		HttpServletResponse response = (HttpServletResponse) servletResponse;
+		Span currentSpan = this.tracer.getCurrentSpan();
+		this.spanInjector.inject(currentSpan, new HttpServletResponseTextMap(response));
+		filterChain.doFilter(request, response);
+	}
+
+	 class HttpServletResponseTextMap implements SpanTextMap {
+
+		 private final HttpServletResponse delegate;
+
+		 HttpServletResponseTextMap(HttpServletResponse delegate) {
+			 this.delegate = delegate;
+		 }
+
+		 @Override
+		 public Iterator<Map.Entry<String, String>> iterator() {
+			 Map<String, String> map = new HashMap<>();
+			 for (String header : this.delegate.getHeaderNames()) {
+				map.put(header, this.delegate.getHeader(header));
+			 }
+			 return map.entrySet().iterator();
+		 }
+
+		 @Override
+		 public void put(String key, String value) {
+			this.delegate.addHeader(key, value);
+		 }
+	 }
+}

And you could register them like this:

@Bean HttpSpanInjector customHttpServletResponseSpanInjector() {
+	return new CustomHttpServletResponseSpanInjector();
+}
+
+@Bean
+HttpResponseInjectingTraceFilter responseInjectingTraceFilter(Tracer tracer) {
+	return new HttpResponseInjectingTraceFilter(tracer, customHttpServletResponseSpanInjector());
+}

8.4 TraceFilter

You can also modify the behaviour of the TraceFilter - the component that is responsible +for processing the input HTTP request and adding tags basing on the HTTP response. You can customize +the tags, or modify the response headers by registering your own instance of the TraceFilter bean.

In the following example we will register the TraceFilter bean and we will add the +ZIPKIN-TRACE-ID response header containing the current Span’s trace id. Also we will +add to the Span a tag with key custom and a value tag.

@Bean
+TraceFilter myTraceFilter(BeanFactory beanFactory, final Tracer tracer) {
+	return new TraceFilter(beanFactory) {
+		@Override protected void addResponseTags(HttpServletResponse response,
+				Throwable e) {
+			// execute the default behaviour
+			super.addResponseTags(response, e);
+			// for readability we're returning trace id in a hex form
+			response.addHeader("ZIPKIN-TRACE-ID",
+					Span.idToHex(tracer.getCurrentSpan().getTraceId()));
+			// we can also add some custom tags
+			tracer.addTag("custom", "tag");
+		}
+	};
+}

8.5 Custom SA tag in Zipkin

Sometimes you want to create a manual Span that will wrap a call to an external service which is not instrumented. +What you can do is to create a span with the peer.service tag that will contain a value of the service that you want to call. +Below you can see an example of a call to Redis that is wrapped in such a span.

org.springframework.cloud.sleuth.Span newSpan = tracer.createSpan("redis");
+try {
+	newSpan.tag("redis.op", "get");
+	newSpan.tag("lc", "redis");
+	newSpan.logEvent(org.springframework.cloud.sleuth.Span.CLIENT_SEND);
+	// call redis service e.g
+	// return (SomeObj) redisTemplate.opsForHash().get("MYHASH", someObjKey);
+} finally {
+	newSpan.tag("peer.service", "redisService");
+	newSpan.tag("peer.ipv4", "1.2.3.4");
+	newSpan.tag("peer.port", "1234");
+	newSpan.logEvent(org.springframework.cloud.sleuth.Span.CLIENT_RECV);
+	tracer.close(newSpan);
+}
[Important]Important

Remember not to add both peer.service tag and the SA tag! You have to add only peer.service.

8.6 Custom service name

By default Sleuth assumes that when you send a span to Zipkin, you want the span’s service name + to be equal to spring.application.name value. That’s not always the case though. There + are situations in which you want to explicitly provide a different service name for all spans coming + from your application. To achieve that it’s enough to just pass the following property + to your application to override that value (example for foo service name):

spring.zipkin.service.name: foo

8.7 Customization of reported spans

Before reporting spans to e.g. Zipkin you can be interested in modifying that span in some way. + You can achieve that by using the SpanAdjuster interface.

Example of usage:

In Sleuth we’re generating spans with a fixed name. Some users want to modify the name depending on values +of tags. Implementation of the SpanAdjuster interface can be used to alter that name. Example:

@Bean
+SpanAdjuster customSpanAdjuster() {
+    return span -> span.toBuilder().name(scrub(span.getName())).build();
+}

This will lead in changing the name of the reported span just before it gets sent to Zipkin.

[Important]Important

Your SpanReporter should inject the SpanAdjuster and + allow span manipulation before the actual reporting is done.

8.8 Host locator

In order to define the host that is corresponding to a particular span we need to resolve the host name +and port. The default approach is to take it from server properties. If those for some reason are not set +then we’re trying to retrieve the host name from the network interfaces.

If you have the discovery client enabled and prefer to retrieve the host address from the registered +instance in a service registry then you have to set the property (it’s applicable for both HTTP and +Stream based span reporting).

spring.zipkin.locator.discovery.enabled: true
\ No newline at end of file diff --git a/multi/_features.html b/multi/_features.html new file mode 100644 index 000000000..ae8e7958a --- /dev/null +++ b/multi/_features.html @@ -0,0 +1,22 @@ + + + 2. Features

2. Features

  • Adds trace and span ids to the Slf4J MDC, so you can extract all the logs from a given trace or span in a log aggregator. Example logs:

    2016-02-02 15:30:57.902  INFO [bar,6bfd228dc00d216b,6bfd228dc00d216b,false] 23030 --- [nio-8081-exec-3] ...
    +2016-02-02 15:30:58.372 ERROR [bar,6bfd228dc00d216b,6bfd228dc00d216b,false] 23030 --- [nio-8081-exec-3] ...
    +2016-02-02 15:31:01.936  INFO [bar,46ab0d418373cbc9,46ab0d418373cbc9,false] 23030 --- [nio-8081-exec-4] ...

    notice the [appname,traceId,spanId,exportable] entries from the MDC:

    • spanId - the id of a specific operation that took place
    • appname - the name of the application that logged the span
    • traceId - the id of the latency graph that contains the span
    • exportable - whether the log should be exported to Zipkin or not. When would you like the span not to be +exportable? In the case in which you want to wrap some operation in a Span and have it written to the logs +only.
  • Provides an abstraction over common distributed tracing data models: traces, spans (forming a DAG), annotations, +key-value annotations. Loosely based on HTrace, but Zipkin (Dapper) compatible.
  • Sleuth records timing information to aid in latency analysis. Using sleuth, you can pinpoint causes of +latency in your applications. Sleuth is written to not log too much, and to not cause your production application to crash.

    • propagates structural data about your call-graph in-band, and the rest out-of-band.
    • includes opinionated instrumentation of layers such as HTTP
    • includes sampling policy to manage volume
    • can report to a Zipkin system for query and visualization
  • Instruments common ingress and egress points from Spring applications (servlet filter, async endpoints, +rest template, scheduled actions, message channels, zuul filters, feign client).
  • Sleuth includes default logic to join a trace across http or messaging boundaries. For example, http propagation +works via Zipkin-compatible request headers. This propagation logic is defined and customized via +SpanInjector and SpanExtractor implementations.
  • Sleuth gives you the possibility to propagate context (also known as baggage) between processes. That means that if you set on a Span +a baggage element then it will be sent downstream either via HTTP or messaging to other processes.
  • Provides a way to create / continue spans and add tags and logs via annotations.
  • Provides simple metrics of accepted / dropped spans.
  • If spring-cloud-sleuth-zipkin then the app will generate and collect Zipkin-compatible traces. +By default it sends them via HTTP to a Zipkin server on localhost (port 9411). +Configure the location of the service using spring.zipkin.baseUrl.
  • If spring-cloud-sleuth-stream then the app will generate and collect traces via Spring Cloud Stream. +Your app automatically becomes a producer of tracer messages that are sent over your broker of choice +(e.g. RabbitMQ, Apache Kafka, Redis).
[Important]Important

If using Zipkin or Stream, configure the percentage of spans exported using spring.sleuth.sampler.percentage +(default 0.1, i.e. 10%). Otherwise you might think that Sleuth is not working cause it’s omitting some spans.

[Note]Note

the SLF4J MDC is always set and logback users will immediately see the trace and span ids in logs per the example + above. Other logging systems have to configure their own formatter to get the same result. The default is + logging.pattern.level set to %5p [${spring.zipkin.service.name:${spring.application.name:-}},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}] + (this is a Spring Boot feature for logback users). + This means that if you’re not using SLF4J this pattern WILL NOT be automatically applied.

\ No newline at end of file diff --git a/multi/_instrumentation.html b/multi/_instrumentation.html new file mode 100644 index 000000000..305c20e42 --- /dev/null +++ b/multi/_instrumentation.html @@ -0,0 +1,18 @@ + + + 4. Instrumentation

4. Instrumentation

Spring Cloud Sleuth instruments all your Spring application +automatically, so you shouldn’t have to do anything to activate +it. The instrumentation is added using a variety of technologies +according to the stack that is available, e.g. for a servlet web +application we use a Filter, and for Spring Integration we use +ChannelInterceptors.

You can customize the keys used in span tags. To limit the volume of +span data, by default an HTTP request will be tagged only with a +handful of metadata like the status code, host and URL. You can add +request headers by configuring spring.sleuth.keys.http.headers (a +list of header names).

[Note]Note

Remember that tags are only collected and exported if there is a +Sampler that allows it (by default there is not, so there is no +danger of accidentally collecting too much data without configuring +something).

[Note]Note

Currently the instrumentation in Spring Cloud Sleuth is eager - it means that +we’re actively trying to pass the tracing context between threads. Also timing events +are captured even when sleuth isn’t exporting data to a tracing system. +This approach may change in the future towards being lazy on this matter.

\ No newline at end of file diff --git a/multi/_integrations.html b/multi/_integrations.html new file mode 100644 index 000000000..97d3c9d5f --- /dev/null +++ b/multi/_integrations.html @@ -0,0 +1,160 @@ + + + 12. Integrations

12. Integrations

12.1 Runnable and Callable

If you’re wrapping your logic in Runnable or Callable it’s enough to wrap those classes in their Sleuth representative.

Example for Runnable:

Runnable runnable = new Runnable() {
+	@Override
+	public void run() {
+		// do some work
+	}
+
+	@Override
+	public String toString() {
+		return "spanNameFromToStringMethod";
+	}
+};
+// Manual `TraceRunnable` creation with explicit "calculateTax" Span name
+Runnable traceRunnable = new TraceRunnable(tracer, spanNamer, runnable, "calculateTax");
+// Wrapping `Runnable` with `Tracer`. The Span name will be taken either from the
+// `@SpanName` annotation or from `toString` method
+Runnable traceRunnableFromTracer = tracer.wrap(runnable);

Example for Callable:

Callable<String> callable = new Callable<String>() {
+	@Override
+	public String call() throws Exception {
+		return someLogic();
+	}
+
+	@Override
+	public String toString() {
+		return "spanNameFromToStringMethod";
+	}
+};
+// Manual `TraceCallable` creation with explicit "calculateTax" Span name
+Callable<String> traceCallable = new TraceCallable<>(tracer, spanNamer, callable, "calculateTax");
+// Wrapping `Callable` with `Tracer`. The Span name will be taken either from the
+// `@SpanName` annotation or from `toString` method
+Callable<String> traceCallableFromTracer = tracer.wrap(callable);

That way you will ensure that a new Span is created and closed for each execution.

12.2 Hystrix

Custom Concurrency Strategy

We’re registering a custom HystrixConcurrencyStrategy +that wraps all Callable instances into their Sleuth representative - +the TraceCallable. The strategy either starts or continues a span depending on the fact whether tracing was already going +on before the Hystrix command was called. To disable the custom Hystrix Concurrency Strategy set the spring.sleuth.hystrix.strategy.enabled to false.

Manual Command setting

Assuming that you have the following HystrixCommand:

HystrixCommand<String> hystrixCommand = new HystrixCommand<String>(setter) {
+	@Override
+	protected String run() throws Exception {
+		return someLogic();
+	}
+};

In order to pass the tracing information you have to wrap the same logic in the Sleuth version of the HystrixCommand which is the +TraceCommand:

TraceCommand<String> traceCommand = new TraceCommand<String>(tracer, traceKeys, setter) {
+	@Override
+	public String doRun() throws Exception {
+		return someLogic();
+	}
+};

12.3 RxJava

We’re registering a custom RxJavaSchedulersHook +that wraps all Action0 instances into their Sleuth representative - +the TraceAction. The hook either starts or continues a span depending on the fact whether tracing was already going +on before the Action was scheduled. To disable the custom RxJavaSchedulersHook set the spring.sleuth.rxjava.schedulers.hook.enabled to false.

You can define a list of regular expressions for thread names, for which you don’t want a Span to be created. Just provide a comma separated list +of regular expressions in the spring.sleuth.rxjava.schedulers.ignoredthreads property.

12.4 HTTP integration

Features from this section can be disabled by providing the spring.sleuth.web.enabled property with value equal to false.

HTTP Filter

Via the TraceFilter all sampled incoming requests result in creation of a Span. That Span’s name is http: + the path to which + the request was sent. E.g. if the request was sent to /foo/bar then the name will be http:/foo/bar. You can configure which URIs you would + like to skip via the spring.sleuth.web.skipPattern property. If you have ManagementServerProperties on classpath then + its value of contextPath gets appended to the provided skip pattern.

HandlerInterceptor

Since we want the span names to be precise we’re using a TraceHandlerInterceptor that either wraps an + existing HandlerInterceptor or is added directly to the list of existing HandlerInterceptors. The + TraceHandlerInterceptor adds a special request attribute to the given HttpServletRequest. If the + the TraceFilter doesn’t see this attribute set it will create a "fallback" span which is an additional + span created on the server side so that the trace is presented properly in the UI. Seeing that most likely + signifies that there is a missing instrumentation. In that case please file an issue in Spring Cloud Sleuth.

Async Servlet support

If your controller returns a Callable or a WebAsyncTask Spring Cloud Sleuth will continue the existing span instead of creating a new one.

12.5 HTTP client integration

Synchronous Rest Template

We’re injecting a RestTemplate interceptor that ensures that all the tracing information is passed to the requests. Each time a +call is made a new Span is created. It gets closed upon receiving the response. In order to block the synchronous RestTemplate features +just set spring.sleuth.web.client.enabled to false.

[Important]Important

You have to register RestTemplate as a bean so that the interceptors will get injected. +If you create a RestTemplate instance with a new keyword then the instrumentation WILL NOT work.

Asynchronous Rest Template

[Important]Important

A traced version of an AsyncRestTemplate bean is registered for you out of the box. If you +have your own bean you have to wrap it in a TraceAsyncRestTemplate representation. The best solution +is to only customize the ClientHttpRequestFactory and / or AsyncClientHttpRequestFactory. +If you have your own AsyncRestTemplate and you don’t wrap it your calls WILL NOT GET TRACED.

Custom instrumentation is set to create and close Spans upon sending and receiving requests. You can customize the ClientHttpRequestFactory +and the AsyncClientHttpRequestFactory by registering your beans. Remember to use tracing compatible implementations (e.g. don’t forget to +wrap ThreadPoolTaskScheduler in a TraceAsyncListenableTaskExecutor). Example of custom request factories:

@EnableAutoConfiguration
+@Configuration
+public static class TestConfiguration {
+
+	@Bean
+	ClientHttpRequestFactory mySyncClientFactory() {
+		return new MySyncClientHttpRequestFactory();
+	}
+
+	@Bean
+	AsyncClientHttpRequestFactory myAsyncClientFactory() {
+		return new MyAsyncClientHttpRequestFactory();
+	}
+}

To block the AsyncRestTemplate features set spring.sleuth.web.async.client.enabled to false. +To disable creation of the default TraceAsyncClientHttpRequestFactoryWrapper set spring.sleuth.web.async.client.factory.enabled +to false. If you don’t want to create AsyncRestClient at all set spring.sleuth.web.async.client.template.enabled to false.

Multiple Asynchronous Rest Templates

Sometimes you need to use multiple implementations of Asynchronous Rest Template. In the following snippet you +can see an example of how to set up such a custom AsyncRestTemplate.

@Configuration
+@EnableAutoConfiguration
+static class Config {
+	@Autowired Tracer tracer;
+	@Autowired HttpTraceKeysInjector httpTraceKeysInjector;
+	@Autowired HttpSpanInjector spanInjector;
+
+	@Bean(name = "customAsyncRestTemplate")
+	public AsyncRestTemplate traceAsyncRestTemplate(@Qualifier("customHttpRequestFactoryWrapper")
+			TraceAsyncClientHttpRequestFactoryWrapper wrapper, ErrorParser errorParser) {
+		return new TraceAsyncRestTemplate(wrapper, this.tracer, errorParser);
+	}
+
+	@Bean(name = "customHttpRequestFactoryWrapper")
+	public TraceAsyncClientHttpRequestFactoryWrapper traceAsyncClientHttpRequestFactory() {
+		return new TraceAsyncClientHttpRequestFactoryWrapper(this.tracer,
+				this.spanInjector,
+				asyncClientFactory(),
+				clientHttpRequestFactory(),
+				this.httpTraceKeysInjector);
+	}
+
+	private ClientHttpRequestFactory clientHttpRequestFactory() {
+		ClientHttpRequestFactory clientHttpRequestFactory = new CustomClientHttpRequestFactory();
+		//CUSTOMIZE HERE
+		return clientHttpRequestFactory;
+	}
+
+	private AsyncClientHttpRequestFactory asyncClientFactory() {
+		AsyncClientHttpRequestFactory factory = new CustomAsyncClientHttpRequestFactory();
+		//CUSTOMIZE HERE
+		return factory;
+	}
+}

Traverson

If you’re using the Traverson library +it’s enough for you to inject a RestTemplate as a bean into your Traverson object. Since RestTemplate +is already intercepted, you will get full support of tracing in your client. Below you can find a pseudo code +of how to do that:

@Autowired RestTemplate restTemplate;
+
+Traverson traverson = new Traverson(URI.create("http://some/address"),
+    MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON_UTF8).setRestOperations(restTemplate);
+// use Traverson

12.6 Feign

By default Spring Cloud Sleuth provides integration with feign via the TraceFeignClientAutoConfiguration. You can disable it entirely +by setting spring.sleuth.feign.enabled to false. If you do so then no Feign related instrumentation will take place.

Part of Feign instrumentation is done via a FeignBeanPostProcessor. You can disable it by providing the spring.sleuth.feign.processor.enabled equal to false. +If you set it like this then Spring Cloud Sleuth will not instrument any of your custom Feign components. All the default instrumentation +however will be still there.

12.7 Asynchronous communication

@Async annotated methods

In Spring Cloud Sleuth we’re instrumenting async related components so that the tracing information is passed between threads. +You can disable this behaviour by setting the value of spring.sleuth.async.enabled to false.

If you annotate your method with @Async then we’ll automatically create a new Span with the following characteristics:

  • if the method is annotated with @SpanName then the value of the annotation will be the Span’s name
  • if the method is not annotated with @SpanName the Span name will be the annotated method name
  • the Span will be tagged with that method’s class name and the method name too

@Scheduled annotated methods

In Spring Cloud Sleuth we’re instrumenting scheduled method execution so that the tracing information is passed between threads. You can disable this behaviour +by setting the value of spring.sleuth.scheduled.enabled to false.

If you annotate your method with @Scheduled then we’ll automatically create a new Span with the following characteristics:

  • the Span name will be the annotated method name
  • the Span will be tagged with that method’s class name and the method name too

If you want to skip Span creation for some @Scheduled annotated classes you can set the +spring.sleuth.scheduled.skipPattern with a regular expression that will match the fully qualified name of the +@Scheduled annotated class.

[Tip]Tip

If you are using spring-cloud-sleuth-stream and spring-cloud-netflix-hystrix-stream together, Span will be created for each Hystrix metrics and sent to Zipkin. This may be annoying. You can prevent this by setting spring.sleuth.scheduled.skipPattern=org.springframework.cloud.netflix.hystrix.stream.HystrixStreamTask

Executor, ExecutorService and ScheduledExecutorService

We’re providing LazyTraceExecutor, TraceableExecutorService and TraceableScheduledExecutorService. Those implementations +are creating Spans each time a new task is submitted, invoked or scheduled.

Here you can see an example of how to pass tracing information with TraceableExecutorService when working with CompletableFuture:

CompletableFuture<Long> completableFuture = CompletableFuture.supplyAsync(() -> {
+	// perform some logic
+	return 1_000_000L;
+}, new TraceableExecutorService(executorService,
+		// 'calculateTax' explicitly names the span - this param is optional
+		tracer, traceKeys, spanNamer, "calculateTax"));
Customization of Executors

Sometimes you need to set up a custom instance of the AsyncExecutor. In the following snippet you +can see an example of how to set up such a custom Executor.

@Configuration
+@EnableAutoConfiguration
+@EnableAsync
+static class CustomExecutorConfig extends AsyncConfigurerSupport {
+
+	@Autowired BeanFactory beanFactory;
+
+	@Override public Executor getAsyncExecutor() {
+		ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+		// CUSTOMIZE HERE
+		executor.setCorePoolSize(7);
+		executor.setMaxPoolSize(42);
+		executor.setQueueCapacity(11);
+		executor.setThreadNamePrefix("MyExecutor-");
+		// DON'T FORGET TO INITIALIZE
+		executor.initialize();
+		return new LazyTraceExecutor(this.beanFactory, executor);
+	}
+}

12.8 Messaging

Spring Cloud Sleuth integrates with Spring Integration. It creates spans for publish and +subscribe events. To disable Spring Integration instrumentation, set spring.sleuth.integration.enabled to false.

You can provide the spring.sleuth.integration.patterns pattern to explicitly +provide the names of channels that you want to include for tracing. By default all channels +are included.

[Important]Important

When using the Executor to build a Spring Integration IntegrationFlow remember to use the untraced version of the Executor. +Decorating Spring Integration Executor Channel with TraceableExecutorService will cause the spans to be improperly closed.

12.9 Zuul

We’re registering Zuul filters to propagate the tracing information (the request header is enriched with tracing data). +To disable Zuul support set the spring.sleuth.zuul.enabled property to false.

\ No newline at end of file diff --git a/multi/_managing_spans_with_annotations.html b/multi/_managing_spans_with_annotations.html new file mode 100644 index 000000000..83594c458 --- /dev/null +++ b/multi/_managing_spans_with_annotations.html @@ -0,0 +1,47 @@ + + + 7. Managing spans with annotations

7. Managing spans with annotations

7.1 Rationale

The main arguments for this features are

  • api-agnostic means to collaborate with a span

    • use of annotations allows users to add to a span with no library dependency on a span api. +This allows Sleuth to change its core api less impact to user code.
  • reduced surface area for basic span operations.

    • without this feature one has to use the span api, which has lifecycle commands that +could be used incorrectly. By only exposing scope, tag and log functionality, users can +collaborate without accidentally breaking span lifecycle.
  • collaboration with runtime generated code

    • with libraries such as Spring Data / Feign the implementations of interfaces are generated +at runtime thus span wrapping of objects was tedious. Now you can provide annotations + over interfaces and arguments of those interfaces

7.2 Creating new spans

If you really don’t want to take care of creating local spans manually you can profit from the +@NewSpan annotation. Also we give you the @SpanTag annotation to add tags in an automated +fashion.

Let’s look at some examples of usage.

@NewSpan
+void testMethod();

Annotating the method without any parameter will lead to a creation of a new span whose name +will be equal to annotated method name.

@NewSpan("customNameOnTestMethod4")
+void testMethod4();

If you provide the value in the annotation (either directly or via the name parameter) then +the created span will have the name as the provided value.

// method declaration
+@NewSpan(name = "customNameOnTestMethod5")
+void testMethod5(@SpanTag("testTag") String param);
+
+// and method execution
+this.testBean.testMethod5("test");

You can combine both the name and a tag. Let’s focus on the latter. In this case whatever the value of +the annotated method’s parameter runtime value will be - that will be the value of the tag. In our sample +the tag key will be testTag and the tag value will be test.

@NewSpan(name = "customNameOnTestMethod3")
+@Override
+public void testMethod3() {
+}

You can place the @NewSpan annotation on both the class and an interface. If you override the +interface’s method and provide a different value of the @NewSpan annotation then the most +concrete one wins (in this case customNameOnTestMethod3 will be set).

7.3 Continuing spans

If you want to just add tags and annotations to an existing span it’s enough +to use the @ContinueSpan annotation as presented below. Note that in contrast +with the @NewSpan annotation you can also add logs via the log parameter:

// method declaration
+@ContinueSpan(log = "testMethod11")
+void testMethod11(@SpanTag("testTag11") String param);
+
+// method execution
+this.testBean.testMethod11("test");

That way the span will get continued and:

  • logs with name testMethod11.before and testMethod11.after will be created
  • if an exception will be thrown a log testMethod11.afterFailure will also be created
  • tag with key testTag11 and value test will be created

7.4 More advanced tag setting

There are 3 different ways to add tags to a span. All of them are controlled by the SpanTag annotation. +Precedence is:

  • try with the bean of TagValueResolver type and provided name
  • if one hasn’t provided the bean name, try to evaluate an expression. We’re searching for a TagValueExpressionResolver bean. +The default implementation uses SPEL expression resolution.
  • if one hasn’t provided any expression to evaluate just return a toString() value of the parameter

Custom extractor

The value of the tag for following method will be computed by an implementation of TagValueResolver interface. +Its class name has to be passed as the value of the resolver attribute.

Having such an annotated method:

@NewSpan
+public void getAnnotationForTagValueResolver(@SpanTag(key = "test", resolver = TagValueResolver.class) String test) {
+}

and such a TagValueResolver bean implementation

@Bean(name = "myCustomTagValueResolver")
+public TagValueResolver tagValueResolver() {
+	return parameter -> "Value from myCustomTagValueResolver";
+}

Will lead to setting of a tag value equal to Value from myCustomTagValueResolver.

Resolving expressions for value

Having such an annotated method:

@NewSpan
+public void getAnnotationForTagValueExpression(@SpanTag(key = "test", expression = "length() + ' characters'") String test) {
+}

and no custom implementation of a TagValueExpressionResolver will lead to evaluation of the SPEL expression and a tag with value 4 characters will be set on the span. +If you want to use some other expression resolution mechanism you can create your own implementation +of the bean.

Using toString method

Having such an annotated method:

@NewSpan
+public void getAnnotationForArgumentToString(@SpanTag("test") Long param) {
+}

if executed with a value of 15 will lead to setting of a tag with a String value of "15".

\ No newline at end of file diff --git a/multi/_metrics.html b/multi/_metrics.html new file mode 100644 index 000000000..dcd47ef03 --- /dev/null +++ b/multi/_metrics.html @@ -0,0 +1,7 @@ + + + 11. Metrics

11. Metrics

Currently Spring Cloud Sleuth registers very simple metrics related to spans. +It’s using the Spring Boot’s metrics support +to calculate the number of accepted and dropped spans. Each time a span gets +sent to Zipkin the number of accepted spans will increase. If there’s an error then +the number of dropped spans will get increased.

\ No newline at end of file diff --git a/multi/_naming_spans.html b/multi/_naming_spans.html new file mode 100644 index 000000000..f63a4e785 --- /dev/null +++ b/multi/_naming_spans.html @@ -0,0 +1,27 @@ + + + 6. Naming spans

6. Naming spans

Picking a span name is not a trivial task. Span name should depict an operation name. The name should +be low cardinality (e.g. not include identifiers).

Since there is a lot of instrumentation going on some of the span names will be +artificial like:

  • controller-method-name when received by a Controller with a method name conrollerMethodName
  • async for asynchronous operations done via wrapped Callable and Runnable.
  • @Scheduled annotated methods will return the simple name of the class.

Fortunately, for the asynchronous processing you can provide explicit naming.

6.1 @SpanName annotation

You can name the span explicitly via the @SpanName annotation.

@SpanName("calculateTax")
+class TaxCountingRunnable implements Runnable {
+
+	@Override public void run() {
+		// perform logic
+	}
+}

In this case, when processed in the following manner:

Runnable runnable = new TraceRunnable(tracer, spanNamer, new TaxCountingRunnable());
+Future<?> future = executorService.submit(runnable);
+// ... some additional logic ...
+future.get();

The span will be named calculateTax.

6.2 toString() method

It’s pretty rare to create separate classes for Runnable or Callable. Typically one creates an anonymous +instance of those classes. You can’t annotate such classes thus to override that, if there is no @SpanName annotation present, +we’re checking if the class has a custom implementation of the toString() method.

So executing such code:

Runnable runnable = new TraceRunnable(tracer, spanNamer, new Runnable() {
+	@Override public void run() {
+		// perform logic
+	}
+
+	@Override public String toString() {
+		return "calculateTax";
+	}
+});
+Future<?> future = executorService.submit(runnable);
+// ... some additional logic ...
+future.get();

will lead in creating a span named calculateTax.

\ No newline at end of file diff --git a/multi/_running_examples.html b/multi/_running_examples.html new file mode 100644 index 000000000..37deea183 --- /dev/null +++ b/multi/_running_examples.html @@ -0,0 +1,3 @@ + + + 13. Running examples

13. Running examples

You can find the running examples deployed in the Pivotal Web Services. Check them out in the following links:

\ No newline at end of file diff --git a/multi/_sampling.html b/multi/_sampling.html new file mode 100644 index 000000000..d679f6204 --- /dev/null +++ b/multi/_sampling.html @@ -0,0 +1,26 @@ + + + 3. Sampling

3. Sampling

In distributed tracing the data volumes can be very high so sampling +can be important (you usually don’t need to export all spans to get a +good picture of what is happening). Spring Cloud Sleuth has a +Sampler strategy that you can implement to take control of the +sampling algorithm. Samplers do not stop span (correlation) ids from +being generated, but they do prevent the tags and events being +attached and exported. By default you get a strategy that continues to +trace if a span is already active, but new ones are always marked as +non-exportable. If all your apps run with this sampler you will see +traces in logs, but not in any remote store. For testing the default +is often enough, and it probably is all you need if you are only using +the logs (e.g. with an ELK aggregator). If you are exporting span data +to Zipkin or Spring Cloud Stream, there is also an AlwaysSampler +that exports everything and a PercentageBasedSampler that samples a +fixed fraction of spans.

[Note]Note

the PercentageBasedSampler is the default if you are using +spring-cloud-sleuth-zipkin or spring-cloud-sleuth-stream. You can +configure the exports using spring.sleuth.sampler.percentage. The passed +value needs to be a double from 0.0 to 1.0 so it’s not a percentage. +For backwards compatibility reasons we’re not changing the property name.

A sampler can be installed just by creating a bean definition, e.g:

@Bean
+public Sampler defaultSampler() {
+	return new AlwaysSampler();
+}
[Tip]Tip

You can set the HTTP header X-B3-Flags to 1 or when doing messaging you can +set spanFlags header to 1. Then the current span will be forced to be exportable +regardless of the sampling decision.

\ No newline at end of file diff --git a/multi/_sending_spans_to_zipkin.html b/multi/_sending_spans_to_zipkin.html new file mode 100644 index 000000000..5b2524b87 --- /dev/null +++ b/multi/_sending_spans_to_zipkin.html @@ -0,0 +1,7 @@ + + + 9. Sending spans to Zipkin

9. Sending spans to Zipkin

By default if you add spring-cloud-starter-zipkin as a dependency to your project, +when the span is closed, it will be sent to Zipkin over HTTP. The communication +is asynchronous. You can configure the URL by setting the spring.zipkin.baseUrl +property as follows:

spring.zipkin.baseUrl: http://192.168.99.100:9411/

If you want to find Zipkin via service discovery it’s enough to pass the +Zipkin’s service id inside the URL (example for zipkinserver service id)

spring.zipkin.baseUrl: http://zipkinserver/
\ No newline at end of file diff --git a/multi/_span_data_as_messages.html b/multi/_span_data_as_messages.html new file mode 100644 index 000000000..d0fb73810 --- /dev/null +++ b/multi/_span_data_as_messages.html @@ -0,0 +1,68 @@ + + + 10. Span Data as Messages

10. Span Data as Messages

You can accumulate and send span data over +Spring Cloud Stream by +including the spring-cloud-sleuth-stream jar as a dependency, and +adding a Channel Binder implementation +(e.g. spring-cloud-starter-stream-rabbit for RabbitMQ or +spring-cloud-starter-stream-kafka for Kafka). This will +automatically turn your app into a producer of messages with payload +type Spans.

10.1 Zipkin Consumer

There is a special convenience annotation for setting up a message consumer +for the Span data and pushing it into a Zipkin SpanStore. This application

@SpringBootApplication
+@EnableZipkinStreamServer
+public class Consumer {
+	public static void main(String[] args) {
+		SpringApplication.run(Consumer.class, args);
+	}
+}

will listen for the Span data on whatever transport you provide via a +Spring Cloud Stream Binder (e.g. include +spring-cloud-starter-stream-rabbit for RabbitMQ, and similar +starters exist for Redis and Kafka). If you add the following UI dependency

<groupId>io.zipkin.java</groupId>
+<artifactId>zipkin-autoconfigure-ui</artifactId>

Then you’ll have your app a +Zipkin server, which hosts +the UI and api on port 9411.

The default SpanStore is in-memory (good for demos and getting +started quickly). For a more robust solution you can add MySQL and +spring-boot-starter-jdbc to your classpath and enable the JDBC +SpanStore via configuration, e.g.:

spring:
+  rabbitmq:
+    host: ${RABBIT_HOST:localhost}
+  datasource:
+    schema: classpath:/mysql.sql
+    url: jdbc:mysql://${MYSQL_HOST:localhost}/test
+    username: root
+    password: root
+# Switch this on to create the schema on startup:
+    initialize: true
+    continueOnError: true
+  sleuth:
+    enabled: false
+zipkin:
+  storage:
+    type: mysql
[Note]Note

The @EnableZipkinStreamServer is also annotated with +@EnableZipkinServer so the process will also expose the standard +Zipkin server endpoints for collecting spans over HTTP, and for +querying in the Zipkin Web UI.

10.2 Custom Consumer

A custom consumer can also easily be implemented using +spring-cloud-sleuth-stream and binding to the SleuthSink. Example:

@EnableBinding(SleuthSink.class)
+@SpringBootApplication(exclude = SleuthStreamAutoConfiguration.class)
+@MessageEndpoint
+public class Consumer {
+
+    @ServiceActivator(inputChannel = SleuthSink.INPUT)
+    public void sink(Spans input) throws Exception {
+        // ... process spans
+    }
+}
[Note]Note

the sample consumer application above explicitly excludes +SleuthStreamAutoConfiguration so it doesn’t send messages to itself, +but this is optional (you might actually want to trace requests into +the consumer app).

In order to customize the polling mechanism you can create a bean of PollerMetadata type +with name equal to StreamSpanReporter.POLLER. Here you can find an example of such a configuration.

@Configuration
+public static class CustomPollerConfiguration {
+
+	@Bean(name = StreamSpanReporter.POLLER)
+	PollerMetadata customPoller() {
+		PollerMetadata poller = new PollerMetadata();
+		poller.setMaxMessagesPerPoll(500);
+		poller.setTrigger(new PeriodicTrigger(5000L));
+		return poller;
+	}
+}
\ No newline at end of file diff --git a/multi/_span_lifecycle.html b/multi/_span_lifecycle.html new file mode 100644 index 000000000..e5afd238f --- /dev/null +++ b/multi/_span_lifecycle.html @@ -0,0 +1,63 @@ + + + 5. Span lifecycle

5. Span lifecycle

You can do the following operations on the Span by means of org.springframework.cloud.sleuth.Tracer interface:

  • start - when you start a span its name is assigned and start timestamp is recorded.
  • close - the span gets finished (the end time of the span is recorded) and if +the span is exportable then it will be eligible for collection to Zipkin. +The span is also removed from the current thread.
  • continue - a new instance of span will be created whereas it will be a copy of the +one that it continues.
  • detach - the span doesn’t get stopped or closed. It only gets removed from the current thread.
  • create with explicit parent - you can create a new span and set an explicit parent to it
[Tip]Tip

Spring creates the instance of Tracer for you. In order to use it all you need is to just autowire it.

5.1 Creating and closing spans

You can manually create spans by using the Tracer interface.

// Start a span. If there was a span present in this thread it will become
+// the `newSpan`'s parent.
+Span newSpan = this.tracer.createSpan("calculateTax");
+try {
+	// ...
+	// You can tag a span
+	this.tracer.addTag("taxValue", taxValue);
+	// ...
+	// You can log an event on a span
+	newSpan.logEvent("taxCalculated");
+} finally {
+	// Once done remember to close the span. This will allow collecting
+	// the span to send it to Zipkin
+	this.tracer.close(newSpan);
+}

In this example we could see how to create a new instance of span. Assuming that there already +was a span present in this thread then it would become the parent of that span.

[Important]Important

Always clean after you create a span! Don’t forget to close a span if you want to send it to Zipkin.

[Important]Important

If your span contains a name greater than 50 chars, then that name will +be truncated to 50 chars. Your names have to be explicit and concrete. Big names lead to +latency issues and sometimes even thrown exceptions.

5.2 Continuing spans

Sometimes you don’t want to create a new span but you want to continue one. Example of such a +situation might be (of course it all depends on the use-case):

  • AOP - If there was already a span created before an aspect was reached then you might not want to create a new span.
  • Hystrix - executing a Hystrix command is most likely a logical part of the current processing. It’s in fact +only a technical implementation detail that you wouldn’t necessarily want to reflect in tracing as a separate being.

The continued instance of span is equal to the one that it continues:

Span continuedSpan = this.tracer.continueSpan(spanToContinue);
+assertThat(continuedSpan).isEqualTo(spanToContinue);

To continue a span you can use the Tracer interface.

// let's assume that we're in a thread Y and we've received
+// the `initialSpan` from thread X
+Span continuedSpan = this.tracer.continueSpan(initialSpan);
+try {
+	// ...
+	// You can tag a span
+	this.tracer.addTag("taxValue", taxValue);
+	// ...
+	// You can log an event on a span
+	continuedSpan.logEvent("taxCalculated");
+} finally {
+	// Once done remember to detach the span. That way you'll
+	// safely remove it from the current thread without closing it
+	this.tracer.detach(continuedSpan);
+}
[Important]Important

Always clean after you create a span! Don’t forget to detach a span if some work was done started in one + thread (e.g. thread X) and it’s waiting for other threads (e.g. Y, Z) to finish. + Then the spans in the threads Y, Z should be detached at the end of their work. When the results are collected + the span in thread X should be closed.

5.3 Creating spans with an explicit parent

There is a possibility that you want to start a new span and provide an explicit parent of that span. +Let’s assume that the parent of a span is in one thread and you want to start a new span in another thread. The +startSpan method of the Tracer interface is the method you are looking for.

// let's assume that we're in a thread Y and we've received
+// the `initialSpan` from thread X. `initialSpan` will be the parent
+// of the `newSpan`
+Span newSpan = this.tracer.createSpan("calculateCommission", initialSpan);
+try {
+	// ...
+	// You can tag a span
+	this.tracer.addTag("commissionValue", commissionValue);
+	// ...
+	// You can log an event on a span
+	newSpan.logEvent("commissionCalculated");
+} finally {
+	// Once done remember to close the span. This will allow collecting
+	// the span to send it to Zipkin. The tags and events set on the
+	// newSpan will not be present on the parent
+	this.tracer.close(newSpan);
+}
[Important]Important

After having created such a span remember to close it. Otherwise you will see a lot of warnings in your logs + related to the fact that you have a span present in the current thread other than the one you’re trying to close. + What’s worse your spans won’t get closed properly thus will not get collected to Zipkin.

\ No newline at end of file diff --git a/multi/css/highlight.css b/multi/css/highlight.css new file mode 100644 index 000000000..ffefef72d --- /dev/null +++ b/multi/css/highlight.css @@ -0,0 +1,35 @@ +/* + code highlight CSS resemblign the Eclipse IDE default color schema + @author Costin Leau +*/ + +.hl-keyword { + color: #7F0055; + font-weight: bold; +} + +.hl-comment { + color: #3F5F5F; + font-style: italic; +} + +.hl-multiline-comment { + color: #3F5FBF; + font-style: italic; +} + +.hl-tag { + color: #3F7F7F; +} + +.hl-attribute { + color: #7F007F; +} + +.hl-value { + color: #2A00FF; +} + +.hl-string { + color: #2A00FF; +} \ No newline at end of file diff --git a/multi/css/manual-multipage.css b/multi/css/manual-multipage.css new file mode 100644 index 000000000..0c484531c --- /dev/null +++ b/multi/css/manual-multipage.css @@ -0,0 +1,9 @@ +@IMPORT url("manual.css"); + +body.firstpage { + background: url("../images/background.png") no-repeat center top; +} + +div.part h1 { + border-top: none; +} diff --git a/multi/css/manual-singlepage.css b/multi/css/manual-singlepage.css new file mode 100644 index 000000000..4a7fd1400 --- /dev/null +++ b/multi/css/manual-singlepage.css @@ -0,0 +1,6 @@ +@IMPORT url("manual.css"); + +body { + background: url("../images/background.png") no-repeat center top; +} + diff --git a/multi/css/manual.css b/multi/css/manual.css new file mode 100644 index 000000000..0ecbe2e88 --- /dev/null +++ b/multi/css/manual.css @@ -0,0 +1,344 @@ +@IMPORT url("highlight.css"); + +html { + padding: 0pt; + margin: 0pt; +} + +body { + color: #333333; + margin: 15px 30px; + font-family: Helvetica, Arial, Freesans, Clean, Sans-serif; + line-height: 1.6; + -webkit-font-smoothing: antialiased; +} + +code { + font-size: 16px; + font-family: Consolas, "Liberation Mono", Courier, monospace; +} + +:not(a)>code { + color: #6D180B; +} + +:not(pre)>code { + background-color: #F2F2F2; + border: 1px solid #CCCCCC; + border-radius: 4px; + padding: 1px 3px 0; + text-shadow: none; + white-space: nowrap; +} + +body>*:first-child { + margin-top: 0 !important; +} + +div { + margin: 0pt; +} + +hr { + border: 1px solid #CCCCCC; + background: #CCCCCC; +} + +h1,h2,h3,h4,h5,h6 { + color: #000000; + cursor: text; + font-weight: bold; + margin: 30px 0 10px; + padding: 0; +} + +h1,h2,h3 { + margin: 40px 0 10px; +} + +h1 { + margin: 70px 0 30px; + padding-top: 20px; +} + +div.part h1 { + border-top: 1px dotted #CCCCCC; +} + +h1,h1 code { + font-size: 32px; +} + +h2,h2 code { + font-size: 24px; +} + +h3,h3 code { + font-size: 20px; +} + +h4,h1 code,h5,h5 code,h6,h6 code { + font-size: 18px; +} + +div.book,div.chapter,div.appendix,div.part,div.preface { + min-width: 300px; + max-width: 1200px; + margin: 0 auto; +} + +p.releaseinfo { + font-weight: bold; + margin-bottom: 40px; + margin-top: 40px; +} + +div.authorgroup { + line-height: 1; +} + +p.copyright { + line-height: 1; + margin-bottom: -5px; +} + +.legalnotice p { + font-style: italic; + font-size: 14px; + line-height: 1; +} + +div.titlepage+p,div.titlepage+p { + margin-top: 0; +} + +pre { + line-height: 1.0; + color: black; +} + +a { + color: #4183C4; + text-decoration: none; +} + +p { + margin: 15px 0; + text-align: left; +} + +ul,ol { + padding-left: 30px; +} + +li p { + margin: 0; +} + +div.table { + margin: 1em; + padding: 0.5em; + text-align: center; +} + +div.table table,div.informaltable table { + display: table; + width: 100%; +} + +div.table td { + padding-left: 7px; + padding-right: 7px; +} + +.sidebar { + line-height: 1.4; + padding: 0 20px; + background-color: #F8F8F8; + border: 1px solid #CCCCCC; + border-radius: 3px 3px 3px 3px; +} + +.sidebar p.title { + color: #6D180B; +} + +pre.programlisting,pre.screen { + font-size: 15px; + padding: 6px 10px; + background-color: #F8F8F8; + border: 1px solid #CCCCCC; + border-radius: 3px 3px 3px 3px; + clear: both; + overflow: auto; + line-height: 1.4; + font-family: Consolas, "Liberation Mono", Courier, monospace; +} + +table { + border-collapse: collapse; + border-spacing: 0; + border: 1px solid #DDDDDD !important; + border-radius: 4px !important; + border-collapse: separate !important; + line-height: 1.6; +} + +table thead { + background: #F5F5F5; +} + +table tr { + border: none; + border-bottom: none; +} + +table th { + font-weight: bold; +} + +table th,table td { + border: none !important; + padding: 6px 13px; +} + +table tr:nth-child(2n) { + background-color: #F8F8F8; +} + +td p { + margin: 0 0 15px 0; +} + +div.table-contents td p { + margin: 0; +} + +div.important *,div.note *,div.tip *,div.warning *,div.navheader *,div.navfooter *,div.calloutlist * + { + border: none !important; + background: none !important; + margin: 0; +} + +div.important p,div.note p,div.tip p,div.warning p { + color: #6F6F6F; + line-height: 1.6; +} + +div.important code,div.note code,div.tip code,div.warning code { + background-color: #F2F2F2 !important; + border: 1px solid #CCCCCC !important; + border-radius: 4px !important; + padding: 1px 3px 0 !important; + text-shadow: none !important; + white-space: nowrap !important; +} + +.note th,.tip th,.warning th { + display: none; +} + +.note tr:first-child td,.tip tr:first-child td,.warning tr:first-child td + { + border-right: 1px solid #CCCCCC !important; + padding-top: 10px; +} + +div.calloutlist p,div.calloutlist td { + padding: 0; + margin: 0; +} + +div.calloutlist>table>tbody>tr>td:first-child { + padding-left: 10px; + width: 30px !important; +} + +div.important,div.note,div.tip,div.warning { + margin-left: 0px !important; + margin-right: 20px !important; + margin-top: 20px; + margin-bottom: 20px; + padding-top: 10px; + padding-bottom: 10px; +} + +div.toc { + line-height: 1.2; +} + +dl,dt { + margin-top: 1px; + margin-bottom: 0; +} + +div.toc>dl>dt { + font-size: 32px; + font-weight: bold; + margin: 30px 0 10px 0; + display: block; +} + +div.toc>dl>dd>dl>dt { + font-size: 24px; + font-weight: bold; + margin: 20px 0 10px 0; + display: block; +} + +div.toc>dl>dd>dl>dd>dl>dt { + font-weight: bold; + font-size: 20px; + margin: 10px 0 0 0; +} + +tbody.footnotes * { + border: none !important; +} + +div.footnote p { + margin: 0; + line-height: 1; +} + +div.footnote p sup { + margin-right: 6px; + vertical-align: middle; +} + +div.navheader { + border-bottom: 1px solid #CCCCCC; +} + +div.navfooter { + border-top: 1px solid #CCCCCC; +} + +.title { + margin-left: -1em; + padding-left: 1em; +} + +.title>a { + position: absolute; + visibility: hidden; + display: block; + font-size: 0.85em; + margin-top: 0.05em; + margin-left: -1em; + vertical-align: text-top; + color: black; +} + +.title>a:before { + content: "\00A7"; +} + +.title:hover>a,.title>a:hover,.title:hover>a:hover { + visibility: visible; +} + +.title:focus>a,.title>a:focus,.title:focus>a:focus { + outline: 0; +} diff --git a/multi/images/background.png b/multi/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..15dca6fbe2669fae3609605e49c69cc414f1b6ed GIT binary patch literal 18255 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 EKU&lfD*ylh literal 0 HcmV?d00001 diff --git a/multi/images/caution.png b/multi/images/caution.png new file mode 100644 index 0000000000000000000000000000000000000000..8a5e4fca039d0247dcf55ae0e719cdb457509422 GIT binary patch literal 2099 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 literal 0 HcmV?d00001 diff --git a/multi/images/logo.png b/multi/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ade2ce6ed9d9e9f2f4d9c5729a252ee618a0a5a7 GIT binary patch literal 4387 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 Gh5jGOsoGNj literal 0 HcmV?d00001 diff --git a/multi/images/tip.png b/multi/images/tip.png new file mode 100644 index 0000000000000000000000000000000000000000..6530abb4b5a5d68e3b1c98de512d264c1f8ba883 GIT binary patch literal 931 zcmV;U16=%xP)bSEogsT%F|x0xuT7xdRv7>Rev?4wv{qrDN}+xS$8V5!!ga&#Y1*BgqL?&c}jPc zG_JlfMSD5I%DQQcHXTbGWQtKpeL6yAB|UI5CQ=~#`}=c}Um;E%R)9u^qI0>&GHQ-g zOm;DCkym+{WF$}@UWrV1mtnTPtu!WtY$r7BOpo|N_#mqWGhK#KR0MD7eW*yPaY&xBTRfcG-E5p&`2dq z875XFdy+3GStd(wD_Mg`dys8Xd_houJju_&*4)mZt2Tk1H)DTRJY^_lf>>*ZU2Th5 zWQ3Ly{;kf91GM2s4Vfv8a-fcsXpb+4t> zmM%11X*>M&PQZNVdARf4d*2x!aq1>jOzQ?>>R)(Ok;sOJ)7jfk$Fdif23? z-}3V78&9qod*O;uGk%fEW^;|k`Lo>bOq2iF72o-IGb2gTw+4B~#iYz(oL}sS7|$R2 zDGfrR{|@~AQJ&v(#4u|ZtJP}t520N48P!$8U;|Vfuq=8>E$w`o2Jf`%eqhqbr%IH1zV?O3uDWqKZId-wMQ*MFefpD5X*w@ zok{kNA?%%$F{M!OUcE^^x{~(wkHK|_*9Yg`KNS88FaVH_sda1Xfs6nE002ovPDHLk FV1jwin)(0$ literal 0 HcmV?d00001 diff --git a/multi/images/warning.png b/multi/images/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..0d5b5244605adbb7ab05a1549746a9c35490f95b GIT binary patch literal 2130 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Ⓢ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

pfrFayM9z~ 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∋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 sjR literal 0 HcmV?d00001 diff --git a/multi/pr01.html b/multi/pr01.html new file mode 100644 index 000000000..f0f927940 --- /dev/null +++ b/multi/pr01.html @@ -0,0 +1,3 @@ + + +

1.3.0.BUILD-SNAPSHOT

Spring Cloud Sleuth implements a distributed tracing solution for Spring Cloud.

\ No newline at end of file diff --git a/multi/spring-cloud-sleuth.html b/multi/spring-cloud-sleuth.html new file mode 100644 index 000000000..1de1a9a8b --- /dev/null +++ b/multi/spring-cloud-sleuth.html @@ -0,0 +1,297 @@ + + + Spring Cloud Sleuth

Spring Cloud Sleuth

Adrian Cole, Spencer Gibb, Marcin Grzejszczak, Dave Syer

1 Terminology

Spring Cloud Sleuth borrows Dapper’s terminology.

Span: The basic unit of work. For example, sending an RPC is a new span, as is sending a response to an +RPC. Span’s are identified by a unique 64-bit ID for the span and another 64-bit ID for the trace the span +is a part of. Spans also have other data, such as descriptions, timestamped events, key-value +annotations (tags), the ID of the span that caused them, and process ID’s (normally IP address).

Spans are started and stopped, and they keep track of their timing information. Once you create a +span, you must stop it at some point in the future.

[Tip]Tip

The initial span that starts a trace is called a root span. The value of span id +of that span is equal to trace id.

Trace: A set of spans forming a tree-like structure. For example, if you are running a distributed +big-data store, a trace might be formed by a put request.

Annotation: is used to record existence of an event in time. Some of the core annotations used to define +the start and stop of a request are:

  • cs - Client Sent - The client has made a request. This annotation depicts the start of the span.
  • sr - Server Received - The server side got the request and will start processing it. +If one subtracts the cs timestamp from this timestamp one will receive the network latency.
  • ss - Server Sent - Annotated upon completion of request processing (when the response +got sent back to the client). If one subtracts the sr timestamp from this timestamp one +will receive the time needed by the server side to process the request.
  • cr - Client Received - Signifies the end of the span. The client has successfully received the +response from the server side. If one subtracts the cs timestamp from this timestamp one +will receive the whole time needed by the client to receive the response from the server.

Visualization of what Span and Trace will look in a system together with the Zipkin annotations:

Trace Info propagation

Each color of a note signifies a span (7 spans - from A to G). If you have such information in the note:

Trace Id = X
+Span Id = D
+Client Sent

That means that the current span has Trace-Id set to X, Span-Id set to D. It also has emitted + Client Sent event.

This is how the visualization of the parent / child relationship of spans would look like:

Parent child relationship

2 Purpose

In the following sections the example from the image above will be taken into consideration.

2.1 Distributed tracing with Zipkin

Altogether there are 7 spans . If you go to traces in Zipkin you will see this number in the second trace:

Traces

However if you pick a particular trace then you will see 4 spans:

Traces Info propagation
[Note]Note

When picking a particular trace you will see merged spans. That means that if there were 2 spans sent to +Zipkin with Server Received and Server Sent / Client Received and Client Sent +annotations then they will presented as a single span.

Why is there a difference between the 7 and 4 spans in this case?

  • 2 spans come from http:/start span. It has the Server Received (SR) and Server Sent (SS) annotations.
  • 2 spans come from the RPC call from service1 to service2 to the http:/foo endpoint. It has the Client Sent (CS) +and Client Received (CR) annotations on service1 side. It also has Server Received (SR) and Server Sent (SS) annotations +on the service2 side. Physically there are 2 spans but they form 1 logical span related to an RPC call.
  • 2 spans come from the RPC call from service2 to service3 to the http:/bar endpoint. It has the Client Sent (CS) +and Client Received (CR) annotations on service2 side. It also has Server Received (SR) and Server Sent (SS) annotations +on the service3 side. Physically there are 2 spans but they form 1 logical span related to an RPC call.
  • 2 spans come from the RPC call from service2 to service4 to the http:/baz endpoint. It has the Client Sent (CS) +and Client Received (CR) annotations on service2 side. It also has Server Received (SR) and Server Sent (SS) annotations +on the service4 side. Physically there are 2 spans but they form 1 logical span related to an RPC call.

So if we count the physical spans we have 1 from http:/start, 2 from service1 calling service2, 2 form service2 +calling service3 and 2 from service2 calling service4. Altogether 7 spans.

Logically we see the information of Total Spans: 4 because we have 1 span related to the incoming request +to service1 and 3 spans related to RPC calls.

2.2 Visualizing errors

Zipkin allows you to visualize errors in your trace. When an exception was thrown and wasn’t caught then we’re +setting proper tags on the span which Zipkin can properly colorize. You could see in the list of traces one + trace that was in red color. That’s because there was an exception thrown.

If you click that trace then you’ll see a similar picture

Error Traces

Then if you click on one of the spans you’ll see the following

Error Traces Info propagation

As you can see you can easily see the reason for an error and the whole stacktrace related to it.

2.3 Live examples

Figure 1. Click Pivotal Web Services icon to see it live!

Zipkin deployed on Pivotal Web Services

The dependency graph in Zipkin would look like this:

Dependencies

Figure 2. Click Pivotal Web Services icon to see it live!

Zipkin deployed on Pivotal Web Services

2.4 Log correlation

When grepping the logs of those four applications by trace id equal to e.g. 2485ec27856c56f4 one would get the following:

service1.log:2016-02-26 11:15:47.561  INFO [service1,2485ec27856c56f4,2485ec27856c56f4,true] 68058 --- [nio-8081-exec-1] i.s.c.sleuth.docs.service1.Application   : Hello from service1. Calling service2
+service2.log:2016-02-26 11:15:47.710  INFO [service2,2485ec27856c56f4,9aa10ee6fbde75fa,true] 68059 --- [nio-8082-exec-1] i.s.c.sleuth.docs.service2.Application   : Hello from service2. Calling service3 and then service4
+service3.log:2016-02-26 11:15:47.895  INFO [service3,2485ec27856c56f4,1210be13194bfe5,true] 68060 --- [nio-8083-exec-1] i.s.c.sleuth.docs.service3.Application   : Hello from service3
+service2.log:2016-02-26 11:15:47.924  INFO [service2,2485ec27856c56f4,9aa10ee6fbde75fa,true] 68059 --- [nio-8082-exec-1] i.s.c.sleuth.docs.service2.Application   : Got response from service3 [Hello from service3]
+service4.log:2016-02-26 11:15:48.134  INFO [service4,2485ec27856c56f4,1b1845262ffba49d,true] 68061 --- [nio-8084-exec-1] i.s.c.sleuth.docs.service4.Application   : Hello from service4
+service2.log:2016-02-26 11:15:48.156  INFO [service2,2485ec27856c56f4,9aa10ee6fbde75fa,true] 68059 --- [nio-8082-exec-1] i.s.c.sleuth.docs.service2.Application   : Got response from service4 [Hello from service4]
+service1.log:2016-02-26 11:15:48.182  INFO [service1,2485ec27856c56f4,2485ec27856c56f4,true] 68058 --- [nio-8081-exec-1] i.s.c.sleuth.docs.service1.Application   : Got response from service2 [Hello from service2, response from service3 [Hello from service3] and from service4 [Hello from service4]]

If you’re using a log aggregating tool like Kibana, +Splunk etc. you can order the events that took place. An example of +Kibana would look like this:

Log correlation with Kibana

If you want to use Logstash here is the Grok pattern for Logstash:

filter {
+       # pattern matching logback pattern
+       grok {
+              match => { "message" => "%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:severity}\s+\[%{DATA:service},%{DATA:trace},%{DATA:span},%{DATA:exportable}\]\s+%{DATA:pid}\s+---\s+\[%{DATA:thread}\]\s+%{DATA:class}\s+:\s+%{GREEDYDATA:rest}" }
+       }
+}
[Note]Note

If you want to use Grok together with the logs from Cloud Foundry you have to use this pattern:

filter {
+       # pattern matching logback pattern
+       grok {
+              match => { "message" => "(?m)OUT\s+%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:severity}\s+\[%{DATA:service},%{DATA:trace},%{DATA:span},%{DATA:exportable}\]\s+%{DATA:pid}\s+---\s+\[%{DATA:thread}\]\s+%{DATA:class}\s+:\s+%{GREEDYDATA:rest}" }
+       }
+}

JSON Logback with Logstash

Often you do not want to store your logs in a text file but in a JSON file that Logstash can immediately pick. To do that you have to do the following (for readability +we’re passing the dependencies in the groupId:artifactId:version notation.

Dependencies setup

  • Ensure that Logback is on the classpath (ch.qos.logback:logback-core)
  • Add Logstash Logback encode - example for version 4.6 : net.logstash.logback:logstash-logback-encoder:4.6

Logback setup

Below you can find an example of a Logback configuration (file named logback-spring.xml) that:

  • logs information from the application in a JSON format to a build/${spring.application.name}.json file
  • has commented out two additional appenders - console and standard log file
  • has the same logging pattern as the one presented in the previous section
<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+	<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
+	​
+	<springProperty scope="context" name="springAppName" source="spring.application.name"/>
+	<!-- Example for logging into the build folder of your project -->
+	<property name="LOG_FILE" value="${BUILD_FOLDER:-build}/${springAppName}"/>​
+
+	<!-- You can override this to have a custom pattern -->
+	<property name="CONSOLE_LOG_PATTERN"
+			  value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
+
+	<!-- Appender to log to console -->
+	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+			<!-- Minimum logging level to be presented in the console logs-->
+			<level>DEBUG</level>
+		</filter>
+		<encoder>
+			<pattern>${CONSOLE_LOG_PATTERN}</pattern>
+			<charset>utf8</charset>
+		</encoder>
+	</appender>
+
+	<!-- Appender to log to file -->​
+	<appender name="flatfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<file>${LOG_FILE}</file>
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+			<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
+			<maxHistory>7</maxHistory>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${CONSOLE_LOG_PATTERN}</pattern>
+			<charset>utf8</charset>
+		</encoder>
+	</appender>
+	​
+	<!-- Appender to log to file in a JSON format -->
+	<appender name="logstash" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<file>${LOG_FILE}.json</file>
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+			<fileNamePattern>${LOG_FILE}.json.%d{yyyy-MM-dd}.gz</fileNamePattern>
+			<maxHistory>7</maxHistory>
+		</rollingPolicy>
+		<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
+			<providers>
+				<timestamp>
+					<timeZone>UTC</timeZone>
+				</timestamp>
+				<pattern>
+					<pattern>
+						{
+						"severity": "%level",
+						"service": "${springAppName:-}",
+						"trace": "%X{X-B3-TraceId:-}",
+						"span": "%X{X-B3-SpanId:-}",
+						"parent": "%X{X-B3-ParentSpanId:-}",
+						"exportable": "%X{X-Span-Export:-}",
+						"pid": "${PID:-}",
+						"thread": "%thread",
+						"class": "%logger{40}",
+						"rest": "%message"
+						}
+					</pattern>
+				</pattern>
+			</providers>
+		</encoder>
+	</appender>
+	​
+	<root level="INFO">
+		<appender-ref ref="console"/>
+		<!-- uncomment this to have also JSON logs -->
+		<!--<appender-ref ref="logstash"/>-->
+		<!--<appender-ref ref="flatfile"/>-->
+	</root>
+</configuration>
[Note]Note

If you’re using a custom logback-spring.xml then you have to pass the spring.application.name in +bootstrap instead of application property file. Otherwise your custom logback file won’t read the property properly.

2.5 Propagating Span Context

The span context is the state that must get propagated to any child Spans across process boundaries. +Part of the Span Context is the Baggage. The trace and span IDs are a required part of the span context. +Baggage is an optional part.

Baggage is a set of key:value pairs stored in the span context. Baggage travels together with the trace +and is attached to every span. Spring Cloud Sleuth will understand that a header is baggage related if the HTTP + header is prefixed with baggage- and for messaging it starts with baggage_.

[Important]Important

There’s currently no limitation of the count or size of baggage items. However, keep in mind that +too many can decrease system throughput or increase RPC latency. In extreme cases, it could crash the app due +to exceeding transport-level message or header capacity.

Example of setting baggage on a span:

Span initialSpan = this.tracer.createSpan("span");
+initialSpan.setBaggageItem("foo", "bar");
+initialSpan.setBaggageItem("UPPER_CASE", "someValue");

Baggage vs. Span Tags

Baggage travels with the trace (i.e. every child span contains the baggage of its parent). Zipkin has no knowledge of +baggage and will not even receive that information.

Tags are attached to a specific span - they are presented for that particular span only. However you +can search by tag to find the trace, where there exists a span having the searched tag value.

If you want to be able to lookup a span based on baggage, you should add corresponding entry as a tag in the root span.

@Autowired Tracer tracer;
+
+Span span = tracer.getCurrentSpan();
+String baggageKey = "key";
+String baggageValue = "foo";
+span.setBaggageItem(baggageKey, baggageValue);
+tracer.addTag(baggageKey, baggageValue);

3 Adding to the project

3.1 Only Sleuth (log correlation)

If you want to profit only from Spring Cloud Sleuth without the Zipkin integration just add +the spring-cloud-starter-sleuth module to your project.

Maven.  +

<dependencyManagement> 1
+         <dependencies>
+             <dependency>
+                 <groupId>org.springframework.cloud</groupId>
+                 <artifactId>spring-cloud-dependencies</artifactId>
+                 <version>${release.train.version}</version>
+                 <type>pom</type>
+                 <scope>import</scope>
+             </dependency>
+         </dependencies>
+   </dependencyManagement>
+
+   <dependency> 2
+       <groupId>org.springframework.cloud</groupId>
+       <artifactId>spring-cloud-starter-sleuth</artifactId>
+   </dependency>

+

1

In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM

2

Add the dependency to spring-cloud-starter-sleuth

Gradle.  +

dependencyManagement { 1
+    imports {
+        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${releaseTrainVersion}"
+    }
+}
+
+dependencies { 2
+    compile "org.springframework.cloud:spring-cloud-starter-sleuth"
+}

+

1

In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM

2

Add the dependency to spring-cloud-starter-sleuth

3.2 Sleuth with Zipkin via HTTP

If you want both Sleuth and Zipkin just add the spring-cloud-starter-zipkin dependency.

Maven.  +

<dependencyManagement> 1
+         <dependencies>
+             <dependency>
+                 <groupId>org.springframework.cloud</groupId>
+                 <artifactId>spring-cloud-dependencies</artifactId>
+                 <version>${release.train.version}</version>
+                 <type>pom</type>
+                 <scope>import</scope>
+             </dependency>
+         </dependencies>
+   </dependencyManagement>
+
+   <dependency> 2
+       <groupId>org.springframework.cloud</groupId>
+       <artifactId>spring-cloud-starter-zipkin</artifactId>
+   </dependency>

+

1

In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM

2

Add the dependency to spring-cloud-starter-zipkin

Gradle.  +

dependencyManagement { 1
+    imports {
+        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${releaseTrainVersion}"
+    }
+}
+
+dependencies { 2
+    compile "org.springframework.cloud:spring-cloud-starter-zipkin"
+}

+

1

In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM

2

Add the dependency to spring-cloud-starter-zipkin

3.3 Sleuth with Zipkin via Spring Cloud Stream

If you want both Sleuth and Zipkin just add the spring-cloud-sleuth-stream dependency.

Maven.  +

<dependencyManagement> 1
+         <dependencies>
+             <dependency>
+                 <groupId>org.springframework.cloud</groupId>
+                 <artifactId>spring-cloud-dependencies</artifactId>
+                 <version>${release.train.version}</version>
+                 <type>pom</type>
+                 <scope>import</scope>
+             </dependency>
+         </dependencies>
+   </dependencyManagement>
+
+   <dependency> 2
+       <groupId>org.springframework.cloud</groupId>
+       <artifactId>spring-cloud-sleuth-stream</artifactId>
+   </dependency>
+   <dependency> 3
+       <groupId>org.springframework.cloud</groupId>
+       <artifactId>spring-cloud-starter-sleuth</artifactId>
+   </dependency>
+   <!-- EXAMPLE FOR RABBIT BINDING -->
+   <dependency> 4
+       <groupId>org.springframework.cloud</groupId>
+       <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
+   </dependency>

+

1

In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM

2

Add the dependency to spring-cloud-sleuth-stream

3

Add the dependency to spring-cloud-starter-sleuth - that way all dependant dependencies will be downloaded

4

Add a binder (e.g. Rabbit binder) to tell Spring Cloud Stream what it should bind to

Gradle.  +

dependencyManagement { 1
+    imports {
+        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${releaseTrainVersion}"
+    }
+}
+
+dependencies {
+    compile "org.springframework.cloud:spring-cloud-sleuth-stream" 2
+    compile "org.springframework.cloud:spring-cloud-starter-sleuth" 3
+    // Example for Rabbit binding
+    compile "org.springframework.cloud:spring-cloud-stream-binder-rabbit" 4
+}

+

1

In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM

2

Add the dependency to spring-cloud-sleuth-stream

3

Add the dependency to spring-cloud-starter-sleuth - that way all dependant dependencies will be downloaded

4

Add a binder (e.g. Rabbit binder) to tell Spring Cloud Stream what it should bind to

3.4 Spring Cloud Sleuth Stream Zipkin Collector

If you want to start a Spring Cloud Sleuth Stream Zipkin collector just add the spring-cloud-sleuth-zipkin-stream +dependency

Maven.  +

<dependencyManagement> 1
+         <dependencies>
+             <dependency>
+                 <groupId>org.springframework.cloud</groupId>
+                 <artifactId>spring-cloud-dependencies</artifactId>
+                 <version>${release.train.version}</version>
+                 <type>pom</type>
+                 <scope>import</scope>
+             </dependency>
+         </dependencies>
+   </dependencyManagement>
+
+   <dependency> 2
+       <groupId>org.springframework.cloud</groupId>
+       <artifactId>spring-cloud-sleuth-zipkin-stream</artifactId>
+   </dependency>
+   <dependency> 3
+       <groupId>org.springframework.cloud</groupId>
+       <artifactId>spring-cloud-starter-sleuth</artifactId>
+   </dependency>
+   <!-- EXAMPLE FOR RABBIT BINDING -->
+   <dependency> 4
+       <groupId>org.springframework.cloud</groupId>
+       <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
+   </dependency>

+

1

In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM

2

Add the dependency to spring-cloud-sleuth-zipkin-stream

3

Add the dependency to spring-cloud-starter-sleuth - that way all dependant dependencies will be downloaded

4

Add a binder (e.g. Rabbit binder) to tell Spring Cloud Stream what it should bind to

Gradle.  +

dependencyManagement { 1
+    imports {
+        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${releaseTrainVersion}"
+    }
+}
+
+dependencies {
+    compile "org.springframework.cloud:spring-cloud-sleuth-zipkin-stream" 2
+    compile "org.springframework.cloud:spring-cloud-starter-sleuth" 3
+    // Example for Rabbit binding
+    compile "org.springframework.cloud:spring-cloud-stream-binder-rabbit" 4
+}

+

1

In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM

2

Add the dependency to spring-cloud-sleuth-zipkin-stream

3

Add the dependency to spring-cloud-starter-sleuth - that way all dependant dependencies will be downloaded

4

Add a binder (e.g. Rabbit binder) to tell Spring Cloud Stream what it should bind to

and then just annotate your main class with @EnableZipkinStreamServer annotation:

package example;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.sleuth.zipkin.stream.EnableZipkinStreamServer;
+
+@SpringBootApplication
+@EnableZipkinStreamServer
+public class ZipkinStreamServerApplication {
+
+	public static void main(String[] args) throws Exception {
+		SpringApplication.run(ZipkinStreamServerApplication.class, args);
+	}
+
+}
\ No newline at end of file diff --git a/single/css/highlight.css b/single/css/highlight.css new file mode 100644 index 000000000..ffefef72d --- /dev/null +++ b/single/css/highlight.css @@ -0,0 +1,35 @@ +/* + code highlight CSS resemblign the Eclipse IDE default color schema + @author Costin Leau +*/ + +.hl-keyword { + color: #7F0055; + font-weight: bold; +} + +.hl-comment { + color: #3F5F5F; + font-style: italic; +} + +.hl-multiline-comment { + color: #3F5FBF; + font-style: italic; +} + +.hl-tag { + color: #3F7F7F; +} + +.hl-attribute { + color: #7F007F; +} + +.hl-value { + color: #2A00FF; +} + +.hl-string { + color: #2A00FF; +} \ No newline at end of file diff --git a/single/css/manual-multipage.css b/single/css/manual-multipage.css new file mode 100644 index 000000000..0c484531c --- /dev/null +++ b/single/css/manual-multipage.css @@ -0,0 +1,9 @@ +@IMPORT url("manual.css"); + +body.firstpage { + background: url("../images/background.png") no-repeat center top; +} + +div.part h1 { + border-top: none; +} diff --git a/single/css/manual-singlepage.css b/single/css/manual-singlepage.css new file mode 100644 index 000000000..4a7fd1400 --- /dev/null +++ b/single/css/manual-singlepage.css @@ -0,0 +1,6 @@ +@IMPORT url("manual.css"); + +body { + background: url("../images/background.png") no-repeat center top; +} + diff --git a/single/css/manual.css b/single/css/manual.css new file mode 100644 index 000000000..0ecbe2e88 --- /dev/null +++ b/single/css/manual.css @@ -0,0 +1,344 @@ +@IMPORT url("highlight.css"); + +html { + padding: 0pt; + margin: 0pt; +} + +body { + color: #333333; + margin: 15px 30px; + font-family: Helvetica, Arial, Freesans, Clean, Sans-serif; + line-height: 1.6; + -webkit-font-smoothing: antialiased; +} + +code { + font-size: 16px; + font-family: Consolas, "Liberation Mono", Courier, monospace; +} + +:not(a)>code { + color: #6D180B; +} + +:not(pre)>code { + background-color: #F2F2F2; + border: 1px solid #CCCCCC; + border-radius: 4px; + padding: 1px 3px 0; + text-shadow: none; + white-space: nowrap; +} + +body>*:first-child { + margin-top: 0 !important; +} + +div { + margin: 0pt; +} + +hr { + border: 1px solid #CCCCCC; + background: #CCCCCC; +} + +h1,h2,h3,h4,h5,h6 { + color: #000000; + cursor: text; + font-weight: bold; + margin: 30px 0 10px; + padding: 0; +} + +h1,h2,h3 { + margin: 40px 0 10px; +} + +h1 { + margin: 70px 0 30px; + padding-top: 20px; +} + +div.part h1 { + border-top: 1px dotted #CCCCCC; +} + +h1,h1 code { + font-size: 32px; +} + +h2,h2 code { + font-size: 24px; +} + +h3,h3 code { + font-size: 20px; +} + +h4,h1 code,h5,h5 code,h6,h6 code { + font-size: 18px; +} + +div.book,div.chapter,div.appendix,div.part,div.preface { + min-width: 300px; + max-width: 1200px; + margin: 0 auto; +} + +p.releaseinfo { + font-weight: bold; + margin-bottom: 40px; + margin-top: 40px; +} + +div.authorgroup { + line-height: 1; +} + +p.copyright { + line-height: 1; + margin-bottom: -5px; +} + +.legalnotice p { + font-style: italic; + font-size: 14px; + line-height: 1; +} + +div.titlepage+p,div.titlepage+p { + margin-top: 0; +} + +pre { + line-height: 1.0; + color: black; +} + +a { + color: #4183C4; + text-decoration: none; +} + +p { + margin: 15px 0; + text-align: left; +} + +ul,ol { + padding-left: 30px; +} + +li p { + margin: 0; +} + +div.table { + margin: 1em; + padding: 0.5em; + text-align: center; +} + +div.table table,div.informaltable table { + display: table; + width: 100%; +} + +div.table td { + padding-left: 7px; + padding-right: 7px; +} + +.sidebar { + line-height: 1.4; + padding: 0 20px; + background-color: #F8F8F8; + border: 1px solid #CCCCCC; + border-radius: 3px 3px 3px 3px; +} + +.sidebar p.title { + color: #6D180B; +} + +pre.programlisting,pre.screen { + font-size: 15px; + padding: 6px 10px; + background-color: #F8F8F8; + border: 1px solid #CCCCCC; + border-radius: 3px 3px 3px 3px; + clear: both; + overflow: auto; + line-height: 1.4; + font-family: Consolas, "Liberation Mono", Courier, monospace; +} + +table { + border-collapse: collapse; + border-spacing: 0; + border: 1px solid #DDDDDD !important; + border-radius: 4px !important; + border-collapse: separate !important; + line-height: 1.6; +} + +table thead { + background: #F5F5F5; +} + +table tr { + border: none; + border-bottom: none; +} + +table th { + font-weight: bold; +} + +table th,table td { + border: none !important; + padding: 6px 13px; +} + +table tr:nth-child(2n) { + background-color: #F8F8F8; +} + +td p { + margin: 0 0 15px 0; +} + +div.table-contents td p { + margin: 0; +} + +div.important *,div.note *,div.tip *,div.warning *,div.navheader *,div.navfooter *,div.calloutlist * + { + border: none !important; + background: none !important; + margin: 0; +} + +div.important p,div.note p,div.tip p,div.warning p { + color: #6F6F6F; + line-height: 1.6; +} + +div.important code,div.note code,div.tip code,div.warning code { + background-color: #F2F2F2 !important; + border: 1px solid #CCCCCC !important; + border-radius: 4px !important; + padding: 1px 3px 0 !important; + text-shadow: none !important; + white-space: nowrap !important; +} + +.note th,.tip th,.warning th { + display: none; +} + +.note tr:first-child td,.tip tr:first-child td,.warning tr:first-child td + { + border-right: 1px solid #CCCCCC !important; + padding-top: 10px; +} + +div.calloutlist p,div.calloutlist td { + padding: 0; + margin: 0; +} + +div.calloutlist>table>tbody>tr>td:first-child { + padding-left: 10px; + width: 30px !important; +} + +div.important,div.note,div.tip,div.warning { + margin-left: 0px !important; + margin-right: 20px !important; + margin-top: 20px; + margin-bottom: 20px; + padding-top: 10px; + padding-bottom: 10px; +} + +div.toc { + line-height: 1.2; +} + +dl,dt { + margin-top: 1px; + margin-bottom: 0; +} + +div.toc>dl>dt { + font-size: 32px; + font-weight: bold; + margin: 30px 0 10px 0; + display: block; +} + +div.toc>dl>dd>dl>dt { + font-size: 24px; + font-weight: bold; + margin: 20px 0 10px 0; + display: block; +} + +div.toc>dl>dd>dl>dd>dl>dt { + font-weight: bold; + font-size: 20px; + margin: 10px 0 0 0; +} + +tbody.footnotes * { + border: none !important; +} + +div.footnote p { + margin: 0; + line-height: 1; +} + +div.footnote p sup { + margin-right: 6px; + vertical-align: middle; +} + +div.navheader { + border-bottom: 1px solid #CCCCCC; +} + +div.navfooter { + border-top: 1px solid #CCCCCC; +} + +.title { + margin-left: -1em; + padding-left: 1em; +} + +.title>a { + position: absolute; + visibility: hidden; + display: block; + font-size: 0.85em; + margin-top: 0.05em; + margin-left: -1em; + vertical-align: text-top; + color: black; +} + +.title>a:before { + content: "\00A7"; +} + +.title:hover>a,.title>a:hover,.title:hover>a:hover { + visibility: visible; +} + +.title:focus>a,.title>a:focus,.title:focus>a:focus { + outline: 0; +} diff --git a/single/images/background.png b/single/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..15dca6fbe2669fae3609605e49c69cc414f1b6ed GIT binary patch literal 18255 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 EKU&lfD*ylh literal 0 HcmV?d00001 diff --git a/single/images/caution.png b/single/images/caution.png new file mode 100644 index 0000000000000000000000000000000000000000..8a5e4fca039d0247dcf55ae0e719cdb457509422 GIT binary patch literal 2099 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 literal 0 HcmV?d00001 diff --git a/single/images/logo.png b/single/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ade2ce6ed9d9e9f2f4d9c5729a252ee618a0a5a7 GIT binary patch literal 4387 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 Gh5jGOsoGNj literal 0 HcmV?d00001 diff --git a/single/images/tip.png b/single/images/tip.png new file mode 100644 index 0000000000000000000000000000000000000000..6530abb4b5a5d68e3b1c98de512d264c1f8ba883 GIT binary patch literal 931 zcmV;U16=%xP)bSEogsT%F|x0xuT7xdRv7>Rev?4wv{qrDN}+xS$8V5!!ga&#Y1*BgqL?&c}jPc zG_JlfMSD5I%DQQcHXTbGWQtKpeL6yAB|UI5CQ=~#`}=c}Um;E%R)9u^qI0>&GHQ-g zOm;DCkym+{WF$}@UWrV1mtnTPtu!WtY$r7BOpo|N_#mqWGhK#KR0MD7eW*yPaY&xBTRfcG-E5p&`2dq z875XFdy+3GStd(wD_Mg`dys8Xd_houJju_&*4)mZt2Tk1H)DTRJY^_lf>>*ZU2Th5 zWQ3Ly{;kf91GM2s4Vfv8a-fcsXpb+4t> zmM%11X*>M&PQZNVdARf4d*2x!aq1>jOzQ?>>R)(Ok;sOJ)7jfk$Fdif23? z-}3V78&9qod*O;uGk%fEW^;|k`Lo>bOq2iF72o-IGb2gTw+4B~#iYz(oL}sS7|$R2 zDGfrR{|@~AQJ&v(#4u|ZtJP}t520N48P!$8U;|Vfuq=8>E$w`o2Jf`%eqhqbr%IH1zV?O3uDWqKZId-wMQ*MFefpD5X*w@ zok{kNA?%%$F{M!OUcE^^x{~(wkHK|_*9Yg`KNS88FaVH_sda1Xfs6nE002ovPDHLk FV1jwin)(0$ literal 0 HcmV?d00001 diff --git a/single/images/warning.png b/single/images/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..0d5b5244605adbb7ab05a1549746a9c35490f95b GIT binary patch literal 2130 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Ⓢ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

pfrFayM9z~ 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∋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 sjR literal 0 HcmV?d00001 diff --git a/single/spring-cloud-sleuth.html b/single/spring-cloud-sleuth.html new file mode 100644 index 000000000..7f94fcb7d --- /dev/null +++ b/single/spring-cloud-sleuth.html @@ -0,0 +1,858 @@ + + + Spring Cloud Sleuth

Spring Cloud Sleuth

Adrian Cole, Spencer Gibb, Marcin Grzejszczak, Dave Syer

1.3.0.BUILD-SNAPSHOT

Spring Cloud Sleuth implements a distributed tracing solution for Spring Cloud.

1 Terminology

Spring Cloud Sleuth borrows Dapper’s terminology.

Span: The basic unit of work. For example, sending an RPC is a new span, as is sending a response to an +RPC. Span’s are identified by a unique 64-bit ID for the span and another 64-bit ID for the trace the span +is a part of. Spans also have other data, such as descriptions, timestamped events, key-value +annotations (tags), the ID of the span that caused them, and process ID’s (normally IP address).

Spans are started and stopped, and they keep track of their timing information. Once you create a +span, you must stop it at some point in the future.

[Tip]Tip

The initial span that starts a trace is called a root span. The value of span id +of that span is equal to trace id.

Trace: A set of spans forming a tree-like structure. For example, if you are running a distributed +big-data store, a trace might be formed by a put request.

Annotation: is used to record existence of an event in time. Some of the core annotations used to define +the start and stop of a request are:

  • cs - Client Sent - The client has made a request. This annotation depicts the start of the span.
  • sr - Server Received - The server side got the request and will start processing it. +If one subtracts the cs timestamp from this timestamp one will receive the network latency.
  • ss - Server Sent - Annotated upon completion of request processing (when the response +got sent back to the client). If one subtracts the sr timestamp from this timestamp one +will receive the time needed by the server side to process the request.
  • cr - Client Received - Signifies the end of the span. The client has successfully received the +response from the server side. If one subtracts the cs timestamp from this timestamp one +will receive the whole time needed by the client to receive the response from the server.

Visualization of what Span and Trace will look in a system together with the Zipkin annotations:

Trace Info propagation

Each color of a note signifies a span (7 spans - from A to G). If you have such information in the note:

Trace Id = X
+Span Id = D
+Client Sent

That means that the current span has Trace-Id set to X, Span-Id set to D. It also has emitted + Client Sent event.

This is how the visualization of the parent / child relationship of spans would look like:

Parent child relationship

2 Purpose

In the following sections the example from the image above will be taken into consideration.

2.1 Distributed tracing with Zipkin

Altogether there are 7 spans . If you go to traces in Zipkin you will see this number in the second trace:

Traces

However if you pick a particular trace then you will see 4 spans:

Traces Info propagation
[Note]Note

When picking a particular trace you will see merged spans. That means that if there were 2 spans sent to +Zipkin with Server Received and Server Sent / Client Received and Client Sent +annotations then they will presented as a single span.

Why is there a difference between the 7 and 4 spans in this case?

  • 2 spans come from http:/start span. It has the Server Received (SR) and Server Sent (SS) annotations.
  • 2 spans come from the RPC call from service1 to service2 to the http:/foo endpoint. It has the Client Sent (CS) +and Client Received (CR) annotations on service1 side. It also has Server Received (SR) and Server Sent (SS) annotations +on the service2 side. Physically there are 2 spans but they form 1 logical span related to an RPC call.
  • 2 spans come from the RPC call from service2 to service3 to the http:/bar endpoint. It has the Client Sent (CS) +and Client Received (CR) annotations on service2 side. It also has Server Received (SR) and Server Sent (SS) annotations +on the service3 side. Physically there are 2 spans but they form 1 logical span related to an RPC call.
  • 2 spans come from the RPC call from service2 to service4 to the http:/baz endpoint. It has the Client Sent (CS) +and Client Received (CR) annotations on service2 side. It also has Server Received (SR) and Server Sent (SS) annotations +on the service4 side. Physically there are 2 spans but they form 1 logical span related to an RPC call.

So if we count the physical spans we have 1 from http:/start, 2 from service1 calling service2, 2 form service2 +calling service3 and 2 from service2 calling service4. Altogether 7 spans.

Logically we see the information of Total Spans: 4 because we have 1 span related to the incoming request +to service1 and 3 spans related to RPC calls.

2.2 Visualizing errors

Zipkin allows you to visualize errors in your trace. When an exception was thrown and wasn’t caught then we’re +setting proper tags on the span which Zipkin can properly colorize. You could see in the list of traces one + trace that was in red color. That’s because there was an exception thrown.

If you click that trace then you’ll see a similar picture

Error Traces

Then if you click on one of the spans you’ll see the following

Error Traces Info propagation

As you can see you can easily see the reason for an error and the whole stacktrace related to it.

2.3 Live examples

Figure 1. Click Pivotal Web Services icon to see it live!

Zipkin deployed on Pivotal Web Services

The dependency graph in Zipkin would look like this:

Dependencies

Figure 2. Click Pivotal Web Services icon to see it live!

Zipkin deployed on Pivotal Web Services

2.4 Log correlation

When grepping the logs of those four applications by trace id equal to e.g. 2485ec27856c56f4 one would get the following:

service1.log:2016-02-26 11:15:47.561  INFO [service1,2485ec27856c56f4,2485ec27856c56f4,true] 68058 --- [nio-8081-exec-1] i.s.c.sleuth.docs.service1.Application   : Hello from service1. Calling service2
+service2.log:2016-02-26 11:15:47.710  INFO [service2,2485ec27856c56f4,9aa10ee6fbde75fa,true] 68059 --- [nio-8082-exec-1] i.s.c.sleuth.docs.service2.Application   : Hello from service2. Calling service3 and then service4
+service3.log:2016-02-26 11:15:47.895  INFO [service3,2485ec27856c56f4,1210be13194bfe5,true] 68060 --- [nio-8083-exec-1] i.s.c.sleuth.docs.service3.Application   : Hello from service3
+service2.log:2016-02-26 11:15:47.924  INFO [service2,2485ec27856c56f4,9aa10ee6fbde75fa,true] 68059 --- [nio-8082-exec-1] i.s.c.sleuth.docs.service2.Application   : Got response from service3 [Hello from service3]
+service4.log:2016-02-26 11:15:48.134  INFO [service4,2485ec27856c56f4,1b1845262ffba49d,true] 68061 --- [nio-8084-exec-1] i.s.c.sleuth.docs.service4.Application   : Hello from service4
+service2.log:2016-02-26 11:15:48.156  INFO [service2,2485ec27856c56f4,9aa10ee6fbde75fa,true] 68059 --- [nio-8082-exec-1] i.s.c.sleuth.docs.service2.Application   : Got response from service4 [Hello from service4]
+service1.log:2016-02-26 11:15:48.182  INFO [service1,2485ec27856c56f4,2485ec27856c56f4,true] 68058 --- [nio-8081-exec-1] i.s.c.sleuth.docs.service1.Application   : Got response from service2 [Hello from service2, response from service3 [Hello from service3] and from service4 [Hello from service4]]

If you’re using a log aggregating tool like Kibana, +Splunk etc. you can order the events that took place. An example of +Kibana would look like this:

Log correlation with Kibana

If you want to use Logstash here is the Grok pattern for Logstash:

filter {
+       # pattern matching logback pattern
+       grok {
+              match => { "message" => "%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:severity}\s+\[%{DATA:service},%{DATA:trace},%{DATA:span},%{DATA:exportable}\]\s+%{DATA:pid}\s+---\s+\[%{DATA:thread}\]\s+%{DATA:class}\s+:\s+%{GREEDYDATA:rest}" }
+       }
+}
[Note]Note

If you want to use Grok together with the logs from Cloud Foundry you have to use this pattern:

filter {
+       # pattern matching logback pattern
+       grok {
+              match => { "message" => "(?m)OUT\s+%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:severity}\s+\[%{DATA:service},%{DATA:trace},%{DATA:span},%{DATA:exportable}\]\s+%{DATA:pid}\s+---\s+\[%{DATA:thread}\]\s+%{DATA:class}\s+:\s+%{GREEDYDATA:rest}" }
+       }
+}

JSON Logback with Logstash

Often you do not want to store your logs in a text file but in a JSON file that Logstash can immediately pick. To do that you have to do the following (for readability +we’re passing the dependencies in the groupId:artifactId:version notation.

Dependencies setup

  • Ensure that Logback is on the classpath (ch.qos.logback:logback-core)
  • Add Logstash Logback encode - example for version 4.6 : net.logstash.logback:logstash-logback-encoder:4.6

Logback setup

Below you can find an example of a Logback configuration (file named logback-spring.xml) that:

  • logs information from the application in a JSON format to a build/${spring.application.name}.json file
  • has commented out two additional appenders - console and standard log file
  • has the same logging pattern as the one presented in the previous section
<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+	<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
+	​
+	<springProperty scope="context" name="springAppName" source="spring.application.name"/>
+	<!-- Example for logging into the build folder of your project -->
+	<property name="LOG_FILE" value="${BUILD_FOLDER:-build}/${springAppName}"/>​
+
+	<!-- You can override this to have a custom pattern -->
+	<property name="CONSOLE_LOG_PATTERN"
+			  value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
+
+	<!-- Appender to log to console -->
+	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+			<!-- Minimum logging level to be presented in the console logs-->
+			<level>DEBUG</level>
+		</filter>
+		<encoder>
+			<pattern>${CONSOLE_LOG_PATTERN}</pattern>
+			<charset>utf8</charset>
+		</encoder>
+	</appender>
+
+	<!-- Appender to log to file -->​
+	<appender name="flatfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<file>${LOG_FILE}</file>
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+			<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
+			<maxHistory>7</maxHistory>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${CONSOLE_LOG_PATTERN}</pattern>
+			<charset>utf8</charset>
+		</encoder>
+	</appender>
+	​
+	<!-- Appender to log to file in a JSON format -->
+	<appender name="logstash" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<file>${LOG_FILE}.json</file>
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+			<fileNamePattern>${LOG_FILE}.json.%d{yyyy-MM-dd}.gz</fileNamePattern>
+			<maxHistory>7</maxHistory>
+		</rollingPolicy>
+		<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
+			<providers>
+				<timestamp>
+					<timeZone>UTC</timeZone>
+				</timestamp>
+				<pattern>
+					<pattern>
+						{
+						"severity": "%level",
+						"service": "${springAppName:-}",
+						"trace": "%X{X-B3-TraceId:-}",
+						"span": "%X{X-B3-SpanId:-}",
+						"parent": "%X{X-B3-ParentSpanId:-}",
+						"exportable": "%X{X-Span-Export:-}",
+						"pid": "${PID:-}",
+						"thread": "%thread",
+						"class": "%logger{40}",
+						"rest": "%message"
+						}
+					</pattern>
+				</pattern>
+			</providers>
+		</encoder>
+	</appender>
+	​
+	<root level="INFO">
+		<appender-ref ref="console"/>
+		<!-- uncomment this to have also JSON logs -->
+		<!--<appender-ref ref="logstash"/>-->
+		<!--<appender-ref ref="flatfile"/>-->
+	</root>
+</configuration>
[Note]Note

If you’re using a custom logback-spring.xml then you have to pass the spring.application.name in +bootstrap instead of application property file. Otherwise your custom logback file won’t read the property properly.

2.5 Propagating Span Context

The span context is the state that must get propagated to any child Spans across process boundaries. +Part of the Span Context is the Baggage. The trace and span IDs are a required part of the span context. +Baggage is an optional part.

Baggage is a set of key:value pairs stored in the span context. Baggage travels together with the trace +and is attached to every span. Spring Cloud Sleuth will understand that a header is baggage related if the HTTP + header is prefixed with baggage- and for messaging it starts with baggage_.

[Important]Important

There’s currently no limitation of the count or size of baggage items. However, keep in mind that +too many can decrease system throughput or increase RPC latency. In extreme cases, it could crash the app due +to exceeding transport-level message or header capacity.

Example of setting baggage on a span:

Span initialSpan = this.tracer.createSpan("span");
+initialSpan.setBaggageItem("foo", "bar");
+initialSpan.setBaggageItem("UPPER_CASE", "someValue");

Baggage vs. Span Tags

Baggage travels with the trace (i.e. every child span contains the baggage of its parent). Zipkin has no knowledge of +baggage and will not even receive that information.

Tags are attached to a specific span - they are presented for that particular span only. However you +can search by tag to find the trace, where there exists a span having the searched tag value.

If you want to be able to lookup a span based on baggage, you should add corresponding entry as a tag in the root span.

@Autowired Tracer tracer;
+
+Span span = tracer.getCurrentSpan();
+String baggageKey = "key";
+String baggageValue = "foo";
+span.setBaggageItem(baggageKey, baggageValue);
+tracer.addTag(baggageKey, baggageValue);

3 Adding to the project

3.1 Only Sleuth (log correlation)

If you want to profit only from Spring Cloud Sleuth without the Zipkin integration just add +the spring-cloud-starter-sleuth module to your project.

Maven.  +

<dependencyManagement> 1
+         <dependencies>
+             <dependency>
+                 <groupId>org.springframework.cloud</groupId>
+                 <artifactId>spring-cloud-dependencies</artifactId>
+                 <version>${release.train.version}</version>
+                 <type>pom</type>
+                 <scope>import</scope>
+             </dependency>
+         </dependencies>
+   </dependencyManagement>
+
+   <dependency> 2
+       <groupId>org.springframework.cloud</groupId>
+       <artifactId>spring-cloud-starter-sleuth</artifactId>
+   </dependency>

+

1

In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM

2

Add the dependency to spring-cloud-starter-sleuth

Gradle.  +

dependencyManagement { 1
+    imports {
+        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${releaseTrainVersion}"
+    }
+}
+
+dependencies { 2
+    compile "org.springframework.cloud:spring-cloud-starter-sleuth"
+}

+

1

In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM

2

Add the dependency to spring-cloud-starter-sleuth

3.2 Sleuth with Zipkin via HTTP

If you want both Sleuth and Zipkin just add the spring-cloud-starter-zipkin dependency.

Maven.  +

<dependencyManagement> 1
+         <dependencies>
+             <dependency>
+                 <groupId>org.springframework.cloud</groupId>
+                 <artifactId>spring-cloud-dependencies</artifactId>
+                 <version>${release.train.version}</version>
+                 <type>pom</type>
+                 <scope>import</scope>
+             </dependency>
+         </dependencies>
+   </dependencyManagement>
+
+   <dependency> 2
+       <groupId>org.springframework.cloud</groupId>
+       <artifactId>spring-cloud-starter-zipkin</artifactId>
+   </dependency>

+

1

In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM

2

Add the dependency to spring-cloud-starter-zipkin

Gradle.  +

dependencyManagement { 1
+    imports {
+        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${releaseTrainVersion}"
+    }
+}
+
+dependencies { 2
+    compile "org.springframework.cloud:spring-cloud-starter-zipkin"
+}

+

1

In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM

2

Add the dependency to spring-cloud-starter-zipkin

3.3 Sleuth with Zipkin via Spring Cloud Stream

If you want both Sleuth and Zipkin just add the spring-cloud-sleuth-stream dependency.

Maven.  +

<dependencyManagement> 1
+         <dependencies>
+             <dependency>
+                 <groupId>org.springframework.cloud</groupId>
+                 <artifactId>spring-cloud-dependencies</artifactId>
+                 <version>${release.train.version}</version>
+                 <type>pom</type>
+                 <scope>import</scope>
+             </dependency>
+         </dependencies>
+   </dependencyManagement>
+
+   <dependency> 2
+       <groupId>org.springframework.cloud</groupId>
+       <artifactId>spring-cloud-sleuth-stream</artifactId>
+   </dependency>
+   <dependency> 3
+       <groupId>org.springframework.cloud</groupId>
+       <artifactId>spring-cloud-starter-sleuth</artifactId>
+   </dependency>
+   <!-- EXAMPLE FOR RABBIT BINDING -->
+   <dependency> 4
+       <groupId>org.springframework.cloud</groupId>
+       <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
+   </dependency>

+

1

In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM

2

Add the dependency to spring-cloud-sleuth-stream

3

Add the dependency to spring-cloud-starter-sleuth - that way all dependant dependencies will be downloaded

4

Add a binder (e.g. Rabbit binder) to tell Spring Cloud Stream what it should bind to

Gradle.  +

dependencyManagement { 1
+    imports {
+        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${releaseTrainVersion}"
+    }
+}
+
+dependencies {
+    compile "org.springframework.cloud:spring-cloud-sleuth-stream" 2
+    compile "org.springframework.cloud:spring-cloud-starter-sleuth" 3
+    // Example for Rabbit binding
+    compile "org.springframework.cloud:spring-cloud-stream-binder-rabbit" 4
+}

+

1

In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM

2

Add the dependency to spring-cloud-sleuth-stream

3

Add the dependency to spring-cloud-starter-sleuth - that way all dependant dependencies will be downloaded

4

Add a binder (e.g. Rabbit binder) to tell Spring Cloud Stream what it should bind to

3.4 Spring Cloud Sleuth Stream Zipkin Collector

If you want to start a Spring Cloud Sleuth Stream Zipkin collector just add the spring-cloud-sleuth-zipkin-stream +dependency

Maven.  +

<dependencyManagement> 1
+         <dependencies>
+             <dependency>
+                 <groupId>org.springframework.cloud</groupId>
+                 <artifactId>spring-cloud-dependencies</artifactId>
+                 <version>${release.train.version}</version>
+                 <type>pom</type>
+                 <scope>import</scope>
+             </dependency>
+         </dependencies>
+   </dependencyManagement>
+
+   <dependency> 2
+       <groupId>org.springframework.cloud</groupId>
+       <artifactId>spring-cloud-sleuth-zipkin-stream</artifactId>
+   </dependency>
+   <dependency> 3
+       <groupId>org.springframework.cloud</groupId>
+       <artifactId>spring-cloud-starter-sleuth</artifactId>
+   </dependency>
+   <!-- EXAMPLE FOR RABBIT BINDING -->
+   <dependency> 4
+       <groupId>org.springframework.cloud</groupId>
+       <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
+   </dependency>

+

1

In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM

2

Add the dependency to spring-cloud-sleuth-zipkin-stream

3

Add the dependency to spring-cloud-starter-sleuth - that way all dependant dependencies will be downloaded

4

Add a binder (e.g. Rabbit binder) to tell Spring Cloud Stream what it should bind to

Gradle.  +

dependencyManagement { 1
+    imports {
+        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${releaseTrainVersion}"
+    }
+}
+
+dependencies {
+    compile "org.springframework.cloud:spring-cloud-sleuth-zipkin-stream" 2
+    compile "org.springframework.cloud:spring-cloud-starter-sleuth" 3
+    // Example for Rabbit binding
+    compile "org.springframework.cloud:spring-cloud-stream-binder-rabbit" 4
+}

+

1

In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM

2

Add the dependency to spring-cloud-sleuth-zipkin-stream

3

Add the dependency to spring-cloud-starter-sleuth - that way all dependant dependencies will be downloaded

4

Add a binder (e.g. Rabbit binder) to tell Spring Cloud Stream what it should bind to

and then just annotate your main class with @EnableZipkinStreamServer annotation:

package example;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.sleuth.zipkin.stream.EnableZipkinStreamServer;
+
+@SpringBootApplication
+@EnableZipkinStreamServer
+public class ZipkinStreamServerApplication {
+
+	public static void main(String[] args) throws Exception {
+		SpringApplication.run(ZipkinStreamServerApplication.class, args);
+	}
+
+}

1. Additional resources

Marcin Grzejszczak talking about Spring Cloud Sleuth and Zipkin

click here to see the video

2. Features

  • Adds trace and span ids to the Slf4J MDC, so you can extract all the logs from a given trace or span in a log aggregator. Example logs:

    2016-02-02 15:30:57.902  INFO [bar,6bfd228dc00d216b,6bfd228dc00d216b,false] 23030 --- [nio-8081-exec-3] ...
    +2016-02-02 15:30:58.372 ERROR [bar,6bfd228dc00d216b,6bfd228dc00d216b,false] 23030 --- [nio-8081-exec-3] ...
    +2016-02-02 15:31:01.936  INFO [bar,46ab0d418373cbc9,46ab0d418373cbc9,false] 23030 --- [nio-8081-exec-4] ...

    notice the [appname,traceId,spanId,exportable] entries from the MDC:

    • spanId - the id of a specific operation that took place
    • appname - the name of the application that logged the span
    • traceId - the id of the latency graph that contains the span
    • exportable - whether the log should be exported to Zipkin or not. When would you like the span not to be +exportable? In the case in which you want to wrap some operation in a Span and have it written to the logs +only.
  • Provides an abstraction over common distributed tracing data models: traces, spans (forming a DAG), annotations, +key-value annotations. Loosely based on HTrace, but Zipkin (Dapper) compatible.
  • Sleuth records timing information to aid in latency analysis. Using sleuth, you can pinpoint causes of +latency in your applications. Sleuth is written to not log too much, and to not cause your production application to crash.

    • propagates structural data about your call-graph in-band, and the rest out-of-band.
    • includes opinionated instrumentation of layers such as HTTP
    • includes sampling policy to manage volume
    • can report to a Zipkin system for query and visualization
  • Instruments common ingress and egress points from Spring applications (servlet filter, async endpoints, +rest template, scheduled actions, message channels, zuul filters, feign client).
  • Sleuth includes default logic to join a trace across http or messaging boundaries. For example, http propagation +works via Zipkin-compatible request headers. This propagation logic is defined and customized via +SpanInjector and SpanExtractor implementations.
  • Sleuth gives you the possibility to propagate context (also known as baggage) between processes. That means that if you set on a Span +a baggage element then it will be sent downstream either via HTTP or messaging to other processes.
  • Provides a way to create / continue spans and add tags and logs via annotations.
  • Provides simple metrics of accepted / dropped spans.
  • If spring-cloud-sleuth-zipkin then the app will generate and collect Zipkin-compatible traces. +By default it sends them via HTTP to a Zipkin server on localhost (port 9411). +Configure the location of the service using spring.zipkin.baseUrl.
  • If spring-cloud-sleuth-stream then the app will generate and collect traces via Spring Cloud Stream. +Your app automatically becomes a producer of tracer messages that are sent over your broker of choice +(e.g. RabbitMQ, Apache Kafka, Redis).
[Important]Important

If using Zipkin or Stream, configure the percentage of spans exported using spring.sleuth.sampler.percentage +(default 0.1, i.e. 10%). Otherwise you might think that Sleuth is not working cause it’s omitting some spans.

[Note]Note

the SLF4J MDC is always set and logback users will immediately see the trace and span ids in logs per the example + above. Other logging systems have to configure their own formatter to get the same result. The default is + logging.pattern.level set to %5p [${spring.zipkin.service.name:${spring.application.name:-}},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}] + (this is a Spring Boot feature for logback users). + This means that if you’re not using SLF4J this pattern WILL NOT be automatically applied.

3. Sampling

In distributed tracing the data volumes can be very high so sampling +can be important (you usually don’t need to export all spans to get a +good picture of what is happening). Spring Cloud Sleuth has a +Sampler strategy that you can implement to take control of the +sampling algorithm. Samplers do not stop span (correlation) ids from +being generated, but they do prevent the tags and events being +attached and exported. By default you get a strategy that continues to +trace if a span is already active, but new ones are always marked as +non-exportable. If all your apps run with this sampler you will see +traces in logs, but not in any remote store. For testing the default +is often enough, and it probably is all you need if you are only using +the logs (e.g. with an ELK aggregator). If you are exporting span data +to Zipkin or Spring Cloud Stream, there is also an AlwaysSampler +that exports everything and a PercentageBasedSampler that samples a +fixed fraction of spans.

[Note]Note

the PercentageBasedSampler is the default if you are using +spring-cloud-sleuth-zipkin or spring-cloud-sleuth-stream. You can +configure the exports using spring.sleuth.sampler.percentage. The passed +value needs to be a double from 0.0 to 1.0 so it’s not a percentage. +For backwards compatibility reasons we’re not changing the property name.

A sampler can be installed just by creating a bean definition, e.g:

@Bean
+public Sampler defaultSampler() {
+	return new AlwaysSampler();
+}
[Tip]Tip

You can set the HTTP header X-B3-Flags to 1 or when doing messaging you can +set spanFlags header to 1. Then the current span will be forced to be exportable +regardless of the sampling decision.

4. Instrumentation

Spring Cloud Sleuth instruments all your Spring application +automatically, so you shouldn’t have to do anything to activate +it. The instrumentation is added using a variety of technologies +according to the stack that is available, e.g. for a servlet web +application we use a Filter, and for Spring Integration we use +ChannelInterceptors.

You can customize the keys used in span tags. To limit the volume of +span data, by default an HTTP request will be tagged only with a +handful of metadata like the status code, host and URL. You can add +request headers by configuring spring.sleuth.keys.http.headers (a +list of header names).

[Note]Note

Remember that tags are only collected and exported if there is a +Sampler that allows it (by default there is not, so there is no +danger of accidentally collecting too much data without configuring +something).

[Note]Note

Currently the instrumentation in Spring Cloud Sleuth is eager - it means that +we’re actively trying to pass the tracing context between threads. Also timing events +are captured even when sleuth isn’t exporting data to a tracing system. +This approach may change in the future towards being lazy on this matter.

5. Span lifecycle

You can do the following operations on the Span by means of org.springframework.cloud.sleuth.Tracer interface:

  • start - when you start a span its name is assigned and start timestamp is recorded.
  • close - the span gets finished (the end time of the span is recorded) and if +the span is exportable then it will be eligible for collection to Zipkin. +The span is also removed from the current thread.
  • continue - a new instance of span will be created whereas it will be a copy of the +one that it continues.
  • detach - the span doesn’t get stopped or closed. It only gets removed from the current thread.
  • create with explicit parent - you can create a new span and set an explicit parent to it
[Tip]Tip

Spring creates the instance of Tracer for you. In order to use it all you need is to just autowire it.

5.1 Creating and closing spans

You can manually create spans by using the Tracer interface.

// Start a span. If there was a span present in this thread it will become
+// the `newSpan`'s parent.
+Span newSpan = this.tracer.createSpan("calculateTax");
+try {
+	// ...
+	// You can tag a span
+	this.tracer.addTag("taxValue", taxValue);
+	// ...
+	// You can log an event on a span
+	newSpan.logEvent("taxCalculated");
+} finally {
+	// Once done remember to close the span. This will allow collecting
+	// the span to send it to Zipkin
+	this.tracer.close(newSpan);
+}

In this example we could see how to create a new instance of span. Assuming that there already +was a span present in this thread then it would become the parent of that span.

[Important]Important

Always clean after you create a span! Don’t forget to close a span if you want to send it to Zipkin.

[Important]Important

If your span contains a name greater than 50 chars, then that name will +be truncated to 50 chars. Your names have to be explicit and concrete. Big names lead to +latency issues and sometimes even thrown exceptions.

5.2 Continuing spans

Sometimes you don’t want to create a new span but you want to continue one. Example of such a +situation might be (of course it all depends on the use-case):

  • AOP - If there was already a span created before an aspect was reached then you might not want to create a new span.
  • Hystrix - executing a Hystrix command is most likely a logical part of the current processing. It’s in fact +only a technical implementation detail that you wouldn’t necessarily want to reflect in tracing as a separate being.

The continued instance of span is equal to the one that it continues:

Span continuedSpan = this.tracer.continueSpan(spanToContinue);
+assertThat(continuedSpan).isEqualTo(spanToContinue);

To continue a span you can use the Tracer interface.

// let's assume that we're in a thread Y and we've received
+// the `initialSpan` from thread X
+Span continuedSpan = this.tracer.continueSpan(initialSpan);
+try {
+	// ...
+	// You can tag a span
+	this.tracer.addTag("taxValue", taxValue);
+	// ...
+	// You can log an event on a span
+	continuedSpan.logEvent("taxCalculated");
+} finally {
+	// Once done remember to detach the span. That way you'll
+	// safely remove it from the current thread without closing it
+	this.tracer.detach(continuedSpan);
+}
[Important]Important

Always clean after you create a span! Don’t forget to detach a span if some work was done started in one + thread (e.g. thread X) and it’s waiting for other threads (e.g. Y, Z) to finish. + Then the spans in the threads Y, Z should be detached at the end of their work. When the results are collected + the span in thread X should be closed.

5.3 Creating spans with an explicit parent

There is a possibility that you want to start a new span and provide an explicit parent of that span. +Let’s assume that the parent of a span is in one thread and you want to start a new span in another thread. The +startSpan method of the Tracer interface is the method you are looking for.

// let's assume that we're in a thread Y and we've received
+// the `initialSpan` from thread X. `initialSpan` will be the parent
+// of the `newSpan`
+Span newSpan = this.tracer.createSpan("calculateCommission", initialSpan);
+try {
+	// ...
+	// You can tag a span
+	this.tracer.addTag("commissionValue", commissionValue);
+	// ...
+	// You can log an event on a span
+	newSpan.logEvent("commissionCalculated");
+} finally {
+	// Once done remember to close the span. This will allow collecting
+	// the span to send it to Zipkin. The tags and events set on the
+	// newSpan will not be present on the parent
+	this.tracer.close(newSpan);
+}
[Important]Important

After having created such a span remember to close it. Otherwise you will see a lot of warnings in your logs + related to the fact that you have a span present in the current thread other than the one you’re trying to close. + What’s worse your spans won’t get closed properly thus will not get collected to Zipkin.

6. Naming spans

Picking a span name is not a trivial task. Span name should depict an operation name. The name should +be low cardinality (e.g. not include identifiers).

Since there is a lot of instrumentation going on some of the span names will be +artificial like:

  • controller-method-name when received by a Controller with a method name conrollerMethodName
  • async for asynchronous operations done via wrapped Callable and Runnable.
  • @Scheduled annotated methods will return the simple name of the class.

Fortunately, for the asynchronous processing you can provide explicit naming.

6.1 @SpanName annotation

You can name the span explicitly via the @SpanName annotation.

@SpanName("calculateTax")
+class TaxCountingRunnable implements Runnable {
+
+	@Override public void run() {
+		// perform logic
+	}
+}

In this case, when processed in the following manner:

Runnable runnable = new TraceRunnable(tracer, spanNamer, new TaxCountingRunnable());
+Future<?> future = executorService.submit(runnable);
+// ... some additional logic ...
+future.get();

The span will be named calculateTax.

6.2 toString() method

It’s pretty rare to create separate classes for Runnable or Callable. Typically one creates an anonymous +instance of those classes. You can’t annotate such classes thus to override that, if there is no @SpanName annotation present, +we’re checking if the class has a custom implementation of the toString() method.

So executing such code:

Runnable runnable = new TraceRunnable(tracer, spanNamer, new Runnable() {
+	@Override public void run() {
+		// perform logic
+	}
+
+	@Override public String toString() {
+		return "calculateTax";
+	}
+});
+Future<?> future = executorService.submit(runnable);
+// ... some additional logic ...
+future.get();

will lead in creating a span named calculateTax.

7. Managing spans with annotations

7.1 Rationale

The main arguments for this features are

  • api-agnostic means to collaborate with a span

    • use of annotations allows users to add to a span with no library dependency on a span api. +This allows Sleuth to change its core api less impact to user code.
  • reduced surface area for basic span operations.

    • without this feature one has to use the span api, which has lifecycle commands that +could be used incorrectly. By only exposing scope, tag and log functionality, users can +collaborate without accidentally breaking span lifecycle.
  • collaboration with runtime generated code

    • with libraries such as Spring Data / Feign the implementations of interfaces are generated +at runtime thus span wrapping of objects was tedious. Now you can provide annotations + over interfaces and arguments of those interfaces

7.2 Creating new spans

If you really don’t want to take care of creating local spans manually you can profit from the +@NewSpan annotation. Also we give you the @SpanTag annotation to add tags in an automated +fashion.

Let’s look at some examples of usage.

@NewSpan
+void testMethod();

Annotating the method without any parameter will lead to a creation of a new span whose name +will be equal to annotated method name.

@NewSpan("customNameOnTestMethod4")
+void testMethod4();

If you provide the value in the annotation (either directly or via the name parameter) then +the created span will have the name as the provided value.

// method declaration
+@NewSpan(name = "customNameOnTestMethod5")
+void testMethod5(@SpanTag("testTag") String param);
+
+// and method execution
+this.testBean.testMethod5("test");

You can combine both the name and a tag. Let’s focus on the latter. In this case whatever the value of +the annotated method’s parameter runtime value will be - that will be the value of the tag. In our sample +the tag key will be testTag and the tag value will be test.

@NewSpan(name = "customNameOnTestMethod3")
+@Override
+public void testMethod3() {
+}

You can place the @NewSpan annotation on both the class and an interface. If you override the +interface’s method and provide a different value of the @NewSpan annotation then the most +concrete one wins (in this case customNameOnTestMethod3 will be set).

7.3 Continuing spans

If you want to just add tags and annotations to an existing span it’s enough +to use the @ContinueSpan annotation as presented below. Note that in contrast +with the @NewSpan annotation you can also add logs via the log parameter:

// method declaration
+@ContinueSpan(log = "testMethod11")
+void testMethod11(@SpanTag("testTag11") String param);
+
+// method execution
+this.testBean.testMethod11("test");

That way the span will get continued and:

  • logs with name testMethod11.before and testMethod11.after will be created
  • if an exception will be thrown a log testMethod11.afterFailure will also be created
  • tag with key testTag11 and value test will be created

7.4 More advanced tag setting

There are 3 different ways to add tags to a span. All of them are controlled by the SpanTag annotation. +Precedence is:

  • try with the bean of TagValueResolver type and provided name
  • if one hasn’t provided the bean name, try to evaluate an expression. We’re searching for a TagValueExpressionResolver bean. +The default implementation uses SPEL expression resolution.
  • if one hasn’t provided any expression to evaluate just return a toString() value of the parameter

Custom extractor

The value of the tag for following method will be computed by an implementation of TagValueResolver interface. +Its class name has to be passed as the value of the resolver attribute.

Having such an annotated method:

@NewSpan
+public void getAnnotationForTagValueResolver(@SpanTag(key = "test", resolver = TagValueResolver.class) String test) {
+}

and such a TagValueResolver bean implementation

@Bean(name = "myCustomTagValueResolver")
+public TagValueResolver tagValueResolver() {
+	return parameter -> "Value from myCustomTagValueResolver";
+}

Will lead to setting of a tag value equal to Value from myCustomTagValueResolver.

Resolving expressions for value

Having such an annotated method:

@NewSpan
+public void getAnnotationForTagValueExpression(@SpanTag(key = "test", expression = "length() + ' characters'") String test) {
+}

and no custom implementation of a TagValueExpressionResolver will lead to evaluation of the SPEL expression and a tag with value 4 characters will be set on the span. +If you want to use some other expression resolution mechanism you can create your own implementation +of the bean.

Using toString method

Having such an annotated method:

@NewSpan
+public void getAnnotationForArgumentToString(@SpanTag("test") Long param) {
+}

if executed with a value of 15 will lead to setting of a tag with a String value of "15".

8. Customizations

Thanks to the SpanInjector and SpanExtractor you can customize the way spans +are created and propagated.

There are currently two built-in ways to pass tracing information between processes:

  • via Spring Integration
  • via HTTP

Span ids are extracted from Zipkin-compatible (B3) headers (either Message +or HTTP headers), to start or join an existing trace. Trace information is +injected into any outbound requests so the next hop can extract them.

The key change in comparison to the previous versions of Sleuth is that Sleuth is implementing +the Open Tracing’s TextMap notion. In Sleuth it’s called SpanTextMap. Basically the idea +is that any means of communication (e.g. message, http request, etc.) can be abstracted via +a SpanTextMap. This abstraction defines how one can insert data into the carrier and +how to retrieve it from there. Thanks to this if you want to instrument a new HTTP library +that uses a FooRequest as a mean of sending HTTP requests then you have to create an +implementation of a SpanTextMap that delegates calls to FooRequest in terms of retrieval +and insertion of HTTP headers.

8.1 Spring Integration

For Spring Integration there are 2 interfaces responsible for creation of a Span from a Message. +These are:

  • MessagingSpanTextMapExtractor
  • MessagingSpanTextMapInjector

You can override them by providing your own implementation.

8.2 HTTP

For HTTP there are 2 interfaces responsible for creation of a Span from a Message. +These are:

  • HttpSpanExtractor
  • HttpSpanInjector

You can override them by providing your own implementation.

8.3 Example

Let’s assume that instead of the standard Zipkin compatible tracing HTTP header names +you have

  • for trace id - correlationId
  • for span id - mySpanId

This is a an example of a SpanExtractor

static class CustomHttpSpanExtractor implements HttpSpanExtractor {
+
+	@Override public Span joinTrace(SpanTextMap carrier) {
+		Map<String, String> map = TextMapUtil.asMap(carrier);
+		long traceId = Span.hexToId(map.get("correlationid"));
+		long spanId = Span.hexToId(map.get("myspanid"));
+		// extract all necessary headers
+		Span.SpanBuilder builder = Span.builder().traceId(traceId).spanId(spanId);
+		// build rest of the Span
+		return builder.build();
+	}
+}
+
+static class CustomHttpSpanInjector implements HttpSpanInjector {
+
+	@Override
+	public void inject(Span span, SpanTextMap carrier) {
+		carrier.put("correlationId", span.traceIdString());
+		carrier.put("mySpanId", Span.idToHex(span.getSpanId()));
+	}
+}

And you could register it like this:

@Bean
+HttpSpanInjector customHttpSpanInjector() {
+	return new CustomHttpSpanInjector();
+}
+
+@Bean
+HttpSpanExtractor customHttpSpanExtractor() {
+	return new CustomHttpSpanExtractor();
+}

Spring Cloud Sleuth does not add trace/span related headers to the Http Response for security reasons. If you need the headers then a custom SpanInjector +that injects the headers into the Http Response and a Servlet filter which makes use of this can be added the following way:

static class CustomHttpServletResponseSpanInjector extends ZipkinHttpSpanInjector {
+
+	@Override
+	public void inject(Span span, SpanTextMap carrier) {
+		super.inject(span, carrier);
+		carrier.put(Span.TRACE_ID_NAME, span.traceIdString());
+		carrier.put(Span.SPAN_ID_NAME, Span.idToHex(span.getSpanId()));
+	}
+}
+
+static class HttpResponseInjectingTraceFilter extends GenericFilterBean {
+
+	private final Tracer tracer;
+	private final HttpSpanInjector spanInjector;
+
+	public HttpResponseInjectingTraceFilter(Tracer tracer, HttpSpanInjector spanInjector) {
+		this.tracer = tracer;
+		this.spanInjector = spanInjector;
+	}
+
+	@Override
+	public void doFilter(ServletRequest request, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+		HttpServletResponse response = (HttpServletResponse) servletResponse;
+		Span currentSpan = this.tracer.getCurrentSpan();
+		this.spanInjector.inject(currentSpan, new HttpServletResponseTextMap(response));
+		filterChain.doFilter(request, response);
+	}
+
+	 class HttpServletResponseTextMap implements SpanTextMap {
+
+		 private final HttpServletResponse delegate;
+
+		 HttpServletResponseTextMap(HttpServletResponse delegate) {
+			 this.delegate = delegate;
+		 }
+
+		 @Override
+		 public Iterator<Map.Entry<String, String>> iterator() {
+			 Map<String, String> map = new HashMap<>();
+			 for (String header : this.delegate.getHeaderNames()) {
+				map.put(header, this.delegate.getHeader(header));
+			 }
+			 return map.entrySet().iterator();
+		 }
+
+		 @Override
+		 public void put(String key, String value) {
+			this.delegate.addHeader(key, value);
+		 }
+	 }
+}

And you could register them like this:

@Bean HttpSpanInjector customHttpServletResponseSpanInjector() {
+	return new CustomHttpServletResponseSpanInjector();
+}
+
+@Bean
+HttpResponseInjectingTraceFilter responseInjectingTraceFilter(Tracer tracer) {
+	return new HttpResponseInjectingTraceFilter(tracer, customHttpServletResponseSpanInjector());
+}

8.4 TraceFilter

You can also modify the behaviour of the TraceFilter - the component that is responsible +for processing the input HTTP request and adding tags basing on the HTTP response. You can customize +the tags, or modify the response headers by registering your own instance of the TraceFilter bean.

In the following example we will register the TraceFilter bean and we will add the +ZIPKIN-TRACE-ID response header containing the current Span’s trace id. Also we will +add to the Span a tag with key custom and a value tag.

@Bean
+TraceFilter myTraceFilter(BeanFactory beanFactory, final Tracer tracer) {
+	return new TraceFilter(beanFactory) {
+		@Override protected void addResponseTags(HttpServletResponse response,
+				Throwable e) {
+			// execute the default behaviour
+			super.addResponseTags(response, e);
+			// for readability we're returning trace id in a hex form
+			response.addHeader("ZIPKIN-TRACE-ID",
+					Span.idToHex(tracer.getCurrentSpan().getTraceId()));
+			// we can also add some custom tags
+			tracer.addTag("custom", "tag");
+		}
+	};
+}

8.5 Custom SA tag in Zipkin

Sometimes you want to create a manual Span that will wrap a call to an external service which is not instrumented. +What you can do is to create a span with the peer.service tag that will contain a value of the service that you want to call. +Below you can see an example of a call to Redis that is wrapped in such a span.

org.springframework.cloud.sleuth.Span newSpan = tracer.createSpan("redis");
+try {
+	newSpan.tag("redis.op", "get");
+	newSpan.tag("lc", "redis");
+	newSpan.logEvent(org.springframework.cloud.sleuth.Span.CLIENT_SEND);
+	// call redis service e.g
+	// return (SomeObj) redisTemplate.opsForHash().get("MYHASH", someObjKey);
+} finally {
+	newSpan.tag("peer.service", "redisService");
+	newSpan.tag("peer.ipv4", "1.2.3.4");
+	newSpan.tag("peer.port", "1234");
+	newSpan.logEvent(org.springframework.cloud.sleuth.Span.CLIENT_RECV);
+	tracer.close(newSpan);
+}
[Important]Important

Remember not to add both peer.service tag and the SA tag! You have to add only peer.service.

8.6 Custom service name

By default Sleuth assumes that when you send a span to Zipkin, you want the span’s service name + to be equal to spring.application.name value. That’s not always the case though. There + are situations in which you want to explicitly provide a different service name for all spans coming + from your application. To achieve that it’s enough to just pass the following property + to your application to override that value (example for foo service name):

spring.zipkin.service.name: foo

8.7 Customization of reported spans

Before reporting spans to e.g. Zipkin you can be interested in modifying that span in some way. + You can achieve that by using the SpanAdjuster interface.

Example of usage:

In Sleuth we’re generating spans with a fixed name. Some users want to modify the name depending on values +of tags. Implementation of the SpanAdjuster interface can be used to alter that name. Example:

@Bean
+SpanAdjuster customSpanAdjuster() {
+    return span -> span.toBuilder().name(scrub(span.getName())).build();
+}

This will lead in changing the name of the reported span just before it gets sent to Zipkin.

[Important]Important

Your SpanReporter should inject the SpanAdjuster and + allow span manipulation before the actual reporting is done.

8.8 Host locator

In order to define the host that is corresponding to a particular span we need to resolve the host name +and port. The default approach is to take it from server properties. If those for some reason are not set +then we’re trying to retrieve the host name from the network interfaces.

If you have the discovery client enabled and prefer to retrieve the host address from the registered +instance in a service registry then you have to set the property (it’s applicable for both HTTP and +Stream based span reporting).

spring.zipkin.locator.discovery.enabled: true

9. Sending spans to Zipkin

By default if you add spring-cloud-starter-zipkin as a dependency to your project, +when the span is closed, it will be sent to Zipkin over HTTP. The communication +is asynchronous. You can configure the URL by setting the spring.zipkin.baseUrl +property as follows:

spring.zipkin.baseUrl: http://192.168.99.100:9411/

If you want to find Zipkin via service discovery it’s enough to pass the +Zipkin’s service id inside the URL (example for zipkinserver service id)

spring.zipkin.baseUrl: http://zipkinserver/

10. Span Data as Messages

You can accumulate and send span data over +Spring Cloud Stream by +including the spring-cloud-sleuth-stream jar as a dependency, and +adding a Channel Binder implementation +(e.g. spring-cloud-starter-stream-rabbit for RabbitMQ or +spring-cloud-starter-stream-kafka for Kafka). This will +automatically turn your app into a producer of messages with payload +type Spans.

10.1 Zipkin Consumer

There is a special convenience annotation for setting up a message consumer +for the Span data and pushing it into a Zipkin SpanStore. This application

@SpringBootApplication
+@EnableZipkinStreamServer
+public class Consumer {
+	public static void main(String[] args) {
+		SpringApplication.run(Consumer.class, args);
+	}
+}

will listen for the Span data on whatever transport you provide via a +Spring Cloud Stream Binder (e.g. include +spring-cloud-starter-stream-rabbit for RabbitMQ, and similar +starters exist for Redis and Kafka). If you add the following UI dependency

<groupId>io.zipkin.java</groupId>
+<artifactId>zipkin-autoconfigure-ui</artifactId>

Then you’ll have your app a +Zipkin server, which hosts +the UI and api on port 9411.

The default SpanStore is in-memory (good for demos and getting +started quickly). For a more robust solution you can add MySQL and +spring-boot-starter-jdbc to your classpath and enable the JDBC +SpanStore via configuration, e.g.:

spring:
+  rabbitmq:
+    host: ${RABBIT_HOST:localhost}
+  datasource:
+    schema: classpath:/mysql.sql
+    url: jdbc:mysql://${MYSQL_HOST:localhost}/test
+    username: root
+    password: root
+# Switch this on to create the schema on startup:
+    initialize: true
+    continueOnError: true
+  sleuth:
+    enabled: false
+zipkin:
+  storage:
+    type: mysql
[Note]Note

The @EnableZipkinStreamServer is also annotated with +@EnableZipkinServer so the process will also expose the standard +Zipkin server endpoints for collecting spans over HTTP, and for +querying in the Zipkin Web UI.

10.2 Custom Consumer

A custom consumer can also easily be implemented using +spring-cloud-sleuth-stream and binding to the SleuthSink. Example:

@EnableBinding(SleuthSink.class)
+@SpringBootApplication(exclude = SleuthStreamAutoConfiguration.class)
+@MessageEndpoint
+public class Consumer {
+
+    @ServiceActivator(inputChannel = SleuthSink.INPUT)
+    public void sink(Spans input) throws Exception {
+        // ... process spans
+    }
+}
[Note]Note

the sample consumer application above explicitly excludes +SleuthStreamAutoConfiguration so it doesn’t send messages to itself, +but this is optional (you might actually want to trace requests into +the consumer app).

In order to customize the polling mechanism you can create a bean of PollerMetadata type +with name equal to StreamSpanReporter.POLLER. Here you can find an example of such a configuration.

@Configuration
+public static class CustomPollerConfiguration {
+
+	@Bean(name = StreamSpanReporter.POLLER)
+	PollerMetadata customPoller() {
+		PollerMetadata poller = new PollerMetadata();
+		poller.setMaxMessagesPerPoll(500);
+		poller.setTrigger(new PeriodicTrigger(5000L));
+		return poller;
+	}
+}

11. Metrics

Currently Spring Cloud Sleuth registers very simple metrics related to spans. +It’s using the Spring Boot’s metrics support +to calculate the number of accepted and dropped spans. Each time a span gets +sent to Zipkin the number of accepted spans will increase. If there’s an error then +the number of dropped spans will get increased.

12. Integrations

12.1 Runnable and Callable

If you’re wrapping your logic in Runnable or Callable it’s enough to wrap those classes in their Sleuth representative.

Example for Runnable:

Runnable runnable = new Runnable() {
+	@Override
+	public void run() {
+		// do some work
+	}
+
+	@Override
+	public String toString() {
+		return "spanNameFromToStringMethod";
+	}
+};
+// Manual `TraceRunnable` creation with explicit "calculateTax" Span name
+Runnable traceRunnable = new TraceRunnable(tracer, spanNamer, runnable, "calculateTax");
+// Wrapping `Runnable` with `Tracer`. The Span name will be taken either from the
+// `@SpanName` annotation or from `toString` method
+Runnable traceRunnableFromTracer = tracer.wrap(runnable);

Example for Callable:

Callable<String> callable = new Callable<String>() {
+	@Override
+	public String call() throws Exception {
+		return someLogic();
+	}
+
+	@Override
+	public String toString() {
+		return "spanNameFromToStringMethod";
+	}
+};
+// Manual `TraceCallable` creation with explicit "calculateTax" Span name
+Callable<String> traceCallable = new TraceCallable<>(tracer, spanNamer, callable, "calculateTax");
+// Wrapping `Callable` with `Tracer`. The Span name will be taken either from the
+// `@SpanName` annotation or from `toString` method
+Callable<String> traceCallableFromTracer = tracer.wrap(callable);

That way you will ensure that a new Span is created and closed for each execution.

12.2 Hystrix

Custom Concurrency Strategy

We’re registering a custom HystrixConcurrencyStrategy +that wraps all Callable instances into their Sleuth representative - +the TraceCallable. The strategy either starts or continues a span depending on the fact whether tracing was already going +on before the Hystrix command was called. To disable the custom Hystrix Concurrency Strategy set the spring.sleuth.hystrix.strategy.enabled to false.

Manual Command setting

Assuming that you have the following HystrixCommand:

HystrixCommand<String> hystrixCommand = new HystrixCommand<String>(setter) {
+	@Override
+	protected String run() throws Exception {
+		return someLogic();
+	}
+};

In order to pass the tracing information you have to wrap the same logic in the Sleuth version of the HystrixCommand which is the +TraceCommand:

TraceCommand<String> traceCommand = new TraceCommand<String>(tracer, traceKeys, setter) {
+	@Override
+	public String doRun() throws Exception {
+		return someLogic();
+	}
+};

12.3 RxJava

We’re registering a custom RxJavaSchedulersHook +that wraps all Action0 instances into their Sleuth representative - +the TraceAction. The hook either starts or continues a span depending on the fact whether tracing was already going +on before the Action was scheduled. To disable the custom RxJavaSchedulersHook set the spring.sleuth.rxjava.schedulers.hook.enabled to false.

You can define a list of regular expressions for thread names, for which you don’t want a Span to be created. Just provide a comma separated list +of regular expressions in the spring.sleuth.rxjava.schedulers.ignoredthreads property.

12.4 HTTP integration

Features from this section can be disabled by providing the spring.sleuth.web.enabled property with value equal to false.

HTTP Filter

Via the TraceFilter all sampled incoming requests result in creation of a Span. That Span’s name is http: + the path to which + the request was sent. E.g. if the request was sent to /foo/bar then the name will be http:/foo/bar. You can configure which URIs you would + like to skip via the spring.sleuth.web.skipPattern property. If you have ManagementServerProperties on classpath then + its value of contextPath gets appended to the provided skip pattern.

HandlerInterceptor

Since we want the span names to be precise we’re using a TraceHandlerInterceptor that either wraps an + existing HandlerInterceptor or is added directly to the list of existing HandlerInterceptors. The + TraceHandlerInterceptor adds a special request attribute to the given HttpServletRequest. If the + the TraceFilter doesn’t see this attribute set it will create a "fallback" span which is an additional + span created on the server side so that the trace is presented properly in the UI. Seeing that most likely + signifies that there is a missing instrumentation. In that case please file an issue in Spring Cloud Sleuth.

Async Servlet support

If your controller returns a Callable or a WebAsyncTask Spring Cloud Sleuth will continue the existing span instead of creating a new one.

12.5 HTTP client integration

Synchronous Rest Template

We’re injecting a RestTemplate interceptor that ensures that all the tracing information is passed to the requests. Each time a +call is made a new Span is created. It gets closed upon receiving the response. In order to block the synchronous RestTemplate features +just set spring.sleuth.web.client.enabled to false.

[Important]Important

You have to register RestTemplate as a bean so that the interceptors will get injected. +If you create a RestTemplate instance with a new keyword then the instrumentation WILL NOT work.

Asynchronous Rest Template

[Important]Important

A traced version of an AsyncRestTemplate bean is registered for you out of the box. If you +have your own bean you have to wrap it in a TraceAsyncRestTemplate representation. The best solution +is to only customize the ClientHttpRequestFactory and / or AsyncClientHttpRequestFactory. +If you have your own AsyncRestTemplate and you don’t wrap it your calls WILL NOT GET TRACED.

Custom instrumentation is set to create and close Spans upon sending and receiving requests. You can customize the ClientHttpRequestFactory +and the AsyncClientHttpRequestFactory by registering your beans. Remember to use tracing compatible implementations (e.g. don’t forget to +wrap ThreadPoolTaskScheduler in a TraceAsyncListenableTaskExecutor). Example of custom request factories:

@EnableAutoConfiguration
+@Configuration
+public static class TestConfiguration {
+
+	@Bean
+	ClientHttpRequestFactory mySyncClientFactory() {
+		return new MySyncClientHttpRequestFactory();
+	}
+
+	@Bean
+	AsyncClientHttpRequestFactory myAsyncClientFactory() {
+		return new MyAsyncClientHttpRequestFactory();
+	}
+}

To block the AsyncRestTemplate features set spring.sleuth.web.async.client.enabled to false. +To disable creation of the default TraceAsyncClientHttpRequestFactoryWrapper set spring.sleuth.web.async.client.factory.enabled +to false. If you don’t want to create AsyncRestClient at all set spring.sleuth.web.async.client.template.enabled to false.

Multiple Asynchronous Rest Templates

Sometimes you need to use multiple implementations of Asynchronous Rest Template. In the following snippet you +can see an example of how to set up such a custom AsyncRestTemplate.

@Configuration
+@EnableAutoConfiguration
+static class Config {
+	@Autowired Tracer tracer;
+	@Autowired HttpTraceKeysInjector httpTraceKeysInjector;
+	@Autowired HttpSpanInjector spanInjector;
+
+	@Bean(name = "customAsyncRestTemplate")
+	public AsyncRestTemplate traceAsyncRestTemplate(@Qualifier("customHttpRequestFactoryWrapper")
+			TraceAsyncClientHttpRequestFactoryWrapper wrapper, ErrorParser errorParser) {
+		return new TraceAsyncRestTemplate(wrapper, this.tracer, errorParser);
+	}
+
+	@Bean(name = "customHttpRequestFactoryWrapper")
+	public TraceAsyncClientHttpRequestFactoryWrapper traceAsyncClientHttpRequestFactory() {
+		return new TraceAsyncClientHttpRequestFactoryWrapper(this.tracer,
+				this.spanInjector,
+				asyncClientFactory(),
+				clientHttpRequestFactory(),
+				this.httpTraceKeysInjector);
+	}
+
+	private ClientHttpRequestFactory clientHttpRequestFactory() {
+		ClientHttpRequestFactory clientHttpRequestFactory = new CustomClientHttpRequestFactory();
+		//CUSTOMIZE HERE
+		return clientHttpRequestFactory;
+	}
+
+	private AsyncClientHttpRequestFactory asyncClientFactory() {
+		AsyncClientHttpRequestFactory factory = new CustomAsyncClientHttpRequestFactory();
+		//CUSTOMIZE HERE
+		return factory;
+	}
+}

Traverson

If you’re using the Traverson library +it’s enough for you to inject a RestTemplate as a bean into your Traverson object. Since RestTemplate +is already intercepted, you will get full support of tracing in your client. Below you can find a pseudo code +of how to do that:

@Autowired RestTemplate restTemplate;
+
+Traverson traverson = new Traverson(URI.create("http://some/address"),
+    MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON_UTF8).setRestOperations(restTemplate);
+// use Traverson

12.6 Feign

By default Spring Cloud Sleuth provides integration with feign via the TraceFeignClientAutoConfiguration. You can disable it entirely +by setting spring.sleuth.feign.enabled to false. If you do so then no Feign related instrumentation will take place.

Part of Feign instrumentation is done via a FeignBeanPostProcessor. You can disable it by providing the spring.sleuth.feign.processor.enabled equal to false. +If you set it like this then Spring Cloud Sleuth will not instrument any of your custom Feign components. All the default instrumentation +however will be still there.

12.7 Asynchronous communication

@Async annotated methods

In Spring Cloud Sleuth we’re instrumenting async related components so that the tracing information is passed between threads. +You can disable this behaviour by setting the value of spring.sleuth.async.enabled to false.

If you annotate your method with @Async then we’ll automatically create a new Span with the following characteristics:

  • if the method is annotated with @SpanName then the value of the annotation will be the Span’s name
  • if the method is not annotated with @SpanName the Span name will be the annotated method name
  • the Span will be tagged with that method’s class name and the method name too

@Scheduled annotated methods

In Spring Cloud Sleuth we’re instrumenting scheduled method execution so that the tracing information is passed between threads. You can disable this behaviour +by setting the value of spring.sleuth.scheduled.enabled to false.

If you annotate your method with @Scheduled then we’ll automatically create a new Span with the following characteristics:

  • the Span name will be the annotated method name
  • the Span will be tagged with that method’s class name and the method name too

If you want to skip Span creation for some @Scheduled annotated classes you can set the +spring.sleuth.scheduled.skipPattern with a regular expression that will match the fully qualified name of the +@Scheduled annotated class.

[Tip]Tip

If you are using spring-cloud-sleuth-stream and spring-cloud-netflix-hystrix-stream together, Span will be created for each Hystrix metrics and sent to Zipkin. This may be annoying. You can prevent this by setting spring.sleuth.scheduled.skipPattern=org.springframework.cloud.netflix.hystrix.stream.HystrixStreamTask

Executor, ExecutorService and ScheduledExecutorService

We’re providing LazyTraceExecutor, TraceableExecutorService and TraceableScheduledExecutorService. Those implementations +are creating Spans each time a new task is submitted, invoked or scheduled.

Here you can see an example of how to pass tracing information with TraceableExecutorService when working with CompletableFuture:

CompletableFuture<Long> completableFuture = CompletableFuture.supplyAsync(() -> {
+	// perform some logic
+	return 1_000_000L;
+}, new TraceableExecutorService(executorService,
+		// 'calculateTax' explicitly names the span - this param is optional
+		tracer, traceKeys, spanNamer, "calculateTax"));
Customization of Executors

Sometimes you need to set up a custom instance of the AsyncExecutor. In the following snippet you +can see an example of how to set up such a custom Executor.

@Configuration
+@EnableAutoConfiguration
+@EnableAsync
+static class CustomExecutorConfig extends AsyncConfigurerSupport {
+
+	@Autowired BeanFactory beanFactory;
+
+	@Override public Executor getAsyncExecutor() {
+		ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+		// CUSTOMIZE HERE
+		executor.setCorePoolSize(7);
+		executor.setMaxPoolSize(42);
+		executor.setQueueCapacity(11);
+		executor.setThreadNamePrefix("MyExecutor-");
+		// DON'T FORGET TO INITIALIZE
+		executor.initialize();
+		return new LazyTraceExecutor(this.beanFactory, executor);
+	}
+}

12.8 Messaging

Spring Cloud Sleuth integrates with Spring Integration. It creates spans for publish and +subscribe events. To disable Spring Integration instrumentation, set spring.sleuth.integration.enabled to false.

You can provide the spring.sleuth.integration.patterns pattern to explicitly +provide the names of channels that you want to include for tracing. By default all channels +are included.

[Important]Important

When using the Executor to build a Spring Integration IntegrationFlow remember to use the untraced version of the Executor. +Decorating Spring Integration Executor Channel with TraceableExecutorService will cause the spans to be improperly closed.

12.9 Zuul

We’re registering Zuul filters to propagate the tracing information (the request header is enriched with tracing data). +To disable Zuul support set the spring.sleuth.zuul.enabled property to false.

13. Running examples

You can find the running examples deployed in the Pivotal Web Services. Check them out in the following links:

\ No newline at end of file diff --git a/spring-cloud-sleuth.html b/spring-cloud-sleuth.html index 84555c20b..5de52d467 100644 --- a/spring-cloud-sleuth.html +++ b/spring-cloud-sleuth.html @@ -4,3118 +4,106 @@ - - -Spring Cloud Sleuth - + +spring-cloud-sleuth + + + - + +
-

1.3.0.BUILD-SNAPSHOT

-
-
-

Spring Cloud Sleuth implements a distributed tracing solution for Spring Cloud.

-
-
-
-
-

Terminology

-
-

Spring Cloud Sleuth borrows Dapper’s terminology.

-
-
-

Span: The basic unit of work. For example, sending an RPC is a new span, as is sending a response to an -RPC. Span’s are identified by a unique 64-bit ID for the span and another 64-bit ID for the trace the span -is a part of. Spans also have other data, such as descriptions, timestamped events, key-value -annotations (tags), the ID of the span that caused them, and process ID’s (normally IP address).

-
-
-

Spans are started and stopped, and they keep track of their timing information. Once you create a -span, you must stop it at some point in the future.

-
-
- - - - - -
-
Tip
-
-The initial span that starts a trace is called a root span. The value of span id -of that span is equal to trace id. -
-
-
-

Trace: A set of spans forming a tree-like structure. For example, if you are running a distributed -big-data store, a trace might be formed by a put request.

-
-
-

Annotation: is used to record existence of an event in time. Some of the core annotations used to define -the start and stop of a request are:

-
-
-
    -
  • -

    cs - Client Sent - The client has made a request. This annotation depicts the start of the span.

    -
  • -
  • -

    sr - Server Received - The server side got the request and will start processing it. -If one subtracts the cs timestamp from this timestamp one will receive the network latency.

    -
  • -
  • -

    ss - Server Sent - Annotated upon completion of request processing (when the response -got sent back to the client). If one subtracts the sr timestamp from this timestamp one -will receive the time needed by the server side to process the request.

    -
  • -
  • -

    cr - Client Received - Signifies the end of the span. The client has successfully received the -response from the server side. If one subtracts the cs timestamp from this timestamp one -will receive the whole time needed by the client to receive the response from the server.

    -
  • -
-
-
-

Visualization of what Span and Trace will look in a system together with the Zipkin annotations:

-
-
-
-Trace Info propagation -
-
-
-

Each color of a note signifies a span (7 spans - from A to G). If you have such information in the note:

-
-
-
-
Trace Id = X
-Span Id = D
-Client Sent
-
-
-
-

That means that the current span has Trace-Id set to X, Span-Id set to D. It also has emitted - Client Sent event.

-
-
-

This is how the visualization of the parent / child relationship of spans would look like:

-
-
-
-Parent child relationship -
-
-
-
-

Purpose

-
-

In the following sections the example from the image above will be taken into consideration.

-
-
-

Distributed tracing with Zipkin

-
-

Altogether there are 7 spans . If you go to traces in Zipkin you will see this number in the second trace:

-
-
-
-Traces -
-
-
-

However if you pick a particular trace then you will see 4 spans:

-
-
-
-Traces Info propagation -
-
-
- - - - - -
-
Note
-
-When picking a particular trace you will see merged spans. That means that if there were 2 spans sent to -Zipkin with Server Received and Server Sent / Client Received and Client Sent -annotations then they will presented as a single span. -
-
-
-

Why is there a difference between the 7 and 4 spans in this case?

-
-
-
    -
  • -

    2 spans come from http:/start span. It has the Server Received (SR) and Server Sent (SS) annotations.

    -
  • -
  • -

    2 spans come from the RPC call from service1 to service2 to the http:/foo endpoint. It has the Client Sent (CS) -and Client Received (CR) annotations on service1 side. It also has Server Received (SR) and Server Sent (SS) annotations -on the service2 side. Physically there are 2 spans but they form 1 logical span related to an RPC call.

    -
  • -
  • -

    2 spans come from the RPC call from service2 to service3 to the http:/bar endpoint. It has the Client Sent (CS) -and Client Received (CR) annotations on service2 side. It also has Server Received (SR) and Server Sent (SS) annotations -on the service3 side. Physically there are 2 spans but they form 1 logical span related to an RPC call.

    -
  • -
  • -

    2 spans come from the RPC call from service2 to service4 to the http:/baz endpoint. It has the Client Sent (CS) -and Client Received (CR) annotations on service2 side. It also has Server Received (SR) and Server Sent (SS) annotations -on the service4 side. Physically there are 2 spans but they form 1 logical span related to an RPC call.

    -
  • -
-
-
-

So if we count the physical spans we have 1 from http:/start, 2 from service1 calling service2, 2 form service2 -calling service3 and 2 from service2 calling service4. Altogether 7 spans.

-
-
-

Logically we see the information of Total Spans: 4 because we have 1 span related to the incoming request -to service1 and 3 spans related to RPC calls.

-
-
-
-

Visualizing errors

-
-

Zipkin allows you to visualize errors in your trace. When an exception was thrown and wasn’t caught then we’re -setting proper tags on the span which Zipkin can properly colorize. You could see in the list of traces one - trace that was in red color. That’s because there was an exception thrown.

-
-
-

If you click that trace then you’ll see a similar picture

-
-
-
-Error Traces -
-
-
-

Then if you click on one of the spans you’ll see the following

-
-
-
-Error Traces Info propagation -
-
-
-

As you can see you can easily see the reason for an error and the whole stacktrace related to it.

-
-
-
-

Live examples

-
-
-Zipkin deployed on Pivotal Web Services -
-
Click Pivotal Web Services icon to see it live!Click Pivotal Web Services icon to see it live!
-
-
-

The dependency graph in Zipkin would look like this:

-
-
-
-Dependencies -
-
-
-
-Zipkin deployed on Pivotal Web Services -
-
Click Pivotal Web Services icon to see it live!Click Pivotal Web Services icon to see it live!
-
-
-
-

Log correlation

-
-

When grepping the logs of those four applications by trace id equal to e.g. 2485ec27856c56f4 one would get the following:

-
-
-
-
service1.log:2016-02-26 11:15:47.561  INFO [service1,2485ec27856c56f4,2485ec27856c56f4,true] 68058 --- [nio-8081-exec-1] i.s.c.sleuth.docs.service1.Application   : Hello from service1. Calling service2
-service2.log:2016-02-26 11:15:47.710  INFO [service2,2485ec27856c56f4,9aa10ee6fbde75fa,true] 68059 --- [nio-8082-exec-1] i.s.c.sleuth.docs.service2.Application   : Hello from service2. Calling service3 and then service4
-service3.log:2016-02-26 11:15:47.895  INFO [service3,2485ec27856c56f4,1210be13194bfe5,true] 68060 --- [nio-8083-exec-1] i.s.c.sleuth.docs.service3.Application   : Hello from service3
-service2.log:2016-02-26 11:15:47.924  INFO [service2,2485ec27856c56f4,9aa10ee6fbde75fa,true] 68059 --- [nio-8082-exec-1] i.s.c.sleuth.docs.service2.Application   : Got response from service3 [Hello from service3]
-service4.log:2016-02-26 11:15:48.134  INFO [service4,2485ec27856c56f4,1b1845262ffba49d,true] 68061 --- [nio-8084-exec-1] i.s.c.sleuth.docs.service4.Application   : Hello from service4
-service2.log:2016-02-26 11:15:48.156  INFO [service2,2485ec27856c56f4,9aa10ee6fbde75fa,true] 68059 --- [nio-8082-exec-1] i.s.c.sleuth.docs.service2.Application   : Got response from service4 [Hello from service4]
-service1.log:2016-02-26 11:15:48.182  INFO [service1,2485ec27856c56f4,2485ec27856c56f4,true] 68058 --- [nio-8081-exec-1] i.s.c.sleuth.docs.service1.Application   : Got response from service2 [Hello from service2, response from service3 [Hello from service3] and from service4 [Hello from service4]]
-
-
-
-

If you’re using a log aggregating tool like Kibana, -Splunk etc. you can order the events that took place. An example of -Kibana would look like this:

-
-
-
-Log correlation with Kibana -
-
-
-

If you want to use Logstash here is the Grok pattern for Logstash:

-
-
-
-
filter {
-       # pattern matching logback pattern
-       grok {
-              match => { "message" => "%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:severity}\s+\[%{DATA:service},%{DATA:trace},%{DATA:span},%{DATA:exportable}\]\s+%{DATA:pid}\s+---\s+\[%{DATA:thread}\]\s+%{DATA:class}\s+:\s+%{GREEDYDATA:rest}" }
-       }
-}
-
-
-
- - - - - -
-
Note
-
-If you want to use Grok together with the logs from Cloud Foundry you have to use this pattern: -
-
-
-
-
filter {
-       # pattern matching logback pattern
-       grok {
-              match => { "message" => "(?m)OUT\s+%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:severity}\s+\[%{DATA:service},%{DATA:trace},%{DATA:span},%{DATA:exportable}\]\s+%{DATA:pid}\s+---\s+\[%{DATA:thread}\]\s+%{DATA:class}\s+:\s+%{GREEDYDATA:rest}" }
-       }
-}
-
-
-
-
JSON Logback with Logstash
-
-

Often you do not want to store your logs in a text file but in a JSON file that Logstash can immediately pick. To do that you have to do the following (for readability -we’re passing the dependencies in the groupId:artifactId:version notation.

-
-
-

Dependencies setup

-
-
-
    -
  • -

    Ensure that Logback is on the classpath (ch.qos.logback:logback-core)

    -
  • -
  • -

    Add Logstash Logback encode - example for version 4.6 : net.logstash.logback:logstash-logback-encoder:4.6

    -
  • -
-
-
-

Logback setup

-
-
-

Below you can find an example of a Logback configuration (file named logback-spring.xml) that:

-
-
-
    -
  • -

    logs information from the application in a JSON format to a build/${spring.application.name}.json file

    -
  • -
  • -

    has commented out two additional appenders - console and standard log file

    -
  • -
  • -

    has the same logging pattern as the one presented in the previous section

    -
  • -
-
-
-
-
<?xml version="1.0" encoding="UTF-8"?>
-<configuration>
-	<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
-	​
-	<springProperty scope="context" name="springAppName" source="spring.application.name"/>
-	<!-- Example for logging into the build folder of your project -->
-	<property name="LOG_FILE" value="${BUILD_FOLDER:-build}/${springAppName}"/>​
-
-	<!-- You can override this to have a custom pattern -->
-	<property name="CONSOLE_LOG_PATTERN"
-			  value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
-
-	<!-- Appender to log to console -->
-	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
-		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-			<!-- Minimum logging level to be presented in the console logs-->
-			<level>DEBUG</level>
-		</filter>
-		<encoder>
-			<pattern>${CONSOLE_LOG_PATTERN}</pattern>
-			<charset>utf8</charset>
-		</encoder>
-	</appender>
-
-	<!-- Appender to log to file -->​
-	<appender name="flatfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<file>${LOG_FILE}</file>
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-			<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
-			<maxHistory>7</maxHistory>
-		</rollingPolicy>
-		<encoder>
-			<pattern>${CONSOLE_LOG_PATTERN}</pattern>
-			<charset>utf8</charset>
-		</encoder>
-	</appender>
-	​
-	<!-- Appender to log to file in a JSON format -->
-	<appender name="logstash" class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<file>${LOG_FILE}.json</file>
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-			<fileNamePattern>${LOG_FILE}.json.%d{yyyy-MM-dd}.gz</fileNamePattern>
-			<maxHistory>7</maxHistory>
-		</rollingPolicy>
-		<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
-			<providers>
-				<timestamp>
-					<timeZone>UTC</timeZone>
-				</timestamp>
-				<pattern>
-					<pattern>
-						{
-						"severity": "%level",
-						"service": "${springAppName:-}",
-						"trace": "%X{X-B3-TraceId:-}",
-						"span": "%X{X-B3-SpanId:-}",
-						"parent": "%X{X-B3-ParentSpanId:-}",
-						"exportable": "%X{X-Span-Export:-}",
-						"pid": "${PID:-}",
-						"thread": "%thread",
-						"class": "%logger{40}",
-						"rest": "%message"
-						}
-					</pattern>
-				</pattern>
-			</providers>
-		</encoder>
-	</appender>
-	​
-	<root level="INFO">
-		<appender-ref ref="console"/>
-		<!-- uncomment this to have also JSON logs -->
-		<!--<appender-ref ref="logstash"/>-->
-		<!--<appender-ref ref="flatfile"/>-->
-	</root>
-</configuration>
-
-
-
- - - - - -
-
Note
-
-If you’re using a custom logback-spring.xml then you have to pass the spring.application.name in -bootstrap instead of application property file. Otherwise your custom logback file won’t read the property properly. -
-
-
-
-
-

Propagating Span Context

-
-

The span context is the state that must get propagated to any child Spans across process boundaries. -Part of the Span Context is the Baggage. The trace and span IDs are a required part of the span context. -Baggage is an optional part.

-
-
-

Baggage is a set of key:value pairs stored in the span context. Baggage travels together with the trace -and is attached to every span. Spring Cloud Sleuth will understand that a header is baggage related if the HTTP - header is prefixed with baggage- and for messaging it starts with baggage_.

-
-
- - - - - -
-
Important
-
-There’s currently no limitation of the count or size of baggage items. However, keep in mind that -too many can decrease system throughput or increase RPC latency. In extreme cases, it could crash the app due -to exceeding transport-level message or header capacity. -
-
-
-

Example of setting baggage on a span:

-
-
-
-
Span initialSpan = this.tracer.createSpan("span");
-initialSpan.setBaggageItem("foo", "bar");
-initialSpan.setBaggageItem("UPPER_CASE", "someValue");
-
-
-
-
Baggage vs. Span Tags
-
-

Baggage travels with the trace (i.e. every child span contains the baggage of its parent). Zipkin has no knowledge of -baggage and will not even receive that information.

-
-
-

Tags are attached to a specific span - they are presented for that particular span only. However you -can search by tag to find the trace, where there exists a span having the searched tag value.

-
-
-

If you want to be able to lookup a span based on baggage, you should add corresponding entry as a tag in the root span.

-
-
-
-
@Autowired Tracer tracer;
-
-Span span = tracer.getCurrentSpan();
-String baggageKey = "key";
-String baggageValue = "foo";
-span.setBaggageItem(baggageKey, baggageValue);
-tracer.addTag(baggageKey, baggageValue);
-
-
-
-
-
-
-

Adding to the project

-
-

Only Sleuth (log correlation)

-
-

If you want to profit only from Spring Cloud Sleuth without the Zipkin integration just add -the spring-cloud-starter-sleuth module to your project.

-
-
-
Maven
-
-
<dependencyManagement> (1)
-         <dependencies>
-             <dependency>
-                 <groupId>org.springframework.cloud</groupId>
-                 <artifactId>spring-cloud-dependencies</artifactId>
-                 <version>Camden.RELEASE</version>
-                 <type>pom</type>
-                 <scope>import</scope>
-             </dependency>
-         </dependencies>
-   </dependencyManagement>
-
-   <dependency> (2)
-       <groupId>org.springframework.cloud</groupId>
-       <artifactId>spring-cloud-starter-sleuth</artifactId>
-   </dependency>
-
-
-
-
    -
  1. -

    In order not to pick versions by yourself it’s much better if you add the dependency management via -the Spring BOM

    -
  2. -
  3. -

    Add the dependency to spring-cloud-starter-sleuth

    -
  4. -
-
-
-
Gradle
-
-
dependencyManagement { (1)
-    imports {
-        mavenBom "org.springframework.cloud:spring-cloud-dependencies:Camden.RELEASE"
-    }
-}
-
-dependencies { (2)
-    compile "org.springframework.cloud:spring-cloud-starter-sleuth"
-}
-
-
-
-
    -
  1. -

    In order not to pick versions by yourself it’s much better if you add the dependency management via -the Spring BOM

    -
  2. -
  3. -

    Add the dependency to spring-cloud-starter-sleuth

    -
  4. -
-
-
-
-

Sleuth with Zipkin via HTTP

-
-

If you want both Sleuth and Zipkin just add the spring-cloud-starter-zipkin dependency.

-
-
-
Maven
-
-
<dependencyManagement> (1)
-         <dependencies>
-             <dependency>
-                 <groupId>org.springframework.cloud</groupId>
-                 <artifactId>spring-cloud-dependencies</artifactId>
-                 <version>Camden.RELEASE</version>
-                 <type>pom</type>
-                 <scope>import</scope>
-             </dependency>
-         </dependencies>
-   </dependencyManagement>
-
-   <dependency> (2)
-       <groupId>org.springframework.cloud</groupId>
-       <artifactId>spring-cloud-starter-zipkin</artifactId>
-   </dependency>
-
-
-
-
    -
  1. -

    In order not to pick versions by yourself it’s much better if you add the dependency management via -the Spring BOM

    -
  2. -
  3. -

    Add the dependency to spring-cloud-starter-zipkin

    -
  4. -
-
-
-
Gradle
-
-
dependencyManagement { (1)
-    imports {
-        mavenBom "org.springframework.cloud:spring-cloud-dependencies:Camden.RELEASE"
-    }
-}
-
-dependencies { (2)
-    compile "org.springframework.cloud:spring-cloud-starter-zipkin"
-}
-
-
-
-
    -
  1. -

    In order not to pick versions by yourself it’s much better if you add the dependency management via -the Spring BOM

    -
  2. -
  3. -

    Add the dependency to spring-cloud-starter-zipkin

    -
  4. -
-
-
-
-

Sleuth with Zipkin via Spring Cloud Stream

-
-

If you want both Sleuth and Zipkin just add the spring-cloud-sleuth-stream dependency.

-
-
-
Maven
-
-
<dependencyManagement> (1)
-         <dependencies>
-             <dependency>
-                 <groupId>org.springframework.cloud</groupId>
-                 <artifactId>spring-cloud-dependencies</artifactId>
-                 <version>Camden.RELEASE</version>
-                 <type>pom</type>
-                 <scope>import</scope>
-             </dependency>
-         </dependencies>
-   </dependencyManagement>
-
-   <dependency> (2)
-       <groupId>org.springframework.cloud</groupId>
-       <artifactId>spring-cloud-sleuth-stream</artifactId>
-   </dependency>
-   <dependency> (3)
-       <groupId>org.springframework.cloud</groupId>
-       <artifactId>spring-cloud-starter-sleuth</artifactId>
-   </dependency>
-   <!-- EXAMPLE FOR RABBIT BINDING -->
-   <dependency> (4)
-       <groupId>org.springframework.cloud</groupId>
-       <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
-   </dependency>
-
-
-
-
    -
  1. -

    In order not to pick versions by yourself it’s much better if you add the dependency management via -the Spring BOM

    -
  2. -
  3. -

    Add the dependency to spring-cloud-sleuth-stream

    -
  4. -
  5. -

    Add the dependency to spring-cloud-starter-sleuth - that way all dependant dependencies will be downloaded

    -
  6. -
  7. -

    Add a binder (e.g. Rabbit binder) to tell Spring Cloud Stream what it should bind to

    -
  8. -
-
-
-
Gradle
-
-
dependencyManagement { (1)
-    imports {
-        mavenBom "org.springframework.cloud:spring-cloud-dependencies:Camden.RELEASE"
-    }
-}
-
-dependencies {
-    compile "org.springframework.cloud:spring-cloud-sleuth-stream" (2)
-    compile "org.springframework.cloud:spring-cloud-starter-sleuth" (3)
-    // Example for Rabbit binding
-    compile "org.springframework.cloud:spring-cloud-stream-binder-rabbit" (4)
-}
-
-
-
-
    -
  1. -

    In order not to pick versions by yourself it’s much better if you add the dependency management via -the Spring BOM

    -
  2. -
  3. -

    Add the dependency to spring-cloud-sleuth-stream

    -
  4. -
  5. -

    Add the dependency to spring-cloud-starter-sleuth - that way all dependant dependencies will be downloaded

    -
  6. -
  7. -

    Add a binder (e.g. Rabbit binder) to tell Spring Cloud Stream what it should bind to

    -
  8. -
-
-
-
-

Spring Cloud Sleuth Stream Zipkin Collector

-
-

If you want to start a Spring Cloud Sleuth Stream Zipkin collector just add the spring-cloud-sleuth-zipkin-stream -dependency

-
-
-
Maven
-
-
<dependencyManagement> (1)
-         <dependencies>
-             <dependency>
-                 <groupId>org.springframework.cloud</groupId>
-                 <artifactId>spring-cloud-dependencies</artifactId>
-                 <version>Camden.RELEASE</version>
-                 <type>pom</type>
-                 <scope>import</scope>
-             </dependency>
-         </dependencies>
-   </dependencyManagement>
-
-   <dependency> (2)
-       <groupId>org.springframework.cloud</groupId>
-       <artifactId>spring-cloud-sleuth-zipkin-stream</artifactId>
-   </dependency>
-   <dependency> (3)
-       <groupId>org.springframework.cloud</groupId>
-       <artifactId>spring-cloud-starter-sleuth</artifactId>
-   </dependency>
-   <!-- EXAMPLE FOR RABBIT BINDING -->
-   <dependency> (4)
-       <groupId>org.springframework.cloud</groupId>
-       <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
-   </dependency>
-
-
-
-
    -
  1. -

    In order not to pick versions by yourself it’s much better if you add the dependency management via -the Spring BOM

    -
  2. -
  3. -

    Add the dependency to spring-cloud-sleuth-zipkin-stream

    -
  4. -
  5. -

    Add the dependency to spring-cloud-starter-sleuth - that way all dependant dependencies will be downloaded

    -
  6. -
  7. -

    Add a binder (e.g. Rabbit binder) to tell Spring Cloud Stream what it should bind to

    -
  8. -
-
-
-
Gradle
-
-
dependencyManagement { (1)
-    imports {
-        mavenBom "org.springframework.cloud:spring-cloud-dependencies:Camden.RELEASE"
-    }
-}
-
-dependencies {
-    compile "org.springframework.cloud:spring-cloud-sleuth-zipkin-stream" (2)
-    compile "org.springframework.cloud:spring-cloud-starter-sleuth" (3)
-    // Example for Rabbit binding
-    compile "org.springframework.cloud:spring-cloud-stream-binder-rabbit" (4)
-}
-
-
-
-
    -
  1. -

    In order not to pick versions by yourself it’s much better if you add the dependency management via -the Spring BOM

    -
  2. -
  3. -

    Add the dependency to spring-cloud-sleuth-zipkin-stream

    -
  4. -
  5. -

    Add the dependency to spring-cloud-starter-sleuth - that way all dependant dependencies will be downloaded

    -
  6. -
  7. -

    Add a binder (e.g. Rabbit binder) to tell Spring Cloud Stream what it should bind to

    -
  8. -
-
-
-

and then just annotate your main class with @EnableZipkinStreamServer annotation:

-
-
-
-
package example;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.sleuth.zipkin.stream.EnableZipkinStreamServer;
-
-@SpringBootApplication
-@EnableZipkinStreamServer
-public class ZipkinStreamServerApplication {
-
-	public static void main(String[] args) throws Exception {
-		SpringApplication.run(ZipkinStreamServerApplication.class, args);
-	}
-
-}
-
+

1.3.0.BUILD-SNAPSHOT

-

Additional resources

-
-
-

Marcin Grzejszczak talking about Spring Cloud Sleuth and Zipkin

-
-
-
- -
-
- -
-
-
-

Features

+

Pick The Documentation Option

  • -

    Adds trace and span ids to the Slf4J MDC, so you can extract all the logs from a given trace or span in a log aggregator. Example logs:

    -
    -
    -
    2016-02-02 15:30:57.902  INFO [bar,6bfd228dc00d216b,6bfd228dc00d216b,false] 23030 --- [nio-8081-exec-3] ...
    -2016-02-02 15:30:58.372 ERROR [bar,6bfd228dc00d216b,6bfd228dc00d216b,false] 23030 --- [nio-8081-exec-3] ...
    -2016-02-02 15:31:01.936  INFO [bar,46ab0d418373cbc9,46ab0d418373cbc9,false] 23030 --- [nio-8081-exec-4] ...
    -
    -
    -
    -

    notice the [appname,traceId,spanId,exportable] entries from the MDC:

    -
    -
    -
      -
    • -

      spanId - the id of a specific operation that took place

      +

      Single HTML

    • -

      appname - the name of the application that logged the span

      -
    • -
    • -

      traceId - the id of the latency graph that contains the span

      -
    • -
    • -

      exportable - whether the log should be exported to Zipkin or not. When would you like the span not to be -exportable? In the case in which you want to wrap some operation in a Span and have it written to the logs -only.

      -
    • -
    -
    -
  • -
  • -

    Provides an abstraction over common distributed tracing data models: traces, spans (forming a DAG), annotations, -key-value annotations. Loosely based on HTrace, but Zipkin (Dapper) compatible.

    -
  • -
  • -

    Sleuth records timing information to aid in latency analysis. Using sleuth, you can pinpoint causes of -latency in your applications. Sleuth is written to not log too much, and to not cause your production application to crash.

    -
    -
      -
    • -

      propagates structural data about your call-graph in-band, and the rest out-of-band.

      -
    • -
    • -

      includes opinionated instrumentation of layers such as HTTP

      -
    • -
    • -

      includes sampling policy to manage volume

      -
    • -
    • -

      can report to a Zipkin system for query and visualization

      -
    • -
    -
    -
  • -
  • -

    Instruments common ingress and egress points from Spring applications (servlet filter, async endpoints, -rest template, scheduled actions, message channels, zuul filters, feign client).

    -
  • -
  • -

    Sleuth includes default logic to join a trace across http or messaging boundaries. For example, http propagation -works via Zipkin-compatible request headers. This propagation logic is defined and customized via -SpanInjector and SpanExtractor implementations.

    -
  • -
  • -

    Sleuth gives you the possibility to propagate context (also known as baggage) between processes. That means that if you set on a Span -a baggage element then it will be sent downstream either via HTTP or messaging to other processes.

    -
  • -
  • -

    Provides a way to create / continue spans and add tags and logs via annotations.

    -
  • -
  • -

    Provides simple metrics of accepted / dropped spans.

    -
  • -
  • -

    If spring-cloud-sleuth-zipkin then the app will generate and collect Zipkin-compatible traces. -By default it sends them via HTTP to a Zipkin server on localhost (port 9411). -Configure the location of the service using spring.zipkin.baseUrl.

    -
  • -
  • -

    If spring-cloud-sleuth-stream then the app will generate and collect traces via Spring Cloud Stream. -Your app automatically becomes a producer of tracer messages that are sent over your broker of choice -(e.g. RabbitMQ, Apache Kafka, Redis).

    -
  • -
-
-
- - - - - -
-
Important
-
-If using Zipkin or Stream, configure the percentage of spans exported using spring.sleuth.sampler.percentage -(default 0.1, i.e. 10%). Otherwise you might think that Sleuth is not working cause it’s omitting some spans. -
-
-
- - - - - -
-
Note
-
-the SLF4J MDC is always set and logback users will immediately see the trace and span ids in logs per the example - above. Other logging systems have to configure their own formatter to get the same result. The default is - logging.pattern.level set to %5p [${spring.zipkin.service.name:${spring.application.name:-}},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}] - (this is a Spring Boot feature for logback users). - This means that if you’re not using SLF4J this pattern WILL NOT be automatically applied. -
-
-
-
-
-

Sampling

-
-
-

In distributed tracing the data volumes can be very high so sampling -can be important (you usually don’t need to export all spans to get a -good picture of what is happening). Spring Cloud Sleuth has a -Sampler strategy that you can implement to take control of the -sampling algorithm. Samplers do not stop span (correlation) ids from -being generated, but they do prevent the tags and events being -attached and exported. By default you get a strategy that continues to -trace if a span is already active, but new ones are always marked as -non-exportable. If all your apps run with this sampler you will see -traces in logs, but not in any remote store. For testing the default -is often enough, and it probably is all you need if you are only using -the logs (e.g. with an ELK aggregator). If you are exporting span data -to Zipkin or Spring Cloud Stream, there is also an AlwaysSampler -that exports everything and a PercentageBasedSampler that samples a -fixed fraction of spans.

-
-
- - - - - -
-
Note
-
-the PercentageBasedSampler is the default if you are using -spring-cloud-sleuth-zipkin or spring-cloud-sleuth-stream. You can -configure the exports using spring.sleuth.sampler.percentage. The passed -value needs to be a double from 0.0 to 1.0 so it’s not a percentage. -For backwards compatibility reasons we’re not changing the property name. -
-
-
-

A sampler can be installed just by creating a bean definition, e.g:

-
-
-
-
@Bean
-public Sampler defaultSampler() {
-	return new AlwaysSampler();
-}
-
-
-
- - - - - -
-
Tip
-
-You can set the HTTP header X-B3-Flags to 1 or when doing messaging you can -set spanFlags header to 1. Then the current span will be forced to be exportable -regardless of the sampling decision. -
-
-
-
-
-

Instrumentation

-
-
-

Spring Cloud Sleuth instruments all your Spring application -automatically, so you shouldn’t have to do anything to activate -it. The instrumentation is added using a variety of technologies -according to the stack that is available, e.g. for a servlet web -application we use a Filter, and for Spring Integration we use -ChannelInterceptors.

-
-
-

You can customize the keys used in span tags. To limit the volume of -span data, by default an HTTP request will be tagged only with a -handful of metadata like the status code, host and URL. You can add -request headers by configuring spring.sleuth.keys.http.headers (a -list of header names).

-
-
- - - - - -
-
Note
-
-Remember that tags are only collected and exported if there is a -Sampler that allows it (by default there is not, so there is no -danger of accidentally collecting too much data without configuring -something). -
-
-
- - - - - -
-
Note
-
-Currently the instrumentation in Spring Cloud Sleuth is eager - it means that -we’re actively trying to pass the tracing context between threads. Also timing events -are captured even when sleuth isn’t exporting data to a tracing system. -This approach may change in the future towards being lazy on this matter. -
-
-
-
-
-

Span lifecycle

-
-
-

You can do the following operations on the Span by means of org.springframework.cloud.sleuth.Tracer interface:

-
-
-
    -
  • -

    start - when you start a span its name is assigned and start timestamp is recorded.

    -
  • -
  • -

    close - the span gets finished (the end time of the span is recorded) and if -the span is exportable then it will be eligible for collection to Zipkin. -The span is also removed from the current thread.

    -
  • -
  • -

    continue - a new instance of span will be created whereas it will be a copy of the -one that it continues.

    -
  • -
  • -

    detach - the span doesn’t get stopped or closed. It only gets removed from the current thread.

    -
  • -
  • -

    create with explicit parent - you can create a new span and set an explicit parent to it

    -
  • -
-
-
- - - - - -
-
Tip
-
-Spring creates the instance of Tracer for you. In order to use it all you need is to just autowire it. -
-
-
-

Creating and closing spans

-
-

You can manually create spans by using the Tracer interface.

-
-
-
-
// Start a span. If there was a span present in this thread it will become
-// the `newSpan`'s parent.
-Span newSpan = this.tracer.createSpan("calculateTax");
-try {
-	// ...
-	// You can tag a span
-	this.tracer.addTag("taxValue", taxValue);
-	// ...
-	// You can log an event on a span
-	newSpan.logEvent("taxCalculated");
-} finally {
-	// Once done remember to close the span. This will allow collecting
-	// the span to send it to Zipkin
-	this.tracer.close(newSpan);
-}
-
-
-
-

In this example we could see how to create a new instance of span. Assuming that there already -was a span present in this thread then it would become the parent of that span.

-
-
- - - - - -
-
Important
-
-Always clean after you create a span! Don’t forget to close a span if you want to send it to Zipkin. -
-
-
- - - - - -
-
Important
-
-If your span contains a name greater than 50 chars, then that name will -be truncated to 50 chars. Your names have to be explicit and concrete. Big names lead to -latency issues and sometimes even thrown exceptions. -
-
-
-
-

Continuing spans

-
-

Sometimes you don’t want to create a new span but you want to continue one. Example of such a -situation might be (of course it all depends on the use-case):

-
-
-
    -
  • -

    AOP - If there was already a span created before an aspect was reached then you might not want to create a new span.

    -
  • -
  • -

    Hystrix - executing a Hystrix command is most likely a logical part of the current processing. It’s in fact -only a technical implementation detail that you wouldn’t necessarily want to reflect in tracing as a separate being.

    -
  • -
-
-
-

The continued instance of span is equal to the one that it continues:

-
-
-
-
Span continuedSpan = this.tracer.continueSpan(spanToContinue);
-assertThat(continuedSpan).isEqualTo(spanToContinue);
-
-
-
-

To continue a span you can use the Tracer interface.

-
-
-
-
// let's assume that we're in a thread Y and we've received
-// the `initialSpan` from thread X
-Span continuedSpan = this.tracer.continueSpan(initialSpan);
-try {
-	// ...
-	// You can tag a span
-	this.tracer.addTag("taxValue", taxValue);
-	// ...
-	// You can log an event on a span
-	continuedSpan.logEvent("taxCalculated");
-} finally {
-	// Once done remember to detach the span. That way you'll
-	// safely remove it from the current thread without closing it
-	this.tracer.detach(continuedSpan);
-}
-
-
-
- - - - - -
-
Important
-
-Always clean after you create a span! Don’t forget to detach a span if some work was done started in one - thread (e.g. thread X) and it’s waiting for other threads (e.g. Y, Z) to finish. - Then the spans in the threads Y, Z should be detached at the end of their work. When the results are collected - the span in thread X should be closed. -
-
-
-
-

Creating spans with an explicit parent

-
-

There is a possibility that you want to start a new span and provide an explicit parent of that span. -Let’s assume that the parent of a span is in one thread and you want to start a new span in another thread. The -startSpan method of the Tracer interface is the method you are looking for.

-
-
-
-
// let's assume that we're in a thread Y and we've received
-// the `initialSpan` from thread X. `initialSpan` will be the parent
-// of the `newSpan`
-Span newSpan = this.tracer.createSpan("calculateCommission", initialSpan);
-try {
-	// ...
-	// You can tag a span
-	this.tracer.addTag("commissionValue", commissionValue);
-	// ...
-	// You can log an event on a span
-	newSpan.logEvent("commissionCalculated");
-} finally {
-	// Once done remember to close the span. This will allow collecting
-	// the span to send it to Zipkin. The tags and events set on the
-	// newSpan will not be present on the parent
-	this.tracer.close(newSpan);
-}
-
-
-
- - - - - -
-
Important
-
-After having created such a span remember to close it. Otherwise you will see a lot of warnings in your logs - related to the fact that you have a span present in the current thread other than the one you’re trying to close. - What’s worse your spans won’t get closed properly thus will not get collected to Zipkin. -
-
-
-
-
-
-

Naming spans

-
-
-

Picking a span name is not a trivial task. Span name should depict an operation name. The name should -be low cardinality (e.g. not include identifiers).

-
-
-

Since there is a lot of instrumentation going on some of the span names will be -artificial like:

-
-
-
    -
  • -

    controller-method-name when received by a Controller with a method name conrollerMethodName

    -
  • -
  • -

    async for asynchronous operations done via wrapped Callable and Runnable.

    -
  • -
  • -

    @Scheduled annotated methods will return the simple name of the class.

    -
  • -
-
-
-

Fortunately, for the asynchronous processing you can provide explicit naming.

-
-
-

@SpanName annotation

-
-

You can name the span explicitly via the @SpanName annotation.

-
-
-
-
@SpanName("calculateTax")
-class TaxCountingRunnable implements Runnable {
-
-	@Override public void run() {
-		// perform logic
-	}
-}
-
-
-
-

In this case, when processed in the following manner:

-
-
-
-
Runnable runnable = new TraceRunnable(tracer, spanNamer, new TaxCountingRunnable());
-Future<?> future = executorService.submit(runnable);
-// ... some additional logic ...
-future.get();
-
-
-
-

The span will be named calculateTax.

-
-
-
-

toString() method

-
-

It’s pretty rare to create separate classes for Runnable or Callable. Typically one creates an anonymous -instance of those classes. You can’t annotate such classes thus to override that, if there is no @SpanName annotation present, -we’re checking if the class has a custom implementation of the toString() method.

-
-
-

So executing such code:

-
-
-
-
Runnable runnable = new TraceRunnable(tracer, spanNamer, new Runnable() {
-	@Override public void run() {
-		// perform logic
-	}
-
-	@Override public String toString() {
-		return "calculateTax";
-	}
-});
-Future<?> future = executorService.submit(runnable);
-// ... some additional logic ...
-future.get();
-
-
-
-

will lead in creating a span named calculateTax.

-
-
-
-
-
-

Managing spans with annotations

-
-
-

Rationale

-
-

The main arguments for this features are

-
-
-
    -
  • -

    api-agnostic means to collaborate with a span

    -
    -
      -
    • -

      use of annotations allows users to add to a span with no library dependency on a span api. -This allows Sleuth to change its core api less impact to user code.

      -
    • -
    -
    -
  • -
  • -

    reduced surface area for basic span operations.

    -
    -
      -
    • -

      without this feature one has to use the span api, which has lifecycle commands that -could be used incorrectly. By only exposing scope, tag and log functionality, users can -collaborate without accidentally breaking span lifecycle.

      -
    • -
    -
    -
  • -
  • -

    collaboration with runtime generated code

    -
    -
      -
    • -

      with libraries such as Spring Data / Feign the implementations of interfaces are generated -at runtime thus span wrapping of objects was tedious. Now you can provide annotations - over interfaces and arguments of those interfaces

      -
    • -
    -
    -
  • -
-
-
-
-

Creating new spans

-
-

If you really don’t want to take care of creating local spans manually you can profit from the -@NewSpan annotation. Also we give you the @SpanTag annotation to add tags in an automated -fashion.

-
-
-

Let’s look at some examples of usage.

-
-
-
-
@NewSpan
-void testMethod();
-
-
-
-

Annotating the method without any parameter will lead to a creation of a new span whose name -will be equal to annotated method name.

-
-
-
-
@NewSpan("customNameOnTestMethod4")
-void testMethod4();
-
-
-
-

If you provide the value in the annotation (either directly or via the name parameter) then -the created span will have the name as the provided value.

-
-
-
-
// method declaration
-@NewSpan(name = "customNameOnTestMethod5")
-void testMethod5(@SpanTag("testTag") String param);
-
-// and method execution
-this.testBean.testMethod5("test");
-
-
-
-

You can combine both the name and a tag. Let’s focus on the latter. In this case whatever the value of -the annotated method’s parameter runtime value will be - that will be the value of the tag. In our sample -the tag key will be testTag and the tag value will be test.

-
-
-
-
@NewSpan(name = "customNameOnTestMethod3")
-@Override
-public void testMethod3() {
-}
-
-
-
-

You can place the @NewSpan annotation on both the class and an interface. If you override the -interface’s method and provide a different value of the @NewSpan annotation then the most -concrete one wins (in this case customNameOnTestMethod3 will be set).

-
-
-
-

Continuing spans

-
-

If you want to just add tags and annotations to an existing span it’s enough -to use the @ContinueSpan annotation as presented below. Note that in contrast -with the @NewSpan annotation you can also add logs via the log parameter:

-
-
-
-
// method declaration
-@ContinueSpan(log = "testMethod11")
-void testMethod11(@SpanTag("testTag11") String param);
-
-// method execution
-this.testBean.testMethod11("test");
-
-
-
-

That way the span will get continued and:

-
-
-
    -
  • -

    logs with name testMethod11.before and testMethod11.after will be created

    -
  • -
  • -

    if an exception will be thrown a log testMethod11.afterFailure will also be created

    -
  • -
  • -

    tag with key testTag11 and value test will be created

    -
  • -
-
-
-
-

More advanced tag setting

-
-

There are 3 different ways to add tags to a span. All of them are controlled by the SpanTag annotation. -Precedence is:

-
-
-
    -
  • -

    try with the bean of TagValueResolver type and provided name

    -
  • -
  • -

    if one hasn’t provided the bean name, try to evaluate an expression. We’re searching for a TagValueExpressionResolver bean. -The default implementation uses SPEL expression resolution.

    -
  • -
  • -

    if one hasn’t provided any expression to evaluate just return a toString() value of the parameter

    -
  • -
-
-
-

Custom extractor

-
-

The value of the tag for following method will be computed by an implementation of TagValueResolver interface. -Its class name has to be passed as the value of the resolver attribute.

-
-
-

Having such an annotated method:

-
-
-
-
@NewSpan
-public void getAnnotationForTagValueResolver(@SpanTag(key = "test", resolver = TagValueResolver.class) String test) {
-}
-
-
-
-

and such a TagValueResolver bean implementation

-
-
-
-
@Bean(name = "myCustomTagValueResolver")
-public TagValueResolver tagValueResolver() {
-	return parameter -> "Value from myCustomTagValueResolver";
-}
-
-
-
-

Will lead to setting of a tag value equal to Value from myCustomTagValueResolver.

-
-
-
-

Resolving expressions for value

-
-

Having such an annotated method:

-
-
-
-
@NewSpan
-public void getAnnotationForTagValueExpression(@SpanTag(key = "test", expression = "length() + ' characters'") String test) {
-}
-
-
-
-

and no custom implementation of a TagValueExpressionResolver will lead to evaluation of the SPEL expression and a tag with value 4 characters will be set on the span. -If you want to use some other expression resolution mechanism you can create your own implementation -of the bean.

-
-
-
-

Using toString method

-
-

Having such an annotated method:

-
-
-
-
@NewSpan
-public void getAnnotationForArgumentToString(@SpanTag("test") Long param) {
-}
-
-
-
-

if executed with a value of 15 will lead to setting of a tag with a String value of "15".

-
-
-
-
-
-
-

Customizations

-
-
-

Thanks to the SpanInjector and SpanExtractor you can customize the way spans -are created and propagated.

-
-
-

There are currently two built-in ways to pass tracing information between processes:

-
-
-
    -
  • -

    via Spring Integration

    -
  • -
  • -

    via HTTP

    -
  • -
-
-
-

Span ids are extracted from Zipkin-compatible (B3) headers (either Message -or HTTP headers), to start or join an existing trace. Trace information is -injected into any outbound requests so the next hop can extract them.

-
-
-

The key change in comparison to the previous versions of Sleuth is that Sleuth is implementing -the Open Tracing’s TextMap notion. In Sleuth it’s called SpanTextMap. Basically the idea -is that any means of communication (e.g. message, http request, etc.) can be abstracted via -a SpanTextMap. This abstraction defines how one can insert data into the carrier and -how to retrieve it from there. Thanks to this if you want to instrument a new HTTP library -that uses a FooRequest as a mean of sending HTTP requests then you have to create an -implementation of a SpanTextMap that delegates calls to FooRequest in terms of retrieval -and insertion of HTTP headers.

-
-
-

Spring Integration

-
-

For Spring Integration there are 2 interfaces responsible for creation of a Span from a Message. -These are:

-
-
-
    -
  • -

    MessagingSpanTextMapExtractor

    -
  • -
  • -

    MessagingSpanTextMapInjector

    -
  • -
-
-
-

You can override them by providing your own implementation.

-
-
-
-

HTTP

-
-

For HTTP there are 2 interfaces responsible for creation of a Span from a Message. -These are:

-
-
-
    -
  • -

    HttpSpanExtractor

    -
  • -
  • -

    HttpSpanInjector

    -
  • -
-
-
-

You can override them by providing your own implementation.

-
-
-
-

Example

-
-

Let’s assume that instead of the standard Zipkin compatible tracing HTTP header names -you have

-
-
-
    -
  • -

    for trace id - correlationId

    -
  • -
  • -

    for span id - mySpanId

    -
  • -
-
-
-

This is a an example of a SpanExtractor

-
-
-
-
static class CustomHttpSpanExtractor implements HttpSpanExtractor {
-
-	@Override public Span joinTrace(SpanTextMap carrier) {
-		Map<String, String> map = TextMapUtil.asMap(carrier);
-		long traceId = Span.hexToId(map.get("correlationid"));
-		long spanId = Span.hexToId(map.get("myspanid"));
-		// extract all necessary headers
-		Span.SpanBuilder builder = Span.builder().traceId(traceId).spanId(spanId);
-		// build rest of the Span
-		return builder.build();
-	}
-}
-
-static class CustomHttpSpanInjector implements HttpSpanInjector {
-
-	@Override
-	public void inject(Span span, SpanTextMap carrier) {
-		carrier.put("correlationId", span.traceIdString());
-		carrier.put("mySpanId", Span.idToHex(span.getSpanId()));
-	}
-}
-
-
-
-

And you could register it like this:

-
-
-
-
@Bean
-HttpSpanInjector customHttpSpanInjector() {
-	return new CustomHttpSpanInjector();
-}
-
-@Bean
-HttpSpanExtractor customHttpSpanExtractor() {
-	return new CustomHttpSpanExtractor();
-}
-
-
-
-

Spring Cloud Sleuth does not add trace/span related headers to the Http Response for security reasons. If you need the headers then a custom SpanInjector -that injects the headers into the Http Response and a Servlet filter which makes use of this can be added the following way:

-
-
-
-
static class CustomHttpServletResponseSpanInjector extends ZipkinHttpSpanInjector {
-
-	@Override
-	public void inject(Span span, SpanTextMap carrier) {
-		super.inject(span, carrier);
-		carrier.put(Span.TRACE_ID_NAME, span.traceIdString());
-		carrier.put(Span.SPAN_ID_NAME, Span.idToHex(span.getSpanId()));
-	}
-}
-
-static class HttpResponseInjectingTraceFilter extends GenericFilterBean {
-
-	private final Tracer tracer;
-	private final HttpSpanInjector spanInjector;
-
-	public HttpResponseInjectingTraceFilter(Tracer tracer, HttpSpanInjector spanInjector) {
-		this.tracer = tracer;
-		this.spanInjector = spanInjector;
-	}
-
-	@Override
-	public void doFilter(ServletRequest request, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
-		HttpServletResponse response = (HttpServletResponse) servletResponse;
-		Span currentSpan = this.tracer.getCurrentSpan();
-		this.spanInjector.inject(currentSpan, new HttpServletResponseTextMap(response));
-		filterChain.doFilter(request, response);
-	}
-
-	 class HttpServletResponseTextMap implements SpanTextMap {
-
-		 private final HttpServletResponse delegate;
-
-		 HttpServletResponseTextMap(HttpServletResponse delegate) {
-			 this.delegate = delegate;
-		 }
-
-		 @Override
-		 public Iterator<Map.Entry<String, String>> iterator() {
-			 Map<String, String> map = new HashMap<>();
-			 for (String header : this.delegate.getHeaderNames()) {
-				map.put(header, this.delegate.getHeader(header));
-			 }
-			 return map.entrySet().iterator();
-		 }
-
-		 @Override
-		 public void put(String key, String value) {
-			this.delegate.addHeader(key, value);
-		 }
-	 }
-}
-
-
-
-

And you could register them like this:

-
-
-
-
@Bean HttpSpanInjector customHttpServletResponseSpanInjector() {
-	return new CustomHttpServletResponseSpanInjector();
-}
-
-@Bean
-HttpResponseInjectingTraceFilter responseInjectingTraceFilter(Tracer tracer) {
-	return new HttpResponseInjectingTraceFilter(tracer, customHttpServletResponseSpanInjector());
-}
-
-
-
-
-

TraceFilter

-
-

You can also modify the behaviour of the TraceFilter - the component that is responsible -for processing the input HTTP request and adding tags basing on the HTTP response. You can customize -the tags, or modify the response headers by registering your own instance of the TraceFilter bean.

-
-
-

In the following example we will register the TraceFilter bean and we will add the -ZIPKIN-TRACE-ID response header containing the current Span’s trace id. Also we will -add to the Span a tag with key custom and a value tag.

-
-
-
-
@Bean
-TraceFilter myTraceFilter(BeanFactory beanFactory, final Tracer tracer) {
-	return new TraceFilter(beanFactory) {
-		@Override protected void addResponseTags(HttpServletResponse response,
-				Throwable e) {
-			// execute the default behaviour
-			super.addResponseTags(response, e);
-			// for readability we're returning trace id in a hex form
-			response.addHeader("ZIPKIN-TRACE-ID",
-					Span.idToHex(tracer.getCurrentSpan().getTraceId()));
-			// we can also add some custom tags
-			tracer.addTag("custom", "tag");
-		}
-	};
-}
-
-
-
-
-

Custom SA tag in Zipkin

-
-

Sometimes you want to create a manual Span that will wrap a call to an external service which is not instrumented. -What you can do is to create a span with the peer.service tag that will contain a value of the service that you want to call. -Below you can see an example of a call to Redis that is wrapped in such a span.

-
-
-
-
org.springframework.cloud.sleuth.Span newSpan = tracer.createSpan("redis");
-try {
-	newSpan.tag("redis.op", "get");
-	newSpan.tag("lc", "redis");
-	newSpan.logEvent(org.springframework.cloud.sleuth.Span.CLIENT_SEND);
-	// call redis service e.g
-	// return (SomeObj) redisTemplate.opsForHash().get("MYHASH", someObjKey);
-} finally {
-	newSpan.tag("peer.service", "redisService");
-	newSpan.tag("peer.ipv4", "1.2.3.4");
-	newSpan.tag("peer.port", "1234");
-	newSpan.logEvent(org.springframework.cloud.sleuth.Span.CLIENT_RECV);
-	tracer.close(newSpan);
-}
-
-
-
- - - - - -
-
Important
-
-Remember not to add both peer.service tag and the SA tag! You have to add only peer.service. -
-
-
-
-

Custom service name

-
-

By default Sleuth assumes that when you send a span to Zipkin, you want the span’s service name - to be equal to spring.application.name value. That’s not always the case though. There - are situations in which you want to explicitly provide a different service name for all spans coming - from your application. To achieve that it’s enough to just pass the following property - to your application to override that value (example for foo service name):

-
-
-
-
spring.zipkin.service.name: foo
-
-
-
-
-

Customization of reported spans

-
-

Before reporting spans to e.g. Zipkin you can be interested in modifying that span in some way. - You can achieve that by using the SpanAdjuster interface.

-
-
-

Example of usage:

-
-
-

In Sleuth we’re generating spans with a fixed name. Some users want to modify the name depending on values -of tags. Implementation of the SpanAdjuster interface can be used to alter that name. Example:

-
-
-
-
@Bean
-SpanAdjuster customSpanAdjuster() {
-    return span -> span.toBuilder().name(scrub(span.getName())).build();
-}
-
-
-
-

This will lead in changing the name of the reported span just before it gets sent to Zipkin.

-
-
- - - - - -
-
Important
-
-Your SpanReporter should inject the SpanAdjuster and - allow span manipulation before the actual reporting is done. -
-
-
-
-

Host locator

-
-

In order to define the host that is corresponding to a particular span we need to resolve the host name -and port. The default approach is to take it from server properties. If those for some reason are not set -then we’re trying to retrieve the host name from the network interfaces.

-
-
-

If you have the discovery client enabled and prefer to retrieve the host address from the registered -instance in a service registry then you have to set the property (it’s applicable for both HTTP and -Stream based span reporting).

-
-
-
-
spring.zipkin.locator.discovery.enabled: true
-
-
-
-
-
-
-

Sending spans to Zipkin

-
-
-

By default if you add spring-cloud-starter-zipkin as a dependency to your project, -when the span is closed, it will be sent to Zipkin over HTTP. The communication -is asynchronous. You can configure the URL by setting the spring.zipkin.baseUrl -property as follows:

-
-
-
-
spring.zipkin.baseUrl: http://192.168.99.100:9411/
-
-
-
-

If you want to find Zipkin via service discovery it’s enough to pass the -Zipkin’s service id inside the URL (example for zipkinserver service id)

-
-
-
-
spring.zipkin.baseUrl: http://zipkinserver/
-
-
-
-
-
-

Span Data as Messages

-
-
-

You can accumulate and send span data over -Spring Cloud Stream by -including the spring-cloud-sleuth-stream jar as a dependency, and -adding a Channel Binder implementation -(e.g. spring-cloud-starter-stream-rabbit for RabbitMQ or -spring-cloud-starter-stream-kafka for Kafka). This will -automatically turn your app into a producer of messages with payload -type Spans.

-
-
-

Zipkin Consumer

-
-

There is a special convenience annotation for setting up a message consumer -for the Span data and pushing it into a Zipkin SpanStore. This application

-
-
-
-
@SpringBootApplication
-@EnableZipkinStreamServer
-public class Consumer {
-	public static void main(String[] args) {
-		SpringApplication.run(Consumer.class, args);
-	}
-}
-
-
-
-

will listen for the Span data on whatever transport you provide via a -Spring Cloud Stream Binder (e.g. include -spring-cloud-starter-stream-rabbit for RabbitMQ, and similar -starters exist for Redis and Kafka). If you add the following UI dependency

-
-
-
-
<groupId>io.zipkin.java</groupId>
-<artifactId>zipkin-autoconfigure-ui</artifactId>
-
-
-
-

Then you’ll have your app a -Zipkin server, which hosts -the UI and api on port 9411.

-
-
-

The default SpanStore is in-memory (good for demos and getting -started quickly). For a more robust solution you can add MySQL and -spring-boot-starter-jdbc to your classpath and enable the JDBC -SpanStore via configuration, e.g.:

-
-
-
-
spring:
-  rabbitmq:
-    host: ${RABBIT_HOST:localhost}
-  datasource:
-    schema: classpath:/mysql.sql
-    url: jdbc:mysql://${MYSQL_HOST:localhost}/test
-    username: root
-    password: root
-# Switch this on to create the schema on startup:
-    initialize: true
-    continueOnError: true
-  sleuth:
-    enabled: false
-zipkin:
-  storage:
-    type: mysql
-
-
-
- - - - - -
-
Note
-
-The @EnableZipkinStreamServer is also annotated with -@EnableZipkinServer so the process will also expose the standard -Zipkin server endpoints for collecting spans over HTTP, and for -querying in the Zipkin Web UI. -
-
-
-
-

Custom Consumer

-
-

A custom consumer can also easily be implemented using -spring-cloud-sleuth-stream and binding to the SleuthSink. Example:

-
-
-
-
@EnableBinding(SleuthSink.class)
-@SpringBootApplication(exclude = SleuthStreamAutoConfiguration.class)
-@MessageEndpoint
-public class Consumer {
-
-    @ServiceActivator(inputChannel = SleuthSink.INPUT)
-    public void sink(Spans input) throws Exception {
-        // ... process spans
-    }
-}
-
-
-
- - - - - -
-
Note
-
-the sample consumer application above explicitly excludes -SleuthStreamAutoConfiguration so it doesn’t send messages to itself, -but this is optional (you might actually want to trace requests into -the consumer app). -
-
-
-

In order to customize the polling mechanism you can create a bean of PollerMetadata type -with name equal to StreamSpanReporter.POLLER. Here you can find an example of such a configuration.

-
-
-
-
@Configuration
-public static class CustomPollerConfiguration {
-
-	@Bean(name = StreamSpanReporter.POLLER)
-	PollerMetadata customPoller() {
-		PollerMetadata poller = new PollerMetadata();
-		poller.setMaxMessagesPerPoll(500);
-		poller.setTrigger(new PeriodicTrigger(5000L));
-		return poller;
-	}
-}
-
-
-
-
-
-
-

Metrics

-
-
-

Currently Spring Cloud Sleuth registers very simple metrics related to spans. -It’s using the Spring Boot’s metrics support -to calculate the number of accepted and dropped spans. Each time a span gets -sent to Zipkin the number of accepted spans will increase. If there’s an error then -the number of dropped spans will get increased.

-
-
-
-
-

Integrations

-
-
-

Runnable and Callable

-
-

If you’re wrapping your logic in Runnable or Callable it’s enough to wrap those classes in their Sleuth representative.

-
-
-

Example for Runnable:

-
-
-
-
Runnable runnable = new Runnable() {
-	@Override
-	public void run() {
-		// do some work
-	}
-
-	@Override
-	public String toString() {
-		return "spanNameFromToStringMethod";
-	}
-};
-// Manual `TraceRunnable` creation with explicit "calculateTax" Span name
-Runnable traceRunnable = new TraceRunnable(tracer, spanNamer, runnable, "calculateTax");
-// Wrapping `Runnable` with `Tracer`. The Span name will be taken either from the
-// `@SpanName` annotation or from `toString` method
-Runnable traceRunnableFromTracer = tracer.wrap(runnable);
-
-
-
-

Example for Callable:

-
-
-
-
Callable<String> callable = new Callable<String>() {
-	@Override
-	public String call() throws Exception {
-		return someLogic();
-	}
-
-	@Override
-	public String toString() {
-		return "spanNameFromToStringMethod";
-	}
-};
-// Manual `TraceCallable` creation with explicit "calculateTax" Span name
-Callable<String> traceCallable = new TraceCallable<>(tracer, spanNamer, callable, "calculateTax");
-// Wrapping `Callable` with `Tracer`. The Span name will be taken either from the
-// `@SpanName` annotation or from `toString` method
-Callable<String> traceCallableFromTracer = tracer.wrap(callable);
-
-
-
-

That way you will ensure that a new Span is created and closed for each execution.

-
-
-
-

Hystrix

-
-

Custom Concurrency Strategy

-
-

We’re registering a custom HystrixConcurrencyStrategy -that wraps all Callable instances into their Sleuth representative - -the TraceCallable. The strategy either starts or continues a span depending on the fact whether tracing was already going -on before the Hystrix command was called. To disable the custom Hystrix Concurrency Strategy set the spring.sleuth.hystrix.strategy.enabled to false.

-
-
-
-

Manual Command setting

-
-

Assuming that you have the following HystrixCommand:

-
-
-
-
HystrixCommand<String> hystrixCommand = new HystrixCommand<String>(setter) {
-	@Override
-	protected String run() throws Exception {
-		return someLogic();
-	}
-};
-
-
-
-

In order to pass the tracing information you have to wrap the same logic in the Sleuth version of the HystrixCommand which is the -TraceCommand:

-
-
-
-
TraceCommand<String> traceCommand = new TraceCommand<String>(tracer, traceKeys, setter) {
-	@Override
-	public String doRun() throws Exception {
-		return someLogic();
-	}
-};
-
-
-
-
-
-

RxJava

-
-

We’re registering a custom RxJavaSchedulersHook -that wraps all Action0 instances into their Sleuth representative - -the TraceAction. The hook either starts or continues a span depending on the fact whether tracing was already going -on before the Action was scheduled. To disable the custom RxJavaSchedulersHook set the spring.sleuth.rxjava.schedulers.hook.enabled to false.

-
-
-

You can define a list of regular expressions for thread names, for which you don’t want a Span to be created. Just provide a comma separated list -of regular expressions in the spring.sleuth.rxjava.schedulers.ignoredthreads property.

-
-
-
-

HTTP integration

-
-

Features from this section can be disabled by providing the spring.sleuth.web.enabled property with value equal to false.

-
-
-

HTTP Filter

-
-

Via the TraceFilter all sampled incoming requests result in creation of a Span. That Span’s name is http: + the path to which - the request was sent. E.g. if the request was sent to /foo/bar then the name will be http:/foo/bar. You can configure which URIs you would - like to skip via the spring.sleuth.web.skipPattern property. If you have ManagementServerProperties on classpath then - its value of contextPath gets appended to the provided skip pattern.

-
-
-
-

HandlerInterceptor

-
-

Since we want the span names to be precise we’re using a TraceHandlerInterceptor that either wraps an - existing HandlerInterceptor or is added directly to the list of existing HandlerInterceptors. The - TraceHandlerInterceptor adds a special request attribute to the given HttpServletRequest. If the - the TraceFilter doesn’t see this attribute set it will create a "fallback" span which is an additional - span created on the server side so that the trace is presented properly in the UI. Seeing that most likely - signifies that there is a missing instrumentation. In that case please file an issue in Spring Cloud Sleuth.

-
-
-
-

Async Servlet support

-
-

If your controller returns a Callable or a WebAsyncTask Spring Cloud Sleuth will continue the existing span instead of creating a new one.

-
-
-
-
-

HTTP client integration

-
-

Synchronous Rest Template

-
-

We’re injecting a RestTemplate interceptor that ensures that all the tracing information is passed to the requests. Each time a -call is made a new Span is created. It gets closed upon receiving the response. In order to block the synchronous RestTemplate features -just set spring.sleuth.web.client.enabled to false.

-
-
- - - - - -
-
Important
-
-You have to register RestTemplate as a bean so that the interceptors will get injected. -If you create a RestTemplate instance with a new keyword then the instrumentation WILL NOT work. -
-
-
-
-

Asynchronous Rest Template

-
- - - - - -
-
Important
-
-A traced version of an AsyncRestTemplate bean is registered for you out of the box. If you -have your own bean you have to wrap it in a TraceAsyncRestTemplate representation. The best solution -is to only customize the ClientHttpRequestFactory and / or AsyncClientHttpRequestFactory. -If you have your own AsyncRestTemplate and you don’t wrap it your calls WILL NOT GET TRACED. -
-
-
-

Custom instrumentation is set to create and close Spans upon sending and receiving requests. You can customize the ClientHttpRequestFactory -and the AsyncClientHttpRequestFactory by registering your beans. Remember to use tracing compatible implementations (e.g. don’t forget to -wrap ThreadPoolTaskScheduler in a TraceAsyncListenableTaskExecutor). Example of custom request factories:

-
-
-
-
@EnableAutoConfiguration
-@Configuration
-public static class TestConfiguration {
-
-	@Bean
-	ClientHttpRequestFactory mySyncClientFactory() {
-		return new MySyncClientHttpRequestFactory();
-	}
-
-	@Bean
-	AsyncClientHttpRequestFactory myAsyncClientFactory() {
-		return new MyAsyncClientHttpRequestFactory();
-	}
-}
-
-
-
-

To block the AsyncRestTemplate features set spring.sleuth.web.async.client.enabled to false. -To disable creation of the default TraceAsyncClientHttpRequestFactoryWrapper set spring.sleuth.web.async.client.factory.enabled -to false. If you don’t want to create AsyncRestClient at all set spring.sleuth.web.async.client.template.enabled to false.

-
-
-
Multiple Asynchronous Rest Templates
-
-

Sometimes you need to use multiple implementations of Asynchronous Rest Template. In the following snippet you -can see an example of how to set up such a custom AsyncRestTemplate.

-
-
-
-
@Configuration
-@EnableAutoConfiguration
-static class Config {
-	@Autowired Tracer tracer;
-	@Autowired HttpTraceKeysInjector httpTraceKeysInjector;
-	@Autowired HttpSpanInjector spanInjector;
-
-	@Bean(name = "customAsyncRestTemplate")
-	public AsyncRestTemplate traceAsyncRestTemplate(@Qualifier("customHttpRequestFactoryWrapper")
-			TraceAsyncClientHttpRequestFactoryWrapper wrapper, ErrorParser errorParser) {
-		return new TraceAsyncRestTemplate(wrapper, this.tracer, errorParser);
-	}
-
-	@Bean(name = "customHttpRequestFactoryWrapper")
-	public TraceAsyncClientHttpRequestFactoryWrapper traceAsyncClientHttpRequestFactory() {
-		return new TraceAsyncClientHttpRequestFactoryWrapper(this.tracer,
-				this.spanInjector,
-				asyncClientFactory(),
-				clientHttpRequestFactory(),
-				this.httpTraceKeysInjector);
-	}
-
-	private ClientHttpRequestFactory clientHttpRequestFactory() {
-		ClientHttpRequestFactory clientHttpRequestFactory = new CustomClientHttpRequestFactory();
-		//CUSTOMIZE HERE
-		return clientHttpRequestFactory;
-	}
-
-	private AsyncClientHttpRequestFactory asyncClientFactory() {
-		AsyncClientHttpRequestFactory factory = new CustomAsyncClientHttpRequestFactory();
-		//CUSTOMIZE HERE
-		return factory;
-	}
-}
-
-
-
-
-
-

Traverson

-
-

If you’re using the Traverson library -it’s enough for you to inject a RestTemplate as a bean into your Traverson object. Since RestTemplate -is already intercepted, you will get full support of tracing in your client. Below you can find a pseudo code -of how to do that:

-
-
-
-
@Autowired RestTemplate restTemplate;
-
-Traverson traverson = new Traverson(URI.create("http://some/address"),
-    MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON_UTF8).setRestOperations(restTemplate);
-// use Traverson
-
-
-
-
-
-

Feign

-
-

By default Spring Cloud Sleuth provides integration with feign via the TraceFeignClientAutoConfiguration. You can disable it entirely -by setting spring.sleuth.feign.enabled to false. If you do so then no Feign related instrumentation will take place.

-
-
-

Part of Feign instrumentation is done via a FeignBeanPostProcessor. You can disable it by providing the spring.sleuth.feign.processor.enabled equal to false. -If you set it like this then Spring Cloud Sleuth will not instrument any of your custom Feign components. All the default instrumentation -however will be still there.

-
-
-
-

Asynchronous communication

-
-

@Async annotated methods

-
-

In Spring Cloud Sleuth we’re instrumenting async related components so that the tracing information is passed between threads. -You can disable this behaviour by setting the value of spring.sleuth.async.enabled to false.

-
-
-

If you annotate your method with @Async then we’ll automatically create a new Span with the following characteristics:

-
-
-
    -
  • -

    if the method is annotated with @SpanName then the value of the annotation will be the Span’s name

    -
  • -
  • -

    if the method is not annotated with @SpanName the Span name will be the annotated method name

    -
  • -
  • -

    the Span will be tagged with that method’s class name and the method name too

    -
  • -
-
-
-
-

@Scheduled annotated methods

-
-

In Spring Cloud Sleuth we’re instrumenting scheduled method execution so that the tracing information is passed between threads. You can disable this behaviour -by setting the value of spring.sleuth.scheduled.enabled to false.

-
-
-

If you annotate your method with @Scheduled then we’ll automatically create a new Span with the following characteristics:

-
-
-
    -
  • -

    the Span name will be the annotated method name

    -
  • -
  • -

    the Span will be tagged with that method’s class name and the method name too

    -
  • -
-
-
-

If you want to skip Span creation for some @Scheduled annotated classes you can set the -spring.sleuth.scheduled.skipPattern with a regular expression that will match the fully qualified name of the -@Scheduled annotated class.

-
-
- - - - - -
-
Tip
-
-If you are using spring-cloud-sleuth-stream and spring-cloud-netflix-hystrix-stream together, Span will be created for each Hystrix metrics and sent to Zipkin. This may be annoying. You can prevent this by setting spring.sleuth.scheduled.skipPattern=org.springframework.cloud.netflix.hystrix.stream.HystrixStreamTask -
-
-
-
-

Executor, ExecutorService and ScheduledExecutorService

-
-

We’re providing LazyTraceExecutor, TraceableExecutorService and TraceableScheduledExecutorService. Those implementations -are creating Spans each time a new task is submitted, invoked or scheduled.

-
-
-

Here you can see an example of how to pass tracing information with TraceableExecutorService when working with CompletableFuture:

-
-
-
-
CompletableFuture<Long> completableFuture = CompletableFuture.supplyAsync(() -> {
-	// perform some logic
-	return 1_000_000L;
-}, new TraceableExecutorService(executorService,
-		// 'calculateTax' explicitly names the span - this param is optional
-		tracer, traceKeys, spanNamer, "calculateTax"));
-
-
-
-
Customization of Executors
-
-

Sometimes you need to set up a custom instance of the AsyncExecutor. In the following snippet you -can see an example of how to set up such a custom Executor.

-
-
-
-
@Configuration
-@EnableAutoConfiguration
-@EnableAsync
-static class CustomExecutorConfig extends AsyncConfigurerSupport {
-
-	@Autowired BeanFactory beanFactory;
-
-	@Override public Executor getAsyncExecutor() {
-		ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
-		// CUSTOMIZE HERE
-		executor.setCorePoolSize(7);
-		executor.setMaxPoolSize(42);
-		executor.setQueueCapacity(11);
-		executor.setThreadNamePrefix("MyExecutor-");
-		// DON'T FORGET TO INITIALIZE
-		executor.initialize();
-		return new LazyTraceExecutor(this.beanFactory, executor);
-	}
-}
-
-
-
-
-
-
-

Messaging

-
-

Spring Cloud Sleuth integrates with Spring Integration. It creates spans for publish and -subscribe events. To disable Spring Integration instrumentation, set spring.sleuth.integration.enabled to false.

-
-
-

You can provide the spring.sleuth.integration.patterns pattern to explicitly -provide the names of channels that you want to include for tracing. By default all channels -are included.

-
-
- - - - - -
-
Important
-
-When using the Executor to build a Spring Integration IntegrationFlow remember to use the untraced version of the Executor. -Decorating Spring Integration Executor Channel with TraceableExecutorService will cause the spans to be improperly closed. -
-
-
-
-

Zuul

-
-

We’re registering Zuul filters to propagate the tracing information (the request header is enriched with tracing data). -To disable Zuul support set the spring.sleuth.zuul.enabled property to false.

-
-
-
-
-
-

Running examples

-
-
-

You can find the running examples deployed in the Pivotal Web Services. Check them out in the following links:

-
- diff --git a/spring-cloud-sleuth.xml b/spring-cloud-sleuth.xml new file mode 100644 index 000000000..a1e290955 --- /dev/null +++ b/spring-cloud-sleuth.xml @@ -0,0 +1,1808 @@ + + + + + +Spring Cloud Sleuth +2017-08-29 + + +Adrian Cole, Spencer Gibb, Marcin Grzejszczak, Dave Syer + + +A + + + +1.3.0.BUILD-SNAPSHOT +Spring Cloud Sleuth implements a distributed tracing solution for Spring Cloud. + +
+Terminology +Spring Cloud Sleuth borrows Dapper’s terminology. +Span: The basic unit of work. For example, sending an RPC is a new span, as is sending a response to an +RPC. Span’s are identified by a unique 64-bit ID for the span and another 64-bit ID for the trace the span +is a part of. Spans also have other data, such as descriptions, timestamped events, key-value +annotations (tags), the ID of the span that caused them, and process ID’s (normally IP address). +Spans are started and stopped, and they keep track of their timing information. Once you create a +span, you must stop it at some point in the future. + +The initial span that starts a trace is called a root span. The value of span id +of that span is equal to trace id. + +Trace: A set of spans forming a tree-like structure. For example, if you are running a distributed +big-data store, a trace might be formed by a put request. +Annotation: is used to record existence of an event in time. Some of the core annotations used to define +the start and stop of a request are: + + +cs - Client Sent - The client has made a request. This annotation depicts the start of the span. + + +sr - Server Received - The server side got the request and will start processing it. +If one subtracts the cs timestamp from this timestamp one will receive the network latency. + + +ss - Server Sent - Annotated upon completion of request processing (when the response +got sent back to the client). If one subtracts the sr timestamp from this timestamp one +will receive the time needed by the server side to process the request. + + +cr - Client Received - Signifies the end of the span. The client has successfully received the +response from the server side. If one subtracts the cs timestamp from this timestamp one +will receive the whole time needed by the client to receive the response from the server. + + +Visualization of what Span and Trace will look in a system together with the Zipkin annotations: + + + + + +Trace Info propagation + + +Each color of a note signifies a span (7 spans - from A to G). If you have such information in the note: +Trace Id = X +Span Id = D +Client Sent +That means that the current span has Trace-Id set to X, Span-Id set to D. It also has emitted + Client Sent event. +This is how the visualization of the parent / child relationship of spans would look like: + + + + + +Parent child relationship + + +
+
+Purpose +In the following sections the example from the image above will be taken into consideration. +
+Distributed tracing with Zipkin +Altogether there are 7 spans . If you go to traces in Zipkin you will see this number in the second trace: + + + + + +Traces + + +However if you pick a particular trace then you will see 4 spans: + + + + + +Traces Info propagation + + + +When picking a particular trace you will see merged spans. That means that if there were 2 spans sent to +Zipkin with Server Received and Server Sent / Client Received and Client Sent +annotations then they will presented as a single span. + +Why is there a difference between the 7 and 4 spans in this case? + + +2 spans come from http:/start span. It has the Server Received (SR) and Server Sent (SS) annotations. + + +2 spans come from the RPC call from service1 to service2 to the http:/foo endpoint. It has the Client Sent (CS) +and Client Received (CR) annotations on service1 side. It also has Server Received (SR) and Server Sent (SS) annotations +on the service2 side. Physically there are 2 spans but they form 1 logical span related to an RPC call. + + +2 spans come from the RPC call from service2 to service3 to the http:/bar endpoint. It has the Client Sent (CS) +and Client Received (CR) annotations on service2 side. It also has Server Received (SR) and Server Sent (SS) annotations +on the service3 side. Physically there are 2 spans but they form 1 logical span related to an RPC call. + + +2 spans come from the RPC call from service2 to service4 to the http:/baz endpoint. It has the Client Sent (CS) +and Client Received (CR) annotations on service2 side. It also has Server Received (SR) and Server Sent (SS) annotations +on the service4 side. Physically there are 2 spans but they form 1 logical span related to an RPC call. + + +So if we count the physical spans we have 1 from http:/start, 2 from service1 calling service2, 2 form service2 +calling service3 and 2 from service2 calling service4. Altogether 7 spans. +Logically we see the information of Total Spans: 4 because we have 1 span related to the incoming request +to service1 and 3 spans related to RPC calls. +
+
+Visualizing errors +Zipkin allows you to visualize errors in your trace. When an exception was thrown and wasn’t caught then we’re +setting proper tags on the span which Zipkin can properly colorize. You could see in the list of traces one + trace that was in red color. That’s because there was an exception thrown. +If you click that trace then you’ll see a similar picture + + + + + +Error Traces + + +Then if you click on one of the spans you’ll see the following + + + + + +Error Traces Info propagation + + +As you can see you can easily see the reason for an error and the whole stacktrace related to it. +
+
+Live examples +
+Click Pivotal Web Services icon to see it live! + + + + +Zipkin deployed on Pivotal Web Services + +
+The dependency graph in Zipkin would look like this: + + + + + +Dependencies + + +
+Click Pivotal Web Services icon to see it live! + + + + +Zipkin deployed on Pivotal Web Services + +
+
+
+Log correlation +When grepping the logs of those four applications by trace id equal to e.g. 2485ec27856c56f4 one would get the following: +service1.log:2016-02-26 11:15:47.561 INFO [service1,2485ec27856c56f4,2485ec27856c56f4,true] 68058 --- [nio-8081-exec-1] i.s.c.sleuth.docs.service1.Application : Hello from service1. Calling service2 +service2.log:2016-02-26 11:15:47.710 INFO [service2,2485ec27856c56f4,9aa10ee6fbde75fa,true] 68059 --- [nio-8082-exec-1] i.s.c.sleuth.docs.service2.Application : Hello from service2. Calling service3 and then service4 +service3.log:2016-02-26 11:15:47.895 INFO [service3,2485ec27856c56f4,1210be13194bfe5,true] 68060 --- [nio-8083-exec-1] i.s.c.sleuth.docs.service3.Application : Hello from service3 +service2.log:2016-02-26 11:15:47.924 INFO [service2,2485ec27856c56f4,9aa10ee6fbde75fa,true] 68059 --- [nio-8082-exec-1] i.s.c.sleuth.docs.service2.Application : Got response from service3 [Hello from service3] +service4.log:2016-02-26 11:15:48.134 INFO [service4,2485ec27856c56f4,1b1845262ffba49d,true] 68061 --- [nio-8084-exec-1] i.s.c.sleuth.docs.service4.Application : Hello from service4 +service2.log:2016-02-26 11:15:48.156 INFO [service2,2485ec27856c56f4,9aa10ee6fbde75fa,true] 68059 --- [nio-8082-exec-1] i.s.c.sleuth.docs.service2.Application : Got response from service4 [Hello from service4] +service1.log:2016-02-26 11:15:48.182 INFO [service1,2485ec27856c56f4,2485ec27856c56f4,true] 68058 --- [nio-8081-exec-1] i.s.c.sleuth.docs.service1.Application : Got response from service2 [Hello from service2, response from service3 [Hello from service3] and from service4 [Hello from service4]] +If you’re using a log aggregating tool like Kibana, +Splunk etc. you can order the events that took place. An example of +Kibana would look like this: + + + + + +Log correlation with Kibana + + +If you want to use Logstash here is the Grok pattern for Logstash: +filter { + # pattern matching logback pattern + grok { + match => { "message" => "%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:severity}\s+\[%{DATA:service},%{DATA:trace},%{DATA:span},%{DATA:exportable}\]\s+%{DATA:pid}\s+---\s+\[%{DATA:thread}\]\s+%{DATA:class}\s+:\s+%{GREEDYDATA:rest}" } + } +} + +If you want to use Grok together with the logs from Cloud Foundry you have to use this pattern: + +filter { + # pattern matching logback pattern + grok { + match => { "message" => "(?m)OUT\s+%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:severity}\s+\[%{DATA:service},%{DATA:trace},%{DATA:span},%{DATA:exportable}\]\s+%{DATA:pid}\s+---\s+\[%{DATA:thread}\]\s+%{DATA:class}\s+:\s+%{GREEDYDATA:rest}" } + } +} +
+JSON Logback with Logstash +Often you do not want to store your logs in a text file but in a JSON file that Logstash can immediately pick. To do that you have to do the following (for readability +we’re passing the dependencies in the groupId:artifactId:version notation. +Dependencies setup + + +Ensure that Logback is on the classpath (ch.qos.logback:logback-core) + + +Add Logstash Logback encode - example for version 4.6 : net.logstash.logback:logstash-logback-encoder:4.6 + + +Logback setup +Below you can find an example of a Logback configuration (file named logback-spring.xml) that: + + +logs information from the application in a JSON format to a build/${spring.application.name}.json file + + +has commented out two additional appenders - console and standard log file + + +has the same logging pattern as the one presented in the previous section + + +<?xml version="1.0" encoding="UTF-8"?> +<configuration> + <include resource="org/springframework/boot/logging/logback/defaults.xml"/> + ​ + <springProperty scope="context" name="springAppName" source="spring.application.name"/> + <!-- Example for logging into the build folder of your project --> + <property name="LOG_FILE" value="${BUILD_FOLDER:-build}/${springAppName}"/>​ + + <!-- You can override this to have a custom pattern --> + <property name="CONSOLE_LOG_PATTERN" + value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/> + + <!-- Appender to log to console --> + <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <!-- Minimum logging level to be presented in the console logs--> + <level>DEBUG</level> + </filter> + <encoder> + <pattern>${CONSOLE_LOG_PATTERN}</pattern> + <charset>utf8</charset> + </encoder> + </appender> + + <!-- Appender to log to file -->​ + <appender name="flatfile" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${LOG_FILE}</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern> + <maxHistory>7</maxHistory> + </rollingPolicy> + <encoder> + <pattern>${CONSOLE_LOG_PATTERN}</pattern> + <charset>utf8</charset> + </encoder> + </appender> + ​ + <!-- Appender to log to file in a JSON format --> + <appender name="logstash" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${LOG_FILE}.json</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${LOG_FILE}.json.%d{yyyy-MM-dd}.gz</fileNamePattern> + <maxHistory>7</maxHistory> + </rollingPolicy> + <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"> + <providers> + <timestamp> + <timeZone>UTC</timeZone> + </timestamp> + <pattern> + <pattern> + { + "severity": "%level", + "service": "${springAppName:-}", + "trace": "%X{X-B3-TraceId:-}", + "span": "%X{X-B3-SpanId:-}", + "parent": "%X{X-B3-ParentSpanId:-}", + "exportable": "%X{X-Span-Export:-}", + "pid": "${PID:-}", + "thread": "%thread", + "class": "%logger{40}", + "rest": "%message" + } + </pattern> + </pattern> + </providers> + </encoder> + </appender> + ​ + <root level="INFO"> + <appender-ref ref="console"/> + <!-- uncomment this to have also JSON logs --> + <!--<appender-ref ref="logstash"/>--> + <!--<appender-ref ref="flatfile"/>--> + </root> +</configuration> + +If you’re using a custom logback-spring.xml then you have to pass the spring.application.name in +bootstrap instead of application property file. Otherwise your custom logback file won’t read the property properly. + +
+
+
+Propagating Span Context +The span context is the state that must get propagated to any child Spans across process boundaries. +Part of the Span Context is the Baggage. The trace and span IDs are a required part of the span context. +Baggage is an optional part. +Baggage is a set of key:value pairs stored in the span context. Baggage travels together with the trace +and is attached to every span. Spring Cloud Sleuth will understand that a header is baggage related if the HTTP + header is prefixed with baggage- and for messaging it starts with baggage_. + +There’s currently no limitation of the count or size of baggage items. However, keep in mind that +too many can decrease system throughput or increase RPC latency. In extreme cases, it could crash the app due +to exceeding transport-level message or header capacity. + +Example of setting baggage on a span: +Span initialSpan = this.tracer.createSpan("span"); +initialSpan.setBaggageItem("foo", "bar"); +initialSpan.setBaggageItem("UPPER_CASE", "someValue"); +
+Baggage vs. Span Tags +Baggage travels with the trace (i.e. every child span contains the baggage of its parent). Zipkin has no knowledge of +baggage and will not even receive that information. +Tags are attached to a specific span - they are presented for that particular span only. However you +can search by tag to find the trace, where there exists a span having the searched tag value. +If you want to be able to lookup a span based on baggage, you should add corresponding entry as a tag in the root span. +@Autowired Tracer tracer; + +Span span = tracer.getCurrentSpan(); +String baggageKey = "key"; +String baggageValue = "foo"; +span.setBaggageItem(baggageKey, baggageValue); +tracer.addTag(baggageKey, baggageValue); +
+
+
+
+Adding to the project +
+Only Sleuth (log correlation) +If you want to profit only from Spring Cloud Sleuth without the Zipkin integration just add +the spring-cloud-starter-sleuth module to your project. + +Maven + +<dependencyManagement> + <dependencies> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-dependencies</artifactId> + <version>${release.train.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-starter-sleuth</artifactId> + </dependency> + + + + +In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM + + +Add the dependency to spring-cloud-starter-sleuth + + + +Gradle + +dependencyManagement { + imports { + mavenBom "org.springframework.cloud:spring-cloud-dependencies:${releaseTrainVersion}" + } +} + +dependencies { + compile "org.springframework.cloud:spring-cloud-starter-sleuth" +} + + + + +In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM + + +Add the dependency to spring-cloud-starter-sleuth + + +
+
+Sleuth with Zipkin via HTTP +If you want both Sleuth and Zipkin just add the spring-cloud-starter-zipkin dependency. + +Maven + +<dependencyManagement> + <dependencies> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-dependencies</artifactId> + <version>${release.train.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-starter-zipkin</artifactId> + </dependency> + + + + +In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM + + +Add the dependency to spring-cloud-starter-zipkin + + + +Gradle + +dependencyManagement { + imports { + mavenBom "org.springframework.cloud:spring-cloud-dependencies:${releaseTrainVersion}" + } +} + +dependencies { + compile "org.springframework.cloud:spring-cloud-starter-zipkin" +} + + + + +In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM + + +Add the dependency to spring-cloud-starter-zipkin + + +
+
+Sleuth with Zipkin via Spring Cloud Stream +If you want both Sleuth and Zipkin just add the spring-cloud-sleuth-stream dependency. + +Maven + +<dependencyManagement> + <dependencies> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-dependencies</artifactId> + <version>${release.train.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-sleuth-stream</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-starter-sleuth</artifactId> + </dependency> + <!-- EXAMPLE FOR RABBIT BINDING --> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-stream-binder-rabbit</artifactId> + </dependency> + + + + +In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM + + +Add the dependency to spring-cloud-sleuth-stream + + +Add the dependency to spring-cloud-starter-sleuth - that way all dependant dependencies will be downloaded + + +Add a binder (e.g. Rabbit binder) to tell Spring Cloud Stream what it should bind to + + + +Gradle + +dependencyManagement { + imports { + mavenBom "org.springframework.cloud:spring-cloud-dependencies:${releaseTrainVersion}" + } +} + +dependencies { + compile "org.springframework.cloud:spring-cloud-sleuth-stream" + compile "org.springframework.cloud:spring-cloud-starter-sleuth" + // Example for Rabbit binding + compile "org.springframework.cloud:spring-cloud-stream-binder-rabbit" +} + + + + +In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM + + +Add the dependency to spring-cloud-sleuth-stream + + +Add the dependency to spring-cloud-starter-sleuth - that way all dependant dependencies will be downloaded + + +Add a binder (e.g. Rabbit binder) to tell Spring Cloud Stream what it should bind to + + +
+
+Spring Cloud Sleuth Stream Zipkin Collector +If you want to start a Spring Cloud Sleuth Stream Zipkin collector just add the spring-cloud-sleuth-zipkin-stream +dependency + +Maven + +<dependencyManagement> + <dependencies> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-dependencies</artifactId> + <version>${release.train.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-sleuth-zipkin-stream</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-starter-sleuth</artifactId> + </dependency> + <!-- EXAMPLE FOR RABBIT BINDING --> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-stream-binder-rabbit</artifactId> + </dependency> + + + + +In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM + + +Add the dependency to spring-cloud-sleuth-zipkin-stream + + +Add the dependency to spring-cloud-starter-sleuth - that way all dependant dependencies will be downloaded + + +Add a binder (e.g. Rabbit binder) to tell Spring Cloud Stream what it should bind to + + + +Gradle + +dependencyManagement { + imports { + mavenBom "org.springframework.cloud:spring-cloud-dependencies:${releaseTrainVersion}" + } +} + +dependencies { + compile "org.springframework.cloud:spring-cloud-sleuth-zipkin-stream" + compile "org.springframework.cloud:spring-cloud-starter-sleuth" + // Example for Rabbit binding + compile "org.springframework.cloud:spring-cloud-stream-binder-rabbit" +} + + + + +In order not to pick versions by yourself it’s much better if you add the dependency management via +the Spring BOM + + +Add the dependency to spring-cloud-sleuth-zipkin-stream + + +Add the dependency to spring-cloud-starter-sleuth - that way all dependant dependencies will be downloaded + + +Add a binder (e.g. Rabbit binder) to tell Spring Cloud Stream what it should bind to + + +and then just annotate your main class with @EnableZipkinStreamServer annotation: +package example; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.sleuth.zipkin.stream.EnableZipkinStreamServer; + +@SpringBootApplication +@EnableZipkinStreamServer +public class ZipkinStreamServerApplication { + + public static void main(String[] args) throws Exception { + SpringApplication.run(ZipkinStreamServerApplication.class, args); + } + +} +
+
+ +Additional resources +Marcin Grzejszczak talking about Spring Cloud Sleuth and Zipkin + +click here to see the video + + +Features + + +Adds trace and span ids to the Slf4J MDC, so you can extract all the logs from a given trace or span in a log aggregator. Example logs: +2016-02-02 15:30:57.902 INFO [bar,6bfd228dc00d216b,6bfd228dc00d216b,false] 23030 --- [nio-8081-exec-3] ... +2016-02-02 15:30:58.372 ERROR [bar,6bfd228dc00d216b,6bfd228dc00d216b,false] 23030 --- [nio-8081-exec-3] ... +2016-02-02 15:31:01.936 INFO [bar,46ab0d418373cbc9,46ab0d418373cbc9,false] 23030 --- [nio-8081-exec-4] ... +notice the [appname,traceId,spanId,exportable] entries from the MDC: + + +spanId - the id of a specific operation that took place + + +appname - the name of the application that logged the span + + +traceId - the id of the latency graph that contains the span + + +exportable - whether the log should be exported to Zipkin or not. When would you like the span not to be +exportable? In the case in which you want to wrap some operation in a Span and have it written to the logs +only. + + + + +Provides an abstraction over common distributed tracing data models: traces, spans (forming a DAG), annotations, +key-value annotations. Loosely based on HTrace, but Zipkin (Dapper) compatible. + + +Sleuth records timing information to aid in latency analysis. Using sleuth, you can pinpoint causes of +latency in your applications. Sleuth is written to not log too much, and to not cause your production application to crash. + + +propagates structural data about your call-graph in-band, and the rest out-of-band. + + +includes opinionated instrumentation of layers such as HTTP + + +includes sampling policy to manage volume + + +can report to a Zipkin system for query and visualization + + + + +Instruments common ingress and egress points from Spring applications (servlet filter, async endpoints, +rest template, scheduled actions, message channels, zuul filters, feign client). + + +Sleuth includes default logic to join a trace across http or messaging boundaries. For example, http propagation +works via Zipkin-compatible request headers. This propagation logic is defined and customized via +SpanInjector and SpanExtractor implementations. + + +Sleuth gives you the possibility to propagate context (also known as baggage) between processes. That means that if you set on a Span +a baggage element then it will be sent downstream either via HTTP or messaging to other processes. + + +Provides a way to create / continue spans and add tags and logs via annotations. + + +Provides simple metrics of accepted / dropped spans. + + +If spring-cloud-sleuth-zipkin then the app will generate and collect Zipkin-compatible traces. +By default it sends them via HTTP to a Zipkin server on localhost (port 9411). +Configure the location of the service using spring.zipkin.baseUrl. + + +If spring-cloud-sleuth-stream then the app will generate and collect traces via Spring Cloud Stream. +Your app automatically becomes a producer of tracer messages that are sent over your broker of choice +(e.g. RabbitMQ, Apache Kafka, Redis). + + + +If using Zipkin or Stream, configure the percentage of spans exported using spring.sleuth.sampler.percentage +(default 0.1, i.e. 10%). Otherwise you might think that Sleuth is not working cause it’s omitting some spans. + + +the SLF4J MDC is always set and logback users will immediately see the trace and span ids in logs per the example + above. Other logging systems have to configure their own formatter to get the same result. The default is + logging.pattern.level set to %5p [${spring.zipkin.service.name:${spring.application.name:-}},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}] + (this is a Spring Boot feature for logback users). + This means that if you’re not using SLF4J this pattern WILL NOT be automatically applied. + + + +Sampling +In distributed tracing the data volumes can be very high so sampling +can be important (you usually don’t need to export all spans to get a +good picture of what is happening). Spring Cloud Sleuth has a +Sampler strategy that you can implement to take control of the +sampling algorithm. Samplers do not stop span (correlation) ids from +being generated, but they do prevent the tags and events being +attached and exported. By default you get a strategy that continues to +trace if a span is already active, but new ones are always marked as +non-exportable. If all your apps run with this sampler you will see +traces in logs, but not in any remote store. For testing the default +is often enough, and it probably is all you need if you are only using +the logs (e.g. with an ELK aggregator). If you are exporting span data +to Zipkin or Spring Cloud Stream, there is also an AlwaysSampler +that exports everything and a PercentageBasedSampler that samples a +fixed fraction of spans. + +the PercentageBasedSampler is the default if you are using +spring-cloud-sleuth-zipkin or spring-cloud-sleuth-stream. You can +configure the exports using spring.sleuth.sampler.percentage. The passed +value needs to be a double from 0.0 to 1.0 so it’s not a percentage. +For backwards compatibility reasons we’re not changing the property name. + +A sampler can be installed just by creating a bean definition, e.g: +@Bean +public Sampler defaultSampler() { + return new AlwaysSampler(); +} + +You can set the HTTP header X-B3-Flags to 1 or when doing messaging you can +set spanFlags header to 1. Then the current span will be forced to be exportable +regardless of the sampling decision. + + + +Instrumentation +Spring Cloud Sleuth instruments all your Spring application +automatically, so you shouldn’t have to do anything to activate +it. The instrumentation is added using a variety of technologies +according to the stack that is available, e.g. for a servlet web +application we use a Filter, and for Spring Integration we use +ChannelInterceptors. +You can customize the keys used in span tags. To limit the volume of +span data, by default an HTTP request will be tagged only with a +handful of metadata like the status code, host and URL. You can add +request headers by configuring spring.sleuth.keys.http.headers (a +list of header names). + +Remember that tags are only collected and exported if there is a +Sampler that allows it (by default there is not, so there is no +danger of accidentally collecting too much data without configuring +something). + + +Currently the instrumentation in Spring Cloud Sleuth is eager - it means that +we’re actively trying to pass the tracing context between threads. Also timing events +are captured even when sleuth isn’t exporting data to a tracing system. +This approach may change in the future towards being lazy on this matter. + + + +Span lifecycle +You can do the following operations on the Span by means of org.springframework.cloud.sleuth.Tracer interface: + + +start - when you start a span its name is assigned and start timestamp is recorded. + + +close - the span gets finished (the end time of the span is recorded) and if +the span is exportable then it will be eligible for collection to Zipkin. +The span is also removed from the current thread. + + +continue - a new instance of span will be created whereas it will be a copy of the +one that it continues. + + +detach - the span doesn’t get stopped or closed. It only gets removed from the current thread. + + +create with explicit parent - you can create a new span and set an explicit parent to it + + + +Spring creates the instance of Tracer for you. In order to use it all you need is to just autowire it. + +
+Creating and closing spans +You can manually create spans by using the Tracer interface. +// Start a span. If there was a span present in this thread it will become +// the `newSpan`'s parent. +Span newSpan = this.tracer.createSpan("calculateTax"); +try { + // ... + // You can tag a span + this.tracer.addTag("taxValue", taxValue); + // ... + // You can log an event on a span + newSpan.logEvent("taxCalculated"); +} finally { + // Once done remember to close the span. This will allow collecting + // the span to send it to Zipkin + this.tracer.close(newSpan); +} +In this example we could see how to create a new instance of span. Assuming that there already +was a span present in this thread then it would become the parent of that span. + +Always clean after you create a span! Don’t forget to close a span if you want to send it to Zipkin. + + +If your span contains a name greater than 50 chars, then that name will +be truncated to 50 chars. Your names have to be explicit and concrete. Big names lead to +latency issues and sometimes even thrown exceptions. + +
+
+Continuing spans +Sometimes you don’t want to create a new span but you want to continue one. Example of such a +situation might be (of course it all depends on the use-case): + + +AOP - If there was already a span created before an aspect was reached then you might not want to create a new span. + + +Hystrix - executing a Hystrix command is most likely a logical part of the current processing. It’s in fact +only a technical implementation detail that you wouldn’t necessarily want to reflect in tracing as a separate being. + + +The continued instance of span is equal to the one that it continues: +Span continuedSpan = this.tracer.continueSpan(spanToContinue); +assertThat(continuedSpan).isEqualTo(spanToContinue); +To continue a span you can use the Tracer interface. +// let's assume that we're in a thread Y and we've received +// the `initialSpan` from thread X +Span continuedSpan = this.tracer.continueSpan(initialSpan); +try { + // ... + // You can tag a span + this.tracer.addTag("taxValue", taxValue); + // ... + // You can log an event on a span + continuedSpan.logEvent("taxCalculated"); +} finally { + // Once done remember to detach the span. That way you'll + // safely remove it from the current thread without closing it + this.tracer.detach(continuedSpan); +} + +Always clean after you create a span! Don’t forget to detach a span if some work was done started in one + thread (e.g. thread X) and it’s waiting for other threads (e.g. Y, Z) to finish. + Then the spans in the threads Y, Z should be detached at the end of their work. When the results are collected + the span in thread X should be closed. + +
+
+Creating spans with an explicit parent +There is a possibility that you want to start a new span and provide an explicit parent of that span. +Let’s assume that the parent of a span is in one thread and you want to start a new span in another thread. The +startSpan method of the Tracer interface is the method you are looking for. +// let's assume that we're in a thread Y and we've received +// the `initialSpan` from thread X. `initialSpan` will be the parent +// of the `newSpan` +Span newSpan = this.tracer.createSpan("calculateCommission", initialSpan); +try { + // ... + // You can tag a span + this.tracer.addTag("commissionValue", commissionValue); + // ... + // You can log an event on a span + newSpan.logEvent("commissionCalculated"); +} finally { + // Once done remember to close the span. This will allow collecting + // the span to send it to Zipkin. The tags and events set on the + // newSpan will not be present on the parent + this.tracer.close(newSpan); +} + +After having created such a span remember to close it. Otherwise you will see a lot of warnings in your logs + related to the fact that you have a span present in the current thread other than the one you’re trying to close. + What’s worse your spans won’t get closed properly thus will not get collected to Zipkin. + +
+
+ +Naming spans +Picking a span name is not a trivial task. Span name should depict an operation name. The name should +be low cardinality (e.g. not include identifiers). +Since there is a lot of instrumentation going on some of the span names will be +artificial like: + + +controller-method-name when received by a Controller with a method name conrollerMethodName + + +async for asynchronous operations done via wrapped Callable and Runnable. + + +@Scheduled annotated methods will return the simple name of the class. + + +Fortunately, for the asynchronous processing you can provide explicit naming. +
+@SpanName annotation +You can name the span explicitly via the @SpanName annotation. +@SpanName("calculateTax") +class TaxCountingRunnable implements Runnable { + + @Override public void run() { + // perform logic + } +} +In this case, when processed in the following manner: +Runnable runnable = new TraceRunnable(tracer, spanNamer, new TaxCountingRunnable()); +Future<?> future = executorService.submit(runnable); +// ... some additional logic ... +future.get(); +The span will be named calculateTax. +
+
+toString() method +It’s pretty rare to create separate classes for Runnable or Callable. Typically one creates an anonymous +instance of those classes. You can’t annotate such classes thus to override that, if there is no @SpanName annotation present, +we’re checking if the class has a custom implementation of the toString() method. +So executing such code: +Runnable runnable = new TraceRunnable(tracer, spanNamer, new Runnable() { + @Override public void run() { + // perform logic + } + + @Override public String toString() { + return "calculateTax"; + } +}); +Future<?> future = executorService.submit(runnable); +// ... some additional logic ... +future.get(); +will lead in creating a span named calculateTax. +
+
+ +Managing spans with annotations +
+Rationale +The main arguments for this features are + + +api-agnostic means to collaborate with a span + + +use of annotations allows users to add to a span with no library dependency on a span api. +This allows Sleuth to change its core api less impact to user code. + + + + +reduced surface area for basic span operations. + + +without this feature one has to use the span api, which has lifecycle commands that +could be used incorrectly. By only exposing scope, tag and log functionality, users can +collaborate without accidentally breaking span lifecycle. + + + + +collaboration with runtime generated code + + +with libraries such as Spring Data / Feign the implementations of interfaces are generated +at runtime thus span wrapping of objects was tedious. Now you can provide annotations + over interfaces and arguments of those interfaces + + + + +
+
+Creating new spans +If you really don’t want to take care of creating local spans manually you can profit from the +@NewSpan annotation. Also we give you the @SpanTag annotation to add tags in an automated +fashion. +Let’s look at some examples of usage. +@NewSpan +void testMethod(); +Annotating the method without any parameter will lead to a creation of a new span whose name +will be equal to annotated method name. +@NewSpan("customNameOnTestMethod4") +void testMethod4(); +If you provide the value in the annotation (either directly or via the name parameter) then +the created span will have the name as the provided value. +// method declaration +@NewSpan(name = "customNameOnTestMethod5") +void testMethod5(@SpanTag("testTag") String param); + +// and method execution +this.testBean.testMethod5("test"); +You can combine both the name and a tag. Let’s focus on the latter. In this case whatever the value of +the annotated method’s parameter runtime value will be - that will be the value of the tag. In our sample +the tag key will be testTag and the tag value will be test. +@NewSpan(name = "customNameOnTestMethod3") +@Override +public void testMethod3() { +} +You can place the @NewSpan annotation on both the class and an interface. If you override the +interface’s method and provide a different value of the @NewSpan annotation then the most +concrete one wins (in this case customNameOnTestMethod3 will be set). +
+
+Continuing spans +If you want to just add tags and annotations to an existing span it’s enough +to use the @ContinueSpan annotation as presented below. Note that in contrast +with the @NewSpan annotation you can also add logs via the log parameter: +// method declaration +@ContinueSpan(log = "testMethod11") +void testMethod11(@SpanTag("testTag11") String param); + +// method execution +this.testBean.testMethod11("test"); +That way the span will get continued and: + + +logs with name testMethod11.before and testMethod11.after will be created + + +if an exception will be thrown a log testMethod11.afterFailure will also be created + + +tag with key testTag11 and value test will be created + + +
+
+More advanced tag setting +There are 3 different ways to add tags to a span. All of them are controlled by the SpanTag annotation. +Precedence is: + + +try with the bean of TagValueResolver type and provided name + + +if one hasn’t provided the bean name, try to evaluate an expression. We’re searching for a TagValueExpressionResolver bean. +The default implementation uses SPEL expression resolution. + + +if one hasn’t provided any expression to evaluate just return a toString() value of the parameter + + +
+Custom extractor +The value of the tag for following method will be computed by an implementation of TagValueResolver interface. +Its class name has to be passed as the value of the resolver attribute. +Having such an annotated method: +@NewSpan +public void getAnnotationForTagValueResolver(@SpanTag(key = "test", resolver = TagValueResolver.class) String test) { +} +and such a TagValueResolver bean implementation +@Bean(name = "myCustomTagValueResolver") +public TagValueResolver tagValueResolver() { + return parameter -> "Value from myCustomTagValueResolver"; +} +Will lead to setting of a tag value equal to Value from myCustomTagValueResolver. +
+
+Resolving expressions for value +Having such an annotated method: +@NewSpan +public void getAnnotationForTagValueExpression(@SpanTag(key = "test", expression = "length() + ' characters'") String test) { +} +and no custom implementation of a TagValueExpressionResolver will lead to evaluation of the SPEL expression and a tag with value 4 characters will be set on the span. +If you want to use some other expression resolution mechanism you can create your own implementation +of the bean. +
+
+Using toString method +Having such an annotated method: +@NewSpan +public void getAnnotationForArgumentToString(@SpanTag("test") Long param) { +} +if executed with a value of 15 will lead to setting of a tag with a String value of "15". +
+
+
+ +Customizations +Thanks to the SpanInjector and SpanExtractor you can customize the way spans +are created and propagated. +There are currently two built-in ways to pass tracing information between processes: + + +via Spring Integration + + +via HTTP + + +Span ids are extracted from Zipkin-compatible (B3) headers (either Message +or HTTP headers), to start or join an existing trace. Trace information is +injected into any outbound requests so the next hop can extract them. +The key change in comparison to the previous versions of Sleuth is that Sleuth is implementing +the Open Tracing’s TextMap notion. In Sleuth it’s called SpanTextMap. Basically the idea +is that any means of communication (e.g. message, http request, etc.) can be abstracted via +a SpanTextMap. This abstraction defines how one can insert data into the carrier and +how to retrieve it from there. Thanks to this if you want to instrument a new HTTP library +that uses a FooRequest as a mean of sending HTTP requests then you have to create an +implementation of a SpanTextMap that delegates calls to FooRequest in terms of retrieval +and insertion of HTTP headers. +
+Spring Integration +For Spring Integration there are 2 interfaces responsible for creation of a Span from a Message. +These are: + + +MessagingSpanTextMapExtractor + + +MessagingSpanTextMapInjector + + +You can override them by providing your own implementation. +
+
+HTTP +For HTTP there are 2 interfaces responsible for creation of a Span from a Message. +These are: + + +HttpSpanExtractor + + +HttpSpanInjector + + +You can override them by providing your own implementation. +
+
+Example +Let’s assume that instead of the standard Zipkin compatible tracing HTTP header names +you have + + +for trace id - correlationId + + +for span id - mySpanId + + +This is a an example of a SpanExtractor +static class CustomHttpSpanExtractor implements HttpSpanExtractor { + + @Override public Span joinTrace(SpanTextMap carrier) { + Map<String, String> map = TextMapUtil.asMap(carrier); + long traceId = Span.hexToId(map.get("correlationid")); + long spanId = Span.hexToId(map.get("myspanid")); + // extract all necessary headers + Span.SpanBuilder builder = Span.builder().traceId(traceId).spanId(spanId); + // build rest of the Span + return builder.build(); + } +} + +static class CustomHttpSpanInjector implements HttpSpanInjector { + + @Override + public void inject(Span span, SpanTextMap carrier) { + carrier.put("correlationId", span.traceIdString()); + carrier.put("mySpanId", Span.idToHex(span.getSpanId())); + } +} +And you could register it like this: +@Bean +HttpSpanInjector customHttpSpanInjector() { + return new CustomHttpSpanInjector(); +} + +@Bean +HttpSpanExtractor customHttpSpanExtractor() { + return new CustomHttpSpanExtractor(); +} +Spring Cloud Sleuth does not add trace/span related headers to the Http Response for security reasons. If you need the headers then a custom SpanInjector +that injects the headers into the Http Response and a Servlet filter which makes use of this can be added the following way: +static class CustomHttpServletResponseSpanInjector extends ZipkinHttpSpanInjector { + + @Override + public void inject(Span span, SpanTextMap carrier) { + super.inject(span, carrier); + carrier.put(Span.TRACE_ID_NAME, span.traceIdString()); + carrier.put(Span.SPAN_ID_NAME, Span.idToHex(span.getSpanId())); + } +} + +static class HttpResponseInjectingTraceFilter extends GenericFilterBean { + + private final Tracer tracer; + private final HttpSpanInjector spanInjector; + + public HttpResponseInjectingTraceFilter(Tracer tracer, HttpSpanInjector spanInjector) { + this.tracer = tracer; + this.spanInjector = spanInjector; + } + + @Override + public void doFilter(ServletRequest request, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + HttpServletResponse response = (HttpServletResponse) servletResponse; + Span currentSpan = this.tracer.getCurrentSpan(); + this.spanInjector.inject(currentSpan, new HttpServletResponseTextMap(response)); + filterChain.doFilter(request, response); + } + + class HttpServletResponseTextMap implements SpanTextMap { + + private final HttpServletResponse delegate; + + HttpServletResponseTextMap(HttpServletResponse delegate) { + this.delegate = delegate; + } + + @Override + public Iterator<Map.Entry<String, String>> iterator() { + Map<String, String> map = new HashMap<>(); + for (String header : this.delegate.getHeaderNames()) { + map.put(header, this.delegate.getHeader(header)); + } + return map.entrySet().iterator(); + } + + @Override + public void put(String key, String value) { + this.delegate.addHeader(key, value); + } + } +} +And you could register them like this: +@Bean HttpSpanInjector customHttpServletResponseSpanInjector() { + return new CustomHttpServletResponseSpanInjector(); +} + +@Bean +HttpResponseInjectingTraceFilter responseInjectingTraceFilter(Tracer tracer) { + return new HttpResponseInjectingTraceFilter(tracer, customHttpServletResponseSpanInjector()); +} +
+
+TraceFilter +You can also modify the behaviour of the TraceFilter - the component that is responsible +for processing the input HTTP request and adding tags basing on the HTTP response. You can customize +the tags, or modify the response headers by registering your own instance of the TraceFilter bean. +In the following example we will register the TraceFilter bean and we will add the +ZIPKIN-TRACE-ID response header containing the current Span’s trace id. Also we will +add to the Span a tag with key custom and a value tag. +@Bean +TraceFilter myTraceFilter(BeanFactory beanFactory, final Tracer tracer) { + return new TraceFilter(beanFactory) { + @Override protected void addResponseTags(HttpServletResponse response, + Throwable e) { + // execute the default behaviour + super.addResponseTags(response, e); + // for readability we're returning trace id in a hex form + response.addHeader("ZIPKIN-TRACE-ID", + Span.idToHex(tracer.getCurrentSpan().getTraceId())); + // we can also add some custom tags + tracer.addTag("custom", "tag"); + } + }; +} +
+
+Custom SA tag in Zipkin +Sometimes you want to create a manual Span that will wrap a call to an external service which is not instrumented. +What you can do is to create a span with the peer.service tag that will contain a value of the service that you want to call. +Below you can see an example of a call to Redis that is wrapped in such a span. +org.springframework.cloud.sleuth.Span newSpan = tracer.createSpan("redis"); +try { + newSpan.tag("redis.op", "get"); + newSpan.tag("lc", "redis"); + newSpan.logEvent(org.springframework.cloud.sleuth.Span.CLIENT_SEND); + // call redis service e.g + // return (SomeObj) redisTemplate.opsForHash().get("MYHASH", someObjKey); +} finally { + newSpan.tag("peer.service", "redisService"); + newSpan.tag("peer.ipv4", "1.2.3.4"); + newSpan.tag("peer.port", "1234"); + newSpan.logEvent(org.springframework.cloud.sleuth.Span.CLIENT_RECV); + tracer.close(newSpan); +} + +Remember not to add both peer.service tag and the SA tag! You have to add only peer.service. + +
+
+Custom service name +By default Sleuth assumes that when you send a span to Zipkin, you want the span’s service name + to be equal to spring.application.name value. That’s not always the case though. There + are situations in which you want to explicitly provide a different service name for all spans coming + from your application. To achieve that it’s enough to just pass the following property + to your application to override that value (example for foo service name): +spring.zipkin.service.name: foo +
+
+Customization of reported spans +Before reporting spans to e.g. Zipkin you can be interested in modifying that span in some way. + You can achieve that by using the SpanAdjuster interface. +Example of usage: +In Sleuth we’re generating spans with a fixed name. Some users want to modify the name depending on values +of tags. Implementation of the SpanAdjuster interface can be used to alter that name. Example: +@Bean +SpanAdjuster customSpanAdjuster() { + return span -> span.toBuilder().name(scrub(span.getName())).build(); +} +This will lead in changing the name of the reported span just before it gets sent to Zipkin. + +Your SpanReporter should inject the SpanAdjuster and + allow span manipulation before the actual reporting is done. + +
+
+Host locator +In order to define the host that is corresponding to a particular span we need to resolve the host name +and port. The default approach is to take it from server properties. If those for some reason are not set +then we’re trying to retrieve the host name from the network interfaces. +If you have the discovery client enabled and prefer to retrieve the host address from the registered +instance in a service registry then you have to set the property (it’s applicable for both HTTP and +Stream based span reporting). +spring.zipkin.locator.discovery.enabled: true +
+
+ +Sending spans to Zipkin +By default if you add spring-cloud-starter-zipkin as a dependency to your project, +when the span is closed, it will be sent to Zipkin over HTTP. The communication +is asynchronous. You can configure the URL by setting the spring.zipkin.baseUrl +property as follows: +spring.zipkin.baseUrl: http://192.168.99.100:9411/ +If you want to find Zipkin via service discovery it’s enough to pass the +Zipkin’s service id inside the URL (example for zipkinserver service id) +spring.zipkin.baseUrl: http://zipkinserver/ + + +Span Data as Messages +You can accumulate and send span data over +Spring Cloud Stream by +including the spring-cloud-sleuth-stream jar as a dependency, and +adding a Channel Binder implementation +(e.g. spring-cloud-starter-stream-rabbit for RabbitMQ or +spring-cloud-starter-stream-kafka for Kafka). This will +automatically turn your app into a producer of messages with payload +type Spans. +
+Zipkin Consumer +There is a special convenience annotation for setting up a message consumer +for the Span data and pushing it into a Zipkin SpanStore. This application +@SpringBootApplication +@EnableZipkinStreamServer +public class Consumer { + public static void main(String[] args) { + SpringApplication.run(Consumer.class, args); + } +} +will listen for the Span data on whatever transport you provide via a +Spring Cloud Stream Binder (e.g. include +spring-cloud-starter-stream-rabbit for RabbitMQ, and similar +starters exist for Redis and Kafka). If you add the following UI dependency +<groupId>io.zipkin.java</groupId> +<artifactId>zipkin-autoconfigure-ui</artifactId> +Then you’ll have your app a +Zipkin server, which hosts +the UI and api on port 9411. +The default SpanStore is in-memory (good for demos and getting +started quickly). For a more robust solution you can add MySQL and +spring-boot-starter-jdbc to your classpath and enable the JDBC +SpanStore via configuration, e.g.: +spring: + rabbitmq: + host: ${RABBIT_HOST:localhost} + datasource: + schema: classpath:/mysql.sql + url: jdbc:mysql://${MYSQL_HOST:localhost}/test + username: root + password: root +# Switch this on to create the schema on startup: + initialize: true + continueOnError: true + sleuth: + enabled: false +zipkin: + storage: + type: mysql + +The @EnableZipkinStreamServer is also annotated with +@EnableZipkinServer so the process will also expose the standard +Zipkin server endpoints for collecting spans over HTTP, and for +querying in the Zipkin Web UI. + +
+
+Custom Consumer +A custom consumer can also easily be implemented using +spring-cloud-sleuth-stream and binding to the SleuthSink. Example: +@EnableBinding(SleuthSink.class) +@SpringBootApplication(exclude = SleuthStreamAutoConfiguration.class) +@MessageEndpoint +public class Consumer { + + @ServiceActivator(inputChannel = SleuthSink.INPUT) + public void sink(Spans input) throws Exception { + // ... process spans + } +} + +the sample consumer application above explicitly excludes +SleuthStreamAutoConfiguration so it doesn’t send messages to itself, +but this is optional (you might actually want to trace requests into +the consumer app). + +In order to customize the polling mechanism you can create a bean of PollerMetadata type +with name equal to StreamSpanReporter.POLLER. Here you can find an example of such a configuration. +@Configuration +public static class CustomPollerConfiguration { + + @Bean(name = StreamSpanReporter.POLLER) + PollerMetadata customPoller() { + PollerMetadata poller = new PollerMetadata(); + poller.setMaxMessagesPerPoll(500); + poller.setTrigger(new PeriodicTrigger(5000L)); + return poller; + } +} +
+
+ +Metrics +Currently Spring Cloud Sleuth registers very simple metrics related to spans. +It’s using the Spring Boot’s metrics support +to calculate the number of accepted and dropped spans. Each time a span gets +sent to Zipkin the number of accepted spans will increase. If there’s an error then +the number of dropped spans will get increased. + + +Integrations +
+Runnable and Callable +If you’re wrapping your logic in Runnable or Callable it’s enough to wrap those classes in their Sleuth representative. +Example for Runnable: +Runnable runnable = new Runnable() { + @Override + public void run() { + // do some work + } + + @Override + public String toString() { + return "spanNameFromToStringMethod"; + } +}; +// Manual `TraceRunnable` creation with explicit "calculateTax" Span name +Runnable traceRunnable = new TraceRunnable(tracer, spanNamer, runnable, "calculateTax"); +// Wrapping `Runnable` with `Tracer`. The Span name will be taken either from the +// `@SpanName` annotation or from `toString` method +Runnable traceRunnableFromTracer = tracer.wrap(runnable); +Example for Callable: +Callable<String> callable = new Callable<String>() { + @Override + public String call() throws Exception { + return someLogic(); + } + + @Override + public String toString() { + return "spanNameFromToStringMethod"; + } +}; +// Manual `TraceCallable` creation with explicit "calculateTax" Span name +Callable<String> traceCallable = new TraceCallable<>(tracer, spanNamer, callable, "calculateTax"); +// Wrapping `Callable` with `Tracer`. The Span name will be taken either from the +// `@SpanName` annotation or from `toString` method +Callable<String> traceCallableFromTracer = tracer.wrap(callable); +That way you will ensure that a new Span is created and closed for each execution. +
+
+Hystrix +
+Custom Concurrency Strategy +We’re registering a custom HystrixConcurrencyStrategy +that wraps all Callable instances into their Sleuth representative - +the TraceCallable. The strategy either starts or continues a span depending on the fact whether tracing was already going +on before the Hystrix command was called. To disable the custom Hystrix Concurrency Strategy set the spring.sleuth.hystrix.strategy.enabled to false. +
+
+Manual Command setting +Assuming that you have the following HystrixCommand: +HystrixCommand<String> hystrixCommand = new HystrixCommand<String>(setter) { + @Override + protected String run() throws Exception { + return someLogic(); + } +}; +In order to pass the tracing information you have to wrap the same logic in the Sleuth version of the HystrixCommand which is the +TraceCommand: +TraceCommand<String> traceCommand = new TraceCommand<String>(tracer, traceKeys, setter) { + @Override + public String doRun() throws Exception { + return someLogic(); + } +}; +
+
+
+RxJava +We’re registering a custom RxJavaSchedulersHook +that wraps all Action0 instances into their Sleuth representative - +the TraceAction. The hook either starts or continues a span depending on the fact whether tracing was already going +on before the Action was scheduled. To disable the custom RxJavaSchedulersHook set the spring.sleuth.rxjava.schedulers.hook.enabled to false. +You can define a list of regular expressions for thread names, for which you don’t want a Span to be created. Just provide a comma separated list +of regular expressions in the spring.sleuth.rxjava.schedulers.ignoredthreads property. +
+
+HTTP integration +Features from this section can be disabled by providing the spring.sleuth.web.enabled property with value equal to false. +
+HTTP Filter +Via the TraceFilter all sampled incoming requests result in creation of a Span. That Span’s name is http: + the path to which + the request was sent. E.g. if the request was sent to /foo/bar then the name will be http:/foo/bar. You can configure which URIs you would + like to skip via the spring.sleuth.web.skipPattern property. If you have ManagementServerProperties on classpath then + its value of contextPath gets appended to the provided skip pattern. +
+
+HandlerInterceptor +Since we want the span names to be precise we’re using a TraceHandlerInterceptor that either wraps an + existing HandlerInterceptor or is added directly to the list of existing HandlerInterceptors. The + TraceHandlerInterceptor adds a special request attribute to the given HttpServletRequest. If the + the TraceFilter doesn’t see this attribute set it will create a "fallback" span which is an additional + span created on the server side so that the trace is presented properly in the UI. Seeing that most likely + signifies that there is a missing instrumentation. In that case please file an issue in Spring Cloud Sleuth. +
+
+Async Servlet support +If your controller returns a Callable or a WebAsyncTask Spring Cloud Sleuth will continue the existing span instead of creating a new one. +
+
+
+HTTP client integration +
+Synchronous Rest Template +We’re injecting a RestTemplate interceptor that ensures that all the tracing information is passed to the requests. Each time a +call is made a new Span is created. It gets closed upon receiving the response. In order to block the synchronous RestTemplate features +just set spring.sleuth.web.client.enabled to false. + +You have to register RestTemplate as a bean so that the interceptors will get injected. +If you create a RestTemplate instance with a new keyword then the instrumentation WILL NOT work. + +
+
+Asynchronous Rest Template + +A traced version of an AsyncRestTemplate bean is registered for you out of the box. If you +have your own bean you have to wrap it in a TraceAsyncRestTemplate representation. The best solution +is to only customize the ClientHttpRequestFactory and / or AsyncClientHttpRequestFactory. +If you have your own AsyncRestTemplate and you don’t wrap it your calls WILL NOT GET TRACED. + +Custom instrumentation is set to create and close Spans upon sending and receiving requests. You can customize the ClientHttpRequestFactory +and the AsyncClientHttpRequestFactory by registering your beans. Remember to use tracing compatible implementations (e.g. don’t forget to +wrap ThreadPoolTaskScheduler in a TraceAsyncListenableTaskExecutor). Example of custom request factories: +@EnableAutoConfiguration +@Configuration +public static class TestConfiguration { + + @Bean + ClientHttpRequestFactory mySyncClientFactory() { + return new MySyncClientHttpRequestFactory(); + } + + @Bean + AsyncClientHttpRequestFactory myAsyncClientFactory() { + return new MyAsyncClientHttpRequestFactory(); + } +} +To block the AsyncRestTemplate features set spring.sleuth.web.async.client.enabled to false. +To disable creation of the default TraceAsyncClientHttpRequestFactoryWrapper set spring.sleuth.web.async.client.factory.enabled +to false. If you don’t want to create AsyncRestClient at all set spring.sleuth.web.async.client.template.enabled to false. +
+Multiple Asynchronous Rest Templates +Sometimes you need to use multiple implementations of Asynchronous Rest Template. In the following snippet you +can see an example of how to set up such a custom AsyncRestTemplate. +@Configuration +@EnableAutoConfiguration +static class Config { + @Autowired Tracer tracer; + @Autowired HttpTraceKeysInjector httpTraceKeysInjector; + @Autowired HttpSpanInjector spanInjector; + + @Bean(name = "customAsyncRestTemplate") + public AsyncRestTemplate traceAsyncRestTemplate(@Qualifier("customHttpRequestFactoryWrapper") + TraceAsyncClientHttpRequestFactoryWrapper wrapper, ErrorParser errorParser) { + return new TraceAsyncRestTemplate(wrapper, this.tracer, errorParser); + } + + @Bean(name = "customHttpRequestFactoryWrapper") + public TraceAsyncClientHttpRequestFactoryWrapper traceAsyncClientHttpRequestFactory() { + return new TraceAsyncClientHttpRequestFactoryWrapper(this.tracer, + this.spanInjector, + asyncClientFactory(), + clientHttpRequestFactory(), + this.httpTraceKeysInjector); + } + + private ClientHttpRequestFactory clientHttpRequestFactory() { + ClientHttpRequestFactory clientHttpRequestFactory = new CustomClientHttpRequestFactory(); + //CUSTOMIZE HERE + return clientHttpRequestFactory; + } + + private AsyncClientHttpRequestFactory asyncClientFactory() { + AsyncClientHttpRequestFactory factory = new CustomAsyncClientHttpRequestFactory(); + //CUSTOMIZE HERE + return factory; + } +} +
+
+
+Traverson +If you’re using the Traverson library +it’s enough for you to inject a RestTemplate as a bean into your Traverson object. Since RestTemplate +is already intercepted, you will get full support of tracing in your client. Below you can find a pseudo code +of how to do that: +@Autowired RestTemplate restTemplate; + +Traverson traverson = new Traverson(URI.create("http://some/address"), + MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON_UTF8).setRestOperations(restTemplate); +// use Traverson +
+
+
+Feign +By default Spring Cloud Sleuth provides integration with feign via the TraceFeignClientAutoConfiguration. You can disable it entirely +by setting spring.sleuth.feign.enabled to false. If you do so then no Feign related instrumentation will take place. +Part of Feign instrumentation is done via a FeignBeanPostProcessor. You can disable it by providing the spring.sleuth.feign.processor.enabled equal to false. +If you set it like this then Spring Cloud Sleuth will not instrument any of your custom Feign components. All the default instrumentation +however will be still there. +
+
+Asynchronous communication +
+@Async annotated methods +In Spring Cloud Sleuth we’re instrumenting async related components so that the tracing information is passed between threads. +You can disable this behaviour by setting the value of spring.sleuth.async.enabled to false. +If you annotate your method with @Async then we’ll automatically create a new Span with the following characteristics: + + +if the method is annotated with @SpanName then the value of the annotation will be the Span’s name + + +if the method is not annotated with @SpanName the Span name will be the annotated method name + + +the Span will be tagged with that method’s class name and the method name too + + +
+
+@Scheduled annotated methods +In Spring Cloud Sleuth we’re instrumenting scheduled method execution so that the tracing information is passed between threads. You can disable this behaviour +by setting the value of spring.sleuth.scheduled.enabled to false. +If you annotate your method with @Scheduled then we’ll automatically create a new Span with the following characteristics: + + +the Span name will be the annotated method name + + +the Span will be tagged with that method’s class name and the method name too + + +If you want to skip Span creation for some @Scheduled annotated classes you can set the +spring.sleuth.scheduled.skipPattern with a regular expression that will match the fully qualified name of the +@Scheduled annotated class. + +If you are using spring-cloud-sleuth-stream and spring-cloud-netflix-hystrix-stream together, Span will be created for each Hystrix metrics and sent to Zipkin. This may be annoying. You can prevent this by setting spring.sleuth.scheduled.skipPattern=org.springframework.cloud.netflix.hystrix.stream.HystrixStreamTask + +
+
+Executor, ExecutorService and ScheduledExecutorService +We’re providing LazyTraceExecutor, TraceableExecutorService and TraceableScheduledExecutorService. Those implementations +are creating Spans each time a new task is submitted, invoked or scheduled. +Here you can see an example of how to pass tracing information with TraceableExecutorService when working with CompletableFuture: +CompletableFuture<Long> completableFuture = CompletableFuture.supplyAsync(() -> { + // perform some logic + return 1_000_000L; +}, new TraceableExecutorService(executorService, + // 'calculateTax' explicitly names the span - this param is optional + tracer, traceKeys, spanNamer, "calculateTax")); +
+Customization of Executors +Sometimes you need to set up a custom instance of the AsyncExecutor. In the following snippet you +can see an example of how to set up such a custom Executor. +@Configuration +@EnableAutoConfiguration +@EnableAsync +static class CustomExecutorConfig extends AsyncConfigurerSupport { + + @Autowired BeanFactory beanFactory; + + @Override public Executor getAsyncExecutor() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + // CUSTOMIZE HERE + executor.setCorePoolSize(7); + executor.setMaxPoolSize(42); + executor.setQueueCapacity(11); + executor.setThreadNamePrefix("MyExecutor-"); + // DON'T FORGET TO INITIALIZE + executor.initialize(); + return new LazyTraceExecutor(this.beanFactory, executor); + } +} +
+
+
+
+Messaging +Spring Cloud Sleuth integrates with Spring Integration. It creates spans for publish and +subscribe events. To disable Spring Integration instrumentation, set spring.sleuth.integration.enabled to false. +You can provide the spring.sleuth.integration.patterns pattern to explicitly +provide the names of channels that you want to include for tracing. By default all channels +are included. + +When using the Executor to build a Spring Integration IntegrationFlow remember to use the untraced version of the Executor. +Decorating Spring Integration Executor Channel with TraceableExecutorService will cause the spans to be improperly closed. + +
+
+Zuul +We’re registering Zuul filters to propagate the tracing information (the request header is enriched with tracing data). +To disable Zuul support set the spring.sleuth.zuul.enabled property to false. +
+
+ +Running examples +You can find the running examples deployed in the Pivotal Web Services. Check them out in the following links: + + +Zipkin for apps presented in the samples to the top + + +Zipkin for Brewery on PWS, its Github Code + + + +
\ No newline at end of file