<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="generator" content="Asciidoctor 2.0.20"/>
<title>Trace2 API</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"/>
<style>
/*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
/* Uncomment the following line when using as a custom stylesheet */
/* @import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"; */
html{font-family:sans-serif;-webkit-text-size-adjust:100%}
a{background:none}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
b,strong{font-weight:bold}
abbr{font-size:.9em}
abbr[title]{cursor:help;border-bottom:1px dotted #dddddf;text-decoration:none}
dfn{font-style:italic}
hr{height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
audio,video{display:inline-block}
audio:not([controls]){display:none;height:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type=checkbox],input[type=radio]{padding:0}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,::before,::after{box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;line-height:1;position:relative;cursor:auto;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
img,object,svg{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:0}
p{line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
ul,ol,dl{line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ul.square{list-style-type:square}
ul.circle ul:not([class]),ul.disc ul:not([class]),ul.square ul:not([class]){list-style:inherit}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}
table{background:#fff;margin-bottom:1.25em;border:1px solid #dedede;word-wrap:normal}
table thead,table tfoot{background:#f7f8f7}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt{background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.center{margin-left:auto;margin-right:auto}
.stretch{width:100%}
.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
.clearfix::after,.float-group::after{clear:both}
:not(pre).nobreak{word-wrap:normal}
:not(pre).nowrap{white-space:nowrap}
:not(pre).pre-wrap{white-space:pre-wrap}
:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
pre>code{display:block}
pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
em em{font-style:normal}
strong strong{font-weight:400}
.keyseq{color:rgba(51,51,51,.8)}
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 0 0 .1em #fff;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menuref{color:#000}
.menuseq b:not(.caret),.menuref{font-weight:inherit}
.menuseq{word-spacing:-.02em}
.menuseq b.caret{font-size:1.25em;line-height:.8}
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
b.button::before{content:"[";padding:0 3px 0 2px}
b.button::after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin:0 auto;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
#content{margin-top:1.25em}
#content::before{content:none}
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:flex;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span::before{content:"\00a0\2013\00a0"}
#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark::before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber::after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc li{line-height:1.3334;margin-top:.3334em}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#7a2518;font-size:1.2em}
@media screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}
#content #toc{border:1px solid #e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:none;background:rgba(0,0,0,.8);padding:1.25em}
#footer-text{color:hsla(0,0%,100%,.8);line-height:1.44}
#content{margin-bottom:.625em}
.sect1{padding-bottom:.625em}
@media screen and (min-width:768px){#content{margin-bottom:1.25em}
.sect1{padding-bottom:1.25em}}
.sect1:last-child{padding-bottom:0}
.sect1+.sect1{border-top:1px solid #e7e7e9}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
details{margin-left:1.25rem}
details>summary{cursor:pointer;display:block;position:relative;line-height:1.6;margin-bottom:.625rem;outline:none;-webkit-tap-highlight-color:transparent}
details>summary::-webkit-details-marker{display:none}
details>summary::before{content:"";border:solid transparent;border-left:solid;border-width:.3em 0 .3em .5em;position:absolute;top:.5em;left:-1.25rem;transform:translateX(15%)}
details[open]>summary::before{border:solid transparent;border-top:solid;border-width:.5em .3em 0;transform:translateY(15%)}
details>summary::after{content:"";width:1.25rem;height:1em;position:absolute;top:.3em;left:-1.25rem}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
.paragraph.lead>p,#preamble>.sectionbody>[class=paragraph]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:none}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6);word-wrap:anywhere}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border:1px solid #e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;border-radius:4px}
.sidebarblock{border:1px solid #dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;border-radius:4px}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:first-child,.sidebarblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child,.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock>.content>pre{border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em}
@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class=highlight],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
.listingblock>.content{position:relative}
.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
.listingblock:hover code[data-lang]::before{display:block}
.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.prettyprint{background:#f7f7f8}
pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
pre.prettyprint li code[data-lang]::before{opacity:1}
pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
table.linenotable td.code{padding-left:.75em}
table.linenotable td.linenos,pre.pygments .linenos{border-right:1px solid;opacity:.35;padding-right:.5em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
pre.pygments span.linenos{display:inline-block;margin-right:.75em}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
.verseblock{margin:0 1em 1.25em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans-serif;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
.quoteblock.abstract{margin:0 1em 1.25em;display:block}
.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:.85rem;text-align:left;margin-right:0}
p.tableblock:last-child{margin-bottom:0}
td.tableblock>.content{margin-bottom:1.25em;word-wrap:anywhere}
td.tableblock>.content>:last-child{margin-bottom:-1.25em}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all>*>tr>*{border-width:1px}
table.grid-cols>*>tr>*{border-width:0 1px}
table.grid-rows>*>tr>*{border-width:1px 0}
table.frame-all{border-width:1px}
table.frame-ends{border-width:1px 0}
table.frame-sides{border-width:0 1px}
table.frame-none>colgroup+*>:first-child>*,table.frame-sides>colgroup+*>:first-child>*{border-top-width:0}
table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0}
table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0}
table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width:0}
table.stripes-all>*>tr,table.stripes-odd>*>tr:nth-of-type(odd),table.stripes-even>*>tr:nth-of-type(even),table.stripes-hover>*>tr:hover{background:#f8f8f7}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
ul.unstyled,ol.unstyled{margin-left:0}
li>p:empty:only-child::before{content:"";display:inline-block}
ul.checklist>li>p:first-child{margin-left:-1em}
ul.checklist>li>p:first-child>.fa-square-o:first-child,ul.checklist>li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
ul.checklist>li>p:first-child>input[type=checkbox]:first-child{margin-right:.25em}
ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
ul.inline>li{margin-left:1.25em}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
td.hdlist2{word-wrap:anywhere}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
.colist td:not([class]):first-child img{max-width:none}
.colist td:not([class]):last-child{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:4px solid #fff;box-shadow:0 0 0 1px #ddd}
.imageblock.left{margin:.25em .625em 1.25em 0}
.imageblock.right{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none;display:inline-block}
a.image object{pointer-events:none}
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
sup.footnote a,sup.footnoteref a{text-decoration:none}
sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background:#00fafa}
.black{color:#000}
.black-background{background:#000}
.blue{color:#0000bf}
.blue-background{background:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background:#fa00fa}
.gray{color:#606060}
.gray-background{background:#7d7d7d}
.green{color:#006000}
.green-background{background:#007d00}
.lime{color:#00bf00}
.lime-background{background:#00fa00}
.maroon{color:#600000}
.maroon-background{background:#7d0000}
.navy{color:#000060}
.navy-background{background:#00007d}
.olive{color:#606000}
.olive-background{background:#7d7d00}
.purple{color:#600060}
.purple-background{background:#7d007d}
.red{color:#bf0000}
.red-background{background:#fa0000}
.silver{color:#909090}
.silver-background{background:#bcbcbc}
.teal{color:#006060}
.teal-background{background:#007d7d}
.white{color:#bfbfbf}
.white-background{background:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background:#fafa00}
span.icon>.fa{cursor:default}
a span.icon>.fa{cursor:inherit}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]::after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
h1,h2,p,td.content,span.alt,summary{letter-spacing:-.01em}
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
p,blockquote,dt,td.content,td.hdlist1,span.alt,summary{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@page{margin:1.25cm .75cm}
@media print{*{box-shadow:none!important;text-shadow:none!important}
html{font-size:80%}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]{border-bottom:1px dotted}
abbr[title]::after{content:" (" attr(title) ")"}
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
thead{display:table-header-group}
svg{max-width:100%}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#header,#content,#footnotes,#footer{max-width:none}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span::before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]::before{display:block}
#footer{padding:0 .9375em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
@media amzn-kf8,print{#header>h1:first-child{margin-top:1.25rem}
.sect1{padding:0!important}
.sect1+.sect1{border:0}
#footer{background:none}
#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
</style>
</head>
<body class="article">
<div id="header">
<h1>Trace2 API</h1>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>The Trace2 API can be used to print debug, performance, and telemetry
information to stderr or a file.  The Trace2 feature is inactive unless
explicitly enabled by enabling one or more Trace2 Targets.</p>
</div>
<div class="paragraph">
<p>The Trace2 API is intended to replace the existing (Trace1)
<code>printf</code>()-style tracing provided by the existing <code>GIT_TRACE</code> and
<code>GIT_TRACE_PERFORMANCE</code> facilities.  During initial implementation,
Trace2 and Trace1 may operate in parallel.</p>
</div>
<div class="paragraph">
<p>The Trace2 API defines a set of high-level messages with known fields,
such as (<code>start</code>: <code>argv</code>) and (<code>exit</code>: {<code>exit-code</code>, <code>elapsed-time</code>}).</p>
</div>
<div class="paragraph">
<p>Trace2 instrumentation throughout the Git code base sends Trace2
messages to the enabled Trace2 Targets.  Targets transform these
messages content into purpose-specific formats and write events to
their data streams.  In this manner, the Trace2 API can drive
many different types of analysis.</p>
</div>
<div class="paragraph">
<p>Targets are defined using a VTable allowing easy extension to other
formats in the future.  This might be used to define a binary format,
for example.</p>
</div>
<div class="paragraph">
<p>Trace2 is controlled using <code>trace2.</code>* config values in the system and
global config files and <code>GIT_TRACE2</code>* environment variables.  Trace2 does
not read from repo local or worktree config files, nor does it respect
<code>-c</code> command line config settings.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_trace2_targets">Trace2 Targets</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Trace2 defines the following set of Trace2 Targets.
Format details are given in a later section.</p>
</div>
<div class="sect2">
<h3 id="_the_normal_format_target">The Normal Format Target</h3>
<div class="paragraph">
<p>The normal format target is a traditional <code>printf</code>() format and similar
to the <code>GIT_TRACE</code> format.  This format is enabled with the <code>GIT_TRACE2</code>
environment variable or the <code>trace2.normalTarget</code> system or global
config setting.</p>
</div>
<div class="paragraph">
<p>For example</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ export GIT_TRACE2=~/log.normal
$ git version
git version 2.20.1.155.g426c96fcdb</pre>
</div>
</div>
<div class="paragraph">
<p>or</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ git config --global trace2.normalTarget ~/log.normal
$ git version
git version 2.20.1.155.g426c96fcdb</pre>
</div>
</div>
<div class="paragraph">
<p>yields</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ cat ~/log.normal
12:28:42.620009 common-main.c:38                  version 2.20.1.155.g426c96fcdb
12:28:42.620989 common-main.c:39                  start git version
12:28:42.621101 git.c:432                         cmd_name version (version)
12:28:42.621215 git.c:662                         exit elapsed:0.001227 code:0
12:28:42.621250 trace2/tr2_tgt_normal.c:124       atexit elapsed:0.001265 code:0</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_the_performance_format_target">The Performance Format Target</h3>
<div class="paragraph">
<p>The performance format target (PERF) is a column-based format to
replace <code>GIT_TRACE_PERFORMANCE</code> and is suitable for development and
testing, possibly to complement tools like <code>gprof</code>.  This format is
enabled with the <code>GIT_TRACE2_PERF</code> environment variable or the
<code>trace2.perfTarget</code> system or global config setting.</p>
</div>
<div class="paragraph">
<p>For example</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ export GIT_TRACE2_PERF=~/log.perf
$ git version
git version 2.20.1.155.g426c96fcdb</pre>
</div>
</div>
<div class="paragraph">
<p>or</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ git config --global trace2.perfTarget ~/log.perf
$ git version
git version 2.20.1.155.g426c96fcdb</pre>
</div>
</div>
<div class="paragraph">
<p>yields</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ cat ~/log.perf
12:28:42.620675 common-main.c:38                  | d0 | main                     | version      |     |           |           |            | 2.20.1.155.g426c96fcdb
12:28:42.621001 common-main.c:39                  | d0 | main                     | start        |     |  0.001173 |           |            | git version
12:28:42.621111 git.c:432                         | d0 | main                     | cmd_name     |     |           |           |            | version (version)
12:28:42.621225 git.c:662                         | d0 | main                     | exit         |     |  0.001227 |           |            | code:0
12:28:42.621259 trace2/tr2_tgt_perf.c:211         | d0 | main                     | atexit       |     |  0.001265 |           |            | code:0</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_the_event_format_target">The Event Format Target</h3>
<div class="paragraph">
<p>The event format target is a JSON-based format of event data suitable
for telemetry analysis.  This format is enabled with the <code>GIT_TRACE2_EVENT</code>
environment variable or the <code>trace2.eventTarget</code> system or global config
setting.</p>
</div>
<div class="paragraph">
<p>For example</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ export GIT_TRACE2_EVENT=~/log.event
$ git version
git version 2.20.1.155.g426c96fcdb</pre>
</div>
</div>
<div class="paragraph">
<p>or</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ git config --global trace2.eventTarget ~/log.event
$ git version
git version 2.20.1.155.g426c96fcdb</pre>
</div>
</div>
<div class="paragraph">
<p>yields</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ cat ~/log.event
{"event":"version","sid":"20190408T191610.507018Z-H9b68c35f-P000059a8","thread":"main","time":"2019-01-16T17:28:42.620713Z","file":"common-main.c","line":38,"evt":"4","exe":"2.20.1.155.g426c96fcdb"}
{"event":"start","sid":"20190408T191610.507018Z-H9b68c35f-P000059a8","thread":"main","time":"2019-01-16T17:28:42.621027Z","file":"common-main.c","line":39,"t_abs":0.001173,"argv":["git","version"]}
{"event":"cmd_name","sid":"20190408T191610.507018Z-H9b68c35f-P000059a8","thread":"main","time":"2019-01-16T17:28:42.621122Z","file":"git.c","line":432,"name":"version","hierarchy":"version"}
{"event":"exit","sid":"20190408T191610.507018Z-H9b68c35f-P000059a8","thread":"main","time":"2019-01-16T17:28:42.621236Z","file":"git.c","line":662,"t_abs":0.001227,"code":0}
{"event":"atexit","sid":"20190408T191610.507018Z-H9b68c35f-P000059a8","thread":"main","time":"2019-01-16T17:28:42.621268Z","file":"trace2/tr2_tgt_event.c","line":163,"t_abs":0.001265,"code":0}</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_enabling_a_target">Enabling a Target</h3>
<div class="paragraph">
<p>To enable a target, set the corresponding environment variable or
system or global config value to one of the following:</p>
</div>
<div class="openblock">
<div class="content">
<div class="ulist">
<ul>
<li>
<p><code>0</code> or <code>false</code> - Disables the target.</p>
</li>
<li>
<p><code>1</code> or <code>true</code> - Writes to <code>STDERR</code>.</p>
</li>
<li>
<p>[<code>2-9</code>] - Writes to the already opened file descriptor.</p>
</li>
<li>
<p><em>&lt;absolute-pathname&gt;</em> - Writes to the file in append mode. If the target
already exists and is a directory, the traces will be written to files (one
per process) underneath the given directory.</p>
</li>
<li>
<p><code>af_unix:</code>[<em>&lt;socket-type&gt;</em><code>:</code>]<em>&lt;absolute-pathname&gt;</em> - Write to a
Unix DomainSocket (on platforms that support them).  Socket
type can be either <code>stream</code> or <code>dgram</code>; if omitted Git will
try both.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="paragraph">
<p>When trace files are written to a target directory, they will be named according
to the last component of the SID (optionally followed by a counter to avoid
filename collisions).</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_trace2_api">Trace2 API</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The Trace2 public API is defined and documented in <code>trace2.h</code>; refer to it for
more information.  All public functions and macros are prefixed
with <code>trace2_</code> and are implemented in <code>trace2.c</code>.</p>
</div>
<div class="paragraph">
<p>There are no public Trace2 data structures.</p>
</div>
<div class="paragraph">
<p>The Trace2 code also defines a set of private functions and data types
in the <code>trace2/</code> directory.  These symbols are prefixed with <code>tr2_</code>
and should only be used by functions in <code>trace2.c</code> (or other private
source files in <code>trace2/</code>).</p>
</div>
<div class="sect2">
<h3 id="_conventions_for_public_functions_and_macros">Conventions for Public Functions and Macros</h3>
<div class="paragraph">
<p>Some functions have a <code>_fl</code>() suffix to indicate that they take <code>file</code>
and <code>line-number</code> arguments.</p>
</div>
<div class="paragraph">
<p>Some functions have a <code>_va_fl</code>() suffix to indicate that they also
take a <code>va_list</code> argument.</p>
</div>
<div class="paragraph">
<p>Some functions have a <code>_printf_fl</code>() suffix to indicate that they also
take a <code>printf</code>() style format with a variable number of arguments.</p>
</div>
<div class="paragraph">
<p>CPP wrapper macros are defined to hide most of these details.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_trace2_target_formats">Trace2 Target Formats</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_normal_format">NORMAL Format</h3>
<div class="paragraph">
<p>Events are written as lines of the form:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>[&lt;time&gt; SP &lt;filename&gt;:&lt;line&gt; SP+] &lt;event-name&gt; [[SP] &lt;event-message&gt;] LF</pre>
</div>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><em>&lt;event-name&gt;</em></dt>
<dd>
<p>is the event name.</p>
</dd>
<dt class="hdlist1"><em>&lt;event-message&gt;</em></dt>
<dd>
<p>is a free-form <code>printf</code>() message intended for human consumption.</p>
<div class="paragraph">
<p>Note that this may contain embedded LF or CRLF characters that are
not escaped, so the event may spill across multiple lines.</p>
</div>
</dd>
</dl>
</div>
<div class="paragraph">
<p>If <code>GIT_TRACE2_BRIEF</code> or <code>trace2.normalBrief</code> is true, the <code>time</code>, <code>filename</code>,
and <code>line</code> fields are omitted.</p>
</div>
<div class="paragraph">
<p>This target is intended to be more of a summary (like GIT_TRACE) and
less detailed than the other targets.  It ignores thread, region, and
data messages, for example.</p>
</div>
</div>
<div class="sect2">
<h3 id="_perf_format">PERF Format</h3>
<div class="paragraph">
<p>Events are written as lines of the form:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>[&lt;time&gt; SP &lt;filename&gt;:&lt;line&gt; SP+
    BAR SP] d&lt;depth&gt; SP
    BAR SP &lt;thread-name&gt; SP+
    BAR SP &lt;event-name&gt; SP+
    BAR SP [r&lt;repo-id&gt;] SP+
    BAR SP [&lt;t_abs&gt;] SP+
    BAR SP [&lt;t_rel&gt;] SP+
    BAR SP [&lt;category&gt;] SP+
    BAR SP DOTS* &lt;perf-event-message&gt;
    LF</pre>
</div>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><em>&lt;depth&gt;</em></dt>
<dd>
<p>is the git process depth.  This is the number of parent
git processes.  A top-level git command has depth value "d0".
A child of it has depth value "d1".  A second level child
has depth value "d2" and so on.</p>
</dd>
<dt class="hdlist1"><em>&lt;thread-name&gt;</em></dt>
<dd>
<p>is a unique name for the thread.  The primary thread
is called "main".  Other thread names are of the form "th%d:%s"
and include a unique number and the name of the thread-proc.</p>
</dd>
<dt class="hdlist1"><em>&lt;event-name&gt;</em></dt>
<dd>
<p>is the event name.</p>
</dd>
<dt class="hdlist1"><em>&lt;repo-id&gt;</em></dt>
<dd>
<p>when present, is a number indicating the repository
in use.  A <code>def_repo</code> event is emitted when a repository is
opened.  This defines the repo-id and associated worktree.
Subsequent repo-specific events will reference this repo-id.</p>
<div class="paragraph">
<p>Currently, this is always "r1" for the main repository.
This field is in anticipation of in-proc submodules in the future.</p>
</div>
</dd>
<dt class="hdlist1">&lt;t_abs&gt;</dt>
<dd>
<p>when present, is the absolute time in seconds since the
program started.</p>
</dd>
<dt class="hdlist1">&lt;t_rel&gt;</dt>
<dd>
<p>when present, is time in seconds relative to the start of
the current region.  For a thread-exit event, it is the elapsed
time of the thread.</p>
</dd>
<dt class="hdlist1"><em>&lt;category&gt;</em></dt>
<dd>
<p>is present on region and data events and is used to
indicate a broad category, such as "index" or "status".</p>
</dd>
<dt class="hdlist1"><em>&lt;perf-event-message&gt;</em></dt>
<dd>
<p>is a free-form <code>printf</code>() message intended for human consumption.</p>
</dd>
</dl>
</div>
<div class="listingblock">
<div class="content">
<pre>15:33:33.532712 wt-status.c:2310                  | d0 | main                     | region_enter | r1  |  0.126064 |           | status     | label:print
15:33:33.532712 wt-status.c:2331                  | d0 | main                     | region_leave | r1  |  0.127568 |  0.001504 | status     | label:print</pre>
</div>
</div>
<div class="paragraph">
<p>If <code>GIT_TRACE2_PERF_BRIEF</code> or <code>trace2.perfBrief</code> is true, the <code>time</code>, <code>file</code>,
and <code>line</code> fields are omitted.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>d0 | main                     | region_leave | r1  |  0.011717 |  0.009122 | index      | label:preload</pre>
</div>
</div>
<div class="paragraph">
<p>The PERF target is intended for interactive performance analysis
during development and is quite noisy.</p>
</div>
</div>
<div class="sect2">
<h3 id="_event_format">EVENT Format</h3>
<div class="paragraph">
<p>Each event is a JSON-object containing multiple key/value pairs
written as a single line and followed by a LF.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>'{' &lt;key&gt; ':' &lt;value&gt; [',' &lt;key&gt; ':' &lt;value&gt;]* '}' LF</pre>
</div>
</div>
<div class="paragraph">
<p>Some key/value pairs are common to all events and some are
event-specific.</p>
</div>
<div class="sect3">
<h4 id="_common_keyvalue_pairs">Common Key/Value Pairs</h4>
<div class="paragraph">
<p>The following key/value pairs are common to all events:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"version",
        "sid":"20190408T191827.272759Z-H9b68c35f-P00003510",
        "thread":"main",
        "time":"2019-04-08T19:18:27.282761Z",
        "file":"common-main.c",
        "line":42,
        ...
}</pre>
</div>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">"event":<em>&lt;event&gt;</em></dt>
<dd>
<p>is the event name.</p>
</dd>
<dt class="hdlist1">"sid":<em>&lt;sid&gt;</em></dt>
<dd>
<p>is the session-id.  This is a unique string to identify the
process instance to allow all events emitted by a process to
be identified.  A session-id is used instead of a PID because
PIDs are recycled by the OS.  For child git processes, the
session-id is prepended with the session-id of the parent git
process to allow parent-child relationships to be identified
during post-processing.</p>
</dd>
<dt class="hdlist1">"thread":<em>&lt;thread&gt;</em></dt>
<dd>
<p>is the thread name.</p>
</dd>
<dt class="hdlist1">"time":<em>&lt;time&gt;</em></dt>
<dd>
<p>is the UTC time of the event.</p>
</dd>
<dt class="hdlist1">"file":<em>&lt;filename&gt;</em></dt>
<dd>
<p>is source file generating the event.</p>
</dd>
<dt class="hdlist1">"line":<em>&lt;line-number&gt;</em></dt>
<dd>
<p>is the integer source line number generating the event.</p>
</dd>
<dt class="hdlist1">"repo":<em>&lt;repo-id&gt;</em></dt>
<dd>
<p>when present, is the integer repo-id as described previously.</p>
</dd>
</dl>
</div>
<div class="paragraph">
<p>If <code>GIT_TRACE2_EVENT_BRIEF</code> or <code>trace2.eventBrief</code> is true, the <code>file</code>
and <code>line</code> fields are omitted from all events and the <code>time</code> field is
only present on the "start" and "atexit" events.</p>
</div>
</div>
<div class="sect3">
<h4 id="_event_specific_keyvalue_pairs">Event-Specific Key/Value Pairs</h4>
<div class="dlist">
<dl>
<dt class="hdlist1">"version"</dt>
<dd>
<p>This event gives the version of the executable and the EVENT format. It
should always be the first event in a trace session. The EVENT format
version will be incremented if new event types are added, if existing
fields are removed, or if there are significant changes in
interpretation of existing events or fields. Smaller changes, such as
adding a new field to an existing event, will not require an increment
to the EVENT format version.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"version",
        ...
        "evt":"4",                     # EVENT format version
        "exe":"2.20.1.155.g426c96fcdb" # git version
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"too_many_files"</dt>
<dd>
<p>This event is written to the git-trace2-discard sentinel file if there
are too many files in the target trace directory (see the
trace2.maxFiles config option).</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"too_many_files",
        ...
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"start"</dt>
<dd>
<p>This event contains the complete argv received by main().</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"start",
        ...
        "t_abs":0.001227, # elapsed time in seconds
        "argv":["git","version"]
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"exit"</dt>
<dd>
<p>This event is emitted when git calls <code>exit</code>().</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"exit",
        ...
        "t_abs":0.001227, # elapsed time in seconds
        "code":0          # exit code
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"atexit"</dt>
<dd>
<p>This event is emitted by the Trace2 <code>atexit</code> routine during
final shutdown.  It should be the last event emitted by the
process.</p>
<div class="paragraph">
<p>(The elapsed time reported here is greater than the time reported in
the "exit" event because it runs after all other atexit tasks have
completed.)</p>
</div>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"atexit",
        ...
        "t_abs":0.001227, # elapsed time in seconds
        "code":0          # exit code
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"signal"</dt>
<dd>
<p>This event is emitted when the program is terminated by a user
signal.  Depending on the platform, the signal event may
prevent the "atexit" event from being generated.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"signal",
        ...
        "t_abs":0.001227,  # elapsed time in seconds
        "signo":13         # SIGTERM, SIGINT, etc.
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"error"</dt>
<dd>
<p>This event is emitted when one of the <code>BUG</code>(), <code>bug</code>(), <code>error</code>(),
<code>die</code>(), <code>warning</code>(), or <code>usage</code>() functions are called.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"error",
        ...
        "msg":"invalid option: --cahced", # formatted error message
        "fmt":"invalid option: %s"        # error format string
}</pre>
</div>
</div>
<div class="paragraph">
<p>The error event may be emitted more than once.  The format string
allows post-processors to group errors by type without worrying
about specific error arguments.</p>
</div>
</dd>
<dt class="hdlist1">"cmd_path"</dt>
<dd>
<p>This event contains the discovered full path of the git
executable (on platforms that are configured to resolve it).</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"cmd_path",
        ...
        "path":"C:/work/gfw/git.exe"
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"cmd_ancestry"</dt>
<dd>
<p>This event contains the text command name for the parent (and earlier
generations of parents) of the current process, in an array ordered from
nearest parent to furthest great-grandparent. It may not be implemented
on all platforms.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"cmd_ancestry",
        ...
        "ancestry":["bash","tmux: server","systemd"]
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"cmd_name"</dt>
<dd>
<p>This event contains the command name for this git process
and the hierarchy of commands from parent git processes.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"cmd_name",
        ...
        "name":"pack-objects",
        "hierarchy":"push/pack-objects"
}</pre>
</div>
</div>
<div class="paragraph">
<p>Normally, the "name" field contains the canonical name of the
command.  When a canonical name is not available, one of
these special values are used:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>"_query_"            # "git --html-path"
"_run_dashed_"       # when "git foo" tries to run "git-foo"
"_run_shell_alias_"  # alias expansion to a shell command
"_run_git_alias_"    # alias expansion to a git command
"_usage_"            # usage error</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"cmd_mode"</dt>
<dd>
<p>This event, when present, describes the command variant. This
event may be emitted more than once.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"cmd_mode",
        ...
        "name":"branch"
}</pre>
</div>
</div>
<div class="paragraph">
<p>The "name" field is an arbitrary string to describe the command mode.
For example, checkout can checkout a branch or an individual file.
And these variations typically have different performance
characteristics that are not comparable.</p>
</div>
</dd>
<dt class="hdlist1">"alias"</dt>
<dd>
<p>This event is present when an alias is expanded.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"alias",
        ...
        "alias":"l",             # registered alias
        "argv":["log","--graph"] # alias expansion
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"child_start"</dt>
<dd>
<p>This event describes a child process that is about to be
spawned.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"child_start",
        ...
        "child_id":2,
        "child_class":"?",
        "use_shell":false,
        "argv":["git","rev-list","--objects","--stdin","--not","--all","--quiet"]

        "hook_name":"&lt;hook_name&gt;"  # present when child_class is "hook"
        "cd":"&lt;path&gt;"              # present when cd is required
}</pre>
</div>
</div>
<div class="paragraph">
<p>The "child_id" field can be used to match this child_start with the
corresponding child_exit event.</p>
</div>
<div class="paragraph">
<p>The "child_class" field is a rough classification, such as "editor",
"pager", "transport/*", and "hook".  Unclassified children are classified
with "?".</p>
</div>
</dd>
<dt class="hdlist1">"child_exit"</dt>
<dd>
<p>This event is generated after the current process has returned
from the <code>waitpid</code>() and collected the exit information from the
child.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"child_exit",
        ...
        "child_id":2,
        "pid":14708,     # child PID
        "code":0,        # child exit-code
        "t_rel":0.110605 # observed run-time of child process
}</pre>
</div>
</div>
<div class="paragraph">
<p>Note that the session-id of the child process is not available to
the current/spawning process, so the child&#8217;s PID is reported here as
a hint for post-processing.  (But it is only a hint because the child
process may be a shell script which doesn&#8217;t have a session-id.)</p>
</div>
<div class="paragraph">
<p>Note that the <code>t_rel</code> field contains the observed run time in seconds
for the child process (starting before the fork/exec/spawn and
stopping after the <code>waitpid</code>() and includes OS process creation overhead).
So this time will be slightly larger than the atexit time reported by
the child process itself.</p>
</div>
</dd>
<dt class="hdlist1">"child_ready"</dt>
<dd>
<p>This event is generated after the current process has started
a background process and released all handles to it.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"child_ready",
        ...
        "child_id":2,
        "pid":14708,     # child PID
        "ready":"ready", # child ready state
        "t_rel":0.110605 # observed run-time of child process
}</pre>
</div>
</div>
<div class="paragraph">
<p>Note that the session-id of the child process is not available to
the current/spawning process, so the child&#8217;s PID is reported here as
a hint for post-processing.  (But it is only a hint because the child
process may be a shell script which doesn&#8217;t have a session-id.)</p>
</div>
<div class="paragraph">
<p>This event is generated after the child is started in the background
and given a little time to boot up and start working.  If the child
starts up normally while the parent is still waiting, the "ready"
field will have the value "ready".
If the child is too slow to start and the parent times out, the field
will have the value "timeout".
If the child starts but the parent is unable to probe it, the field
will have the value "error".</p>
</div>
<div class="paragraph">
<p>After the parent process emits this event, it will release all of its
handles to the child process and treat the child as a background
daemon.  So even if the child does eventually finish booting up,
the parent will not emit an updated event.</p>
</div>
<div class="paragraph">
<p>Note that the <code>t_rel</code> field contains the observed run time in seconds
when the parent released the child process into the background.
The child is assumed to be a long-running daemon process and may
outlive the parent process.  So the parent&#8217;s child event times should
not be compared to the child&#8217;s atexit times.</p>
</div>
</dd>
<dt class="hdlist1">"exec"</dt>
<dd>
<p>This event is generated before git attempts to <code>exec</code>()
another command rather than starting a child process.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"exec",
        ...
        "exec_id":0,
        "exe":"git",
        "argv":["foo", "bar"]
}</pre>
</div>
</div>
<div class="paragraph">
<p>The "exec_id" field is a command-unique id and is only useful if the
<code>exec</code>() fails and a corresponding exec_result event is generated.</p>
</div>
</dd>
<dt class="hdlist1">"exec_result"</dt>
<dd>
<p>This event is generated if the <code>exec</code>() fails and control
returns to the current git command.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"exec_result",
        ...
        "exec_id":0,
        "code":1      # error code (errno) from exec()
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"thread_start"</dt>
<dd>
<p>This event is generated when a thread is started.  It is
generated from <strong>within</strong> the new thread&#8217;s thread-proc (because
it needs to access data in the thread&#8217;s thread-local storage).</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"thread_start",
        ...
        "thread":"th02:preload_thread" # thread name
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"thread_exit"</dt>
<dd>
<p>This event is generated when a thread exits.  It is generated
from <strong>within</strong> the thread&#8217;s thread-proc.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"thread_exit",
        ...
        "thread":"th02:preload_thread", # thread name
        "t_rel":0.007328                # thread elapsed time
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"def_param"</dt>
<dd>
<p>This event is generated to log a global parameter, such as a config
setting, command-line flag, or environment variable.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"def_param",
        ...
        "scope":"global",
        "param":"core.abbrev",
        "value":"7"
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"def_repo"</dt>
<dd>
<p>This event defines a repo-id and associates it with the root
of the worktree.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"def_repo",
        ...
        "repo":1,
        "worktree":"/Users/jeffhost/work/gfw"
}</pre>
</div>
</div>
<div class="paragraph">
<p>As stated earlier, the repo-id is currently always 1, so there will
only be one def_repo event.  Later, if in-proc submodules are
supported, a def_repo event should be emitted for each submodule
visited.</p>
</div>
</dd>
<dt class="hdlist1">"region_enter"</dt>
<dd>
<p>This event is generated when entering a region.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"region_enter",
        ...
        "repo":1,                # optional
        "nesting":1,             # current region stack depth
        "category":"index",      # optional
        "label":"do_read_index", # optional
        "msg":".git/index"       # optional
}</pre>
</div>
</div>
<div class="paragraph">
<p>The <code>category</code> field may be used in a future enhancement to
do category-based filtering.</p>
</div>
<div class="paragraph">
<p><code>GIT_TRACE2_EVENT_NESTING</code> or <code>trace2.eventNesting</code> can be used to
filter deeply nested regions and data events.  It defaults to "2".</p>
</div>
</dd>
<dt class="hdlist1">"region_leave"</dt>
<dd>
<p>This event is generated when leaving a region.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"region_leave",
        ...
        "repo":1,                # optional
        "t_rel":0.002876,        # time spent in region in seconds
        "nesting":1,             # region stack depth
        "category":"index",      # optional
        "label":"do_read_index", # optional
        "msg":".git/index"       # optional
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"data"</dt>
<dd>
<p>This event is generated to log a thread- and region-local
key/value pair.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"data",
        ...
        "repo":1,              # optional
        "t_abs":0.024107,      # absolute elapsed time
        "t_rel":0.001031,      # elapsed time in region/thread
        "nesting":2,           # region stack depth
        "category":"index",
        "key":"read/cache_nr",
        "value":"3552"
}</pre>
</div>
</div>
<div class="paragraph">
<p>The "value" field may be an integer or a string.</p>
</div>
</dd>
<dt class="hdlist1">"data-json"</dt>
<dd>
<p>This event is generated to log a pre-formatted JSON string
containing structured data.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"data_json",
        ...
        "repo":1,              # optional
        "t_abs":0.015905,
        "t_rel":0.015905,
        "nesting":1,
        "category":"process",
        "key":"windows/ancestry",
        "value":["bash.exe","bash.exe"]
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"th_timer"</dt>
<dd>
<p>This event logs the amount of time that a stopwatch timer was
running in the thread.  This event is generated when a thread
exits for timers that requested per-thread events.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"th_timer",
        ...
        "category":"my_category",
        "name":"my_timer",
        "intervals":5,         # number of time it was started/stopped
        "t_total":0.052741,    # total time in seconds it was running
        "t_min":0.010061,      # shortest interval
        "t_max":0.011648       # longest interval
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"timer"</dt>
<dd>
<p>This event logs the amount of time that a stopwatch timer was
running aggregated across all threads.  This event is generated
when the process exits.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"timer",
        ...
        "category":"my_category",
        "name":"my_timer",
        "intervals":5,         # number of time it was started/stopped
        "t_total":0.052741,    # total time in seconds it was running
        "t_min":0.010061,      # shortest interval
        "t_max":0.011648       # longest interval
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"th_counter"</dt>
<dd>
<p>This event logs the value of a counter variable in a thread.
This event is generated when a thread exits for counters that
requested per-thread events.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"th_counter",
        ...
        "category":"my_category",
        "name":"my_counter",
        "count":23
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"counter"</dt>
<dd>
<p>This event logs the value of a counter variable across all threads.
This event is generated when the process exits.  The total value
reported here is the sum across all threads.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"counter",
        ...
        "category":"my_category",
        "name":"my_counter",
        "count":23
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">"printf"</dt>
<dd>
<p>This event logs a human-readable message with no particular formatting
guidelines.</p>
<div class="listingblock">
<div class="content">
<pre>{
        "event":"printf",
        ...
        "t_abs":0.015905,      # elapsed time in seconds
        "msg":"Hello world"    # optional
}</pre>
</div>
</div>
</dd>
</dl>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_example_trace2_api_usage">Example Trace2 API Usage</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Here is a hypothetical usage of the Trace2 API showing the intended
usage (without worrying about the actual Git details).</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">Initialization</dt>
<dd>
<p>Initialization happens in <code>main</code>().  Behind the scenes, an
<code>atexit</code> and <code>signal</code> handler are registered.</p>
<div class="listingblock">
<div class="content">
<pre>int main(int argc, const char **argv)
{
        int exit_code;

        trace2_initialize();
        trace2_cmd_start(argv);

        exit_code = cmd_main(argc, argv);

        trace2_cmd_exit(exit_code);

        return exit_code;
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">Command Details</dt>
<dd>
<p>After the basics are established, additional command
information can be sent to Trace2 as it is discovered.</p>
<div class="listingblock">
<div class="content">
<pre>int cmd_checkout(int argc, const char **argv)
{
        trace2_cmd_name("checkout");
        trace2_cmd_mode("branch");
        trace2_def_repo(the_repository);

        // emit "def_param" messages for "interesting" config settings.
        trace2_cmd_list_config();

        if (do_something())
            trace2_cmd_error("Path '%s': cannot do something", path);

        return 0;
}</pre>
</div>
</div>
</dd>
<dt class="hdlist1">Child Processes</dt>
<dd>
<p>Wrap code spawning child processes.</p>
<div class="listingblock">
<div class="content">
<pre>void run_child(...)
{
        int child_exit_code;
        struct child_process cmd = CHILD_PROCESS_INIT;
        ...
        cmd.trace2_child_class = "editor";

        trace2_child_start(&amp;cmd);
        child_exit_code = spawn_child_and_wait_for_it();
        trace2_child_exit(&amp;cmd, child_exit_code);
}</pre>
</div>
</div>
<div class="paragraph">
<p>For example, the following fetch command spawned ssh, index-pack,
rev-list, and gc.  This example also shows that fetch took
5.199 seconds and of that 4.932 was in ssh.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ export GIT_TRACE2_BRIEF=1
$ export GIT_TRACE2=~/log.normal
$ git fetch origin
...</pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre>$ cat ~/log.normal
version 2.20.1.vfs.1.1.47.g534dbe1ad1
start git fetch origin
worktree /Users/jeffhost/work/gfw
cmd_name fetch (fetch)
child_start[0] ssh git@github.com ...
child_start[1] git index-pack ...
... (Trace2 events from child processes omitted)
child_exit[1] pid:14707 code:0 elapsed:0.076353
child_exit[0] pid:14706 code:0 elapsed:4.931869
child_start[2] git rev-list ...
... (Trace2 events from child process omitted)
child_exit[2] pid:14708 code:0 elapsed:0.110605
child_start[3] git gc --auto
... (Trace2 events from child process omitted)
child_exit[3] pid:14709 code:0 elapsed:0.006240
exit elapsed:5.198503 code:0
atexit elapsed:5.198541 code:0</pre>
</div>
</div>
<div class="paragraph">
<p>When a git process is a (direct or indirect) child of another
git process, it inherits Trace2 context information.  This
allows the child to print the command hierarchy.  This example
shows gc as child[3] of fetch.  When the gc process reports
its name as "gc", it also reports the hierarchy as "fetch/gc".
(In this example, trace2 messages from the child process is
indented for clarity.)</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ export GIT_TRACE2_BRIEF=1
$ export GIT_TRACE2=~/log.normal
$ git fetch origin
...</pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre>$ cat ~/log.normal
version 2.20.1.160.g5676107ecd.dirty
start git fetch official
worktree /Users/jeffhost/work/gfw
cmd_name fetch (fetch)
...
child_start[3] git gc --auto
    version 2.20.1.160.g5676107ecd.dirty
    start /Users/jeffhost/work/gfw/git gc --auto
    worktree /Users/jeffhost/work/gfw
    cmd_name gc (fetch/gc)
    exit elapsed:0.001959 code:0
    atexit elapsed:0.001997 code:0
child_exit[3] pid:20303 code:0 elapsed:0.007564
exit elapsed:3.868938 code:0
atexit elapsed:3.868970 code:0</pre>
</div>
</div>
</dd>
<dt class="hdlist1">Regions</dt>
<dd>
<p>Regions can be used to time an interesting section of code.</p>
<div class="listingblock">
<div class="content">
<pre>void wt_status_collect(struct wt_status *s)
{
        trace2_region_enter("status", "worktrees", s-&gt;repo);
        wt_status_collect_changes_worktree(s);
        trace2_region_leave("status", "worktrees", s-&gt;repo);

        trace2_region_enter("status", "index", s-&gt;repo);
        wt_status_collect_changes_index(s);
        trace2_region_leave("status", "index", s-&gt;repo);

        trace2_region_enter("status", "untracked", s-&gt;repo);
        wt_status_collect_untracked(s);
        trace2_region_leave("status", "untracked", s-&gt;repo);
}

void wt_status_print(struct wt_status *s)
{
        trace2_region_enter("status", "print", s-&gt;repo);
        switch (s-&gt;status_format) {
            ...
        }
        trace2_region_leave("status", "print", s-&gt;repo);
}</pre>
</div>
</div>
<div class="paragraph">
<p>In this example, scanning for untracked files ran from +0.012568 to
+0.027149 (since the process started) and took 0.014581 seconds.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ export GIT_TRACE2_PERF_BRIEF=1
$ export GIT_TRACE2_PERF=~/log.perf
$ git status
...

$ cat ~/log.perf
d0 | main                     | version      |     |           |           |            | 2.20.1.160.g5676107ecd.dirty
d0 | main                     | start        |     |  0.001173 |           |            | git status
d0 | main                     | def_repo     | r1  |           |           |            | worktree:/Users/jeffhost/work/gfw
d0 | main                     | cmd_name     |     |           |           |            | status (status)
...
d0 | main                     | region_enter | r1  |  0.010988 |           | status     | label:worktrees
d0 | main                     | region_leave | r1  |  0.011236 |  0.000248 | status     | label:worktrees
d0 | main                     | region_enter | r1  |  0.011260 |           | status     | label:index
d0 | main                     | region_leave | r1  |  0.012542 |  0.001282 | status     | label:index
d0 | main                     | region_enter | r1  |  0.012568 |           | status     | label:untracked
d0 | main                     | region_leave | r1  |  0.027149 |  0.014581 | status     | label:untracked
d0 | main                     | region_enter | r1  |  0.027411 |           | status     | label:print
d0 | main                     | region_leave | r1  |  0.028741 |  0.001330 | status     | label:print
d0 | main                     | exit         |     |  0.028778 |           |            | code:0
d0 | main                     | atexit       |     |  0.028809 |           |            | code:0</pre>
</div>
</div>
<div class="paragraph">
<p>Regions may be nested.  This causes messages to be indented in the
PERF target, for example.
Elapsed times are relative to the start of the corresponding nesting
level as expected.  For example, if we add region message to:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>static enum path_treatment read_directory_recursive(struct dir_struct *dir,
        struct index_state *istate, const char *base, int baselen,
        struct untracked_cache_dir *untracked, int check_only,
        int stop_at_first_file, const struct pathspec *pathspec)
{
        enum path_treatment state, subdir_state, dir_state = path_none;

        trace2_region_enter_printf("dir", "read_recursive", NULL, "%.*s", baselen, base);
        ...
        trace2_region_leave_printf("dir", "read_recursive", NULL, "%.*s", baselen, base);
        return dir_state;
}</pre>
</div>
</div>
<div class="paragraph">
<p>We can further investigate the time spent scanning for untracked files.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ export GIT_TRACE2_PERF_BRIEF=1
$ export GIT_TRACE2_PERF=~/log.perf
$ git status
...
$ cat ~/log.perf
d0 | main                     | version      |     |           |           |            | 2.20.1.162.gb4ccea44db.dirty
d0 | main                     | start        |     |  0.001173 |           |            | git status
d0 | main                     | def_repo     | r1  |           |           |            | worktree:/Users/jeffhost/work/gfw
d0 | main                     | cmd_name     |     |           |           |            | status (status)
...
d0 | main                     | region_enter | r1  |  0.015047 |           | status     | label:untracked
d0 | main                     | region_enter |     |  0.015132 |           | dir        | ..label:read_recursive
d0 | main                     | region_enter |     |  0.016341 |           | dir        | ....label:read_recursive vcs-svn/
d0 | main                     | region_leave |     |  0.016422 |  0.000081 | dir        | ....label:read_recursive vcs-svn/
d0 | main                     | region_enter |     |  0.016446 |           | dir        | ....label:read_recursive xdiff/
d0 | main                     | region_leave |     |  0.016522 |  0.000076 | dir        | ....label:read_recursive xdiff/
d0 | main                     | region_enter |     |  0.016612 |           | dir        | ....label:read_recursive git-gui/
d0 | main                     | region_enter |     |  0.016698 |           | dir        | ......label:read_recursive git-gui/po/
d0 | main                     | region_enter |     |  0.016810 |           | dir        | ........label:read_recursive git-gui/po/glossary/
d0 | main                     | region_leave |     |  0.016863 |  0.000053 | dir        | ........label:read_recursive git-gui/po/glossary/
...
d0 | main                     | region_enter |     |  0.031876 |           | dir        | ....label:read_recursive builtin/
d0 | main                     | region_leave |     |  0.032270 |  0.000394 | dir        | ....label:read_recursive builtin/
d0 | main                     | region_leave |     |  0.032414 |  0.017282 | dir        | ..label:read_recursive
d0 | main                     | region_leave | r1  |  0.032454 |  0.017407 | status     | label:untracked
...
d0 | main                     | exit         |     |  0.034279 |           |            | code:0
d0 | main                     | atexit       |     |  0.034322 |           |            | code:0</pre>
</div>
</div>
<div class="paragraph">
<p>Trace2 regions are similar to the existing trace_performance_enter()
and trace_performance_leave() routines, but are thread safe and
maintain per-thread stacks of timers.</p>
</div>
</dd>
<dt class="hdlist1">Data Messages</dt>
<dd>
<p>Data messages added to a region.</p>
<div class="listingblock">
<div class="content">
<pre>int read_index_from(struct index_state *istate, const char *path,
        const char *gitdir)
{
        trace2_region_enter_printf("index", "do_read_index", the_repository, "%s", path);

        ...

        trace2_data_intmax("index", the_repository, "read/version", istate-&gt;version);
        trace2_data_intmax("index", the_repository, "read/cache_nr", istate-&gt;cache_nr);

        trace2_region_leave_printf("index", "do_read_index", the_repository, "%s", path);
}</pre>
</div>
</div>
<div class="paragraph">
<p>This example shows that the index contained 3552 entries.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ export GIT_TRACE2_PERF_BRIEF=1
$ export GIT_TRACE2_PERF=~/log.perf
$ git status
...
$ cat ~/log.perf
d0 | main                     | version      |     |           |           |            | 2.20.1.156.gf9916ae094.dirty
d0 | main                     | start        |     |  0.001173 |           |            | git status
d0 | main                     | def_repo     | r1  |           |           |            | worktree:/Users/jeffhost/work/gfw
d0 | main                     | cmd_name     |     |           |           |            | status (status)
d0 | main                     | region_enter | r1  |  0.001791 |           | index      | label:do_read_index .git/index
d0 | main                     | data         | r1  |  0.002494 |  0.000703 | index      | ..read/version:2
d0 | main                     | data         | r1  |  0.002520 |  0.000729 | index      | ..read/cache_nr:3552
d0 | main                     | region_leave | r1  |  0.002539 |  0.000748 | index      | label:do_read_index .git/index
...</pre>
</div>
</div>
</dd>
<dt class="hdlist1">Thread Events</dt>
<dd>
<p>Thread messages added to a thread-proc.</p>
<div class="paragraph">
<p>For example, the multi-threaded preload-index code can be
instrumented with a region around the thread pool and then
per-thread start and exit events within the thread-proc.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>static void *preload_thread(void *_data)
{
        // start the per-thread clock and emit a message.
        trace2_thread_start("preload_thread");

        // report which chunk of the array this thread was assigned.
        trace2_data_intmax("index", the_repository, "offset", p-&gt;offset);
        trace2_data_intmax("index", the_repository, "count", nr);

        do {
            ...
        } while (--nr &gt; 0);
        ...

        // report elapsed time taken by this thread.
        trace2_thread_exit();
        return NULL;
}

void preload_index(struct index_state *index,
        const struct pathspec *pathspec,
        unsigned int refresh_flags)
{
        trace2_region_enter("index", "preload", the_repository);

        for (i = 0; i &lt; threads; i++) {
            ... /* create thread */
        }

        for (i = 0; i &lt; threads; i++) {
            ... /* join thread */
        }

        trace2_region_leave("index", "preload", the_repository);
}</pre>
</div>
</div>
<div class="paragraph">
<p>In this example preload_index() was executed by the <code>main</code> thread
and started the <code>preload</code> region.  Seven threads, named
<code>th01:preload_thread</code> through <code>th07:preload_thread</code>, were started.
Events from each thread are atomically appended to the shared target
stream as they occur so they may appear in random order with respect
other threads. Finally, the main thread waits for the threads to
finish and leaves the region.</p>
</div>
<div class="paragraph">
<p>Data events are tagged with the active thread name.  They are used
to report the per-thread parameters.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ export GIT_TRACE2_PERF_BRIEF=1
$ export GIT_TRACE2_PERF=~/log.perf
$ git status
...
$ cat ~/log.perf
...
d0 | main                     | region_enter | r1  |  0.002595 |           | index      | label:preload
d0 | th01:preload_thread      | thread_start |     |  0.002699 |           |            |
d0 | th02:preload_thread      | thread_start |     |  0.002721 |           |            |
d0 | th01:preload_thread      | data         | r1  |  0.002736 |  0.000037 | index      | offset:0
d0 | th02:preload_thread      | data         | r1  |  0.002751 |  0.000030 | index      | offset:2032
d0 | th03:preload_thread      | thread_start |     |  0.002711 |           |            |
d0 | th06:preload_thread      | thread_start |     |  0.002739 |           |            |
d0 | th01:preload_thread      | data         | r1  |  0.002766 |  0.000067 | index      | count:508
d0 | th06:preload_thread      | data         | r1  |  0.002856 |  0.000117 | index      | offset:2540
d0 | th03:preload_thread      | data         | r1  |  0.002824 |  0.000113 | index      | offset:1016
d0 | th04:preload_thread      | thread_start |     |  0.002710 |           |            |
d0 | th02:preload_thread      | data         | r1  |  0.002779 |  0.000058 | index      | count:508
d0 | th06:preload_thread      | data         | r1  |  0.002966 |  0.000227 | index      | count:508
d0 | th07:preload_thread      | thread_start |     |  0.002741 |           |            |
d0 | th07:preload_thread      | data         | r1  |  0.003017 |  0.000276 | index      | offset:3048
d0 | th05:preload_thread      | thread_start |     |  0.002712 |           |            |
d0 | th05:preload_thread      | data         | r1  |  0.003067 |  0.000355 | index      | offset:1524
d0 | th05:preload_thread      | data         | r1  |  0.003090 |  0.000378 | index      | count:508
d0 | th07:preload_thread      | data         | r1  |  0.003037 |  0.000296 | index      | count:504
d0 | th03:preload_thread      | data         | r1  |  0.002971 |  0.000260 | index      | count:508
d0 | th04:preload_thread      | data         | r1  |  0.002983 |  0.000273 | index      | offset:508
d0 | th04:preload_thread      | data         | r1  |  0.007311 |  0.004601 | index      | count:508
d0 | th05:preload_thread      | thread_exit  |     |  0.008781 |  0.006069 |            |
d0 | th01:preload_thread      | thread_exit  |     |  0.009561 |  0.006862 |            |
d0 | th03:preload_thread      | thread_exit  |     |  0.009742 |  0.007031 |            |
d0 | th06:preload_thread      | thread_exit  |     |  0.009820 |  0.007081 |            |
d0 | th02:preload_thread      | thread_exit  |     |  0.010274 |  0.007553 |            |
d0 | th07:preload_thread      | thread_exit  |     |  0.010477 |  0.007736 |            |
d0 | th04:preload_thread      | thread_exit  |     |  0.011657 |  0.008947 |            |
d0 | main                     | region_leave | r1  |  0.011717 |  0.009122 | index      | label:preload
...
d0 | main                     | exit         |     |  0.029996 |           |            | code:0
d0 | main                     | atexit       |     |  0.030027 |           |            | code:0</pre>
</div>
</div>
<div class="paragraph">
<p>In this example, the preload region took 0.009122 seconds.  The 7 threads
took between 0.006069 and 0.008947 seconds to work on their portion of
the index.  Thread "th01" worked on 508 items at offset 0.  Thread "th02"
worked on 508 items at offset 2032.  Thread "th04" worked on 508 items
at offset 508.</p>
</div>
<div class="paragraph">
<p>This example also shows that thread names are assigned in a racy manner
as each thread starts.</p>
</div>
</dd>
<dt class="hdlist1">Config (def param) Events</dt>
<dd>
<p>Dump "interesting" config values to trace2 log.</p>
<div class="paragraph">
<p>We can optionally emit configuration events, see
<code>trace2.configparams</code> in <a href="../git-config.html">git-config(1)</a> for how to enable
it.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ git config --system color.ui never
$ git config --global color.ui always
$ git config --local color.ui auto
$ git config --list --show-scope | grep 'color.ui'
system  color.ui=never
global  color.ui=always
local   color.ui=auto</pre>
</div>
</div>
<div class="paragraph">
<p>Then, mark the config <code>color.ui</code> as "interesting" config with
<code>GIT_TRACE2_CONFIG_PARAMS</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ export GIT_TRACE2_PERF_BRIEF=1
$ export GIT_TRACE2_PERF=~/log.perf
$ export GIT_TRACE2_CONFIG_PARAMS=color.ui
$ git version
...
$ cat ~/log.perf
d0 | main                     | version      |     |           |           |              | ...
d0 | main                     | start        |     |  0.001642 |           |              | /usr/local/bin/git version
d0 | main                     | cmd_name     |     |           |           |              | version (version)
d0 | main                     | def_param    |     |           |           | scope:system | color.ui:never
d0 | main                     | def_param    |     |           |           | scope:global | color.ui:always
d0 | main                     | def_param    |     |           |           | scope:local  | color.ui:auto
d0 | main                     | data         | r0  |  0.002100 |  0.002100 | fsync        | fsync/writeout-only:0
d0 | main                     | data         | r0  |  0.002126 |  0.002126 | fsync        | fsync/hardware-flush:0
d0 | main                     | exit         |     |  0.000470 |           |              | code:0
d0 | main                     | atexit       |     |  0.000477 |           |              | code:0</pre>
</div>
</div>
</dd>
<dt class="hdlist1">Stopwatch Timer Events</dt>
<dd>
<p>Measure the time spent in a function call or span of code
that might be called from many places within the code
throughout the life of the process.</p>
<div class="listingblock">
<div class="content">
<pre>static void expensive_function(void)
{
        trace2_timer_start(TRACE2_TIMER_ID_TEST1);
        ...
        sleep_millisec(1000); // Do something expensive
        ...
        trace2_timer_stop(TRACE2_TIMER_ID_TEST1);
}

static int ut_100timer(int argc, const char **argv)
{
        ...

        expensive_function();

        // Do something else 1...

        expensive_function();

        // Do something else 2...

        expensive_function();

        return 0;
}</pre>
</div>
</div>
<div class="paragraph">
<p>In this example, we measure the total time spent in
<code>expensive_function</code>() regardless of when it is called
in the overall flow of the program.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ export GIT_TRACE2_PERF_BRIEF=1
$ export GIT_TRACE2_PERF=~/log.perf
$ t/helper/test-tool trace2 100timer 3 1000
...
$ cat ~/log.perf
d0 | main                     | version      |     |           |           |              | ...
d0 | main                     | start        |     |  0.001453 |           |              | t/helper/test-tool trace2 100timer 3 1000
d0 | main                     | cmd_name     |     |           |           |              | trace2 (trace2)
d0 | main                     | exit         |     |  3.003667 |           |              | code:0
d0 | main                     | timer        |     |           |           | test         | name:test1 intervals:3 total:3.001686 min:1.000254 max:1.000929
d0 | main                     | atexit       |     |  3.003796 |           |              | code:0</pre>
</div>
</div>
</dd>
</dl>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_future_work">Future Work</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_relationship_to_the_existing_trace_api_api_trace_txt">Relationship to the Existing Trace Api (api-trace.txt)</h3>
<div class="paragraph">
<p>There are a few issues to resolve before we can completely
switch to Trace2.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Updating existing tests that assume <code>GIT_TRACE</code> format messages.</p>
</li>
<li>
<p>How to best handle custom <code>GIT_TRACE_</code><em>&lt;key&gt;</em> messages?</p>
<div class="ulist">
<ul>
<li>
<p>The <code>GIT_TRACE_</code><em>&lt;key&gt;</em> mechanism allows each &lt;key&gt; to write to a
different file (in addition to just stderr).</p>
</li>
<li>
<p>Do we want to maintain that ability or simply write to the existing
Trace2 targets (and convert &lt;key&gt; to a "category").</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
Last updated 2024-09-03 13:52:44 -0700
</div>
</div>
</body>
</html>