@@ -44,7 +44,18 @@ export function isAlarm(trigger: Trigger): trigger is 'do-alarm' {
4444 return trigger === 'do-alarm'
4545}
4646
47- const createResource = ( config : ResolvedTraceConfig ) : Resource => {
47+ function findVersionMeta ( ) : WorkerVersionMetadata | undefined {
48+ return Object . values ( env ) . find ( ( binding : any ) => {
49+ return (
50+ Object . getPrototypeOf ( binding ) . constructor . name === 'Object' &&
51+ binding . id !== undefined &&
52+ binding . tag !== undefined
53+ )
54+ } )
55+ }
56+
57+ const createResource = ( config : ResolvedTraceConfig , versionMeta ?: WorkerVersionMetadata ) : Resource => {
58+ console . log ( { versionMeta } )
4859 const workerResourceAttrs = {
4960 'cloud.provider' : 'cloudflare' ,
5061 'cloud.platform' : 'cloudflare.workers' ,
@@ -54,6 +65,9 @@ const createResource = (config: ResolvedTraceConfig): Resource => {
5465 'telemetry.sdk.name' : '@microlabs/otel-cf-workers' ,
5566 'telemetry.sdk.version' : versions [ '@microlabs/otel-cf-workers' ] ,
5667 'telemetry.sdk.build.node_version' : versions [ 'node' ] ,
68+ 'cf.worker.version.id' : versionMeta ?. id ,
69+ 'cf.worker.version.tag' : versionMeta ?. tag ,
70+ 'cf.worker.version.timestamp' : versionMeta ?. timestamp ,
5771 }
5872 const serviceResource = resourceFromAttributes ( {
5973 'service.name' : config . service . name ,
@@ -75,6 +89,7 @@ function init(config: ResolvedTraceConfig): void {
7589 }
7690 propagation . setGlobalPropagator ( config . propagator )
7791 const resource = createResource ( config )
92+ const resource = createResource ( config , findVersionMeta ( ) )
7893
7994 const provider = new WorkerTracerProvider ( config . spanProcessors , resource )
8095 provider . register ( )
0 commit comments