Table of Contents

Class MetalProductionLogger

Namespace
DotCompute.Backends.Metal.Telemetry
Assembly
DotCompute.Backends.Metal.dll

Production-grade structured logging with correlation IDs and enterprise integration

public sealed class MetalProductionLogger : IDisposable
Inheritance
MetalProductionLogger
Implements
Inherited Members
Extension Methods

Constructors

MetalProductionLogger(ILogger<MetalProductionLogger>, MetalLoggingOptions)

public MetalProductionLogger(ILogger<MetalProductionLogger> logger, MetalLoggingOptions options)

Parameters

logger ILogger<MetalProductionLogger>
options MetalLoggingOptions

Methods

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public void Dispose()

EndContext(LogContext, bool, Dictionary<string, object>?)

Ends a logging context

public void EndContext(LogContext context, bool success = true, Dictionary<string, object>? additionalProperties = null)

Parameters

context LogContext
success bool
additionalProperties Dictionary<string, object>

GenerateCorrelationId()

Generates a new correlation ID for tracking related operations

public static string GenerateCorrelationId()

Returns

string

LogDeviceUtilization(Dictionary<string, object>, string?)

Logs device utilization metrics

public void LogDeviceUtilization(Dictionary<string, object> utilizationMetrics, string? correlationId = null)

Parameters

utilizationMetrics Dictionary<string, object>
correlationId string

LogError(string, MetalError, string, Dictionary<string, object>?)

Logs error with comprehensive context

public void LogError(string correlationId, MetalError error, string context, Dictionary<string, object>? additionalContext = null)

Parameters

correlationId string
error MetalError
context string
additionalContext Dictionary<string, object>

LogKernelExecution(string, string, TimeSpan, long, bool, Dictionary<string, object>?)

Logs kernel execution with comprehensive metrics

public void LogKernelExecution(string correlationId, string kernelName, TimeSpan duration, long dataSize, bool success, Dictionary<string, object>? additionalProperties = null)

Parameters

correlationId string
kernelName string
duration TimeSpan
dataSize long
success bool
additionalProperties Dictionary<string, object>

LogMemoryAllocation(long, TimeSpan, bool, string?)

Logs memory allocation with structured data

public void LogMemoryAllocation(long sizeBytes, TimeSpan duration, bool success, string? correlationId = null)

Parameters

sizeBytes long
duration TimeSpan
success bool
correlationId string

LogMemoryPressure(MemoryPressureLevel, double, string?)

Logs memory pressure events

public void LogMemoryPressure(MemoryPressureLevel level, double percentage, string? correlationId = null)

Parameters

level MemoryPressureLevel
percentage double
correlationId string

LogResourceUsage(ResourceType, long, long, long, double, string?)

Logs resource usage metrics

public void LogResourceUsage(ResourceType type, long currentUsage, long peakUsage, long limit, double utilizationPercentage, string? correlationId = null)

Parameters

type ResourceType
currentUsage long
peakUsage long
limit long
utilizationPercentage double
correlationId string

PerformCleanup(DateTimeOffset)

Performs cleanup of old log contexts

public void PerformCleanup(DateTimeOffset cutoffTime)

Parameters

cutoffTime DateTimeOffset

StartContext(string, string?)

Starts a new logging context with correlation ID

public LogContext StartContext(string operationType, string? correlationId = null)

Parameters

operationType string
correlationId string

Returns

LogContext