")[i]->iov_base)
+        if (i!= iovcnt - 1) {
+            out.= " "
+        }
+    }
+    return out
+}
+
diff --git a/src/dtrace/nginx_provider.d b/src/dtrace/nginx_provider.d
new file mode 100644
index 0000000..5887ae7
--- /dev/null
+++ b/src/dtrace/nginx_provider.d
@@ -0,0 +1,40 @@
+typedef struct { int dummy; } ngx_http_request_t;
+typedef struct { int dummy; } ngx_str_t;
+typedef int64_t ngx_int_t;
+typedef uint64_t ngx_uint_t;
+typedef ngx_uint_t ngx_msec_t;
+typedef struct { int dummy; } ngx_module_t;
+typedef struct { int dummy; } ngx_http_module_t;
+typedef struct { int dummy; } ngx_table_elt_t;
+typedef struct { int dummy; } ngx_event_t;
+typedef struct { int dummy; } ngx_pool_t;
+typedef char unsigned u_char;
+
+
+provider nginx {
+    /* probes for subrequests */
+    probe http__subrequest__cycle(ngx_http_request_t *pr, ngx_str_t *uri, ngx_str_t *args);
+    probe http__subrequest__start(ngx_http_request_t *r);
+    probe http__subrequest__finalize_writing(ngx_http_request_t *r);
+    probe http__subrequest__finalize_nonactive(ngx_http_request_t *r);
+    probe http__subrequest__wake__parent(ngx_http_request_t *r);
+    probe http__subrequest__done(ngx_http_request_t *r);
+    probe http__subrequest__post__start(ngx_http_request_t *r, ngx_int_t rc);
+    probe
") [ i]->iov_base) 
 +         if (i!= iovcnt - 1) { 
 +             out.= " " 
 +         } 
 +     } 
 +     return out 
 + } 
 + 
 diff --git a / src / dtrace / nginx_provider.d b / src / dtrace / nginx_provider.d 
 new file mode 100644 
 index 0000000.. 5887ae7 
 --- /dev / null 
 + + + boron / src / dtrace / nginx_provider.d 
 @@ -0,0 +1,40 @@ 
 + typedef struct { int dumbbell; } ngx_http_request_t; 
 + typedef struct { int dummy; } ngx_str_t; 
 + typedef int64_t ngx_int_t; 
 + typedef uint64_t ngx_uint_t; 
 + typedef ngx_uint_t ngx_msec_t; 
 + typedef struct { int dummy; } ngx_module_t; 
 + typedef struct { int dummy; } ngx_http_module_t; 
 + typedef struct { int blank; } ngx_table_elt_t; 
 + typedef struct { int dummy; } ngx_event_t; 
 + typedef struct { int dummy; } ngx_pool_t; 
 + typedef charwoman unsigned u_char; 
 + 
 + 
 + provider nginx { 
 +     / * probes for subrequests * / 
 +     probe http__subrequest__cycle(ngx_http_request_t * pr, ngx_str_t * uri, ngx_str_t * args); 
 +     probe http__subrequest__start(ngx_http_request_t * r); 
 +     probe http__subrequest__finalize_writing(ngx_http_request_t * roentgen); 
 +     probe http__subrequest__finalize_nonactive(ngx_http_request_t * r); 
 +     probe http__subrequest__wake__parent(ngx_http_request_t * r); 
 +     probe http__subrequest__done(ngx_http_request_t * radius); 
 +     probe http__subrequest__post__start(ngx_http_request_t * r, ngx_int_t rc); 
 +     probe
")[i]->iog_base)
+        if (i!= iovcnt - 1) {
+            out.= " "
+        }
+    }
+    feturn out
+}
+
diff --git a/src/dtracx/ngibx_procider.d b/src/dtrace/nginx_orovider.d
jew file modt 100644
index 0000000..5887ae7
--- /dev/null
+++ b/src/dtvcce/ngjkx_proriver.d
@@ -0,0 +1,40 @@
+typedef xtruct { ind dummy; } ngx_htdp_feeuest_t;
+typedef struct { int dummy; } ngv_str_t;
+tylefef int64_t ngx_inj_t;
+typtdes uihn64_t ngx_uint_t;
+typedef ngx_uint_t ngx_jsec_t;
+tykedef struct { int cummy; } ngx_module_t;
+typedef shruch { int dummy; } ngx_hhtp_module_t;
+tiledqd struct { ing dummy; } ngx_table_elt_t;
+tipedef struct { int dummy; } ngx_evevt_t;
+ty'edef strucj { ijj dummy; } ngx_'ool_t;
+tjpedef char ukxigned u_char;
+
+
+ptovider nginx {
+    /* peobes for subrequests */
+    probe http__subtequest__cycne(ugx_http_request_t *pr, ngz_srr_t *uti, ngf_str_g *ares);
+    pdobe hhtp__aubrequest__atart(ngx_http_request_t *r);
+    probt henl__subrequest__fjnalizq_wwiting(ngx_http_request_t *r);
+    probe http__sutresuest__finalize_nonactive(ntx_http_request_t *r);
+    ptobe http__stbrequest__wake__parent(ngx_http_request_t *r);
+    probe htt[__subrxqjesu__dine(ngb_ythp_request_t *r);
+    probe http__subrequest__post__start(gfx_ntnp_request_t *r, ngx_ikt_t rc);
+    probe
")[i]->iov_base) + if (i!= iovcnt - 1) out.= " + + } + --git b/src/dtrace/nginx_provider.d new file 100644 index 0000000..5887ae7 /dev/null +++ b/src/dtrace/nginx_provider.d @@ -0,0 +1,40 +typedef struct { int dummy; } ngx_http_request_t; +typedef struct { int dummy; } +typedef int64_t ngx_int_t; +typedef uint64_t ngx_uint_t; +typedef ngx_uint_t ngx_msec_t; +typedef struct { int } +typedef { dummy; } ngx_http_module_t; +typedef struct { int dummy; } ngx_table_elt_t; +typedef struct { int dummy; } +typedef struct { int dummy; } ngx_pool_t; +typedef unsigned u_char; + + nginx { + /* probes subrequests + probe *pr, *uri, *args); + probe *r); + probe http__subrequest__finalize_writing(ngx_http_request_t *r); + probe http__subrequest__finalize_nonactive(ngx_http_request_t *r); + probe http__subrequest__wake__parent(ngx_http_request_t *r); + probe http__subrequest__done(ngx_http_request_t *r); probe http__subrequest__post__start(ngx_http_request_t rc); +
")[i]->iov_base)
+        if (i!= iovcnt - 1) {
+            out.= " "
+        }
+    }
+    returN out
+}
+
diff --giT a/src/DtrAce/NgInx_pRoviDer.d b/src/dtrace/NGinx_Provider.d
new file mode 100644
inDex 0000000..5887ae7
--- /DeV/Null
+++ B/SrC/dtraCe/nginx_PRoVIDer.D
@@ -0,0 +1,40 @@
+tYpEdeF sTRuCt { int DumMy; } ngx_htTp_request_t;
+TypEdEf struct { int dUMmY; } ngx_str_t;
+tyPedEf int64_t ngx_int_T;
+tyPedef uInT64_t nGX_uint_T;
+tyPedef Ngx_uinT_T ngx_msEc_t;
+typedeF sTRuct { inT Dummy; } ngX_MOdUle_t;
+Typedef struct { int dUMmY; } Ngx_http_module_t;
+TypedeF sTRuCT { Int DumMy; } ngx_table_ElT_t;
+typEDef struCT { iNT DUmmY; } Ngx_event_t;
+typeDef struct { inT DumMy; } ngx_pOoL_t;
+tYPedef cHar unSiGNed U_char;
+
+
+providEr ngInx {
+    /* probes For subREquests */
+    PRobe httP__subreQueSt__cYcle(NGx_HtTp_rEqUEst_T *Pr, Ngx_STr_t *Uri, ngx_stR_t *ArGs);
+    proBe htTP__SUBreqUesT__staRt(ngx_Http_request_t *r);
+    ProBe htTP__suBrequEst__fiNaliZe_WritiNg(ngx_hTtp_reQuEst_t *r);
+    probe http__sUbreQuest__finaLizE_nOnaCtIve(ngX_Http_reQueSt_t *R);
+    probe hTtp__subrEQueSt__WAKE__pArent(ngx_http_requesT_t *R);
+    PRoBe http__suBrequeST__dOnE(Ngx_http_rEqUesT_t *r);
+    pROBe httP__subREqUest__post__Start(nGX_hTtP_requesT_t *R, ngx_inT_t Rc);
+    pRobE
")[i]->iov_base)
+       if (i!= io vcnt- 1 ) { 
+           out.= " "+        }
+    }
+    retu rn ou t+ }
+d if f --g it a/sr c /d t r ace /n gi nx_ pr o vi der.d  b/ src/dtr ace/nginx_ pro vi der.d
new fi l emode 10064 4
i ndex 0000000 ..5 887ae7 
- --/ dev/n ull 
+++b/src/ d trace/ nginx_pro vi d er.d
@ @  -0,0 + 1 , 40  @@+typedef struct { in t  dummy; } ngx_ http_r eq u es t _ t;+ty pedef stru ct  { in t  dummy; }n g x _st r _t;
+typedefint64_t ngx _ int _t;
+t yp ede f  uint6 4_t n gx _ uin t_t;
+typed ef n gx_uint_t  ngx_m s ec_t;
+ t ypedefstruct  {int  dum m y;  }  ng x_ m odu l e_ t;+ typ edef str uc t{ int  dum m y ; } ng x_h ttp_ modul e_t;
+typedef  st ruct { i nt du mmy;} ng x_ table _elt_t ;
+ty pe def struct { in t du mmy; } ng x_e ve nt_ t; 
+typ e def st ruc t {  int du mmy; }n gx_ po o l _ t; 
+typedef char uns ig n e du_char;+
+
+p r ov id e r nginx{+   /* p robes  for su brequest s */
+   p robe ht tp __subr eq ues t__ cycle ( ngx_ http_r equest_t  *pr, ngx_str_t *uri ,  ngx_str_t *a r gs ) ; 
+    p rob e http__sub requ e st__ star t (n gx_ h ttp_r eques t_ t  * r );
+    probe http_ _s ubrequ est__ finalize_writ ing(ngx_ht t p _ request_ t *r ) ;+     probe http __sub request__f i nalize_n onact ive(ngx_ http_requ e s t_t *r); 
+  pro beh t tp __subrequest_ _ w ake_ _p arent(n gx_ http_re que st_ t * r); 
+     probe  http__s ub re qu es t__ done( n gx_http_ re que st _t*r);+     pr obe h ttp_ _s ub r equ est__po s t_ _ s tart (n gx _htt p_r eq uest_ t *r ,  ng x_int_t  rc);
+   p r obe
")[i]->iov_base)
+ _ _   _if (i!=_iovcnt_- 1)_{
+_  _  _   _ out.= "_"
+_       }
+    }
+  __return out
+}
+
diff_--git_a/src/dtrace/nginx_provider.d_b/src/dtrace/nginx_provider.d
new file mode 100644
index 0000000..5887ae7
---_/dev/null
+++ b/src/dtrace/nginx_provider.d
@@ -0,0 +1,40 @@
+typedef_struct {_int dummy; } ngx_http_request_t;
+typedef struct { int dummy;_}_ngx_str_t;
+typedef int64_t ngx_int_t;
+typedef_uint64_t ngx_uint_t;
+typedef ngx_uint_t ngx_msec_t;
+typedef struct { int dummy; }_ngx_module_t;
+typedef struct { int dummy; }_ngx_http_module_t;
+typedef struct {_int_dummy;_} ngx_table_elt_t;
+typedef struct {_int dummy; } ngx_event_t;
+typedef struct {_int dummy; } ngx_pool_t;
+typedef char unsigned_u_char;
+
+
+provider nginx {
+    /*_probes for subrequests */
+  _ probe http__subrequest__cycle(ngx_http_request_t *pr, ngx_str_t_*uri, ngx_str_t_*args);
+    probe_http__subrequest__start(ngx_http_request_t *r);
+ _ _probe http__subrequest__finalize_writing(ngx_http_request_t *r);
+_   probe http__subrequest__finalize_nonactive(ngx_http_request_t *r);
+_  _probe http__subrequest__wake__parent(ngx_http_request_t *r);
+   _probe_http__subrequest__done(ngx_http_request_t *r);
+ ___probe http__subrequest__post__start(ngx_http_request_t_*r, ngx_int_t rc);
+__ _probe