 9bdcbe0447
			
		
	
	9bdcbe0447
	
	
	
		
			
			Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package loggabletracer
 | |
| 
 | |
| // SpanContext holds the basic Span metadata.
 | |
| type SpanContext struct {
 | |
| 	// A probabilistically unique identifier for a [multi-span] trace.
 | |
| 	TraceID uint64
 | |
| 
 | |
| 	// A probabilistically unique identifier for a span.
 | |
| 	SpanID uint64
 | |
| 
 | |
| 	// Whether the trace is sampled.
 | |
| 	Sampled bool
 | |
| 
 | |
| 	// The span's associated baggage.
 | |
| 	Baggage map[string]string // initialized on first use
 | |
| }
 | |
| 
 | |
| // ForeachBaggageItem belongs to the opentracing.SpanContext interface
 | |
| func (c SpanContext) ForeachBaggageItem(handler func(k, v string) bool) {
 | |
| 	for k, v := range c.Baggage {
 | |
| 		if !handler(k, v) {
 | |
| 			break
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // WithBaggageItem returns an entirely new loggabletracer SpanContext with the
 | |
| // given key:value baggage pair set.
 | |
| func (c SpanContext) WithBaggageItem(key, val string) SpanContext {
 | |
| 	var newBaggage map[string]string
 | |
| 	if c.Baggage == nil {
 | |
| 		newBaggage = map[string]string{key: val}
 | |
| 	} else {
 | |
| 		newBaggage = make(map[string]string, len(c.Baggage)+1)
 | |
| 		for k, v := range c.Baggage {
 | |
| 			newBaggage[k] = v
 | |
| 		}
 | |
| 		newBaggage[key] = val
 | |
| 	}
 | |
| 	// Use positional parameters so the compiler will help catch new fields.
 | |
| 	return SpanContext{c.TraceID, c.SpanID, c.Sampled, newBaggage}
 | |
| }
 |