@uploadista/observability 0.1.2 → 0.1.3-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +64 -79
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +112 -127
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +16 -16
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
let e=require(`effect`),t=require(`@opentelemetry/exporter-logs-otlp-http`),n=require(`@opentelemetry/exporter-metrics-otlp-http`),r=require(`@opentelemetry/exporter-trace-otlp-http`),i=require(`@opentelemetry/sdk-logs`),a=require(`@opentelemetry/sdk-metrics`),o=require(`@opentelemetry/api`),s=require(`@opentelemetry/api-logs`),c=require(`@effect/opentelemetry`),l=require(`@opentelemetry/sdk-trace-base`);const u=e=>{if(!e||typeof e!=`object`)return`unknown_error`;let t=`code`in e?e.code:void 0,n=`name`in e?e.name:void 0,r=e instanceof Error?e.message.toLowerCase():``;return t===`NetworkError`||t===`ECONNRESET`||t===`ENOTFOUND`||t===`ETIMEDOUT`||r.indexOf(`network`)>=0||r.indexOf(`timeout`)>=0?`network_error`:t===`InvalidAccessKeyId`||t===`SignatureDoesNotMatch`||t===`TokenRefreshRequired`||t===`AuthenticationFailed`||n===`AuthenticationError`||r.indexOf(`authentication`)>=0||r.indexOf(`unauthorized`)>=0?`authentication_error`:t===`AccessDenied`||t===`AccountProblem`||t===`Forbidden`||n===`AuthorizationError`||r.indexOf(`forbidden`)>=0||r.indexOf(`permission`)>=0?`authorization_error`:t===`SlowDown`||t===`RequestTimeTooSkewed`||t===`TooManyRequests`||n===`ThrottlingError`||r.indexOf(`throttl`)>=0||r.indexOf(`rate limit`)>=0?`throttling_error`:t===`InternalError`||t===`ServiceUnavailable`||t===`InternalServerError`||n===`ServerError`||r.indexOf(`server error`)>=0||r.indexOf(`service unavailable`)>=0?`server_error`:t===`InvalidRequest`||t===`MalformedXML`||t===`RequestEntityTooLarge`||t===`BadRequest`||n===`ClientError`||r.indexOf(`bad request`)>=0||r.indexOf(`invalid`)>=0?`client_error`:`unknown_error`},ee=(e,t)=>e=>{if(t){let n=t(e);if(n!==null)return n}return u(e)},te=(t,n,r,i,a={},o=u)=>e.Effect.gen(function*(){let s=o(i);yield*n.uploadErrorsTotal.pipe(e.Metric.tagged(`operation`,r),e.Metric.tagged(`error_category`,s))(e.Effect.succeed(1));let c={storage_type:t,operation:r,error_category:s,error_type:typeof i,error_message:i instanceof Error?i.message:String(i),error_code:i&&typeof i==`object`&&`code`in i?i.code:void 0,error_name:i&&typeof i==`object`&&`name`in i?i.name:void 0,...a};yield*e.Effect.logError(`${t.toUpperCase()} ${r} failed`).pipe(e.Effect.annotateLogs(c))}),d=(e,t,n)=>{let r=ee(e,n);return(n,i,a={})=>te(e,t,n,i,a,r)};function f(){let e=typeof process<`u`?process.env.OTEL_EXPORTER_OTLP_HEADERS:void 0;if(!e)return;let t={},n=e.split(`,`);for(let e of n){let[n,...r]=e.split(`=`);n&&r.length>0&&(t[n.trim()]=r.join(`=`).trim())}return Object.keys(t).length>0?t:void 0}function p(e,t){if(t)return t;if(typeof process<`u`){let t;switch(e){case`traces`:t=process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT;break;case`metrics`:t=process.env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT;break;case`logs`:t=process.env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT;break}if(t)return t;if(process.env.OTEL_EXPORTER_OTLP_ENDPOINT)return process.env.OTEL_EXPORTER_OTLP_ENDPOINT}return`http://localhost:4318`}function ne(e={}){let t=p(`traces`,e.endpoint),n=e.headers??f(),i=e.timeoutMillis??3e4;return new r.OTLPTraceExporter({url:`${t}/v1/traces`,headers:n,timeoutMillis:i})}function re(e={}){let t=p(`metrics`,e.endpoint),r=e.headers??f(),i=e.timeoutMillis??3e4;return new n.OTLPMetricExporter({url:`${t}/v1/metrics`,headers:r,timeoutMillis:i})}function m(){if(typeof process<`u`){let e=process.env.UPLOADISTA_OBSERVABILITY_ENABLED;if(e!==void 0)return e.toLowerCase()!==`false`&&e!==`0`}return!0}function h(e=`uploadista`){return typeof process<`u`&&process.env.OTEL_SERVICE_NAME?process.env.OTEL_SERVICE_NAME:e}function ie(){if(typeof process>`u`)return{};let e=process.env.OTEL_RESOURCE_ATTRIBUTES;if(!e)return{};let t={},n=e.split(`,`);for(let e of n){let[n,...r]=e.split(`=`);n&&r.length>0&&(t[n.trim()]=r.join(`=`).trim())}return t}function ae(e={}){let n=p(`logs`,e.endpoint),r=e.headers??f(),i=e.timeoutMillis??3e4;return new t.OTLPLogExporter({url:`${n}/v1/logs`,headers:r,timeoutMillis:i})}function oe(e){if(e!==void 0)return e;if(typeof process<`u`&&process.env.OTEL_METRICS_EXPORT_INTERVAL){let e=Number.parseInt(process.env.OTEL_METRICS_EXPORT_INTERVAL,10);if(!Number.isNaN(e)&&e>0)return e}return 6e4}function se(e={}){return new a.MeterProvider({readers:[new a.PeriodicExportingMetricReader({exporter:re(e),exportIntervalMillis:oe(e.exportIntervalMillis),exportTimeoutMillis:e.exportTimeoutMillis??3e4})]})}function ce(e){if(e!==void 0)return e;if(typeof process<`u`&&process.env.OTEL_LOGS_EXPORT_INTERVAL){let e=Number.parseInt(process.env.OTEL_LOGS_EXPORT_INTERVAL,10);if(!Number.isNaN(e)&&e>0)return e}return 5e3}function le(e={}){let t=ae(e),n=ce(e.scheduledDelayMillis);return new i.LoggerProvider({processors:[new i.BatchLogRecordProcessor(t,{maxQueueSize:e.maxQueueSize??512,maxExportBatchSize:e.maxExportBatchSize??512,scheduledDelayMillis:n,exportTimeoutMillis:e.exportTimeoutMillis??3e4})]})}var g=class extends e.Context.Tag(`OtelLogger`)(){};function _(e){switch(e.toLowerCase()){case`debug`:case`trace`:return s.SeverityNumber.DEBUG;case`info`:return s.SeverityNumber.INFO;case`warning`:case`warn`:return s.SeverityNumber.WARN;case`error`:return s.SeverityNumber.ERROR;case`fatal`:case`critical`:return s.SeverityNumber.FATAL;default:return s.SeverityNumber.INFO}}function ue(e){return e<=s.SeverityNumber.DEBUG?`DEBUG`:e<=s.SeverityNumber.INFO?`INFO`:e<=s.SeverityNumber.WARN?`WARN`:e<=s.SeverityNumber.ERROR?`ERROR`:`FATAL`}function v(){let e=o.trace.getActiveSpan();if(!e)return{};let t=e.spanContext();return t.traceId===`00000000000000000000000000000000`?{}:{trace_id:t.traceId,span_id:t.spanId,trace_flags:String(t.traceFlags)}}function y(t={}){return e.Layer.scoped(g,e.Effect.gen(function*(){if(!m()){let{LoggerProvider:t}=yield*e.Effect.promise(()=>import(`@opentelemetry/sdk-logs`)),n=new t;return{logger:n.getLogger(h(`uploadista`)),provider:n}}let n=le(t),r=t.serviceName??h(`uploadista`),i=n.getLogger(r);return yield*e.Effect.addFinalizer(()=>e.Effect.promise(async()=>{try{await n.shutdown()}catch(e){console.warn(`Error shutting down LoggerProvider:`,e)}})),{logger:i,provider:n}}))}const de=y();function fe(e={}){return y(e)}const pe=y();function me(e={}){return y(e)}const he=y({serviceName:h(`uploadista-workers`)});function ge(e={}){return y({serviceName:h(`uploadista-workers`),...e})}const _e=t=>e.Logger.make(({logLevel:e,message:n,annotations:r})=>{let i=_(e.label);if(t!==void 0&&i<t)return;let a={...v()};for(let[e,t]of r)typeof t==`string`||typeof t==`number`||typeof t==`boolean`?a[e]=t:a[e]=String(t);(i>=s.SeverityNumber.ERROR?console.error:i>=s.SeverityNumber.WARN?console.warn:console.log)(`[${e.label}] ${String(n)}`,a)}),b=(t,n,r)=>e.Effect.gen(function*(){let{logger:e}=yield*g,i=_(t),a=v();e.emit({severityNumber:i,severityText:ue(i),body:n,attributes:{...a,...r}})}),ve=(e,t)=>b(`debug`,e,t),ye=(e,t)=>b(`info`,e,t),be=(e,t)=>b(`warn`,e,t),xe=(e,t)=>b(`error`,e,t),Se=(e,t)=>b(`fatal`,e,t);var x=class extends e.Context.Tag(`OtelMeter`)(){};function S(t={}){return e.Layer.scoped(x,e.Effect.gen(function*(){if(!m()){let{MeterProvider:t}=yield*e.Effect.promise(()=>import(`@opentelemetry/sdk-metrics`)),n=new t;return{meter:n.getMeter(h(`uploadista`)),provider:n}}let n=se(t),r=t.serviceName??h(`uploadista`),i=n.getMeter(r);return yield*e.Effect.addFinalizer(()=>e.Effect.promise(async()=>{try{await n.shutdown()}catch(e){console.warn(`Error shutting down MeterProvider:`,e)}})),{meter:i,provider:n}}))}const Ce=S();function we(e={}){return S(e)}const Te=S();function Ee(e={}){return S(e)}const De=S({serviceName:h(`uploadista-workers`)});function Oe(e={}){return S({serviceName:h(`uploadista-workers`),...e})}const ke=(t,n=1,r)=>e.Effect.gen(function*(){let{meter:e}=yield*x;e.createCounter(t).add(n,r)}),Ae=(t,n,r)=>e.Effect.gen(function*(){let{meter:e}=yield*x;e.createHistogram(t).record(n,r)}),je=(t,n,r)=>e.Effect.gen(function*(){let{meter:e}=yield*x;e.createObservableGauge(t,{description:t}).addCallback(e=>{e.observe(n(),r)})}),Me=e.Context.GenericTag(`TracingService`),Ne=t=>{let n=t?.serviceName??`uploadista-storage`;return e.Layer.succeed(Me,{serviceName:n})},C=e=>Ne({serviceName:`uploadista-${e}-store`}),w=(t,n,r)=>i=>i.pipe(e.Effect.withSpan(`${n}-${t}`,{attributes:{"storage.type":n,operation:t,...r}})),Pe=c.WebSdk.layer(()=>({resource:{serviceName:`uploadista-storage`},spanProcessor:new l.BatchSpanProcessor(new l.ConsoleSpanExporter)})),Fe=c.NodeSdk.layer(()=>({resource:{serviceName:`uploadista-storage`},spanProcessor:new l.BatchSpanProcessor(new l.ConsoleSpanExporter)})),Ie=c.WebSdk.layer(()=>({resource:{serviceName:`uploadista-storage-workers`},spanProcessor:new l.BatchSpanProcessor(new l.ConsoleSpanExporter)}));function T(e={}){return new l.BatchSpanProcessor(ne(),{maxQueueSize:e.maxQueueSize??512,maxExportBatchSize:e.maxExportBatchSize??512,scheduledDelayMillis:e.scheduledDelayMillis??5e3,exportTimeoutMillis:e.exportTimeoutMillis??3e4})}function E(e={}){let t=e.serviceName??h(`uploadista`),n=ie(),r=e.resourceAttributes??{};return{serviceName:t,...n,...r}}const Le=c.NodeSdk.layer(()=>m()?{resource:E(),spanProcessor:T()}:{resource:E()});function Re(e={}){return c.NodeSdk.layer(()=>m()?{resource:E(e),spanProcessor:T(e)}:{resource:E(e)})}const ze=c.WebSdk.layer(()=>m()?{resource:E(),spanProcessor:T()}:{resource:E()});function Be(e={}){return c.WebSdk.layer(()=>m()?{resource:E(e),spanProcessor:T(e)}:{resource:E(e)})}const Ve=c.WebSdk.layer(()=>{let e={serviceName:h(`uploadista-workers`)};return m()?{resource:E(e),spanProcessor:T(e)}:{resource:E(e)}});function He(e={}){return c.WebSdk.layer(()=>{let t={serviceName:h(`uploadista-workers`),...e};return m()?{resource:E(t),spanProcessor:T(t)}:{resource:E(t)}})}function Ue(){let e=o.trace.getActiveSpan();if(!e)return;let t=e.spanContext();return{traceId:t.traceId,spanId:t.spanId,traceFlags:t.traceFlags}}const We=e.Effect.gen(function*(){let t=yield*e.Effect.currentSpan.pipe(e.Effect.option);return e.Option.match(t,{onNone:()=>void 0,onSome:e=>({traceId:e.traceId,spanId:e.spanId,traceFlags:e.sampled?1:0})})});function Ge(t){return e.Tracer.externalSpan({traceId:t.traceId,spanId:t.spanId,sampled:t.traceFlags===1})}function Ke(t){return n=>{let r=e.Tracer.externalSpan({traceId:t.traceId,spanId:t.spanId,sampled:t.traceFlags===1});return n.pipe(e.Effect.provideService(e.Tracer.ParentSpan,r))}}function qe(){let e=o.trace.getActiveSpan();return e?e.spanContext().traceId!==`00000000000000000000000000000000`:!1}const Je=e.Layer.mergeAll(Le,Ce,de);function Ye(t={}){let n=t.serviceName??h(`uploadista`),r=t.resourceAttributes;return e.Layer.mergeAll(Re({serviceName:n,resourceAttributes:r,...t.traces}),we({serviceName:n,...t.metrics}),fe({serviceName:n,...t.logs}))}const Xe=e.Layer.mergeAll(ze,Te,pe);function Ze(t={}){let n=t.serviceName??h(`uploadista`),r=t.resourceAttributes;return e.Layer.mergeAll(Be({serviceName:n,resourceAttributes:r,...t.traces}),Ee({serviceName:n,...t.metrics}),me({serviceName:n,...t.logs}))}const Qe=e.Layer.mergeAll(Ve,De,he);function $e(t={}){let n=t.serviceName??h(`uploadista-workers`),r=t.resourceAttributes;return e.Layer.mergeAll(He({serviceName:n,resourceAttributes:r,...t.traces}),Oe({serviceName:n,...t.metrics}),ge({serviceName:n,...t.logs}))}function D(){return typeof process<`u`&&process.versions?.node?`node`:typeof navigator<`u`&&typeof window<`u`?`web`:`workers`}const et=e.Layer.unwrapEffect(e.Effect.sync(()=>{switch(D()){case`node`:return Je;case`web`:return Xe;case`workers`:return Qe}}));function tt(t={}){return e.Layer.unwrapEffect(e.Effect.sync(()=>{switch(D()){case`node`:return Ye(t);case`web`:return Ze(t);case`workers`:return $e(t)}}))}var O=class extends e.Context.Tag(`Observability`)(){},k=class extends e.Context.Tag(`StorageObservability`)(){},A=class extends e.Context.Tag(`UploadObservability`)(){},j=class extends e.Context.Tag(`FlowObservability`)(){};const nt=(t,n=!0)=>e.Layer.succeed(O,{serviceName:t,enabled:n}),M=(t,n,r=!0)=>e.Layer.succeed(k,{serviceName:`uploadista-${t}-store`,storageType:t,metrics:n,enabled:r}),N=(t=!0)=>e.Layer.succeed(A,{serviceName:`uploadista-upload-server`,enabled:t,metrics:{uploadCreated:e.Effect.void,uploadCompleted:e.Effect.void,uploadFailed:e.Effect.void,chunkUploaded:e.Effect.void}}),P=(t=!0)=>e.Layer.succeed(j,{serviceName:`uploadista-flow-engine`,enabled:t,metrics:{flowStarted:e.Effect.void,flowCompleted:e.Effect.void,flowFailed:e.Effect.void,nodeExecuted:e.Effect.void}}),rt=nt(`uploadista-disabled`,!1),it=e=>M(e,{},!1),at=N(!1),ot=P(!1),st=e.Effect.gen(function*(){let t=yield*e.Effect.serviceOption(O);return e.Option.match(t,{onNone:()=>!1,onSome:e=>e.enabled})}),ct=t=>e.Effect.gen(function*(){if(yield*st){let n=yield*t;return e.Option.some(n)}return e.Option.none()}),F=(t,n)=>e.Effect.log(t).pipe(e.Effect.annotateLogs(n)),I=(e,t,n)=>F(`Upload progress`,{storage_type:e,upload_id:t,uploaded_bytes:n.uploadedBytes,total_bytes:n.totalBytes,progress_percentage:Math.round(n.uploadedBytes/n.totalBytes*100),...n.partNumber&&{part_number:n.partNumber},...n.speed&&{upload_speed_bps:n.speed}}),L=(e,t,n,r)=>F(`${e.toUpperCase()} ${t}`,{storage_type:e,operation:t,upload_id:n,...r}),R=(e,t,n)=>{let r=n.throughputBps?n.throughputBps/(1024*1024):0;return F(`${e.toUpperCase()} upload completed`,{storage_type:e,upload_id:t,file_size_bytes:n.fileSize,file_size_mb:Math.round(n.fileSize/(1024*1024)*100)/100,total_duration_ms:n.totalDurationMs,total_duration_seconds:Math.round(n.totalDurationMs/1e3*100)/100,throughput_bps:n.throughputBps,throughput_mbps:Math.round(r*100)/100,...n.partsCount&&{parts_count:n.partsCount},...n.averagePartSize&&{average_part_size_bytes:n.averagePartSize,average_part_size_mb:Math.round(n.averagePartSize/(1024*1024)*100)/100},...n.retryCount&&{retry_count:n.retryCount}})},lt=t=>({uploadRequestsTotal:e.Metric.counter(`${t}_upload_requests_total`,{description:`Total number of upload requests for ${t}`}),uploadPartsTotal:e.Metric.counter(`${t}_upload_parts_total`,{description:`Total number of individual parts uploaded for ${t}`}),uploadSuccessTotal:e.Metric.counter(`${t}_upload_success_total`,{description:`Total number of successful uploads for ${t}`}),uploadErrorsTotal:e.Metric.counter(`${t}_upload_errors_total`,{description:`Total number of upload errors for ${t}`}),apiCallsTotal:e.Metric.counter(`${t}_api_calls_total`,{description:`Total number of API calls for ${t}`})}),ut=t=>({uploadDurationHistogram:e.Metric.histogram(`${t}_upload_duration_seconds`,e.MetricBoundaries.exponential({start:.01,factor:2,count:20}),`Duration of upload operations in seconds for ${t}`),partUploadDurationHistogram:e.Metric.histogram(`${t}_part_upload_duration_seconds`,e.MetricBoundaries.exponential({start:.001,factor:2,count:15}),`Duration of individual part uploads in seconds for ${t}`),fileSizeHistogram:e.Metric.histogram(`${t}_file_size_bytes`,e.MetricBoundaries.exponential({start:1024,factor:2,count:25}),`Size of uploaded files in bytes for ${t}`),partSizeHistogram:e.Metric.histogram(`${t}_part_size_bytes`,e.MetricBoundaries.linear({start:5242880,width:1048576,count:20}),`Size of upload parts in bytes for ${t}`)}),dt=t=>({activeUploadsGauge:e.Metric.gauge(`${t}_active_uploads`,{description:`Number of currently active uploads for ${t}`}),uploadThroughputGauge:e.Metric.gauge(`${t}_upload_throughput_bytes_per_second`,{description:`Current upload throughput in bytes per second for ${t}`})}),ft=t=>({uploadLatencySummary:e.Metric.summary({name:`${t}_upload_latency_seconds`,maxAge:`10 minutes`,maxSize:1e3,error:.01,quantiles:[.5,.9,.95,.99],description:`Upload latency percentiles for ${t}`})}),z=e=>({...lt(e),...ut(e),...dt(e),...ft(e)}),pt=t=>{let n=z(t),r={serviceName:`test-${t}-store`,storageType:t,metrics:n,enabled:!0};return e.Layer.succeed(k,r)},mt=()=>{let t={serviceName:`test-upload-server`,enabled:!0,metrics:{uploadCreated:e.Effect.void,uploadCompleted:e.Effect.void,uploadFailed:e.Effect.void,chunkUploaded:e.Effect.void}};return e.Layer.succeed(A,t)},ht=()=>{let t={serviceName:`test-flow-engine`,enabled:!0,metrics:{flowStarted:e.Effect.void,flowCompleted:e.Effect.void,flowFailed:e.Effect.void,nodeExecuted:e.Effect.void}};return e.Layer.succeed(j,t)},gt=t=>e.Effect.gen(function*(){let n=yield*t;return yield*e.Metric.snapshot,n}),_t=t=>e.Effect.gen(function*(){yield*e.Metric.snapshot;let n=yield*t;return yield*e.Metric.snapshot,n}),vt=(e=`test-storage`)=>({storageObservability:pt(e),uploadObservability:mt(),flowObservability:ht()}),yt=(t,n=`test-storage`)=>{let r=vt(n);return t.pipe(e.Effect.provide(r.storageObservability),e.Effect.provide(r.uploadObservability),e.Effect.provide(r.flowObservability))},B=(t,n,r)=>r.pipe(e.Effect.tap(()=>t.uploadRequestsTotal.pipe(e.Metric.tagged(`upload_id`,n))(e.Effect.succeed(1))),e.Effect.tapError(()=>t.uploadErrorsTotal.pipe(e.Metric.tagged(`upload_id`,n))(e.Effect.succeed(1))),e.Effect.tap(()=>t.uploadSuccessTotal.pipe(e.Metric.tagged(`upload_id`,n))(e.Effect.succeed(1)))),V=(t,n,r)=>r.pipe(e.Effect.tap(()=>t.apiCallsTotal.pipe(e.Metric.tagged(`operation`,n))(e.Effect.succeed(1)))),H=(t,n)=>e.Effect.gen(function*(){let r=yield*e.Effect.sync(()=>Date.now()),i=yield*n,a=((yield*e.Effect.sync(()=>Date.now()))-r)/1e3;return yield*t(e.Effect.succeed(a)),i}),bt=(t,n,r)=>r.pipe(e.Effect.tap(()=>t.fileSizeHistogram(e.Effect.succeed(n)))),xt=(t,n,r)=>r.pipe(e.Effect.tap(()=>t.partSizeHistogram(e.Effect.succeed(n)))),St=(t,n)=>n.pipe(e.Effect.tap(()=>t.activeUploadsGauge(e.Effect.succeed(1))),e.Effect.ensuring(t.activeUploadsGauge(e.Effect.succeed(-1)))),Ct=(t,n,r)=>e.Effect.gen(function*(){let i=yield*e.Effect.sync(()=>Date.now()),a=yield*r,o=((yield*e.Effect.sync(()=>Date.now()))-i)/1e3,s=o>0?n/o:0;return yield*t.uploadThroughputGauge(e.Effect.succeed(s)),a}),U=(e,t,n,r,i)=>{let a=r.pipe(n=>V(e,t,n),t=>B(e,n,t),t=>H(e.uploadDurationHistogram,t),t=>St(e,t));return i!==void 0&&(a=a.pipe(t=>bt(e,i,t),t=>Ct(e,i,t))),a},W=()=>({flowStartedTotal:e.Metric.counter(`flow_started_total`,{description:`Total number of flows started`}),flowCompletedTotal:e.Metric.counter(`flow_completed_total`,{description:`Total number of flows completed successfully`}),flowFailedTotal:e.Metric.counter(`flow_failed_total`,{description:`Total number of flows that failed`}),flowPausedTotal:e.Metric.counter(`flow_paused_total`,{description:`Total number of flows that were paused`}),flowResumedTotal:e.Metric.counter(`flow_resumed_total`,{description:`Total number of flows that were resumed`}),nodeExecutedTotal:e.Metric.counter(`node_executed_total`,{description:`Total number of nodes executed`}),nodeSuccessTotal:e.Metric.counter(`node_success_total`,{description:`Total number of nodes executed successfully`}),nodeFailedTotal:e.Metric.counter(`node_failed_total`,{description:`Total number of nodes that failed`}),nodeSkippedTotal:e.Metric.counter(`node_skipped_total`,{description:`Total number of nodes skipped (conditional)`}),flowDurationHistogram:e.Metric.histogram(`flow_duration_seconds`,e.MetricBoundaries.exponential({start:.1,factor:2,count:20}),`Duration of complete flow execution in seconds`),nodeDurationHistogram:e.Metric.histogram(`node_duration_seconds`,e.MetricBoundaries.exponential({start:.01,factor:2,count:18}),`Duration of individual node execution in seconds`),flowNodeCountHistogram:e.Metric.histogram(`flow_node_count`,e.MetricBoundaries.linear({start:1,width:5,count:20}),`Number of nodes in a flow`),parallelNodesHistogram:e.Metric.histogram(`parallel_nodes_count`,e.MetricBoundaries.linear({start:1,width:2,count:15}),`Number of nodes executed in parallel`),activeFlowsGauge:e.Metric.gauge(`active_flows`,{description:`Number of currently active flows`}),activeNodesGauge:e.Metric.gauge(`active_nodes`,{description:`Number of currently executing nodes`}),pausedFlowsGauge:e.Metric.gauge(`paused_flows`,{description:`Number of currently paused flows`}),flowLatencySummary:e.Metric.summary({name:`flow_latency_seconds`,maxAge:`10 minutes`,maxSize:1e3,error:.01,quantiles:[.5,.9,.95,.99],description:`Flow execution latency percentiles`}),nodeLatencySummary:e.Metric.summary({name:`node_latency_seconds`,maxAge:`10 minutes`,maxSize:1e3,error:.01,quantiles:[.5,.9,.95,.99],description:`Node execution latency percentiles`}),circuitBreakerOpenTotal:e.Metric.counter(`circuit_breaker_open_total`,{description:`Total number of times circuit breakers transitioned to open state`}),circuitBreakerCloseTotal:e.Metric.counter(`circuit_breaker_close_total`,{description:`Total number of times circuit breakers transitioned to closed state`}),circuitBreakerRejectedTotal:e.Metric.counter(`circuit_breaker_rejected_total`,{description:`Total number of requests rejected because circuit breaker is open`}),circuitBreakerHalfOpenTotal:e.Metric.counter(`circuit_breaker_half_open_total`,{description:`Total number of times circuit breakers transitioned to half-open state`}),circuitBreakerStateGauge:e.Metric.gauge(`circuit_breaker_state`,{description:`Current circuit breaker state (0=closed, 1=open, 2=half-open)`}),circuitBreakerFailuresGauge:e.Metric.gauge(`circuit_breaker_failures`,{description:`Number of failures currently in the circuit breaker sliding window`})}),wt=W(),G=e=>{if(!e||typeof e!=`object`)return`unknown_flow_error`;let t=`code`in e?e.code:void 0;if(!t)return`unknown_flow_error`;switch(t){case`FLOW_VALIDATION_ERROR`:case`FLOW_INVALID_INPUT`:case`FLOW_INVALID_OUTPUT`:return`flow_validation_error`;case`FLOW_NODE_NOT_FOUND`:case`FLOW_EDGE_INVALID`:return`node_not_found_error`;case`FLOW_NODE_EXECUTION_FAILED`:case`FLOW_NODE_ERROR`:return`node_execution_error`;case`FLOW_TIMEOUT`:return`flow_timeout_error`;case`FLOW_CANCELLED`:case`ABORTED`:return`flow_cancelled_error`;default:return`unknown_flow_error`}},Tt=t=>{let n=W(),r=G(t);return e.Effect.gen(function*(){yield*e.Metric.increment(n.flowFailedTotal),yield*e.Effect.logError(`Flow execution failed`).pipe(e.Effect.annotateLogs({"error.category":r,"error.message":String(t)}))})},Et=(t,n,r)=>{let i=W(),a=G(r);return e.Effect.gen(function*(){yield*e.Metric.increment(i.nodeFailedTotal),yield*e.Effect.logError(`Node execution failed`).pipe(e.Effect.annotateLogs({"node.id":t,"node.type":n,"error.category":a,"error.message":String(r)}))})},Dt=(t=`uploadista-flow-engine`)=>{let n=W();return e.Layer.succeed(j,{serviceName:t,enabled:!0,metrics:{flowStarted:e.Metric.increment(n.flowStartedTotal),flowCompleted:e.Metric.increment(n.flowCompletedTotal),flowFailed:e.Metric.increment(n.flowFailedTotal),nodeExecuted:e.Metric.increment(n.nodeExecutedTotal)}})},Ot=Dt(),kt=P(!1),At=e.Effect.gen(function*(){return(yield*j).metrics}),jt=t=>{let n=W();return e.Effect.gen(function*(){let r=Date.now(),i=yield*t,a=(Date.now()-r)/1e3;return yield*e.Metric.update(n.flowDurationHistogram,a),yield*e.Metric.update(n.flowLatencySummary,a),i}).pipe(e.Effect.withSpan(`flow-execution`))},Mt=(t,n,r,i)=>{let a=W(),o=i??n;return e.Effect.gen(function*(){let t=Date.now(),n=yield*r,i=(Date.now()-t)/1e3;return yield*e.Metric.update(a.nodeDurationHistogram,i),yield*e.Metric.update(a.nodeLatencySummary,i),n}).pipe(e.Effect.withSpan(`node-${o}`,{attributes:{"node.id":t,"node.type":n,"node.type_id":i??n}}))},Nt=t=>{let n=W();return e.Effect.gen(function*(){return yield*e.Metric.increment(n.activeFlowsGauge),yield*e.Effect.acquireUseRelease(e.Effect.void,()=>t,()=>e.Metric.set(n.activeFlowsGauge,-1))})},Pt=t=>{let n=W();return e.Effect.gen(function*(){return yield*e.Metric.increment(n.activeNodesGauge),yield*e.Effect.acquireUseRelease(e.Effect.void,()=>t,()=>e.Metric.set(n.activeNodesGauge,-1))})},Ft=()=>{let t={serviceName:`test-flow-engine`,enabled:!0,metrics:{flowStarted:e.Effect.void,flowCompleted:e.Effect.void,flowFailed:e.Effect.void,nodeExecuted:e.Effect.void}};return e.Layer.succeed(j,t)},It=t=>t.pipe(e.Effect.provide(Ft())),Lt=(t,n)=>r=>r.pipe(e.Effect.withSpan(`flow-${t}`,{attributes:{"flow.operation":t,...n}})),Rt=t=>e.Effect.annotateCurrentSpan({"flow.id":t.flowId??`unknown`,"flow.name":t.flowName??`unknown`,"flow.job_id":t.jobId??`unknown`,"flow.node_count":t.nodeCount?.toString()??`0`,"flow.storage_id":t.storageId??`unknown`}),zt=t=>e.Effect.annotateCurrentSpan({"node.id":t.nodeId,"node.type":t.nodeType,"node.name":t.nodeName??`unknown`,"node.flow_id":t.flowId??`unknown`,"node.job_id":t.jobId??`unknown`}),Bt=t=>e.Effect.annotateCurrentSpan({"execution.order":t.executionOrder?.join(`,`)??``,"execution.current_index":t.currentIndex?.toString()??`0`,"execution.total_nodes":t.totalNodes?.toString()??`0`,"execution.parallel_count":t.parallelCount?.toString()??`0`}),Vt=(t,n,r)=>i=>i.pipe(e.Effect.withSpan(`${t}-${n}`,{attributes:{"operation.domain":t,"operation.name":n,...r}})),Ht=t=>e.Effect.annotateCurrentSpan({"operation.domain":t.domain,"operation.name":t.operation,"operation.input_size":t.inputSize?.toString()??`unknown`,"operation.output_size":t.outputSize?.toString()??`unknown`}),Ut=(t,n,r)=>i=>i.pipe(e.Effect.withSpan(`circuit-breaker-${t}`,{attributes:{"circuit_breaker.node_type":t,"circuit_breaker.state":n,...r}})),Wt=t=>e.Effect.annotateCurrentSpan({"circuit_breaker.node_type":t.nodeType,"circuit_breaker.state":t.state,"circuit_breaker.failure_count":t.failureCount?.toString()??`0`,"circuit_breaker.failure_threshold":t.failureThreshold?.toString()??`5`,"circuit_breaker.reset_timeout":t.resetTimeout?.toString()??`30000`,"circuit_breaker.decision":t.decision??`unknown`}),Gt=t=>e.Effect.annotateCurrentSpan({"circuit_breaker.event":`state_change`,"circuit_breaker.node_type":t.nodeType,"circuit_breaker.previous_state":t.previousState,"circuit_breaker.new_state":t.newState,"circuit_breaker.failure_count":t.failureCount?.toString()??`0`,"circuit_breaker.timestamp":t.timestamp?.toString()??Date.now().toString()});var Kt=class extends e.Context.Tag(`MetricsService`)(){};const qt=e.Layer.succeed(Kt,{recordUpload:(t,n)=>e.Effect.void}),K=`azure`,q=z(K),Jt=C(K),Yt=e=>{if(!e||typeof e!=`object`)return null;let t=`code`in e?e.code:`statusCode`in e?e.statusCode:void 0;if(!t)return null;switch(t){case`BlobNotFound`:case`ContainerNotFound`:case`InvalidBlobOrBlock`:return`client_error`;case`ContainerAlreadyExists`:case`BlobAlreadyExists`:return`client_error`;case`InvalidBlockId`:case`InvalidBlockList`:case`InvalidBlobType`:return`client_error`;case`RequestBodyTooLarge`:case`InvalidHeaderValue`:return`client_error`;case`AuthenticationFailed`:case`InvalidAuthenticationInfo`:return`authentication_error`;case`AccountIsDisabled`:return`authorization_error`;case`InsufficientAccountPermissions`:return`authorization_error`;case`OperationTimedOut`:case`ServerBusy`:case`InternalError`:return`server_error`;default:if(typeof t==`number`){if(t>=500)return`server_error`;if(t===429)return`throttling_error`;if(t===403)return`authorization_error`;if(t===401)return`authentication_error`;if(t>=400)return`client_error`}return null}},Xt=d(K,q,Yt),Zt=e.Layer.mergeAll(Jt),Qt=(e,t)=>B(q,e,t),$t=(e,t)=>V(q,e,t),en=H,tn=(e,t,n,r)=>U(q,e,t,n,r),nn=(e,t)=>n=>w(e,K,t)(n),rn=L.bind(null,K),an=I.bind(null,K),on=R.bind(null,K),sn=F,{uploadRequestsTotal:cn,uploadPartsTotal:ln,uploadSuccessTotal:un,uploadErrorsTotal:dn,apiCallsTotal:fn,uploadDurationHistogram:pn,partUploadDurationHistogram:mn,fileSizeHistogram:hn,partSizeHistogram:gn,activeUploadsGauge:_n,uploadThroughputGauge:vn,uploadLatencySummary:yn}=q,J=`filesystem`,Y=z(J),bn=C(J),xn=e=>{if(!e||typeof e!=`object`)return null;let t=`code`in e?e.code:void 0;if(!t)return null;switch(t){case`ENOENT`:case`ENOTDIR`:return`client_error`;case`EEXIST`:return`client_error`;case`EISDIR`:return`client_error`;case`EINVAL`:case`ENAMETOOLONG`:return`client_error`;case`EACCES`:case`EPERM`:return`authorization_error`;case`ENOSPC`:case`EDQUOT`:return`server_error`;case`EIO`:case`EROFS`:case`EMFILE`:case`ENFILE`:return`server_error`;case`EBUSY`:return`throttling_error`;default:return null}},Sn=d(J,Y,xn),Cn=e.Layer.mergeAll(bn),wn=(e,t)=>B(Y,e,t),Tn=(e,t)=>V(Y,e,t),En=H,Dn=(e,t,n,r)=>U(Y,e,t,n,r),On=(e,t)=>n=>w(e,J,t)(n),kn=L.bind(null,J),An=I.bind(null,J),jn=R.bind(null,J),Mn=F,{uploadRequestsTotal:Nn,uploadPartsTotal:Pn,uploadSuccessTotal:Fn,uploadErrorsTotal:In,apiCallsTotal:Ln,uploadDurationHistogram:Rn,partUploadDurationHistogram:zn,fileSizeHistogram:Bn,partSizeHistogram:Vn,activeUploadsGauge:Hn,uploadThroughputGauge:Un,uploadLatencySummary:Wn}=Y,Gn=`gcs`,X=z(`gcs`),Kn=C(`gcs`),qn=e=>{if(!e||typeof e!=`object`)return null;let t=`code`in e?e.code:`status`in e?e.status:void 0;if(!t)return null;switch(t){case`NoSuchBucket`:case`NoSuchKey`:case`NoSuchUpload`:return`client_error`;case`BucketAlreadyOwnedByYou`:case`BucketNotEmpty`:return`client_error`;case`InvalidBucketName`:case`InvalidArgument`:case`InvalidPart`:case`InvalidPartOrder`:return`client_error`;case`EntityTooSmall`:case`EntityTooLarge`:return`client_error`;case`MalformedPolicy`:return`client_error`;case`Unauthorized`:case`AuthenticationRequired`:return`authentication_error`;case`Forbidden`:case`AccessDenied`:return`authorization_error`;case`TooManyRequests`:case`RateLimitExceeded`:return`throttling_error`;case`InternalError`:case`ServiceUnavailable`:case`BackendError`:return`server_error`;default:if(typeof t==`number`){if(t>=500)return`server_error`;if(t===429)return`throttling_error`;if(t===403)return`authorization_error`;if(t===401)return`authentication_error`;if(t>=400)return`client_error`}return null}},Jn=d(`gcs`,X,qn),Yn=e.Layer.mergeAll(Kn),Xn=(e,t)=>B(X,e,t),Zn=(e,t)=>V(X,e,t),Qn=H,$n=(e,t,n,r)=>U(X,e,t,n,r),er=(e,t)=>n=>w(e,`gcs`,t)(n),tr=L.bind(null,`gcs`),nr=I.bind(null,`gcs`),rr=R.bind(null,`gcs`),ir=F,{uploadRequestsTotal:ar,uploadPartsTotal:or,uploadSuccessTotal:sr,uploadErrorsTotal:cr,apiCallsTotal:lr,uploadDurationHistogram:ur,partUploadDurationHistogram:dr,fileSizeHistogram:fr,partSizeHistogram:pr,activeUploadsGauge:mr,uploadThroughputGauge:hr,uploadLatencySummary:gr}=X,_r=`s3`,Z=z(`s3`),vr=C(`s3`),yr=e=>{if(!e||typeof e!=`object`)return null;let t=`code`in e?e.code:void 0;if(!t)return null;switch(t){case`NoSuchKey`:case`NoSuchBucket`:case`NoSuchUpload`:return`client_error`;case`BucketAlreadyExists`:case`BucketNotEmpty`:return`client_error`;case`InvalidBucketName`:case`InvalidPart`:case`InvalidPartOrder`:return`client_error`;case`EntityTooSmall`:case`EntityTooLarge`:return`client_error`;case`ExpiredToken`:case`TokenRefreshRequired`:return`authentication_error`;case`RequestTimeTooSkewed`:case`SlowDown`:return`throttling_error`;default:return null}},br=d(`s3`,Z,yr),xr=e.Layer.mergeAll(vr),Sr=(e,t)=>B(Z,e,t),Cr=(e,t)=>V(Z,e,t),wr=H,Tr=(e,t,n,r)=>U(Z,e,t,n,r),Er=(e,t)=>n=>w(e,`s3`,t)(n),Dr=L.bind(null,`s3`),Or=I.bind(null,`s3`),kr=R.bind(null,`s3`),Ar=F,{uploadRequestsTotal:jr,uploadPartsTotal:Mr,uploadSuccessTotal:Nr,uploadErrorsTotal:Pr,apiCallsTotal:Fr,uploadDurationHistogram:Ir,partUploadDurationHistogram:Lr,fileSizeHistogram:Rr,partSizeHistogram:zr,activeUploadsGauge:Br,uploadThroughputGauge:Vr,uploadLatencySummary:Hr}=Z,Q=e=>{if(!e||typeof e!=`object`)return`unknown_error`;let t=`code`in e?e.code:void 0,n=`name`in e?e.name:void 0,r=e instanceof Error?e.message.toLowerCase():``;return t===`ABORTED`||n===`AbortError`||r.includes(`abort`)?`abort_error`:t===`FILE_TOO_LARGE`||t===`LIMIT_FILE_SIZE`||t===`RequestEntityTooLarge`||r.includes(`too large`)||r.includes(`size limit`)||r.includes(`max size`)?`size_limit_error`:t===`INVALID_FILE`||t===`INVALID_METADATA`||t===`VALIDATION_ERROR`||r.includes(`validation`)||r.includes(`invalid`)?`validation_error`:t===`NetworkError`||t===`ECONNRESET`||t===`ENOTFOUND`||t===`ETIMEDOUT`||r.includes(`network`)||r.includes(`timeout`)?`network_error`:t===`UNAUTHORIZED`||t===`AuthenticationFailed`||n===`AuthenticationError`||r.includes(`authentication`)||r.includes(`unauthorized`)?`authentication_error`:t===`FORBIDDEN`||t===`AccessDenied`||n===`AuthorizationError`||r.includes(`forbidden`)||r.includes(`permission`)?`authorization_error`:t===`FILE_WRITE_ERROR`||t===`STORAGE_ERROR`||r.includes(`storage`)||r.includes(`write error`)?`storage_error`:`unknown_error`},Ur=(t,n,r,i={})=>e.Effect.gen(function*(){let a=Q(r);yield*t.uploadFailedTotal.pipe(e.Metric.tagged(`operation`,n),e.Metric.tagged(`error_category`,a))(e.Effect.succeed(1));let o={operation:n,error_category:a,error_type:typeof r,error_message:r instanceof Error?r.message:String(r),error_code:r&&typeof r==`object`&&`code`in r?String(r.code):void 0,error_name:r&&typeof r==`object`&&`name`in r?String(r.name):void 0,...i};yield*e.Effect.logError(`Upload ${n} failed`).pipe(e.Effect.annotateLogs(o))}),Wr=e=>t=>{if(e){let n=e(t);if(n!==null)return n}return Q(t)},$=()=>({uploadCreatedTotal:e.Metric.counter(`upload_created_total`,{description:`Total number of uploads created`}),uploadCompletedTotal:e.Metric.counter(`upload_completed_total`,{description:`Total number of uploads completed successfully`}),uploadFailedTotal:e.Metric.counter(`upload_failed_total`,{description:`Total number of uploads that failed`}),chunkUploadedTotal:e.Metric.counter(`chunk_uploaded_total`,{description:`Total number of chunks uploaded`}),uploadFromUrlTotal:e.Metric.counter(`upload_from_url_total`,{description:`Total number of URL-based uploads`}),uploadFromUrlSuccessTotal:e.Metric.counter(`upload_from_url_success_total`,{description:`Total number of successful URL-based uploads`}),uploadFromUrlFailedTotal:e.Metric.counter(`upload_from_url_failed_total`,{description:`Total number of failed URL-based uploads`}),uploadDurationHistogram:e.Metric.histogram(`upload_duration_seconds`,e.MetricBoundaries.exponential({start:.01,factor:2,count:20}),`Duration of complete upload operations in seconds`),chunkUploadDurationHistogram:e.Metric.histogram(`chunk_upload_duration_seconds`,e.MetricBoundaries.exponential({start:.001,factor:2,count:15}),`Duration of individual chunk uploads in seconds`),uploadFileSizeHistogram:e.Metric.histogram(`upload_file_size_bytes`,e.MetricBoundaries.exponential({start:1024,factor:2,count:25}),`Size of uploaded files in bytes`),chunkSizeHistogram:e.Metric.histogram(`chunk_size_bytes`,e.MetricBoundaries.linear({start:262144,width:262144,count:20}),`Size of uploaded chunks in bytes`),activeUploadsGauge:e.Metric.gauge(`active_uploads`,{description:`Number of currently active uploads`}),uploadThroughputGauge:e.Metric.gauge(`upload_throughput_bytes_per_second`,{description:`Current upload throughput in bytes per second`}),uploadLatencySummary:e.Metric.summary({name:`upload_latency_seconds`,maxAge:`10 minutes`,maxSize:1e3,error:.01,quantiles:[.5,.9,.95,.99],description:`Upload operation latency percentiles`}),chunkLatencySummary:e.Metric.summary({name:`chunk_latency_seconds`,maxAge:`10 minutes`,maxSize:1e3,error:.01,quantiles:[.5,.9,.95,.99],description:`Chunk upload latency percentiles`})}),Gr=$(),Kr=(t=`uploadista-upload-server`)=>{let n=$();return e.Layer.succeed(A,{serviceName:t,enabled:!0,metrics:{uploadCreated:e.Effect.succeed(n.uploadCreatedTotal).pipe(e.Effect.flatMap(t=>e.Metric.increment(t))),uploadCompleted:e.Effect.succeed(n.uploadCompletedTotal).pipe(e.Effect.flatMap(t=>e.Metric.increment(t))),uploadFailed:e.Effect.succeed(n.uploadFailedTotal).pipe(e.Effect.flatMap(t=>e.Metric.increment(t))),chunkUploaded:e.Effect.succeed(n.chunkUploadedTotal).pipe(e.Effect.flatMap(t=>e.Metric.increment(t)))}})},qr=Kr(),Jr=N(!1),Yr=e.Effect.gen(function*(){return(yield*A).metrics}),Xr=t=>{let n=$();return e.Effect.gen(function*(){let r=Date.now(),i=yield*t,a=(Date.now()-r)/1e3;return yield*e.Metric.update(n.uploadDurationHistogram,a),i}).pipe(e.Effect.withSpan(`upload-operation`))},Zr=t=>{let n=$();return e.Effect.gen(function*(){let r=Date.now(),i=yield*t,a=(Date.now()-r)/1e3;return yield*e.Metric.update(n.chunkUploadDurationHistogram,a),i}).pipe(e.Effect.withSpan(`chunk-upload`))},Qr=e.Layer.succeed(A,{serviceName:`uploadista-upload-server-test`,enabled:!0,metrics:{uploadCreated:e.Effect.void,uploadCompleted:e.Effect.void,uploadFailed:e.Effect.void,chunkUploaded:e.Effect.void}}),$r=()=>$(),ei=()=>{let e=$r(),t=[`uploadCreatedTotal`,`uploadCompletedTotal`,`uploadFailedTotal`,`chunkUploadedTotal`,`uploadFromUrlTotal`,`uploadFromUrlSuccessTotal`,`uploadFromUrlFailedTotal`,`uploadDurationHistogram`,`chunkUploadDurationHistogram`,`uploadFileSizeHistogram`,`chunkSizeHistogram`,`activeUploadsGauge`,`uploadThroughputGauge`,`uploadLatencySummary`,`chunkLatencySummary`].filter(t=>!(t in e));if(t.length>0)throw Error(`Missing required metrics: ${t.join(`, `)}`);return!0},ti=(t,n)=>r=>r.pipe(e.Effect.withSpan(`upload-${t}`,{attributes:{"upload.operation":t,...n}})),ni=t=>e.Effect.annotateCurrentSpan({"upload.id":t.uploadId??`unknown`,"upload.file_name":t.fileName??`unknown`,"upload.file_size":t.fileSize?.toString()??`0`,"upload.storage_id":t.storageId??`unknown`,"upload.mime_type":t.mimeType??`unknown`}),ri=t=>e.Effect.annotateCurrentSpan({"chunk.upload_id":t.uploadId,"chunk.size":t.chunkSize.toString(),"chunk.offset":t.offset.toString(),"chunk.total_size":t.totalSize?.toString()??`0`,"chunk.progress":t.totalSize&&t.totalSize>0?(t.offset/t.totalSize*100).toFixed(2):`0`});exports.AzureObservabilityLayer=Zt,exports.AzureTracingLayer=Jt,Object.defineProperty(exports,`BatchLogRecordProcessor`,{enumerable:!0,get:function(){return i.BatchLogRecordProcessor}}),exports.FilesystemObservabilityLayer=Cn,exports.FilesystemTracingLayer=bn,exports.FlowObservability=j,exports.FlowObservabilityDisabled=ot,exports.FlowObservabilityLive=Ot,exports.GCSObservabilityLayer=Yn,exports.GCSTracingLayer=Kn,Object.defineProperty(exports,`LoggerProvider`,{enumerable:!0,get:function(){return i.LoggerProvider}}),Object.defineProperty(exports,`MeterProvider`,{enumerable:!0,get:function(){return a.MeterProvider}}),exports.MetricsService=Kt,exports.NoOpMetricsServiceLive=qt,exports.NodeSdkLive=Fe,Object.defineProperty(exports,`OTLPLogExporter`,{enumerable:!0,get:function(){return t.OTLPLogExporter}}),Object.defineProperty(exports,`OTLPMetricExporter`,{enumerable:!0,get:function(){return n.OTLPMetricExporter}}),exports.Observability=O,exports.ObservabilityDisabled=rt,exports.OtelLogger=g,exports.OtelMeter=x,exports.OtlpAutoSdkLive=et,exports.OtlpFullObservabilityNodeSdkLive=Je,exports.OtlpFullObservabilityWebSdkLive=Xe,exports.OtlpFullObservabilityWorkersSdkLive=Qe,exports.OtlpLogsNodeSdkLive=de,exports.OtlpLogsWebSdkLive=pe,exports.OtlpLogsWorkersSdkLive=he,exports.OtlpMetricsNodeSdkLive=Ce,exports.OtlpMetricsWebSdkLive=Te,exports.OtlpMetricsWorkersSdkLive=De,exports.OtlpNodeSdkLive=Le,exports.OtlpWebSdkLive=ze,exports.OtlpWorkersSdkLive=Ve,Object.defineProperty(exports,`PeriodicExportingMetricReader`,{enumerable:!0,get:function(){return a.PeriodicExportingMetricReader}}),exports.S3ObservabilityLayer=xr,exports.S3TracingLayer=vr,Object.defineProperty(exports,`SeverityNumber`,{enumerable:!0,get:function(){return s.SeverityNumber}}),exports.StorageObservability=k,exports.StorageObservabilityDisabled=it,exports.TracingService=Me,exports.UploadObservability=A,exports.UploadObservabilityDisabled=at,exports.UploadObservabilityLive=qr,exports.UploadObservabilityTest=Qr,exports.WebSdkLive=Pe,exports.WorkersSdkLive=Ie,exports.annotateCircuitBreakerStateChange=Gt,exports.azureActiveUploadsGauge=_n,exports.azureApiCallsTotal=fn,exports.azureFileSizeHistogram=hn,exports.azureMetrics=q,exports.azurePartSizeHistogram=gn,exports.azurePartUploadDurationHistogram=mn,exports.azureUploadDurationHistogram=pn,exports.azureUploadErrorsTotal=dn,exports.azureUploadLatencySummary=yn,exports.azureUploadPartsTotal=ln,exports.azureUploadRequestsTotal=cn,exports.azureUploadSuccessTotal=un,exports.azureUploadThroughputGauge=vn,exports.captureMetrics=gt,exports.captureTraceContext=Ue,exports.captureTraceContextEffect=We,exports.classifyFlowError=G,exports.classifyStorageError=u,exports.classifyUploadError=Q,exports.createExternalSpan=Ge,exports.createFlowMetrics=W,exports.createGauge=je,exports.createOtlpAutoSdkLayer=tt,exports.createOtlpEffectLogger=_e,exports.createOtlpFullObservabilityNodeSdkLayer=Ye,exports.createOtlpFullObservabilityWebSdkLayer=Ze,exports.createOtlpFullObservabilityWorkersSdkLayer=$e,exports.createOtlpLogExporter=ae,exports.createOtlpLoggerProvider=le,exports.createOtlpLogsNodeSdkLayer=fe,exports.createOtlpLogsWebSdkLayer=me,exports.createOtlpLogsWorkersSdkLayer=ge,exports.createOtlpMeterProvider=se,exports.createOtlpMetricExporter=re,exports.createOtlpMetricsNodeSdkLayer=we,exports.createOtlpMetricsWebSdkLayer=Ee,exports.createOtlpMetricsWorkersSdkLayer=Oe,exports.createOtlpNodeSdkLayer=Re,exports.createOtlpTraceExporter=ne,exports.createOtlpWebSdkLayer=Be,exports.createOtlpWorkersSdkLayer=He,exports.createStorageErrorClassifier=ee,exports.createStorageErrorTracker=d,exports.createStorageMetrics=z,exports.createStorageTracingLayer=C,exports.createTestFixture=vt,exports.createTracingLayer=Ne,exports.createUploadEngineMetrics=$,exports.createUploadErrorClassifier=Wr,exports.createUploadGauges=dt,exports.createUploadHistograms=ut,exports.createUploadMetrics=lt,exports.createUploadSummaries=ft,exports.detectEnvironment=D,exports.emitLog=b,exports.filesystemActiveUploadsGauge=Hn,exports.filesystemApiCallsTotal=Ln,exports.filesystemFileSizeHistogram=Bn,exports.filesystemMetrics=Y,exports.filesystemPartSizeHistogram=Vn,exports.filesystemPartUploadDurationHistogram=zn,exports.filesystemUploadDurationHistogram=Rn,exports.filesystemUploadErrorsTotal=In,exports.filesystemUploadLatencySummary=Wn,exports.filesystemUploadPartsTotal=Pn,exports.filesystemUploadRequestsTotal=Nn,exports.filesystemUploadSuccessTotal=Fn,exports.filesystemUploadThroughputGauge=Un,exports.flowMetrics=wt,exports.gcsActiveUploadsGauge=mr,exports.gcsApiCallsTotal=lr,exports.gcsFileSizeHistogram=fr,exports.gcsMetrics=X,exports.gcsPartSizeHistogram=pr,exports.gcsPartUploadDurationHistogram=dr,exports.gcsUploadDurationHistogram=ur,exports.gcsUploadErrorsTotal=cr,exports.gcsUploadLatencySummary=gr,exports.gcsUploadPartsTotal=or,exports.gcsUploadRequestsTotal=ar,exports.gcsUploadSuccessTotal=sr,exports.gcsUploadThroughputGauge=hr,exports.getFlowMetrics=At,exports.getLogsExportInterval=ce,exports.getMetricsExportInterval=oe,exports.getOtlpEndpoint=p,exports.getServiceName=h,exports.getTestMetrics=$r,exports.getTraceContext=v,exports.getUploadMetrics=Yr,exports.hasActiveTraceContext=qe,exports.isObservabilityEnabled=st,exports.isOtlpExportEnabled=m,exports.logAzureContext=sn,exports.logAzureOperation=rn,exports.logAzureUploadCompletion=on,exports.logAzureUploadProgress=an,exports.logDebug=ve,exports.logError=xe,exports.logFatal=Se,exports.logFilesystemContext=Mn,exports.logFilesystemOperation=kn,exports.logFilesystemUploadCompletion=jn,exports.logFilesystemUploadProgress=An,exports.logGCSContext=ir,exports.logGCSOperation=tr,exports.logGCSUploadCompletion=rr,exports.logGCSUploadProgress=nr,exports.logInfo=ye,exports.logS3Context=Ar,exports.logS3Operation=Dr,exports.logS3UploadCompletion=kr,exports.logS3UploadProgress=Or,exports.logStorageOperation=L,exports.logUploadCompletion=R,exports.logUploadProgress=I,exports.logWarn=be,exports.logWithContext=F,exports.makeFlowObservabilityLayer=P,exports.makeFlowObservabilityLive=Dt,exports.makeObservabilityLayer=nt,exports.makeStorageObservabilityLayer=M,exports.makeTestFlowObservability=ht,exports.makeTestFlowObservabilityUtil=Ft,exports.makeTestStorageObservability=pt,exports.makeTestUploadObservability=mt,exports.makeUploadObservabilityLayer=N,exports.makeUploadObservabilityLive=Kr,exports.mapLogLevelToSeverity=_,exports.parseOtlpHeaders=f,exports.parseResourceAttributes=ie,exports.recordCounter=ke,exports.recordHistogram=Ae,exports.runWithTestFlowObservability=It,exports.runWithTestObservability=yt,exports.s3ActiveUploadsGauge=Br,exports.s3ApiCallsTotal=Fr,exports.s3FileSizeHistogram=Rr,exports.s3Metrics=Z,exports.s3PartSizeHistogram=zr,exports.s3PartUploadDurationHistogram=Lr,exports.s3UploadDurationHistogram=Ir,exports.s3UploadErrorsTotal=Pr,exports.s3UploadLatencySummary=Hr,exports.s3UploadPartsTotal=Mr,exports.s3UploadRequestsTotal=jr,exports.s3UploadSuccessTotal=Nr,exports.s3UploadThroughputGauge=Vr,exports.severityToText=ue,exports.trackActiveFlow=Nt,exports.trackActiveNode=Pt,exports.trackAzureError=Xt,exports.trackFileSize=bt,exports.trackFilesystemError=Sn,exports.trackFlowError=Tt,exports.trackGCSError=Jn,exports.trackNodeError=Et,exports.trackPartSize=xt,exports.trackS3Error=br,exports.trackStorageError=te,exports.trackUploadError=Ur,exports.uploadEngineMetrics=Gr,exports.validateMetricsExist=ei,exports.whenObservabilityEnabled=ct,exports.withActiveUploadTracking=St,exports.withApiMetrics=V,exports.withAzureApiMetrics=$t,exports.withAzureOperationMetrics=tn,exports.withAzureSpan=nn,exports.withAzureTimingMetrics=en,exports.withAzureUploadMetrics=Qt,exports.withChunkContext=ri,exports.withChunkDuration=Zr,exports.withCircuitBreakerContext=Wt,exports.withCircuitBreakerSpan=Ut,exports.withExecutionContext=Bt,exports.withFilesystemApiMetrics=Tn,exports.withFilesystemOperationMetrics=Dn,exports.withFilesystemSpan=On,exports.withFilesystemTimingMetrics=En,exports.withFilesystemUploadMetrics=wn,exports.withFlowContext=Rt,exports.withFlowDuration=jt,exports.withFlowSpan=Lt,exports.withGCSApiMetrics=Zn,exports.withGCSOperationMetrics=$n,exports.withGCSSpan=er,exports.withGCSTimingMetrics=Qn,exports.withGCSUploadMetrics=Xn,exports.withMetricTracking=_t,exports.withNodeContext=zt,exports.withNodeDuration=Mt,exports.withOperationContext=Ht,exports.withOperationSpan=Vt,exports.withParentContext=Ke,exports.withS3ApiMetrics=Cr,exports.withS3OperationMetrics=Tr,exports.withS3Span=Er,exports.withS3TimingMetrics=wr,exports.withS3UploadMetrics=Sr,exports.withStorageOperationMetrics=U,exports.withStorageSpan=w,exports.withThroughputTracking=Ct,exports.withTimingMetrics=H,exports.withUploadContext=ni,exports.withUploadDuration=Xr,exports.withUploadMetrics=B,exports.withUploadSpan=ti;
|
|
1
|
+
let e=require(`effect`),t=require(`@opentelemetry/exporter-logs-otlp-http`),n=require(`@opentelemetry/exporter-metrics-otlp-http`),r=require(`@opentelemetry/exporter-trace-otlp-http`),i=require(`@opentelemetry/sdk-logs`),a=require(`@opentelemetry/sdk-metrics`),o=require(`@opentelemetry/api`),s=require(`@opentelemetry/api-logs`),c=require(`@effect/opentelemetry`),l=require(`@opentelemetry/sdk-trace-base`);const u=e=>{if(!e||typeof e!=`object`)return`unknown_error`;let t=`code`in e?e.code:void 0,n=`name`in e?e.name:void 0,r=e instanceof Error?e.message.toLowerCase():``;return t===`NetworkError`||t===`ECONNRESET`||t===`ENOTFOUND`||t===`ETIMEDOUT`||r.indexOf(`network`)>=0||r.indexOf(`timeout`)>=0?`network_error`:t===`InvalidAccessKeyId`||t===`SignatureDoesNotMatch`||t===`TokenRefreshRequired`||t===`AuthenticationFailed`||n===`AuthenticationError`||r.indexOf(`authentication`)>=0||r.indexOf(`unauthorized`)>=0?`authentication_error`:t===`AccessDenied`||t===`AccountProblem`||t===`Forbidden`||n===`AuthorizationError`||r.indexOf(`forbidden`)>=0||r.indexOf(`permission`)>=0?`authorization_error`:t===`SlowDown`||t===`RequestTimeTooSkewed`||t===`TooManyRequests`||n===`ThrottlingError`||r.indexOf(`throttl`)>=0||r.indexOf(`rate limit`)>=0?`throttling_error`:t===`InternalError`||t===`ServiceUnavailable`||t===`InternalServerError`||n===`ServerError`||r.indexOf(`server error`)>=0||r.indexOf(`service unavailable`)>=0?`server_error`:t===`InvalidRequest`||t===`MalformedXML`||t===`RequestEntityTooLarge`||t===`BadRequest`||n===`ClientError`||r.indexOf(`bad request`)>=0||r.indexOf(`invalid`)>=0?`client_error`:`unknown_error`},ee=(e,t)=>e=>{if(t){let n=t(e);if(n!==null)return n}return u(e)},te=(t,n,r,i,a={},o=u)=>e.Effect.gen(function*(){let s=o(i);yield*n.uploadErrorsTotal.pipe(e.Metric.tagged(`operation`,r),e.Metric.tagged(`error_category`,s))(e.Effect.succeed(1));let c={storage_type:t,operation:r,error_category:s,error_type:typeof i,error_message:i instanceof Error?i.message:String(i),error_code:i&&typeof i==`object`&&`code`in i?i.code:void 0,error_name:i&&typeof i==`object`&&`name`in i?i.name:void 0,...a};yield*e.Effect.logError(`${t.toUpperCase()} ${r} failed`).pipe(e.Effect.annotateLogs(c))}),d=(e,t,n)=>{let r=ee(e,n);return(n,i,a={})=>te(e,t,n,i,a,r)};function f(){let e=typeof process<`u`?process.env.OTEL_EXPORTER_OTLP_HEADERS:void 0;if(!e)return;let t={},n=e.split(`,`);for(let e of n){let[n,...r]=e.split(`=`);n&&r.length>0&&(t[n.trim()]=r.join(`=`).trim())}return Object.keys(t).length>0?t:void 0}function p(e,t){if(t)return t;if(typeof process<`u`){let t;switch(e){case`traces`:t=process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT;break;case`metrics`:t=process.env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT;break;case`logs`:t=process.env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT;break}if(t)return t;if(process.env.OTEL_EXPORTER_OTLP_ENDPOINT)return process.env.OTEL_EXPORTER_OTLP_ENDPOINT}return`http://localhost:4318`}function ne(e={}){let t=p(`traces`,e.endpoint),n=e.headers??f(),i=e.timeoutMillis??3e4;return new r.OTLPTraceExporter({url:`${t}/v1/traces`,headers:n,timeoutMillis:i})}function re(e={}){let t=p(`metrics`,e.endpoint),r=e.headers??f(),i=e.timeoutMillis??3e4;return new n.OTLPMetricExporter({url:`${t}/v1/metrics`,headers:r,timeoutMillis:i})}function m(){if(typeof process<`u`){let e=process.env.UPLOADISTA_OBSERVABILITY_ENABLED;if(e!==void 0)return e.toLowerCase()!==`false`&&e!==`0`}return!0}function h(e=`uploadista`){return typeof process<`u`&&process.env.OTEL_SERVICE_NAME?process.env.OTEL_SERVICE_NAME:e}function ie(){if(typeof process>`u`)return{};let e=process.env.OTEL_RESOURCE_ATTRIBUTES;if(!e)return{};let t={},n=e.split(`,`);for(let e of n){let[n,...r]=e.split(`=`);n&&r.length>0&&(t[n.trim()]=r.join(`=`).trim())}return t}function ae(e={}){let n=p(`logs`,e.endpoint),r=e.headers??f(),i=e.timeoutMillis??3e4;return new t.OTLPLogExporter({url:`${n}/v1/logs`,headers:r,timeoutMillis:i})}function oe(e){if(e!==void 0)return e;if(typeof process<`u`&&process.env.OTEL_METRICS_EXPORT_INTERVAL){let e=Number.parseInt(process.env.OTEL_METRICS_EXPORT_INTERVAL,10);if(!Number.isNaN(e)&&e>0)return e}return 6e4}function se(e={}){return new a.MeterProvider({readers:[new a.PeriodicExportingMetricReader({exporter:re(e),exportIntervalMillis:oe(e.exportIntervalMillis),exportTimeoutMillis:e.exportTimeoutMillis??3e4})]})}function ce(e){if(e!==void 0)return e;if(typeof process<`u`&&process.env.OTEL_LOGS_EXPORT_INTERVAL){let e=Number.parseInt(process.env.OTEL_LOGS_EXPORT_INTERVAL,10);if(!Number.isNaN(e)&&e>0)return e}return 5e3}function le(e={}){let t=ae(e),n=ce(e.scheduledDelayMillis);return new i.LoggerProvider({processors:[new i.BatchLogRecordProcessor(t,{maxQueueSize:e.maxQueueSize??512,maxExportBatchSize:e.maxExportBatchSize??512,scheduledDelayMillis:n,exportTimeoutMillis:e.exportTimeoutMillis??3e4})]})}var g=class extends e.Context.Tag(`OtelLogger`)(){};function _(e){switch(e.toLowerCase()){case`debug`:case`trace`:return s.SeverityNumber.DEBUG;case`info`:return s.SeverityNumber.INFO;case`warning`:case`warn`:return s.SeverityNumber.WARN;case`error`:return s.SeverityNumber.ERROR;case`fatal`:case`critical`:return s.SeverityNumber.FATAL;default:return s.SeverityNumber.INFO}}function ue(e){return e<=s.SeverityNumber.DEBUG?`DEBUG`:e<=s.SeverityNumber.INFO?`INFO`:e<=s.SeverityNumber.WARN?`WARN`:e<=s.SeverityNumber.ERROR?`ERROR`:`FATAL`}function v(){let e=o.trace.getActiveSpan();if(!e)return{};let t=e.spanContext();return t.traceId===`00000000000000000000000000000000`?{}:{trace_id:t.traceId,span_id:t.spanId,trace_flags:String(t.traceFlags)}}function y(t={}){return e.Layer.scoped(g,e.Effect.gen(function*(){if(!m()){let{LoggerProvider:t}=yield*e.Effect.promise(()=>import(`@opentelemetry/sdk-logs`)),n=new t;return{logger:n.getLogger(h(`uploadista`)),provider:n}}let n=le(t),r=t.serviceName??h(`uploadista`),i=n.getLogger(r);return yield*e.Effect.addFinalizer(()=>e.Effect.promise(async()=>{try{await n.shutdown()}catch(e){console.warn(`Error shutting down LoggerProvider:`,e)}})),{logger:i,provider:n}}))}const de=y();function fe(e={}){return y(e)}const pe=y();function me(e={}){return y(e)}const he=y({serviceName:h(`uploadista-workers`)});function ge(e={}){return y({serviceName:h(`uploadista-workers`),...e})}const _e=t=>e.Logger.make(({logLevel:e,message:n,annotations:r})=>{let i=_(e.label);if(t!==void 0&&i<t)return;let a={...v()};for(let[e,t]of r)typeof t==`string`||typeof t==`number`||typeof t==`boolean`?a[e]=t:a[e]=String(t);(i>=s.SeverityNumber.ERROR?console.error:i>=s.SeverityNumber.WARN?console.warn:console.log)(`[${e.label}] ${String(n)}`,a)}),b=(t,n,r)=>e.Effect.gen(function*(){let{logger:e}=yield*g,i=_(t),a=v();e.emit({severityNumber:i,severityText:ue(i),body:n,attributes:{...a,...r}})}),ve=(e,t)=>b(`debug`,e,t),ye=(e,t)=>b(`info`,e,t),be=(e,t)=>b(`warn`,e,t),xe=(e,t)=>b(`error`,e,t),Se=(e,t)=>b(`fatal`,e,t);var x=class extends e.Context.Tag(`OtelMeter`)(){};function S(t={}){return e.Layer.scoped(x,e.Effect.gen(function*(){if(!m()){let{MeterProvider:t}=yield*e.Effect.promise(()=>import(`@opentelemetry/sdk-metrics`)),n=new t;return{meter:n.getMeter(h(`uploadista`)),provider:n}}let n=se(t),r=t.serviceName??h(`uploadista`),i=n.getMeter(r);return yield*e.Effect.addFinalizer(()=>e.Effect.promise(async()=>{try{await n.shutdown()}catch(e){console.warn(`Error shutting down MeterProvider:`,e)}})),{meter:i,provider:n}}))}const Ce=S();function we(e={}){return S(e)}const Te=S();function Ee(e={}){return S(e)}const De=S({serviceName:h(`uploadista-workers`)});function Oe(e={}){return S({serviceName:h(`uploadista-workers`),...e})}const ke=(t,n=1,r)=>e.Effect.gen(function*(){let{meter:e}=yield*x;e.createCounter(t).add(n,r)}),Ae=(t,n,r)=>e.Effect.gen(function*(){let{meter:e}=yield*x;e.createHistogram(t).record(n,r)}),je=(t,n,r)=>e.Effect.gen(function*(){let{meter:e}=yield*x;e.createObservableGauge(t,{description:t}).addCallback(e=>{e.observe(n(),r)})}),Me=e.Context.GenericTag(`TracingService`),Ne=t=>{let n=t?.serviceName??`uploadista-storage`;return e.Layer.succeed(Me,{serviceName:n})},C=e=>Ne({serviceName:`uploadista-${e}-store`}),w=(e,t,n)=>r=>r.pipe(r.Effect.withSpan(`${t}-${e}`,{attributes:{"storage.type":t,operation:e,...n}})),Pe=c.WebSdk.layer(()=>({resource:{serviceName:`uploadista-storage`},spanProcessor:new l.BatchSpanProcessor(new l.ConsoleSpanExporter)})),Fe=c.NodeSdk.layer(()=>({resource:{serviceName:`uploadista-storage`},spanProcessor:new l.BatchSpanProcessor(new l.ConsoleSpanExporter)})),Ie=c.WebSdk.layer(()=>({resource:{serviceName:`uploadista-storage-workers`},spanProcessor:new l.BatchSpanProcessor(new l.ConsoleSpanExporter)}));function T(e={}){return new l.BatchSpanProcessor(ne(),{maxQueueSize:e.maxQueueSize??512,maxExportBatchSize:e.maxExportBatchSize??512,scheduledDelayMillis:e.scheduledDelayMillis??5e3,exportTimeoutMillis:e.exportTimeoutMillis??3e4})}function E(e={}){let t=e.serviceName??h(`uploadista`),n=ie(),r=e.resourceAttributes??{};return{serviceName:t,...n,...r}}const Le=c.NodeSdk.layer(()=>m()?{resource:E(),spanProcessor:T()}:{resource:E()});function Re(e={}){return c.NodeSdk.layer(()=>m()?{resource:E(e),spanProcessor:T(e)}:{resource:E(e)})}const ze=c.WebSdk.layer(()=>m()?{resource:E(),spanProcessor:T()}:{resource:E()});function Be(e={}){return c.WebSdk.layer(()=>m()?{resource:E(e),spanProcessor:T(e)}:{resource:E(e)})}const Ve=c.WebSdk.layer(()=>{let e={serviceName:h(`uploadista-workers`)};return m()?{resource:E(e),spanProcessor:T(e)}:{resource:E(e)}});function He(e={}){return c.WebSdk.layer(()=>{let t={serviceName:h(`uploadista-workers`),...e};return m()?{resource:E(t),spanProcessor:T(t)}:{resource:E(t)}})}function Ue(){let e=o.trace.getActiveSpan();if(!e)return;let t=e.spanContext();return{traceId:t.traceId,spanId:t.spanId,traceFlags:t.traceFlags}}const We=e.Effect.gen(function*(){let t=yield*e.Effect.currentSpan.pipe(e.Effect.option);return e.Option.match(t,{onNone:()=>void 0,onSome:e=>({traceId:e.traceId,spanId:e.spanId,traceFlags:e.sampled?1:0})})});function Ge(t){return e.Tracer.externalSpan({traceId:t.traceId,spanId:t.spanId,sampled:t.traceFlags===1})}function Ke(e){return t=>{let n=t.Tracer.externalSpan({traceId:e.traceId,spanId:e.spanId,sampled:e.traceFlags===1});return t.pipe(t.Effect.provideService(t.Tracer.ParentSpan,n))}}function qe(){let e=o.trace.getActiveSpan();return e?e.spanContext().traceId!==`00000000000000000000000000000000`:!1}const Je=e.Layer.mergeAll(Le,Ce,de);function Ye(t={}){let n=t.serviceName??h(`uploadista`),r=t.resourceAttributes;return e.Layer.mergeAll(Re({serviceName:n,resourceAttributes:r,...t.traces}),we({serviceName:n,...t.metrics}),fe({serviceName:n,...t.logs}))}const Xe=e.Layer.mergeAll(ze,Te,pe);function Ze(t={}){let n=t.serviceName??h(`uploadista`),r=t.resourceAttributes;return e.Layer.mergeAll(Be({serviceName:n,resourceAttributes:r,...t.traces}),Ee({serviceName:n,...t.metrics}),me({serviceName:n,...t.logs}))}const Qe=e.Layer.mergeAll(Ve,De,he);function $e(t={}){let n=t.serviceName??h(`uploadista-workers`),r=t.resourceAttributes;return e.Layer.mergeAll(He({serviceName:n,resourceAttributes:r,...t.traces}),Oe({serviceName:n,...t.metrics}),ge({serviceName:n,...t.logs}))}function D(){return typeof process<`u`&&process.versions?.node?`node`:typeof navigator<`u`&&typeof window<`u`?`web`:`workers`}const et=e.Layer.unwrapEffect(e.Effect.sync(()=>{switch(D()){case`node`:return Je;case`web`:return Xe;case`workers`:return Qe}}));function tt(t={}){return e.Layer.unwrapEffect(e.Effect.sync(()=>{switch(D()){case`node`:return Ye(t);case`web`:return Ze(t);case`workers`:return $e(t)}}))}var O=class extends e.Context.Tag(`Observability`)(){},k=class extends e.Context.Tag(`StorageObservability`)(){},A=class extends e.Context.Tag(`UploadObservability`)(){},j=class extends e.Context.Tag(`FlowObservability`)(){};const nt=(t,n=!0)=>e.Layer.succeed(O,{serviceName:t,enabled:n}),rt=(t,n,r=!0)=>e.Layer.succeed(k,{serviceName:`uploadista-${t}-store`,storageType:t,metrics:n,enabled:r}),M=(t=!0)=>e.Layer.succeed(A,{serviceName:`uploadista-upload-server`,enabled:t,metrics:{uploadCreated:e.Effect.void,uploadCompleted:e.Effect.void,uploadFailed:e.Effect.void,chunkUploaded:e.Effect.void}}),N=(t=!0)=>e.Layer.succeed(j,{serviceName:`uploadista-flow-engine`,enabled:t,metrics:{flowStarted:e.Effect.void,flowCompleted:e.Effect.void,flowFailed:e.Effect.void,nodeExecuted:e.Effect.void}}),it=nt(`uploadista-disabled`,!1),at=e=>rt(e,{},!1),ot=M(!1),st=N(!1),P=e.Effect.gen(function*(){let t=yield*e.Effect.serviceOption(O);return e.Option.match(t,{onNone:()=>!1,onSome:e=>e.enabled})}),ct=e=>e.Effect.gen(function*(){if(yield*P){let t=yield*e;return e.Option.some(t)}return e.Option.none()}),F=(t,n)=>e.Effect.log(t).pipe(e.Effect.annotateLogs(n)),I=(e,t,n)=>F(`Upload progress`,{storage_type:e,upload_id:t,uploaded_bytes:n.uploadedBytes,total_bytes:n.totalBytes,progress_percentage:Math.round(n.uploadedBytes/n.totalBytes*100),...n.partNumber&&{part_number:n.partNumber},...n.speed&&{upload_speed_bps:n.speed}}),L=(e,t,n,r)=>F(`${e.toUpperCase()} ${t}`,{storage_type:e,operation:t,upload_id:n,...r}),R=(e,t,n)=>{let r=n.throughputBps?n.throughputBps/(1024*1024):0;return F(`${e.toUpperCase()} upload completed`,{storage_type:e,upload_id:t,file_size_bytes:n.fileSize,file_size_mb:Math.round(n.fileSize/(1024*1024)*100)/100,total_duration_ms:n.totalDurationMs,total_duration_seconds:Math.round(n.totalDurationMs/1e3*100)/100,throughput_bps:n.throughputBps,throughput_mbps:Math.round(r*100)/100,...n.partsCount&&{parts_count:n.partsCount},...n.averagePartSize&&{average_part_size_bytes:n.averagePartSize,average_part_size_mb:Math.round(n.averagePartSize/(1024*1024)*100)/100},...n.retryCount&&{retry_count:n.retryCount}})},lt=t=>({uploadRequestsTotal:e.Metric.counter(`${t}_upload_requests_total`,{description:`Total number of upload requests for ${t}`}),uploadPartsTotal:e.Metric.counter(`${t}_upload_parts_total`,{description:`Total number of individual parts uploaded for ${t}`}),uploadSuccessTotal:e.Metric.counter(`${t}_upload_success_total`,{description:`Total number of successful uploads for ${t}`}),uploadErrorsTotal:e.Metric.counter(`${t}_upload_errors_total`,{description:`Total number of upload errors for ${t}`}),apiCallsTotal:e.Metric.counter(`${t}_api_calls_total`,{description:`Total number of API calls for ${t}`})}),ut=t=>({uploadDurationHistogram:e.Metric.histogram(`${t}_upload_duration_seconds`,e.MetricBoundaries.exponential({start:.01,factor:2,count:20}),`Duration of upload operations in seconds for ${t}`),partUploadDurationHistogram:e.Metric.histogram(`${t}_part_upload_duration_seconds`,e.MetricBoundaries.exponential({start:.001,factor:2,count:15}),`Duration of individual part uploads in seconds for ${t}`),fileSizeHistogram:e.Metric.histogram(`${t}_file_size_bytes`,e.MetricBoundaries.exponential({start:1024,factor:2,count:25}),`Size of uploaded files in bytes for ${t}`),partSizeHistogram:e.Metric.histogram(`${t}_part_size_bytes`,e.MetricBoundaries.linear({start:5242880,width:1048576,count:20}),`Size of upload parts in bytes for ${t}`)}),dt=t=>({activeUploadsGauge:e.Metric.gauge(`${t}_active_uploads`,{description:`Number of currently active uploads for ${t}`}),uploadThroughputGauge:e.Metric.gauge(`${t}_upload_throughput_bytes_per_second`,{description:`Current upload throughput in bytes per second for ${t}`})}),ft=t=>({uploadLatencySummary:e.Metric.summary({name:`${t}_upload_latency_seconds`,maxAge:`10 minutes`,maxSize:1e3,error:.01,quantiles:[.5,.9,.95,.99],description:`Upload latency percentiles for ${t}`})}),z=e=>({...lt(e),...ut(e),...dt(e),...ft(e)}),pt=t=>{let n=z(t),r={serviceName:`test-${t}-store`,storageType:t,metrics:n,enabled:!0};return e.Layer.succeed(k,r)},mt=()=>{let t={serviceName:`test-upload-server`,enabled:!0,metrics:{uploadCreated:e.Effect.void,uploadCompleted:e.Effect.void,uploadFailed:e.Effect.void,chunkUploaded:e.Effect.void}};return e.Layer.succeed(A,t)},ht=()=>{let t={serviceName:`test-flow-engine`,enabled:!0,metrics:{flowStarted:e.Effect.void,flowCompleted:e.Effect.void,flowFailed:e.Effect.void,nodeExecuted:e.Effect.void}};return e.Layer.succeed(j,t)},gt=e=>e.Effect.gen(function*(){let t=yield*e;return yield*e.Metric.snapshot,t}),_t=e=>e.Effect.gen(function*(){yield*e.Metric.snapshot;let t=yield*e;return yield*e.Metric.snapshot,t}),vt=(e=`test-storage`)=>({storageObservability:pt(e),uploadObservability:mt(),flowObservability:ht()}),yt=(e,t=`test-storage`)=>{let n=vt(t);return e.pipe(e.Effect.provide(n.storageObservability),e.Effect.provide(n.uploadObservability),e.Effect.provide(n.flowObservability))},B=(e,t,n)=>n.pipe(n.Effect.tap(()=>e.uploadRequestsTotal.pipe(n.Metric.tagged(`upload_id`,t))(n.Effect.succeed(1))),n.Effect.tapError(()=>e.uploadErrorsTotal.pipe(n.Metric.tagged(`upload_id`,t))(n.Effect.succeed(1))),n.Effect.tap(()=>e.uploadSuccessTotal.pipe(n.Metric.tagged(`upload_id`,t))(n.Effect.succeed(1)))),V=(e,t,n)=>n.pipe(n.Effect.tap(()=>e.apiCallsTotal.pipe(n.Metric.tagged(`operation`,t))(n.Effect.succeed(1)))),H=(e,t)=>t.Effect.gen(function*(){let n=yield*t.Effect.sync(()=>Date.now()),r=yield*t,i=((yield*t.Effect.sync(()=>Date.now()))-n)/1e3;return yield*e(t.Effect.succeed(i)),r}),bt=(e,t,n)=>n.pipe(n.Effect.tap(()=>e.fileSizeHistogram(n.Effect.succeed(t)))),xt=(e,t,n)=>n.pipe(n.Effect.tap(()=>e.partSizeHistogram(n.Effect.succeed(t)))),St=(e,t)=>t.pipe(t.Effect.tap(()=>e.activeUploadsGauge(t.Effect.succeed(1))),t.Effect.ensuring(e.activeUploadsGauge(t.Effect.succeed(-1)))),Ct=(e,t,n)=>n.Effect.gen(function*(){let r=yield*n.Effect.sync(()=>Date.now()),i=yield*n,a=((yield*n.Effect.sync(()=>Date.now()))-r)/1e3,o=a>0?t/a:0;return yield*e.uploadThroughputGauge(n.Effect.succeed(o)),i}),U=(e,t,n,r,i)=>{let a=r.pipe(n=>V(e,t,n),t=>B(e,n,t),t=>H(e.uploadDurationHistogram,t),t=>St(e,t));return i!==void 0&&(a=a.pipe(t=>bt(e,i,t),t=>Ct(e,i,t))),a},W=()=>({flowStartedTotal:e.Metric.counter(`flow_started_total`,{description:`Total number of flows started`}),flowCompletedTotal:e.Metric.counter(`flow_completed_total`,{description:`Total number of flows completed successfully`}),flowFailedTotal:e.Metric.counter(`flow_failed_total`,{description:`Total number of flows that failed`}),flowPausedTotal:e.Metric.counter(`flow_paused_total`,{description:`Total number of flows that were paused`}),flowResumedTotal:e.Metric.counter(`flow_resumed_total`,{description:`Total number of flows that were resumed`}),nodeExecutedTotal:e.Metric.counter(`node_executed_total`,{description:`Total number of nodes executed`}),nodeSuccessTotal:e.Metric.counter(`node_success_total`,{description:`Total number of nodes executed successfully`}),nodeFailedTotal:e.Metric.counter(`node_failed_total`,{description:`Total number of nodes that failed`}),nodeSkippedTotal:e.Metric.counter(`node_skipped_total`,{description:`Total number of nodes skipped (conditional)`}),flowDurationHistogram:e.Metric.histogram(`flow_duration_seconds`,e.MetricBoundaries.exponential({start:.1,factor:2,count:20}),`Duration of complete flow execution in seconds`),nodeDurationHistogram:e.Metric.histogram(`node_duration_seconds`,e.MetricBoundaries.exponential({start:.01,factor:2,count:18}),`Duration of individual node execution in seconds`),flowNodeCountHistogram:e.Metric.histogram(`flow_node_count`,e.MetricBoundaries.linear({start:1,width:5,count:20}),`Number of nodes in a flow`),parallelNodesHistogram:e.Metric.histogram(`parallel_nodes_count`,e.MetricBoundaries.linear({start:1,width:2,count:15}),`Number of nodes executed in parallel`),activeFlowsGauge:e.Metric.gauge(`active_flows`,{description:`Number of currently active flows`}),activeNodesGauge:e.Metric.gauge(`active_nodes`,{description:`Number of currently executing nodes`}),pausedFlowsGauge:e.Metric.gauge(`paused_flows`,{description:`Number of currently paused flows`}),flowLatencySummary:e.Metric.summary({name:`flow_latency_seconds`,maxAge:`10 minutes`,maxSize:1e3,error:.01,quantiles:[.5,.9,.95,.99],description:`Flow execution latency percentiles`}),nodeLatencySummary:e.Metric.summary({name:`node_latency_seconds`,maxAge:`10 minutes`,maxSize:1e3,error:.01,quantiles:[.5,.9,.95,.99],description:`Node execution latency percentiles`}),circuitBreakerOpenTotal:e.Metric.counter(`circuit_breaker_open_total`,{description:`Total number of times circuit breakers transitioned to open state`}),circuitBreakerCloseTotal:e.Metric.counter(`circuit_breaker_close_total`,{description:`Total number of times circuit breakers transitioned to closed state`}),circuitBreakerRejectedTotal:e.Metric.counter(`circuit_breaker_rejected_total`,{description:`Total number of requests rejected because circuit breaker is open`}),circuitBreakerHalfOpenTotal:e.Metric.counter(`circuit_breaker_half_open_total`,{description:`Total number of times circuit breakers transitioned to half-open state`}),circuitBreakerStateGauge:e.Metric.gauge(`circuit_breaker_state`,{description:`Current circuit breaker state (0=closed, 1=open, 2=half-open)`}),circuitBreakerFailuresGauge:e.Metric.gauge(`circuit_breaker_failures`,{description:`Number of failures currently in the circuit breaker sliding window`})}),wt=W(),G=e=>{if(!e||typeof e!=`object`)return`unknown_flow_error`;let t=`code`in e?e.code:void 0;if(!t)return`unknown_flow_error`;switch(t){case`FLOW_VALIDATION_ERROR`:case`FLOW_INVALID_INPUT`:case`FLOW_INVALID_OUTPUT`:return`flow_validation_error`;case`FLOW_NODE_NOT_FOUND`:case`FLOW_EDGE_INVALID`:return`node_not_found_error`;case`FLOW_NODE_EXECUTION_FAILED`:case`FLOW_NODE_ERROR`:return`node_execution_error`;case`FLOW_TIMEOUT`:return`flow_timeout_error`;case`FLOW_CANCELLED`:case`ABORTED`:return`flow_cancelled_error`;default:return`unknown_flow_error`}},Tt=t=>{let n=W(),r=G(t);return e.Effect.gen(function*(){yield*e.Metric.increment(n.flowFailedTotal),yield*e.Effect.logError(`Flow execution failed`).pipe(e.Effect.annotateLogs({"error.category":r,"error.message":String(t)}))})},Et=(t,n,r)=>{let i=W(),a=G(r);return e.Effect.gen(function*(){yield*e.Metric.increment(i.nodeFailedTotal),yield*e.Effect.logError(`Node execution failed`).pipe(e.Effect.annotateLogs({"node.id":t,"node.type":n,"error.category":a,"error.message":String(r)}))})},Dt=(t=`uploadista-flow-engine`)=>{let n=W();return e.Layer.succeed(j,{serviceName:t,enabled:!0,metrics:{flowStarted:e.Metric.increment(n.flowStartedTotal),flowCompleted:e.Metric.increment(n.flowCompletedTotal),flowFailed:e.Metric.increment(n.flowFailedTotal),nodeExecuted:e.Metric.increment(n.nodeExecutedTotal)}})},Ot=Dt();N(!1);const kt=e.Effect.gen(function*(){return(yield*j).metrics}),At=e=>{let t=W();return e.Effect.gen(function*(){let n=Date.now(),r=yield*e,i=(Date.now()-n)/1e3;return yield*e.Metric.update(t.flowDurationHistogram,i),yield*e.Metric.update(t.flowLatencySummary,i),r}).pipe(e.Effect.withSpan(`flow-execution`))},jt=(e,t,n,r)=>{let i=W(),a=r??t;return n.Effect.gen(function*(){let e=Date.now(),t=yield*n,r=(Date.now()-e)/1e3;return yield*n.Metric.update(i.nodeDurationHistogram,r),yield*n.Metric.update(i.nodeLatencySummary,r),t}).pipe(n.Effect.withSpan(`node-${a}`,{attributes:{"node.id":e,"node.type":t,"node.type_id":r??t}}))},Mt=e=>{let t=W();return e.Effect.gen(function*(){return yield*e.Metric.increment(t.activeFlowsGauge),yield*e.Effect.acquireUseRelease(e.Effect.void,()=>e,()=>e.Metric.set(t.activeFlowsGauge,-1))})},Nt=e=>{let t=W();return e.Effect.gen(function*(){return yield*e.Metric.increment(t.activeNodesGauge),yield*e.Effect.acquireUseRelease(e.Effect.void,()=>e,()=>e.Metric.set(t.activeNodesGauge,-1))})},Pt=()=>{let t={serviceName:`test-flow-engine`,enabled:!0,metrics:{flowStarted:e.Effect.void,flowCompleted:e.Effect.void,flowFailed:e.Effect.void,nodeExecuted:e.Effect.void}};return e.Layer.succeed(j,t)},Ft=e=>e.pipe(e.Effect.provide(Pt())),It=(e,t)=>n=>n.pipe(n.Effect.withSpan(`flow-${e}`,{attributes:{"flow.operation":e,...t}})),Lt=t=>e.Effect.annotateCurrentSpan({"flow.id":t.flowId??`unknown`,"flow.name":t.flowName??`unknown`,"flow.job_id":t.jobId??`unknown`,"flow.node_count":t.nodeCount?.toString()??`0`,"flow.storage_id":t.storageId??`unknown`}),Rt=t=>e.Effect.annotateCurrentSpan({"node.id":t.nodeId,"node.type":t.nodeType,"node.name":t.nodeName??`unknown`,"node.flow_id":t.flowId??`unknown`,"node.job_id":t.jobId??`unknown`}),zt=t=>e.Effect.annotateCurrentSpan({"execution.order":t.executionOrder?.join(`,`)??``,"execution.current_index":t.currentIndex?.toString()??`0`,"execution.total_nodes":t.totalNodes?.toString()??`0`,"execution.parallel_count":t.parallelCount?.toString()??`0`}),Bt=(e,t,n)=>r=>r.pipe(r.Effect.withSpan(`${e}-${t}`,{attributes:{"operation.domain":e,"operation.name":t,...n}})),Vt=t=>e.Effect.annotateCurrentSpan({"operation.domain":t.domain,"operation.name":t.operation,"operation.input_size":t.inputSize?.toString()??`unknown`,"operation.output_size":t.outputSize?.toString()??`unknown`}),Ht=(e,t,n)=>r=>r.pipe(r.Effect.withSpan(`circuit-breaker-${e}`,{attributes:{"circuit_breaker.node_type":e,"circuit_breaker.state":t,...n}})),Ut=t=>e.Effect.annotateCurrentSpan({"circuit_breaker.node_type":t.nodeType,"circuit_breaker.state":t.state,"circuit_breaker.failure_count":t.failureCount?.toString()??`0`,"circuit_breaker.failure_threshold":t.failureThreshold?.toString()??`5`,"circuit_breaker.reset_timeout":t.resetTimeout?.toString()??`30000`,"circuit_breaker.decision":t.decision??`unknown`}),Wt=t=>e.Effect.annotateCurrentSpan({"circuit_breaker.event":`state_change`,"circuit_breaker.node_type":t.nodeType,"circuit_breaker.previous_state":t.previousState,"circuit_breaker.new_state":t.newState,"circuit_breaker.failure_count":t.failureCount?.toString()??`0`,"circuit_breaker.timestamp":t.timestamp?.toString()??Date.now().toString()});var Gt=class extends e.Context.Tag(`MetricsService`)(){};const Kt=e.Layer.succeed(Gt,{recordUpload:(t,n)=>e.Effect.void}),K=`azure`,q=z(K),qt=C(K),Jt=d(K,q,e=>{if(!e||typeof e!=`object`)return null;let t=`code`in e?e.code:`statusCode`in e?e.statusCode:void 0;if(!t)return null;switch(t){case`BlobNotFound`:case`ContainerNotFound`:case`InvalidBlobOrBlock`:return`client_error`;case`ContainerAlreadyExists`:case`BlobAlreadyExists`:return`client_error`;case`InvalidBlockId`:case`InvalidBlockList`:case`InvalidBlobType`:return`client_error`;case`RequestBodyTooLarge`:case`InvalidHeaderValue`:return`client_error`;case`AuthenticationFailed`:case`InvalidAuthenticationInfo`:return`authentication_error`;case`AccountIsDisabled`:return`authorization_error`;case`InsufficientAccountPermissions`:return`authorization_error`;case`OperationTimedOut`:case`ServerBusy`:case`InternalError`:return`server_error`;default:if(typeof t==`number`){if(t>=500)return`server_error`;if(t===429)return`throttling_error`;if(t===403)return`authorization_error`;if(t===401)return`authentication_error`;if(t>=400)return`client_error`}return null}}),Yt=e.Layer.mergeAll(qt),Xt=(e,t)=>B(q,e,t),Zt=(e,t)=>V(q,e,t),Qt=H,$t=(e,t,n,r)=>U(q,e,t,n,r),en=(e,t)=>n=>w(e,K,t)(n),tn=L.bind(null,K),nn=I.bind(null,K),rn=R.bind(null,K),an=F,{uploadRequestsTotal:on,uploadPartsTotal:sn,uploadSuccessTotal:cn,uploadErrorsTotal:ln,apiCallsTotal:un,uploadDurationHistogram:dn,partUploadDurationHistogram:fn,fileSizeHistogram:pn,partSizeHistogram:mn,activeUploadsGauge:hn,uploadThroughputGauge:gn,uploadLatencySummary:_n}=q,J=`filesystem`,Y=z(J),vn=C(J),yn=d(J,Y,e=>{if(!e||typeof e!=`object`)return null;let t=`code`in e?e.code:void 0;if(!t)return null;switch(t){case`ENOENT`:case`ENOTDIR`:return`client_error`;case`EEXIST`:return`client_error`;case`EISDIR`:return`client_error`;case`EINVAL`:case`ENAMETOOLONG`:return`client_error`;case`EACCES`:case`EPERM`:return`authorization_error`;case`ENOSPC`:case`EDQUOT`:return`server_error`;case`EIO`:case`EROFS`:case`EMFILE`:case`ENFILE`:return`server_error`;case`EBUSY`:return`throttling_error`;default:return null}}),bn=e.Layer.mergeAll(vn),xn=(e,t)=>B(Y,e,t),Sn=(e,t)=>V(Y,e,t),Cn=H,wn=(e,t,n,r)=>U(Y,e,t,n,r),Tn=(e,t)=>n=>w(e,J,t)(n),En=L.bind(null,J),Dn=I.bind(null,J),On=R.bind(null,J),kn=F,{uploadRequestsTotal:An,uploadPartsTotal:jn,uploadSuccessTotal:Mn,uploadErrorsTotal:Nn,apiCallsTotal:Pn,uploadDurationHistogram:Fn,partUploadDurationHistogram:In,fileSizeHistogram:Ln,partSizeHistogram:Rn,activeUploadsGauge:zn,uploadThroughputGauge:Bn,uploadLatencySummary:Vn}=Y,X=z(`gcs`),Hn=C(`gcs`),Un=d(`gcs`,X,e=>{if(!e||typeof e!=`object`)return null;let t=`code`in e?e.code:`status`in e?e.status:void 0;if(!t)return null;switch(t){case`NoSuchBucket`:case`NoSuchKey`:case`NoSuchUpload`:return`client_error`;case`BucketAlreadyOwnedByYou`:case`BucketNotEmpty`:return`client_error`;case`InvalidBucketName`:case`InvalidArgument`:case`InvalidPart`:case`InvalidPartOrder`:return`client_error`;case`EntityTooSmall`:case`EntityTooLarge`:return`client_error`;case`MalformedPolicy`:return`client_error`;case`Unauthorized`:case`AuthenticationRequired`:return`authentication_error`;case`Forbidden`:case`AccessDenied`:return`authorization_error`;case`TooManyRequests`:case`RateLimitExceeded`:return`throttling_error`;case`InternalError`:case`ServiceUnavailable`:case`BackendError`:return`server_error`;default:if(typeof t==`number`){if(t>=500)return`server_error`;if(t===429)return`throttling_error`;if(t===403)return`authorization_error`;if(t===401)return`authentication_error`;if(t>=400)return`client_error`}return null}}),Wn=e.Layer.mergeAll(Hn),Gn=(e,t)=>B(X,e,t),Kn=(e,t)=>V(X,e,t),qn=H,Jn=(e,t,n,r)=>U(X,e,t,n,r),Yn=(e,t)=>n=>w(e,`gcs`,t)(n),Xn=L.bind(null,`gcs`),Zn=I.bind(null,`gcs`),Qn=R.bind(null,`gcs`),$n=F,{uploadRequestsTotal:er,uploadPartsTotal:tr,uploadSuccessTotal:nr,uploadErrorsTotal:rr,apiCallsTotal:ir,uploadDurationHistogram:ar,partUploadDurationHistogram:or,fileSizeHistogram:sr,partSizeHistogram:cr,activeUploadsGauge:lr,uploadThroughputGauge:ur,uploadLatencySummary:dr}=X,Z=z(`s3`),fr=C(`s3`),pr=d(`s3`,Z,e=>{if(!e||typeof e!=`object`)return null;let t=`code`in e?e.code:void 0;if(!t)return null;switch(t){case`NoSuchKey`:case`NoSuchBucket`:case`NoSuchUpload`:return`client_error`;case`BucketAlreadyExists`:case`BucketNotEmpty`:return`client_error`;case`InvalidBucketName`:case`InvalidPart`:case`InvalidPartOrder`:return`client_error`;case`EntityTooSmall`:case`EntityTooLarge`:return`client_error`;case`ExpiredToken`:case`TokenRefreshRequired`:return`authentication_error`;case`RequestTimeTooSkewed`:case`SlowDown`:return`throttling_error`;default:return null}}),mr=e.Layer.mergeAll(fr),hr=(e,t)=>B(Z,e,t),gr=(e,t)=>V(Z,e,t),_r=H,vr=(e,t,n,r)=>U(Z,e,t,n,r),yr=(e,t)=>n=>w(e,`s3`,t)(n),br=L.bind(null,`s3`),xr=I.bind(null,`s3`),Sr=R.bind(null,`s3`),Cr=F,{uploadRequestsTotal:wr,uploadPartsTotal:Tr,uploadSuccessTotal:Er,uploadErrorsTotal:Dr,apiCallsTotal:Or,uploadDurationHistogram:kr,partUploadDurationHistogram:Ar,fileSizeHistogram:jr,partSizeHistogram:Mr,activeUploadsGauge:Nr,uploadThroughputGauge:Pr,uploadLatencySummary:Fr}=Z,Q=e=>{if(!e||typeof e!=`object`)return`unknown_error`;let t=`code`in e?e.code:void 0,n=`name`in e?e.name:void 0,r=e instanceof Error?e.message.toLowerCase():``;return t===`ABORTED`||n===`AbortError`||r.includes(`abort`)?`abort_error`:t===`FILE_TOO_LARGE`||t===`LIMIT_FILE_SIZE`||t===`RequestEntityTooLarge`||r.includes(`too large`)||r.includes(`size limit`)||r.includes(`max size`)?`size_limit_error`:t===`INVALID_FILE`||t===`INVALID_METADATA`||t===`VALIDATION_ERROR`||r.includes(`validation`)||r.includes(`invalid`)?`validation_error`:t===`NetworkError`||t===`ECONNRESET`||t===`ENOTFOUND`||t===`ETIMEDOUT`||r.includes(`network`)||r.includes(`timeout`)?`network_error`:t===`UNAUTHORIZED`||t===`AuthenticationFailed`||n===`AuthenticationError`||r.includes(`authentication`)||r.includes(`unauthorized`)?`authentication_error`:t===`FORBIDDEN`||t===`AccessDenied`||n===`AuthorizationError`||r.includes(`forbidden`)||r.includes(`permission`)?`authorization_error`:t===`FILE_WRITE_ERROR`||t===`STORAGE_ERROR`||r.includes(`storage`)||r.includes(`write error`)?`storage_error`:`unknown_error`},Ir=(t,n,r,i={})=>e.Effect.gen(function*(){let a=Q(r);yield*t.uploadFailedTotal.pipe(e.Metric.tagged(`operation`,n),e.Metric.tagged(`error_category`,a))(e.Effect.succeed(1));let o={operation:n,error_category:a,error_type:typeof r,error_message:r instanceof Error?r.message:String(r),error_code:r&&typeof r==`object`&&`code`in r?String(r.code):void 0,error_name:r&&typeof r==`object`&&`name`in r?String(r.name):void 0,...i};yield*e.Effect.logError(`Upload ${n} failed`).pipe(e.Effect.annotateLogs(o))}),Lr=e=>t=>{if(e){let n=e(t);if(n!==null)return n}return Q(t)},$=()=>({uploadCreatedTotal:e.Metric.counter(`upload_created_total`,{description:`Total number of uploads created`}),uploadCompletedTotal:e.Metric.counter(`upload_completed_total`,{description:`Total number of uploads completed successfully`}),uploadFailedTotal:e.Metric.counter(`upload_failed_total`,{description:`Total number of uploads that failed`}),chunkUploadedTotal:e.Metric.counter(`chunk_uploaded_total`,{description:`Total number of chunks uploaded`}),uploadFromUrlTotal:e.Metric.counter(`upload_from_url_total`,{description:`Total number of URL-based uploads`}),uploadFromUrlSuccessTotal:e.Metric.counter(`upload_from_url_success_total`,{description:`Total number of successful URL-based uploads`}),uploadFromUrlFailedTotal:e.Metric.counter(`upload_from_url_failed_total`,{description:`Total number of failed URL-based uploads`}),uploadDurationHistogram:e.Metric.histogram(`upload_duration_seconds`,e.MetricBoundaries.exponential({start:.01,factor:2,count:20}),`Duration of complete upload operations in seconds`),chunkUploadDurationHistogram:e.Metric.histogram(`chunk_upload_duration_seconds`,e.MetricBoundaries.exponential({start:.001,factor:2,count:15}),`Duration of individual chunk uploads in seconds`),uploadFileSizeHistogram:e.Metric.histogram(`upload_file_size_bytes`,e.MetricBoundaries.exponential({start:1024,factor:2,count:25}),`Size of uploaded files in bytes`),chunkSizeHistogram:e.Metric.histogram(`chunk_size_bytes`,e.MetricBoundaries.linear({start:262144,width:262144,count:20}),`Size of uploaded chunks in bytes`),activeUploadsGauge:e.Metric.gauge(`active_uploads`,{description:`Number of currently active uploads`}),uploadThroughputGauge:e.Metric.gauge(`upload_throughput_bytes_per_second`,{description:`Current upload throughput in bytes per second`}),uploadLatencySummary:e.Metric.summary({name:`upload_latency_seconds`,maxAge:`10 minutes`,maxSize:1e3,error:.01,quantiles:[.5,.9,.95,.99],description:`Upload operation latency percentiles`}),chunkLatencySummary:e.Metric.summary({name:`chunk_latency_seconds`,maxAge:`10 minutes`,maxSize:1e3,error:.01,quantiles:[.5,.9,.95,.99],description:`Chunk upload latency percentiles`})}),Rr=$(),zr=(t=`uploadista-upload-server`)=>{let n=$();return e.Layer.succeed(A,{serviceName:t,enabled:!0,metrics:{uploadCreated:e.Effect.succeed(n.uploadCreatedTotal).pipe(e.Effect.flatMap(t=>e.Metric.increment(t))),uploadCompleted:e.Effect.succeed(n.uploadCompletedTotal).pipe(e.Effect.flatMap(t=>e.Metric.increment(t))),uploadFailed:e.Effect.succeed(n.uploadFailedTotal).pipe(e.Effect.flatMap(t=>e.Metric.increment(t))),chunkUploaded:e.Effect.succeed(n.chunkUploadedTotal).pipe(e.Effect.flatMap(t=>e.Metric.increment(t)))}})},Br=zr();M(!1);const Vr=e.Effect.gen(function*(){return(yield*A).metrics}),Hr=e=>{let t=$();return e.Effect.gen(function*(){let n=Date.now(),r=yield*e,i=(Date.now()-n)/1e3;return yield*e.Metric.update(t.uploadDurationHistogram,i),r}).pipe(e.Effect.withSpan(`upload-operation`))},Ur=e=>{let t=$();return e.Effect.gen(function*(){let n=Date.now(),r=yield*e,i=(Date.now()-n)/1e3;return yield*e.Metric.update(t.chunkUploadDurationHistogram,i),r}).pipe(e.Effect.withSpan(`chunk-upload`))},Wr=e.Layer.succeed(A,{serviceName:`uploadista-upload-server-test`,enabled:!0,metrics:{uploadCreated:e.Effect.void,uploadCompleted:e.Effect.void,uploadFailed:e.Effect.void,chunkUploaded:e.Effect.void}}),Gr=()=>$(),Kr=()=>{let e=Gr(),t=[`uploadCreatedTotal`,`uploadCompletedTotal`,`uploadFailedTotal`,`chunkUploadedTotal`,`uploadFromUrlTotal`,`uploadFromUrlSuccessTotal`,`uploadFromUrlFailedTotal`,`uploadDurationHistogram`,`chunkUploadDurationHistogram`,`uploadFileSizeHistogram`,`chunkSizeHistogram`,`activeUploadsGauge`,`uploadThroughputGauge`,`uploadLatencySummary`,`chunkLatencySummary`].filter(t=>!(t in e));if(t.length>0)throw Error(`Missing required metrics: ${t.join(`, `)}`);return!0},qr=(e,t)=>n=>n.pipe(n.Effect.withSpan(`upload-${e}`,{attributes:{"upload.operation":e,...t}})),Jr=t=>e.Effect.annotateCurrentSpan({"upload.id":t.uploadId??`unknown`,"upload.file_name":t.fileName??`unknown`,"upload.file_size":t.fileSize?.toString()??`0`,"upload.storage_id":t.storageId??`unknown`,"upload.mime_type":t.mimeType??`unknown`}),Yr=t=>e.Effect.annotateCurrentSpan({"chunk.upload_id":t.uploadId,"chunk.size":t.chunkSize.toString(),"chunk.offset":t.offset.toString(),"chunk.total_size":t.totalSize?.toString()??`0`,"chunk.progress":t.totalSize&&t.totalSize>0?(t.offset/t.totalSize*100).toFixed(2):`0`});exports.AzureObservabilityLayer=Yt,exports.AzureTracingLayer=qt,Object.defineProperty(exports,`BatchLogRecordProcessor`,{enumerable:!0,get:function(){return i.BatchLogRecordProcessor}}),exports.FilesystemObservabilityLayer=bn,exports.FilesystemTracingLayer=vn,exports.FlowObservability=j,exports.FlowObservabilityDisabled=st,exports.FlowObservabilityLive=Ot,exports.GCSObservabilityLayer=Wn,exports.GCSTracingLayer=Hn,Object.defineProperty(exports,`LoggerProvider`,{enumerable:!0,get:function(){return i.LoggerProvider}}),Object.defineProperty(exports,`MeterProvider`,{enumerable:!0,get:function(){return a.MeterProvider}}),exports.MetricsService=Gt,exports.NoOpMetricsServiceLive=Kt,exports.NodeSdkLive=Fe,Object.defineProperty(exports,`OTLPLogExporter`,{enumerable:!0,get:function(){return t.OTLPLogExporter}}),Object.defineProperty(exports,`OTLPMetricExporter`,{enumerable:!0,get:function(){return n.OTLPMetricExporter}}),exports.Observability=O,exports.ObservabilityDisabled=it,exports.OtelLogger=g,exports.OtelMeter=x,exports.OtlpAutoSdkLive=et,exports.OtlpFullObservabilityNodeSdkLive=Je,exports.OtlpFullObservabilityWebSdkLive=Xe,exports.OtlpFullObservabilityWorkersSdkLive=Qe,exports.OtlpLogsNodeSdkLive=de,exports.OtlpLogsWebSdkLive=pe,exports.OtlpLogsWorkersSdkLive=he,exports.OtlpMetricsNodeSdkLive=Ce,exports.OtlpMetricsWebSdkLive=Te,exports.OtlpMetricsWorkersSdkLive=De,exports.OtlpNodeSdkLive=Le,exports.OtlpWebSdkLive=ze,exports.OtlpWorkersSdkLive=Ve,Object.defineProperty(exports,`PeriodicExportingMetricReader`,{enumerable:!0,get:function(){return a.PeriodicExportingMetricReader}}),exports.S3ObservabilityLayer=mr,exports.S3TracingLayer=fr,Object.defineProperty(exports,`SeverityNumber`,{enumerable:!0,get:function(){return s.SeverityNumber}}),exports.StorageObservability=k,exports.StorageObservabilityDisabled=at,exports.TracingService=Me,exports.UploadObservability=A,exports.UploadObservabilityDisabled=ot,exports.UploadObservabilityLive=Br,exports.UploadObservabilityTest=Wr,exports.WebSdkLive=Pe,exports.WorkersSdkLive=Ie,exports.annotateCircuitBreakerStateChange=Wt,exports.azureActiveUploadsGauge=hn,exports.azureApiCallsTotal=un,exports.azureFileSizeHistogram=pn,exports.azureMetrics=q,exports.azurePartSizeHistogram=mn,exports.azurePartUploadDurationHistogram=fn,exports.azureUploadDurationHistogram=dn,exports.azureUploadErrorsTotal=ln,exports.azureUploadLatencySummary=_n,exports.azureUploadPartsTotal=sn,exports.azureUploadRequestsTotal=on,exports.azureUploadSuccessTotal=cn,exports.azureUploadThroughputGauge=gn,exports.captureMetrics=gt,exports.captureTraceContext=Ue,exports.captureTraceContextEffect=We,exports.classifyFlowError=G,exports.classifyStorageError=u,exports.classifyUploadError=Q,exports.createExternalSpan=Ge,exports.createFlowMetrics=W,exports.createGauge=je,exports.createOtlpAutoSdkLayer=tt,exports.createOtlpEffectLogger=_e,exports.createOtlpFullObservabilityNodeSdkLayer=Ye,exports.createOtlpFullObservabilityWebSdkLayer=Ze,exports.createOtlpFullObservabilityWorkersSdkLayer=$e,exports.createOtlpLogExporter=ae,exports.createOtlpLoggerProvider=le,exports.createOtlpLogsNodeSdkLayer=fe,exports.createOtlpLogsWebSdkLayer=me,exports.createOtlpLogsWorkersSdkLayer=ge,exports.createOtlpMeterProvider=se,exports.createOtlpMetricExporter=re,exports.createOtlpMetricsNodeSdkLayer=we,exports.createOtlpMetricsWebSdkLayer=Ee,exports.createOtlpMetricsWorkersSdkLayer=Oe,exports.createOtlpNodeSdkLayer=Re,exports.createOtlpTraceExporter=ne,exports.createOtlpWebSdkLayer=Be,exports.createOtlpWorkersSdkLayer=He,exports.createStorageErrorClassifier=ee,exports.createStorageErrorTracker=d,exports.createStorageMetrics=z,exports.createStorageTracingLayer=C,exports.createTestFixture=vt,exports.createTracingLayer=Ne,exports.createUploadEngineMetrics=$,exports.createUploadErrorClassifier=Lr,exports.createUploadGauges=dt,exports.createUploadHistograms=ut,exports.createUploadMetrics=lt,exports.createUploadSummaries=ft,exports.detectEnvironment=D,exports.emitLog=b,exports.filesystemActiveUploadsGauge=zn,exports.filesystemApiCallsTotal=Pn,exports.filesystemFileSizeHistogram=Ln,exports.filesystemMetrics=Y,exports.filesystemPartSizeHistogram=Rn,exports.filesystemPartUploadDurationHistogram=In,exports.filesystemUploadDurationHistogram=Fn,exports.filesystemUploadErrorsTotal=Nn,exports.filesystemUploadLatencySummary=Vn,exports.filesystemUploadPartsTotal=jn,exports.filesystemUploadRequestsTotal=An,exports.filesystemUploadSuccessTotal=Mn,exports.filesystemUploadThroughputGauge=Bn,exports.flowMetrics=wt,exports.gcsActiveUploadsGauge=lr,exports.gcsApiCallsTotal=ir,exports.gcsFileSizeHistogram=sr,exports.gcsMetrics=X,exports.gcsPartSizeHistogram=cr,exports.gcsPartUploadDurationHistogram=or,exports.gcsUploadDurationHistogram=ar,exports.gcsUploadErrorsTotal=rr,exports.gcsUploadLatencySummary=dr,exports.gcsUploadPartsTotal=tr,exports.gcsUploadRequestsTotal=er,exports.gcsUploadSuccessTotal=nr,exports.gcsUploadThroughputGauge=ur,exports.getFlowMetrics=kt,exports.getLogsExportInterval=ce,exports.getMetricsExportInterval=oe,exports.getOtlpEndpoint=p,exports.getServiceName=h,exports.getTestMetrics=Gr,exports.getTraceContext=v,exports.getUploadMetrics=Vr,exports.hasActiveTraceContext=qe,exports.isObservabilityEnabled=P,exports.isOtlpExportEnabled=m,exports.logAzureContext=an,exports.logAzureOperation=tn,exports.logAzureUploadCompletion=rn,exports.logAzureUploadProgress=nn,exports.logDebug=ve,exports.logError=xe,exports.logFatal=Se,exports.logFilesystemContext=kn,exports.logFilesystemOperation=En,exports.logFilesystemUploadCompletion=On,exports.logFilesystemUploadProgress=Dn,exports.logGCSContext=$n,exports.logGCSOperation=Xn,exports.logGCSUploadCompletion=Qn,exports.logGCSUploadProgress=Zn,exports.logInfo=ye,exports.logS3Context=Cr,exports.logS3Operation=br,exports.logS3UploadCompletion=Sr,exports.logS3UploadProgress=xr,exports.logStorageOperation=L,exports.logUploadCompletion=R,exports.logUploadProgress=I,exports.logWarn=be,exports.logWithContext=F,exports.makeFlowObservabilityLayer=N,exports.makeFlowObservabilityLive=Dt,exports.makeObservabilityLayer=nt,exports.makeStorageObservabilityLayer=rt,exports.makeTestFlowObservability=ht,exports.makeTestFlowObservabilityUtil=Pt,exports.makeTestStorageObservability=pt,exports.makeTestUploadObservability=mt,exports.makeUploadObservabilityLayer=M,exports.makeUploadObservabilityLive=zr,exports.mapLogLevelToSeverity=_,exports.parseOtlpHeaders=f,exports.parseResourceAttributes=ie,exports.recordCounter=ke,exports.recordHistogram=Ae,exports.runWithTestFlowObservability=Ft,exports.runWithTestObservability=yt,exports.s3ActiveUploadsGauge=Nr,exports.s3ApiCallsTotal=Or,exports.s3FileSizeHistogram=jr,exports.s3Metrics=Z,exports.s3PartSizeHistogram=Mr,exports.s3PartUploadDurationHistogram=Ar,exports.s3UploadDurationHistogram=kr,exports.s3UploadErrorsTotal=Dr,exports.s3UploadLatencySummary=Fr,exports.s3UploadPartsTotal=Tr,exports.s3UploadRequestsTotal=wr,exports.s3UploadSuccessTotal=Er,exports.s3UploadThroughputGauge=Pr,exports.severityToText=ue,exports.trackActiveFlow=Mt,exports.trackActiveNode=Nt,exports.trackAzureError=Jt,exports.trackFileSize=bt,exports.trackFilesystemError=yn,exports.trackFlowError=Tt,exports.trackGCSError=Un,exports.trackNodeError=Et,exports.trackPartSize=xt,exports.trackS3Error=pr,exports.trackStorageError=te,exports.trackUploadError=Ir,exports.uploadEngineMetrics=Rr,exports.validateMetricsExist=Kr,exports.whenObservabilityEnabled=ct,exports.withActiveUploadTracking=St,exports.withApiMetrics=V,exports.withAzureApiMetrics=Zt,exports.withAzureOperationMetrics=$t,exports.withAzureSpan=en,exports.withAzureTimingMetrics=Qt,exports.withAzureUploadMetrics=Xt,exports.withChunkContext=Yr,exports.withChunkDuration=Ur,exports.withCircuitBreakerContext=Ut,exports.withCircuitBreakerSpan=Ht,exports.withExecutionContext=zt,exports.withFilesystemApiMetrics=Sn,exports.withFilesystemOperationMetrics=wn,exports.withFilesystemSpan=Tn,exports.withFilesystemTimingMetrics=Cn,exports.withFilesystemUploadMetrics=xn,exports.withFlowContext=Lt,exports.withFlowDuration=At,exports.withFlowSpan=It,exports.withGCSApiMetrics=Kn,exports.withGCSOperationMetrics=Jn,exports.withGCSSpan=Yn,exports.withGCSTimingMetrics=qn,exports.withGCSUploadMetrics=Gn,exports.withMetricTracking=_t,exports.withNodeContext=Rt,exports.withNodeDuration=jt,exports.withOperationContext=Vt,exports.withOperationSpan=Bt,exports.withParentContext=Ke,exports.withS3ApiMetrics=gr,exports.withS3OperationMetrics=vr,exports.withS3Span=yr,exports.withS3TimingMetrics=_r,exports.withS3UploadMetrics=hr,exports.withStorageOperationMetrics=U,exports.withStorageSpan=w,exports.withThroughputTracking=Ct,exports.withTimingMetrics=H,exports.withUploadContext=Jr,exports.withUploadDuration=Hr,exports.withUploadMetrics=B,exports.withUploadSpan=qr;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Context, Effect, Layer, Logger, Metric, Option, Tracer } from "effect";
|
|
2
|
-
import * as
|
|
3
|
-
import * as
|
|
2
|
+
import * as effect_MetricKeyType19 from "effect/MetricKeyType";
|
|
3
|
+
import * as effect_MetricState19 from "effect/MetricState";
|
|
4
4
|
import { OTLPLogExporter, OTLPLogExporter as OTLPLogExporter$1 } from "@opentelemetry/exporter-logs-otlp-http";
|
|
5
5
|
import { OTLPMetricExporter, OTLPMetricExporter as OTLPMetricExporter$1 } from "@opentelemetry/exporter-metrics-otlp-http";
|
|
6
6
|
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
|
|
@@ -20,10 +20,10 @@ declare const createUploadMetrics: (storageType: string) => {
|
|
|
20
20
|
apiCallsTotal: Metric.Metric.Counter<number>;
|
|
21
21
|
};
|
|
22
22
|
declare const createUploadHistograms: (storageType: string) => {
|
|
23
|
-
uploadDurationHistogram: Metric.Metric<
|
|
24
|
-
partUploadDurationHistogram: Metric.Metric<
|
|
25
|
-
fileSizeHistogram: Metric.Metric<
|
|
26
|
-
partSizeHistogram: Metric.Metric<
|
|
23
|
+
uploadDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
24
|
+
partUploadDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
25
|
+
fileSizeHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
26
|
+
partSizeHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
27
27
|
};
|
|
28
28
|
declare const createUploadGauges: (storageType: string) => {
|
|
29
29
|
activeUploadsGauge: Metric.Metric.Gauge<number>;
|
|
@@ -36,10 +36,10 @@ declare const createStorageMetrics: (storageType: string) => {
|
|
|
36
36
|
uploadLatencySummary: Metric.Metric.Summary<number>;
|
|
37
37
|
activeUploadsGauge: Metric.Metric.Gauge<number>;
|
|
38
38
|
uploadThroughputGauge: Metric.Metric.Gauge<number>;
|
|
39
|
-
uploadDurationHistogram: Metric.Metric<
|
|
40
|
-
partUploadDurationHistogram: Metric.Metric<
|
|
41
|
-
fileSizeHistogram: Metric.Metric<
|
|
42
|
-
partSizeHistogram: Metric.Metric<
|
|
39
|
+
uploadDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
40
|
+
partUploadDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
41
|
+
fileSizeHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
42
|
+
partSizeHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
43
43
|
uploadRequestsTotal: Metric.Metric.Counter<number>;
|
|
44
44
|
uploadPartsTotal: Metric.Metric.Counter<number>;
|
|
45
45
|
uploadSuccessTotal: Metric.Metric.Counter<number>;
|
|
@@ -626,11 +626,8 @@ declare const logFatal: (message: string, attributes?: Record<string, string | n
|
|
|
626
626
|
* ```
|
|
627
627
|
*/
|
|
628
628
|
type TraceContext = {
|
|
629
|
-
/** 128-bit trace identifier (32 hex characters) */
|
|
630
|
-
|
|
631
|
-
/** 64-bit span identifier (16 hex characters) */
|
|
632
|
-
spanId: string;
|
|
633
|
-
/** Trace flags (1 = sampled) */
|
|
629
|
+
/** 128-bit trace identifier (32 hex characters) */traceId: string; /** 64-bit span identifier (16 hex characters) */
|
|
630
|
+
spanId: string; /** Trace flags (1 = sampled) */
|
|
634
631
|
traceFlags: number;
|
|
635
632
|
};
|
|
636
633
|
//#endregion
|
|
@@ -1238,26 +1235,20 @@ declare const createFlowMetrics: () => {
|
|
|
1238
1235
|
nodeSuccessTotal: Metric.Metric.Counter<number>;
|
|
1239
1236
|
nodeFailedTotal: Metric.Metric.Counter<number>;
|
|
1240
1237
|
nodeSkippedTotal: Metric.Metric.Counter<number>;
|
|
1241
|
-
flowDurationHistogram: Metric.Metric<
|
|
1242
|
-
nodeDurationHistogram: Metric.Metric<
|
|
1243
|
-
flowNodeCountHistogram: Metric.Metric<
|
|
1244
|
-
parallelNodesHistogram: Metric.Metric<
|
|
1238
|
+
flowDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1239
|
+
nodeDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1240
|
+
flowNodeCountHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1241
|
+
parallelNodesHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1245
1242
|
activeFlowsGauge: Metric.Metric.Gauge<number>;
|
|
1246
1243
|
activeNodesGauge: Metric.Metric.Gauge<number>;
|
|
1247
1244
|
pausedFlowsGauge: Metric.Metric.Gauge<number>;
|
|
1248
1245
|
flowLatencySummary: Metric.Metric.Summary<number>;
|
|
1249
|
-
nodeLatencySummary: Metric.Metric.Summary<number>;
|
|
1250
|
-
/** Total number of times circuit breakers
|
|
1251
|
-
|
|
1252
|
-
/** Total number of times circuit breakers
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
circuitBreakerRejectedTotal: Metric.Metric.Counter<number>;
|
|
1256
|
-
/** Total number of times circuit breakers transitioned to half-open */
|
|
1257
|
-
circuitBreakerHalfOpenTotal: Metric.Metric.Counter<number>;
|
|
1258
|
-
/** Current state of circuit breakers (0=closed, 1=open, 2=half-open) */
|
|
1259
|
-
circuitBreakerStateGauge: Metric.Metric.Gauge<number>;
|
|
1260
|
-
/** Number of failures in circuit breaker sliding window */
|
|
1246
|
+
nodeLatencySummary: Metric.Metric.Summary<number>; /** Total number of times circuit breakers opened */
|
|
1247
|
+
circuitBreakerOpenTotal: Metric.Metric.Counter<number>; /** Total number of times circuit breakers closed */
|
|
1248
|
+
circuitBreakerCloseTotal: Metric.Metric.Counter<number>; /** Total number of requests rejected by open circuit breakers */
|
|
1249
|
+
circuitBreakerRejectedTotal: Metric.Metric.Counter<number>; /** Total number of times circuit breakers transitioned to half-open */
|
|
1250
|
+
circuitBreakerHalfOpenTotal: Metric.Metric.Counter<number>; /** Current state of circuit breakers (0=closed, 1=open, 2=half-open) */
|
|
1251
|
+
circuitBreakerStateGauge: Metric.Metric.Gauge<number>; /** Number of failures in circuit breaker sliding window */
|
|
1261
1252
|
circuitBreakerFailuresGauge: Metric.Metric.Gauge<number>;
|
|
1262
1253
|
};
|
|
1263
1254
|
/**
|
|
@@ -1277,26 +1268,20 @@ declare const flowMetrics: {
|
|
|
1277
1268
|
nodeSuccessTotal: Metric.Metric.Counter<number>;
|
|
1278
1269
|
nodeFailedTotal: Metric.Metric.Counter<number>;
|
|
1279
1270
|
nodeSkippedTotal: Metric.Metric.Counter<number>;
|
|
1280
|
-
flowDurationHistogram: Metric.Metric<
|
|
1281
|
-
nodeDurationHistogram: Metric.Metric<
|
|
1282
|
-
flowNodeCountHistogram: Metric.Metric<
|
|
1283
|
-
parallelNodesHistogram: Metric.Metric<
|
|
1271
|
+
flowDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1272
|
+
nodeDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1273
|
+
flowNodeCountHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1274
|
+
parallelNodesHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1284
1275
|
activeFlowsGauge: Metric.Metric.Gauge<number>;
|
|
1285
1276
|
activeNodesGauge: Metric.Metric.Gauge<number>;
|
|
1286
1277
|
pausedFlowsGauge: Metric.Metric.Gauge<number>;
|
|
1287
1278
|
flowLatencySummary: Metric.Metric.Summary<number>;
|
|
1288
|
-
nodeLatencySummary: Metric.Metric.Summary<number>;
|
|
1289
|
-
/** Total number of times circuit breakers
|
|
1290
|
-
|
|
1291
|
-
/** Total number of times circuit breakers
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
circuitBreakerRejectedTotal: Metric.Metric.Counter<number>;
|
|
1295
|
-
/** Total number of times circuit breakers transitioned to half-open */
|
|
1296
|
-
circuitBreakerHalfOpenTotal: Metric.Metric.Counter<number>;
|
|
1297
|
-
/** Current state of circuit breakers (0=closed, 1=open, 2=half-open) */
|
|
1298
|
-
circuitBreakerStateGauge: Metric.Metric.Gauge<number>;
|
|
1299
|
-
/** Number of failures in circuit breaker sliding window */
|
|
1279
|
+
nodeLatencySummary: Metric.Metric.Summary<number>; /** Total number of times circuit breakers opened */
|
|
1280
|
+
circuitBreakerOpenTotal: Metric.Metric.Counter<number>; /** Total number of times circuit breakers closed */
|
|
1281
|
+
circuitBreakerCloseTotal: Metric.Metric.Counter<number>; /** Total number of requests rejected by open circuit breakers */
|
|
1282
|
+
circuitBreakerRejectedTotal: Metric.Metric.Counter<number>; /** Total number of times circuit breakers transitioned to half-open */
|
|
1283
|
+
circuitBreakerHalfOpenTotal: Metric.Metric.Counter<number>; /** Current state of circuit breakers (0=closed, 1=open, 2=half-open) */
|
|
1284
|
+
circuitBreakerStateGauge: Metric.Metric.Gauge<number>; /** Number of failures in circuit breaker sliding window */
|
|
1300
1285
|
circuitBreakerFailuresGauge: Metric.Metric.Gauge<number>;
|
|
1301
1286
|
};
|
|
1302
1287
|
//#endregion
|
|
@@ -1436,10 +1421,10 @@ declare const azureMetrics: {
|
|
|
1436
1421
|
uploadLatencySummary: effect_Metric64.Metric.Summary<number>;
|
|
1437
1422
|
activeUploadsGauge: effect_Metric64.Metric.Gauge<number>;
|
|
1438
1423
|
uploadThroughputGauge: effect_Metric64.Metric.Gauge<number>;
|
|
1439
|
-
uploadDurationHistogram: effect_Metric64.Metric<
|
|
1440
|
-
partUploadDurationHistogram: effect_Metric64.Metric<
|
|
1441
|
-
fileSizeHistogram: effect_Metric64.Metric<
|
|
1442
|
-
partSizeHistogram: effect_Metric64.Metric<
|
|
1424
|
+
uploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1425
|
+
partUploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1426
|
+
fileSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1427
|
+
partSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1443
1428
|
uploadRequestsTotal: effect_Metric64.Metric.Counter<number>;
|
|
1444
1429
|
uploadPartsTotal: effect_Metric64.Metric.Counter<number>;
|
|
1445
1430
|
uploadSuccessTotal: effect_Metric64.Metric.Counter<number>;
|
|
@@ -1474,7 +1459,7 @@ declare const logAzureUploadCompletion: (uploadId: string, metrics: {
|
|
|
1474
1459
|
retryCount?: number;
|
|
1475
1460
|
}) => Effect.Effect<void, never, never>;
|
|
1476
1461
|
declare const logAzureContext: (message: string, context: Record<string, unknown>) => Effect.Effect<void, never, never>;
|
|
1477
|
-
declare const azureUploadRequestsTotal: effect_Metric64.Metric.Counter<number>, azureUploadPartsTotal: effect_Metric64.Metric.Counter<number>, azureUploadSuccessTotal: effect_Metric64.Metric.Counter<number>, azureUploadErrorsTotal: effect_Metric64.Metric.Counter<number>, azureApiCallsTotal: effect_Metric64.Metric.Counter<number>, azureUploadDurationHistogram: effect_Metric64.Metric<
|
|
1462
|
+
declare const azureUploadRequestsTotal: effect_Metric64.Metric.Counter<number>, azureUploadPartsTotal: effect_Metric64.Metric.Counter<number>, azureUploadSuccessTotal: effect_Metric64.Metric.Counter<number>, azureUploadErrorsTotal: effect_Metric64.Metric.Counter<number>, azureApiCallsTotal: effect_Metric64.Metric.Counter<number>, azureUploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, azurePartUploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, azureFileSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, azurePartSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, azureActiveUploadsGauge: effect_Metric64.Metric.Gauge<number>, azureUploadThroughputGauge: effect_Metric64.Metric.Gauge<number>, azureUploadLatencySummary: effect_Metric64.Metric.Summary<number>;
|
|
1478
1463
|
type AzureMetrics = StorageMetrics;
|
|
1479
1464
|
//#endregion
|
|
1480
1465
|
//#region src/storage/filesystem.d.ts
|
|
@@ -1482,10 +1467,10 @@ declare const filesystemMetrics: {
|
|
|
1482
1467
|
uploadLatencySummary: effect_Metric64.Metric.Summary<number>;
|
|
1483
1468
|
activeUploadsGauge: effect_Metric64.Metric.Gauge<number>;
|
|
1484
1469
|
uploadThroughputGauge: effect_Metric64.Metric.Gauge<number>;
|
|
1485
|
-
uploadDurationHistogram: effect_Metric64.Metric<
|
|
1486
|
-
partUploadDurationHistogram: effect_Metric64.Metric<
|
|
1487
|
-
fileSizeHistogram: effect_Metric64.Metric<
|
|
1488
|
-
partSizeHistogram: effect_Metric64.Metric<
|
|
1470
|
+
uploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1471
|
+
partUploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1472
|
+
fileSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1473
|
+
partSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1489
1474
|
uploadRequestsTotal: effect_Metric64.Metric.Counter<number>;
|
|
1490
1475
|
uploadPartsTotal: effect_Metric64.Metric.Counter<number>;
|
|
1491
1476
|
uploadSuccessTotal: effect_Metric64.Metric.Counter<number>;
|
|
@@ -1520,7 +1505,7 @@ declare const logFilesystemUploadCompletion: (uploadId: string, metrics: {
|
|
|
1520
1505
|
retryCount?: number;
|
|
1521
1506
|
}) => Effect.Effect<void, never, never>;
|
|
1522
1507
|
declare const logFilesystemContext: (message: string, context: Record<string, unknown>) => Effect.Effect<void, never, never>;
|
|
1523
|
-
declare const filesystemUploadRequestsTotal: effect_Metric64.Metric.Counter<number>, filesystemUploadPartsTotal: effect_Metric64.Metric.Counter<number>, filesystemUploadSuccessTotal: effect_Metric64.Metric.Counter<number>, filesystemUploadErrorsTotal: effect_Metric64.Metric.Counter<number>, filesystemApiCallsTotal: effect_Metric64.Metric.Counter<number>, filesystemUploadDurationHistogram: effect_Metric64.Metric<
|
|
1508
|
+
declare const filesystemUploadRequestsTotal: effect_Metric64.Metric.Counter<number>, filesystemUploadPartsTotal: effect_Metric64.Metric.Counter<number>, filesystemUploadSuccessTotal: effect_Metric64.Metric.Counter<number>, filesystemUploadErrorsTotal: effect_Metric64.Metric.Counter<number>, filesystemApiCallsTotal: effect_Metric64.Metric.Counter<number>, filesystemUploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, filesystemPartUploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, filesystemFileSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, filesystemPartSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, filesystemActiveUploadsGauge: effect_Metric64.Metric.Gauge<number>, filesystemUploadThroughputGauge: effect_Metric64.Metric.Gauge<number>, filesystemUploadLatencySummary: effect_Metric64.Metric.Summary<number>;
|
|
1524
1509
|
type FilesystemMetrics = StorageMetrics;
|
|
1525
1510
|
//#endregion
|
|
1526
1511
|
//#region src/storage/gcs.d.ts
|
|
@@ -1528,10 +1513,10 @@ declare const gcsMetrics: {
|
|
|
1528
1513
|
uploadLatencySummary: effect_Metric64.Metric.Summary<number>;
|
|
1529
1514
|
activeUploadsGauge: effect_Metric64.Metric.Gauge<number>;
|
|
1530
1515
|
uploadThroughputGauge: effect_Metric64.Metric.Gauge<number>;
|
|
1531
|
-
uploadDurationHistogram: effect_Metric64.Metric<
|
|
1532
|
-
partUploadDurationHistogram: effect_Metric64.Metric<
|
|
1533
|
-
fileSizeHistogram: effect_Metric64.Metric<
|
|
1534
|
-
partSizeHistogram: effect_Metric64.Metric<
|
|
1516
|
+
uploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1517
|
+
partUploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1518
|
+
fileSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1519
|
+
partSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1535
1520
|
uploadRequestsTotal: effect_Metric64.Metric.Counter<number>;
|
|
1536
1521
|
uploadPartsTotal: effect_Metric64.Metric.Counter<number>;
|
|
1537
1522
|
uploadSuccessTotal: effect_Metric64.Metric.Counter<number>;
|
|
@@ -1566,7 +1551,7 @@ declare const logGCSUploadCompletion: (uploadId: string, metrics: {
|
|
|
1566
1551
|
retryCount?: number;
|
|
1567
1552
|
}) => Effect.Effect<void, never, never>;
|
|
1568
1553
|
declare const logGCSContext: (message: string, context: Record<string, unknown>) => Effect.Effect<void, never, never>;
|
|
1569
|
-
declare const gcsUploadRequestsTotal: effect_Metric64.Metric.Counter<number>, gcsUploadPartsTotal: effect_Metric64.Metric.Counter<number>, gcsUploadSuccessTotal: effect_Metric64.Metric.Counter<number>, gcsUploadErrorsTotal: effect_Metric64.Metric.Counter<number>, gcsApiCallsTotal: effect_Metric64.Metric.Counter<number>, gcsUploadDurationHistogram: effect_Metric64.Metric<
|
|
1554
|
+
declare const gcsUploadRequestsTotal: effect_Metric64.Metric.Counter<number>, gcsUploadPartsTotal: effect_Metric64.Metric.Counter<number>, gcsUploadSuccessTotal: effect_Metric64.Metric.Counter<number>, gcsUploadErrorsTotal: effect_Metric64.Metric.Counter<number>, gcsApiCallsTotal: effect_Metric64.Metric.Counter<number>, gcsUploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, gcsPartUploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, gcsFileSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, gcsPartSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, gcsActiveUploadsGauge: effect_Metric64.Metric.Gauge<number>, gcsUploadThroughputGauge: effect_Metric64.Metric.Gauge<number>, gcsUploadLatencySummary: effect_Metric64.Metric.Summary<number>;
|
|
1570
1555
|
type GCSMetrics = StorageMetrics;
|
|
1571
1556
|
//#endregion
|
|
1572
1557
|
//#region src/storage/s3.d.ts
|
|
@@ -1574,10 +1559,10 @@ declare const s3Metrics: {
|
|
|
1574
1559
|
uploadLatencySummary: effect_Metric64.Metric.Summary<number>;
|
|
1575
1560
|
activeUploadsGauge: effect_Metric64.Metric.Gauge<number>;
|
|
1576
1561
|
uploadThroughputGauge: effect_Metric64.Metric.Gauge<number>;
|
|
1577
|
-
uploadDurationHistogram: effect_Metric64.Metric<
|
|
1578
|
-
partUploadDurationHistogram: effect_Metric64.Metric<
|
|
1579
|
-
fileSizeHistogram: effect_Metric64.Metric<
|
|
1580
|
-
partSizeHistogram: effect_Metric64.Metric<
|
|
1562
|
+
uploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1563
|
+
partUploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1564
|
+
fileSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1565
|
+
partSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1581
1566
|
uploadRequestsTotal: effect_Metric64.Metric.Counter<number>;
|
|
1582
1567
|
uploadPartsTotal: effect_Metric64.Metric.Counter<number>;
|
|
1583
1568
|
uploadSuccessTotal: effect_Metric64.Metric.Counter<number>;
|
|
@@ -1612,7 +1597,7 @@ declare const logS3UploadCompletion: (uploadId: string, metrics: {
|
|
|
1612
1597
|
retryCount?: number;
|
|
1613
1598
|
}) => Effect.Effect<void, never, never>;
|
|
1614
1599
|
declare const logS3Context: (message: string, context: Record<string, unknown>) => Effect.Effect<void, never, never>;
|
|
1615
|
-
declare const s3UploadRequestsTotal: effect_Metric64.Metric.Counter<number>, s3UploadPartsTotal: effect_Metric64.Metric.Counter<number>, s3UploadSuccessTotal: effect_Metric64.Metric.Counter<number>, s3UploadErrorsTotal: effect_Metric64.Metric.Counter<number>, s3ApiCallsTotal: effect_Metric64.Metric.Counter<number>, s3UploadDurationHistogram: effect_Metric64.Metric<
|
|
1600
|
+
declare const s3UploadRequestsTotal: effect_Metric64.Metric.Counter<number>, s3UploadPartsTotal: effect_Metric64.Metric.Counter<number>, s3UploadSuccessTotal: effect_Metric64.Metric.Counter<number>, s3UploadErrorsTotal: effect_Metric64.Metric.Counter<number>, s3ApiCallsTotal: effect_Metric64.Metric.Counter<number>, s3UploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, s3PartUploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, s3FileSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, s3PartSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, s3ActiveUploadsGauge: effect_Metric64.Metric.Gauge<number>, s3UploadThroughputGauge: effect_Metric64.Metric.Gauge<number>, s3UploadLatencySummary: effect_Metric64.Metric.Summary<number>;
|
|
1616
1601
|
type S3Metrics = StorageMetrics;
|
|
1617
1602
|
//#endregion
|
|
1618
1603
|
//#region src/upload/metrics.d.ts
|
|
@@ -1627,10 +1612,10 @@ declare const createUploadEngineMetrics: () => {
|
|
|
1627
1612
|
uploadFromUrlTotal: Metric.Metric.Counter<number>;
|
|
1628
1613
|
uploadFromUrlSuccessTotal: Metric.Metric.Counter<number>;
|
|
1629
1614
|
uploadFromUrlFailedTotal: Metric.Metric.Counter<number>;
|
|
1630
|
-
uploadDurationHistogram: Metric.Metric<
|
|
1631
|
-
chunkUploadDurationHistogram: Metric.Metric<
|
|
1632
|
-
uploadFileSizeHistogram: Metric.Metric<
|
|
1633
|
-
chunkSizeHistogram: Metric.Metric<
|
|
1615
|
+
uploadDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1616
|
+
chunkUploadDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1617
|
+
uploadFileSizeHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1618
|
+
chunkSizeHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1634
1619
|
activeUploadsGauge: Metric.Metric.Gauge<number>;
|
|
1635
1620
|
uploadThroughputGauge: Metric.Metric.Gauge<number>;
|
|
1636
1621
|
uploadLatencySummary: Metric.Metric.Summary<number>;
|
|
@@ -1651,10 +1636,10 @@ declare const uploadEngineMetrics: {
|
|
|
1651
1636
|
uploadFromUrlTotal: Metric.Metric.Counter<number>;
|
|
1652
1637
|
uploadFromUrlSuccessTotal: Metric.Metric.Counter<number>;
|
|
1653
1638
|
uploadFromUrlFailedTotal: Metric.Metric.Counter<number>;
|
|
1654
|
-
uploadDurationHistogram: Metric.Metric<
|
|
1655
|
-
chunkUploadDurationHistogram: Metric.Metric<
|
|
1656
|
-
uploadFileSizeHistogram: Metric.Metric<
|
|
1657
|
-
chunkSizeHistogram: Metric.Metric<
|
|
1639
|
+
uploadDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1640
|
+
chunkUploadDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1641
|
+
uploadFileSizeHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1642
|
+
chunkSizeHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1658
1643
|
activeUploadsGauge: Metric.Metric.Gauge<number>;
|
|
1659
1644
|
uploadThroughputGauge: Metric.Metric.Gauge<number>;
|
|
1660
1645
|
uploadLatencySummary: Metric.Metric.Summary<number>;
|
|
@@ -1720,10 +1705,10 @@ declare const getTestMetrics: () => {
|
|
|
1720
1705
|
uploadFromUrlTotal: effect_Metric64.Metric.Counter<number>;
|
|
1721
1706
|
uploadFromUrlSuccessTotal: effect_Metric64.Metric.Counter<number>;
|
|
1722
1707
|
uploadFromUrlFailedTotal: effect_Metric64.Metric.Counter<number>;
|
|
1723
|
-
uploadDurationHistogram: effect_Metric64.Metric<
|
|
1724
|
-
chunkUploadDurationHistogram: effect_Metric64.Metric<
|
|
1725
|
-
uploadFileSizeHistogram: effect_Metric64.Metric<
|
|
1726
|
-
chunkSizeHistogram: effect_Metric64.Metric<
|
|
1708
|
+
uploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1709
|
+
chunkUploadDurationHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1710
|
+
uploadFileSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1711
|
+
chunkSizeHistogram: effect_Metric64.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
|
|
1727
1712
|
activeUploadsGauge: effect_Metric64.Metric.Gauge<number>;
|
|
1728
1713
|
uploadThroughputGauge: effect_Metric64.Metric.Gauge<number>;
|
|
1729
1714
|
uploadLatencySummary: effect_Metric64.Metric.Summary<number>;
|