rian 0.3.0-next.5 → 0.3.0-next.6

Sign up to get free protection for your applications and to get access to all the features.
package/async.js CHANGED
@@ -1 +1 @@
1
- const { default:e } = require('node:async_hooks');const { measure:t } = require('rian/utils');const { make:n, parse:r, SAMPLED_FLAG:a } = require('tctx');const { is_sampled:o } = require('tctx');var s=new Set,l=new WeakMap;async function c(e){let t=[],n=new Map;for(let[e,r]of s){let a;n.has(r)?a=n.get(r).spans:n.set(r,{resource:r,spans:a=new Set}),a.add(e),l.has(r)&&(t.push(...l.get(r)),l.delete(r))}return s.clear(),t.length&&await Promise.all(t),e(n.values())}function i(e,t){return o(t)}var p=new e.AsyncLocalStorage;function u(){return p.getStore()?.[1]||null}function d(e){let r=p.getStore();if(!r)throw Error("TODO");let a=r[0],o=a.resource,c=r[1],i=a.sampler,u=c?.traceparent??a.root_id,m=u?u.child():n(),f="boolean"!=typeof i?i(e,m,o):i;m.flags;let g={id:m,parent:u,start:Date.now(),name:e,events:[],context:{}};f&&s.add([g,o]);let w=e=>p.run([a,w],t,w,e);w.traceparent=m,w.span=d,w.set_context=e=>{"function"!=typeof e?Object.assign(g.context,e):g.context=e(g.context)},w.add_event=(e,t)=>{g.events.push({name:e,timestamp:Date.now(),attributes:t||{}})},w.end=()=>{null==g.end&&(g.end=Date.now())};let x=l.get(o);return w.__add_promise=e=>{x.add(e),e.then((()=>x.delete(e)))},p.run([a,w],(()=>w))}function m(e,t){let n=t?.sampler??i,a=t?.context||{};a["service.name"]=e,a["telemetry.sdk.name"]="rian",a["telemetry.sdk.version"]="0.3.0-next.5";let o={root_id:"string"==typeof t?.traceparent?r(t.traceparent):p.getStore()?.[0].root_id,resource:a,sampler:n};return l.set(a,new Set),{span:e=>p.run([o,null],d,e)}}exports.currentSpan=u;exports.report=c;exports.span=d;exports.tracer=m;
1
+ const { default:e } = require('node:async_hooks');const { measure:t } = require('rian/utils');const { make:n, parse:r, SAMPLED_FLAG:a } = require('tctx');const { is_sampled:o } = require('tctx');var s={};function l(e,t={}){s={...t,"service.name":e,"telemetry.sdk.name":"rian","telemetry.sdk.version":"0.3.0-next.6","telemetry.sdk.language":"javascript"}}var p=new Set,c=new WeakMap;async function i(e){let t=[],n=new Map;for(let[e,r]of p){let a;n.has(r)?a=n.get(r).spans:n.set(r,{scope:r,spans:a=[]}),a.push(e),c.has(r)&&(t.push(...c.get(r)),c.delete(r))}return p.clear(),t.length&&await Promise.all(t),e({resource:s,scopeSpans:n.values()})}function u(e,t){return o(t)}var d=new e.AsyncLocalStorage;function m(){return d.getStore()?.[1]||null}function f(e){let r=d.getStore();if(!r)throw Error("TODO");let a=r[0],o=a.scope,s=r[1],l=a.sampler,i=s?.traceparent??a.root_id,u=i?i.child():n(),m="boolean"!=typeof l?l(e,u,o):l;u.flags;let g={id:u,parent:i,start:Date.now(),name:e,events:[],context:{}};m&&p.add([g,o]);let h=e=>d.run([a,h],t,h,e);h.traceparent=u,h.span=f,h.set_context=e=>{"function"!=typeof e?Object.assign(g.context,e):g.context=e(g.context)},h.add_event=(e,t)=>{g.events.push({name:e,timestamp:Date.now(),attributes:t||{}})},h.end=()=>{null==g.end&&(g.end=Date.now())};let v=c.get(o);return h.__add_promise=e=>{v.add(e),e.then((()=>v.delete(e)))},d.run([a,h],(()=>h))}function g(e,t){let n=t?.sampler??u,a={name:e},o={root_id:"string"==typeof t?.traceparent?r(t.traceparent):d.getStore()?.[0].root_id,scope:a,sampler:n};return c.set(a,new Set),{span:e=>d.run([o,null],f,e)}}exports.configure=l;exports.currentSpan=m;exports.report=i;exports.span=f;exports.tracer=g;
package/async.mjs CHANGED
@@ -1 +1 @@
1
- import{default as e}from"node:async_hooks";import{measure as t}from"rian/utils";import{make as n,parse as r,SAMPLED_FLAG as a}from"tctx";import{is_sampled as o}from"tctx";var s=new Set,l=new WeakMap;async function c(e){let t=[],n=new Map;for(let[e,r]of s){let a;n.has(r)?a=n.get(r).spans:n.set(r,{resource:r,spans:a=new Set}),a.add(e),l.has(r)&&(t.push(...l.get(r)),l.delete(r))}return s.clear(),t.length&&await Promise.all(t),e(n.values())}function i(e,t){return o(t)}var p=new e.AsyncLocalStorage;function u(){return p.getStore()?.[1]||null}function d(e){let r=p.getStore();if(!r)throw Error("TODO");let a=r[0],o=a.resource,c=r[1],i=a.sampler,u=c?.traceparent??a.root_id,m=u?u.child():n(),f="boolean"!=typeof i?i(e,m,o):i;m.flags;let g={id:m,parent:u,start:Date.now(),name:e,events:[],context:{}};f&&s.add([g,o]);let w=e=>p.run([a,w],t,w,e);w.traceparent=m,w.span=d,w.set_context=e=>{"function"!=typeof e?Object.assign(g.context,e):g.context=e(g.context)},w.add_event=(e,t)=>{g.events.push({name:e,timestamp:Date.now(),attributes:t||{}})},w.end=()=>{null==g.end&&(g.end=Date.now())};let x=l.get(o);return w.__add_promise=e=>{x.add(e),e.then((()=>x.delete(e)))},p.run([a,w],(()=>w))}function m(e,t){let n=t?.sampler??i,a=t?.context||{};a["service.name"]=e,a["telemetry.sdk.name"]="rian",a["telemetry.sdk.version"]="0.3.0-next.5";let o={root_id:"string"==typeof t?.traceparent?r(t.traceparent):p.getStore()?.[0].root_id,resource:a,sampler:n};return l.set(a,new Set),{span:e=>p.run([o,null],d,e)}}export{u as currentSpan,c as report,d as span,m as tracer};
1
+ import{default as e}from"node:async_hooks";import{measure as t}from"rian/utils";import{make as n,parse as r,SAMPLED_FLAG as a}from"tctx";import{is_sampled as o}from"tctx";var s={};function l(e,t={}){s={...t,"service.name":e,"telemetry.sdk.name":"rian","telemetry.sdk.version":"0.3.0-next.6","telemetry.sdk.language":"javascript"}}var p=new Set,c=new WeakMap;async function i(e){let t=[],n=new Map;for(let[e,r]of p){let a;n.has(r)?a=n.get(r).spans:n.set(r,{scope:r,spans:a=[]}),a.push(e),c.has(r)&&(t.push(...c.get(r)),c.delete(r))}return p.clear(),t.length&&await Promise.all(t),e({resource:s,scopeSpans:n.values()})}function u(e,t){return o(t)}var d=new e.AsyncLocalStorage;function m(){return d.getStore()?.[1]||null}function f(e){let r=d.getStore();if(!r)throw Error("TODO");let a=r[0],o=a.scope,s=r[1],l=a.sampler,i=s?.traceparent??a.root_id,u=i?i.child():n(),m="boolean"!=typeof l?l(e,u,o):l;u.flags;let g={id:u,parent:i,start:Date.now(),name:e,events:[],context:{}};m&&p.add([g,o]);let h=e=>d.run([a,h],t,h,e);h.traceparent=u,h.span=f,h.set_context=e=>{"function"!=typeof e?Object.assign(g.context,e):g.context=e(g.context)},h.add_event=(e,t)=>{g.events.push({name:e,timestamp:Date.now(),attributes:t||{}})},h.end=()=>{null==g.end&&(g.end=Date.now())};let v=c.get(o);return h.__add_promise=e=>{v.add(e),e.then((()=>v.delete(e)))},d.run([a,h],(()=>h))}function g(e,t){let n=t?.sampler??u,a={name:e},o={root_id:"string"==typeof t?.traceparent?r(t.traceparent):d.getStore()?.[0].root_id,scope:a,sampler:n};return c.set(a,new Set),{span:e=>d.run([o,null],f,e)}}export{l as configure,m as currentSpan,i as report,f as span,g as tracer};
@@ -1 +1 @@
1
- var e=r=>{let n=typeof r,a={};return"string"===n?a.stringValue=r:"number"===n?Number.isInteger(r)?a.intValue=r:a.doubleValue=r:"boolean"===n?a.boolValue=r:Array.isArray(r)?a.arrayValue={values:r.map((t=>e(t)))}:r&&(a.kvlistValue={values:t(r)}),a},t=t=>{let r=[];for(let n of Object.keys(t))r.push({key:n,value:e(t[n])});return r},r=e=>{switch(e){default:case"INTERNAL":return 1;case"SERVER":return 2;case"CLIENT":return 3;case"PRODUCER":return 4;case"CONSUMER":return 5}},n=e=>n=>{let a=[];for(let{resource:e,spans:s}of n){let n=[];for(let e of s){let a,{kind:s,error:u,...i}=e.context;u&&(a={code:2},"message"in u&&(a.message=u.message)),n.push({traceId:e.id.trace_id,spanId:e.id.parent_id,parentSpanId:e.parent?.parent_id,name:e.name,kind:r(s||"INTERNAL"),startTimeUnixNano:1e6*e.start,endTimeUnixNano:e.end?1e6*e.end:void 0,droppedAttributesCount:0,droppedEventsCount:0,droppedLinksCount:0,attributes:t(i),status:a||{code:0},events:e.events.map((e=>({name:e.name,attributes:t(e.attributes),droppedAttributesCount:0,timeUnixNano:1e6*e.timestamp})))})}a.push({resource:{attributes:t(e),droppedAttributesCount:0},instrumentationLibrarySpans:[{instrumentationLibrary:{name:"rian",version:"0.3.0-next.5"},spans:n}]})}return e({resourceSpans:a})};exports.exporter=n;
1
+ var e=r=>{let a=typeof r,s={};return"string"===a?s.stringValue=r:"number"===a?Number.isInteger(r)?s.intValue=r:s.doubleValue=r:"boolean"===a?s.boolValue=r:Array.isArray(r)?s.arrayValue={values:r.map((t=>e(t)))}:r&&(s.kvlistValue={values:t(r)}),s},t=t=>{let r=[];for(let a of Object.keys(t))r.push({key:a,value:e(t[a])});return r},r=e=>{switch(e){default:case"INTERNAL":return 1;case"SERVER":return 2;case"CLIENT":return 3;case"PRODUCER":return 4;case"CONSUMER":return 5}},a=e=>a=>{let s=[];for(let e of a.scopeSpans){let a=[];s.push({scope:e,spans:a});for(let s of e.spans){let e,{kind:n,error:u,...o}=s.context;u&&(e={code:2},"message"in u&&(e.message=u.message)),a.push({traceId:s.id.trace_id,spanId:s.id.parent_id,parentSpanId:s.parent?.parent_id,name:s.name,kind:r(n||"INTERNAL"),startTimeUnixNano:1e6*s.start,endTimeUnixNano:s.end?1e6*s.end:void 0,droppedAttributesCount:0,droppedEventsCount:0,droppedLinksCount:0,attributes:t(o),status:e||{code:0},events:s.events.map((e=>({name:e.name,attributes:t(e.attributes),droppedAttributesCount:0,timeUnixNano:1e6*e.timestamp})))})}}return e({resourceSpans:[{resource:{attributes:t(a.resource),droppedAttributesCount:0},scopeSpans:s}]})};exports.exporter=a;
@@ -1 +1 @@
1
- var e=r=>{let n=typeof r,a={};return"string"===n?a.stringValue=r:"number"===n?Number.isInteger(r)?a.intValue=r:a.doubleValue=r:"boolean"===n?a.boolValue=r:Array.isArray(r)?a.arrayValue={values:r.map((t=>e(t)))}:r&&(a.kvlistValue={values:t(r)}),a},t=t=>{let r=[];for(let n of Object.keys(t))r.push({key:n,value:e(t[n])});return r},r=e=>{switch(e){default:case"INTERNAL":return 1;case"SERVER":return 2;case"CLIENT":return 3;case"PRODUCER":return 4;case"CONSUMER":return 5}},n=e=>n=>{let a=[];for(let{resource:e,spans:s}of n){let n=[];for(let e of s){let a,{kind:s,error:u,...i}=e.context;u&&(a={code:2},"message"in u&&(a.message=u.message)),n.push({traceId:e.id.trace_id,spanId:e.id.parent_id,parentSpanId:e.parent?.parent_id,name:e.name,kind:r(s||"INTERNAL"),startTimeUnixNano:1e6*e.start,endTimeUnixNano:e.end?1e6*e.end:void 0,droppedAttributesCount:0,droppedEventsCount:0,droppedLinksCount:0,attributes:t(i),status:a||{code:0},events:e.events.map((e=>({name:e.name,attributes:t(e.attributes),droppedAttributesCount:0,timeUnixNano:1e6*e.timestamp})))})}a.push({resource:{attributes:t(e),droppedAttributesCount:0},instrumentationLibrarySpans:[{instrumentationLibrary:{name:"rian",version:"0.3.0-next.5"},spans:n}]})}return e({resourceSpans:a})};export{n as exporter};
1
+ var e=r=>{let a=typeof r,s={};return"string"===a?s.stringValue=r:"number"===a?Number.isInteger(r)?s.intValue=r:s.doubleValue=r:"boolean"===a?s.boolValue=r:Array.isArray(r)?s.arrayValue={values:r.map((t=>e(t)))}:r&&(s.kvlistValue={values:t(r)}),s},t=t=>{let r=[];for(let a of Object.keys(t))r.push({key:a,value:e(t[a])});return r},r=e=>{switch(e){default:case"INTERNAL":return 1;case"SERVER":return 2;case"CLIENT":return 3;case"PRODUCER":return 4;case"CONSUMER":return 5}},a=e=>a=>{let s=[];for(let e of a.scopeSpans){let a=[];s.push({scope:e,spans:a});for(let s of e.spans){let e,{kind:n,error:u,...o}=s.context;u&&(e={code:2},"message"in u&&(e.message=u.message)),a.push({traceId:s.id.trace_id,spanId:s.id.parent_id,parentSpanId:s.parent?.parent_id,name:s.name,kind:r(n||"INTERNAL"),startTimeUnixNano:1e6*s.start,endTimeUnixNano:s.end?1e6*s.end:void 0,droppedAttributesCount:0,droppedEventsCount:0,droppedLinksCount:0,attributes:t(o),status:e||{code:0},events:s.events.map((e=>({name:e.name,attributes:t(e.attributes),droppedAttributesCount:0,timeUnixNano:1e6*e.timestamp})))})}}return e({resourceSpans:[{resource:{attributes:t(a.resource),droppedAttributesCount:0},scopeSpans:s}]})};export{a as exporter};
@@ -1 +1 @@
1
- const { flattie:e } = require('flattie');var t=t=>a=>{let r=[];for(let t of a)for(let a of t.spans){let{kind:n,error:i,...s}=a.context;i&&(s.error=!("message"in i)||{name:i.name,message:i.message,stack:i.stack}),r.push({id:a.id.parent_id,traceId:a.id.trace_id,parentId:a.parent?a.parent.parent_id:void 0,name:a.name,kind:"INTERNAL"===n?void 0:n,timestamp:1e3*a.start,duration:a.end?1e3*(a.end-a.start):void 0,localEndpoint:{serviceName:t.resource["service.name"]},tags:e({...t.resource,...s},".",!0),annotations:a.events.map((e=>({value:`${e.name} :: ${JSON.stringify(e.attributes)}`,timestamp:1e3*e.timestamp})))})}return t(r)};exports.exporter=t;
1
+ const { flattie:e } = require('flattie');var t=t=>a=>{let r=[];for(let t of a.scopeSpans)for(let n of t.spans){let{kind:s,error:i,...o}=n.context;i&&(o.error=!("message"in i)||{name:i.name,message:i.message,stack:i.stack}),r.push({id:n.id.parent_id,traceId:n.id.trace_id,parentId:n.parent?n.parent.parent_id:void 0,name:n.name,kind:"INTERNAL"===s?void 0:s,timestamp:1e3*n.start,duration:n.end?1e3*(n.end-n.start):void 0,localEndpoint:{serviceName:`${a.resource["service.name"]}@${t.scope.name}`},tags:e({...a.resource,...o},".",!0),annotations:n.events.map((e=>({value:`${e.name} :: ${JSON.stringify(e.attributes)}`,timestamp:1e3*e.timestamp})))})}return t(r)};exports.exporter=t;
@@ -1 +1 @@
1
- import{flattie as e}from"flattie";var t=t=>a=>{let r=[];for(let t of a)for(let a of t.spans){let{kind:n,error:i,...s}=a.context;i&&(s.error=!("message"in i)||{name:i.name,message:i.message,stack:i.stack}),r.push({id:a.id.parent_id,traceId:a.id.trace_id,parentId:a.parent?a.parent.parent_id:void 0,name:a.name,kind:"INTERNAL"===n?void 0:n,timestamp:1e3*a.start,duration:a.end?1e3*(a.end-a.start):void 0,localEndpoint:{serviceName:t.resource["service.name"]},tags:e({...t.resource,...s},".",!0),annotations:a.events.map((e=>({value:`${e.name} :: ${JSON.stringify(e.attributes)}`,timestamp:1e3*e.timestamp})))})}return t(r)};export{t as exporter};
1
+ import{flattie as e}from"flattie";var t=t=>a=>{let r=[];for(let t of a.scopeSpans)for(let n of t.spans){let{kind:s,error:i,...o}=n.context;i&&(o.error=!("message"in i)||{name:i.name,message:i.message,stack:i.stack}),r.push({id:n.id.parent_id,traceId:n.id.trace_id,parentId:n.parent?n.parent.parent_id:void 0,name:n.name,kind:"INTERNAL"===s?void 0:s,timestamp:1e3*n.start,duration:n.end?1e3*(n.end-n.start):void 0,localEndpoint:{serviceName:`${a.resource["service.name"]}@${t.scope.name}`},tags:e({...a.resource,...o},".",!0),annotations:n.events.map((e=>({value:`${e.name} :: ${JSON.stringify(e.attributes)}`,timestamp:1e3*e.timestamp})))})}return t(r)};export{t as exporter};
package/index.d.ts CHANGED
@@ -6,11 +6,14 @@ import type { Traceparent } from 'tctx';
6
6
  * An exporter is a method called when the parent scope ends, gets given a Set of all spans traced
7
7
  * during this execution.
8
8
  */
9
- export type Exporter = (resources: IterableIterator<Resource>) => any;
10
-
11
- export type Resource = {
9
+ export type Exporter = (trace: {
12
10
  resource: Context;
13
- spans: ReadonlySet<Readonly<Span>>;
11
+ scopeSpans: IterableIterator<ScopedSpans>;
12
+ }) => any;
13
+
14
+ export type ScopedSpans = {
15
+ readonly scope: { readonly name: string };
16
+ readonly spans: ReadonlyArray<Readonly<Span>>;
14
17
  };
15
18
 
16
19
  export type Options = {
@@ -19,7 +22,7 @@ export type Options = {
19
22
  */
20
23
  sampler?: Sampler | boolean;
21
24
 
22
- context?: Context;
25
+ //context?: Context;
23
26
 
24
27
  /**
25
28
  * A root, or extracted w3c traceparent stringed header.
@@ -50,7 +53,7 @@ export type Context = {
50
53
  export type Sampler = (
51
54
  readonly name: string,
52
55
  readonly id: Traceparent,
53
- readonly context: Context,
56
+ readonly scope: { readonly name: string },
54
57
  ) => boolean;
55
58
 
56
59
  // --- spans
package/index.js CHANGED
@@ -1 +1 @@
1
- const { measureFn:e } = require('rian/utils');const { make:t, parse:n, SAMPLED_FLAG:a } = require('tctx');const { is_sampled:r } = require('tctx');var o=new Set,s=new WeakMap;async function l(e){let t=[],n=new Map;for(let[e,a]of o){let r;n.has(a)?r=n.get(a).spans:n.set(a,{resource:a,spans:r=new Set}),r.add(e),s.has(a)&&(t.push(...s.get(a)),s.delete(a))}return o.clear(),t.length&&await Promise.all(t),e(n.values())}function i(e,t){return r(t)}function d(a,r){let l=r?.sampler??i,d=r?.context||{};d["service.name"]=a,d["telemetry.sdk.name"]="rian",d["telemetry.sdk.version"]="0.3.0-next.5";let p=new Set;s.set(d,p);let c="string"==typeof r?.traceparent?n(r.traceparent):void 0,m=(n,a)=>{let r=a?a.child():t(),s="boolean"!=typeof l?l(n,r,d):l;r.flags;let i={id:r,parent:a,start:Date.now(),name:n,events:[],context:{}};s&&o.add([i,d]);let c=t=>e(c,t);return c.traceparent=r,c.span=e=>m(e,r),c.set_context=e=>"function"==typeof e?void(i.context=e(i.context)):void Object.assign(i.context,e),c.add_event=(e,t)=>{i.events.push({name:e,timestamp:Date.now(),attributes:t||{}})},c.end=()=>{null==i.end&&(i.end=Date.now())},c.__add_promise=e=>{p.add(e),e.then((()=>p.delete(e)))},c};return{span:e=>m(e,c)}}exports.report=l;exports.tracer=d;
1
+ const { measureFn:e } = require('rian/utils');const { make:t, parse:n, SAMPLED_FLAG:a } = require('tctx');const { is_sampled:o } = require('tctx');var r={},s=new Set,p=new WeakMap;async function l(e){let t=[],n=new Map;for(let[e,a]of s){let o;n.has(a)?o=n.get(a).spans:n.set(a,{scope:a,spans:o=[]}),o.push(e),p.has(a)&&(t.push(...p.get(a)),p.delete(a))}return s.clear(),t.length&&await Promise.all(t),e({resource:r,scopeSpans:n.values()})}function c(e,t){return o(t)}function i(a,o){let r=o?.sampler??c,l={name:a},i=new Set;p.set(l,i);let d="string"==typeof o?.traceparent?n(o.traceparent):void 0,u=(n,a)=>{let o=a?a.child():t(),p="boolean"!=typeof r?r(n,o,l):r;o.flags;let c={id:o,parent:a,start:Date.now(),name:n,events:[],context:{}};p&&s.add([c,l]);let d=t=>e(d,t);return d.traceparent=o,d.span=e=>u(e,o),d.set_context=e=>"function"==typeof e?void(c.context=e(c.context)):void Object.assign(c.context,e),d.add_event=(e,t)=>{c.events.push({name:e,timestamp:Date.now(),attributes:t||{}})},d.end=()=>{null==c.end&&(c.end=Date.now())},d.__add_promise=e=>{i.add(e),e.then((()=>i.delete(e)))},d};return{span:e=>u(e,d)}}exports.report=l;exports.tracer=i;
package/index.mjs CHANGED
@@ -1 +1 @@
1
- import{measureFn as e}from"rian/utils";import{make as t,parse as n,SAMPLED_FLAG as a}from"tctx";import{is_sampled as r}from"tctx";var o=new Set,s=new WeakMap;async function l(e){let t=[],n=new Map;for(let[e,a]of o){let r;n.has(a)?r=n.get(a).spans:n.set(a,{resource:a,spans:r=new Set}),r.add(e),s.has(a)&&(t.push(...s.get(a)),s.delete(a))}return o.clear(),t.length&&await Promise.all(t),e(n.values())}function i(e,t){return r(t)}function d(a,r){let l=r?.sampler??i,d=r?.context||{};d["service.name"]=a,d["telemetry.sdk.name"]="rian",d["telemetry.sdk.version"]="0.3.0-next.5";let p=new Set;s.set(d,p);let c="string"==typeof r?.traceparent?n(r.traceparent):void 0,m=(n,a)=>{let r=a?a.child():t(),s="boolean"!=typeof l?l(n,r,d):l;r.flags;let i={id:r,parent:a,start:Date.now(),name:n,events:[],context:{}};s&&o.add([i,d]);let c=t=>e(c,t);return c.traceparent=r,c.span=e=>m(e,r),c.set_context=e=>"function"==typeof e?void(i.context=e(i.context)):void Object.assign(i.context,e),c.add_event=(e,t)=>{i.events.push({name:e,timestamp:Date.now(),attributes:t||{}})},c.end=()=>{null==i.end&&(i.end=Date.now())},c.__add_promise=e=>{p.add(e),e.then((()=>p.delete(e)))},c};return{span:e=>m(e,c)}}export{l as report,d as tracer};
1
+ import{measureFn as e}from"rian/utils";import{make as t,parse as n,SAMPLED_FLAG as a}from"tctx";import{is_sampled as o}from"tctx";var r={},s=new Set,p=new WeakMap;async function l(e){let t=[],n=new Map;for(let[e,a]of s){let o;n.has(a)?o=n.get(a).spans:n.set(a,{scope:a,spans:o=[]}),o.push(e),p.has(a)&&(t.push(...p.get(a)),p.delete(a))}return s.clear(),t.length&&await Promise.all(t),e({resource:r,scopeSpans:n.values()})}function c(e,t){return o(t)}function i(a,o){let r=o?.sampler??c,l={name:a},i=new Set;p.set(l,i);let d="string"==typeof o?.traceparent?n(o.traceparent):void 0,u=(n,a)=>{let o=a?a.child():t(),p="boolean"!=typeof r?r(n,o,l):r;o.flags;let c={id:o,parent:a,start:Date.now(),name:n,events:[],context:{}};p&&s.add([c,l]);let d=t=>e(d,t);return d.traceparent=o,d.span=e=>u(e,o),d.set_context=e=>"function"==typeof e?void(c.context=e(c.context)):void Object.assign(c.context,e),d.add_event=(e,t)=>{c.events.push({name:e,timestamp:Date.now(),attributes:t||{}})},d.end=()=>{null==c.end&&(c.end=Date.now())},d.__add_promise=e=>{i.add(e),e.then((()=>i.delete(e)))},d};return{span:e=>u(e,d)}}export{l as report,i as tracer};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rian",
3
- "version": "0.3.0-next.5",
3
+ "version": "0.3.0-next.6",
4
4
  "description": "Effective tracing for the edge and origins",
5
5
  "keywords": [
6
6
  "opentelemetry",