Class MetalTelemetryManager
- Namespace
- DotCompute.Backends.Metal.Telemetry
- Assembly
- DotCompute.Backends.Metal.dll
Central telemetry coordination for Metal backend with production-grade monitoring. Consolidated using BaseTelemetryProvider to eliminate duplicate patterns.
public sealed class MetalTelemetryManager : BaseTelemetryProvider, ITelemetryProvider, IDisposable
- Inheritance
-
MetalTelemetryManager
- Implements
- Inherited Members
- Extension Methods
Constructors
MetalTelemetryManager(IOptions<MetalTelemetryOptions>, ILogger<MetalTelemetryManager>, ILoggerFactory)
public MetalTelemetryManager(IOptions<MetalTelemetryOptions> options, ILogger<MetalTelemetryManager> logger, ILoggerFactory loggerFactory)
Parameters
optionsIOptions<MetalTelemetryOptions>loggerILogger<MetalTelemetryManager>loggerFactoryILoggerFactory
Properties
HealthMonitor
Gets the health monitor instance for external health queries.
public MetalHealthMonitor? HealthMonitor { get; }
Property Value
Methods
Dispose(bool)
protected override void Dispose(bool disposing)
Parameters
disposingbool
ExportMetricsAsync(CancellationToken)
Exports metrics to configured monitoring systems
public Task ExportMetricsAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
GenerateProductionReport()
Generates comprehensive production report
public MetalProductionReport GenerateProductionReport()
Returns
GetBackendType()
Gets the backend type identifier (e.g., "CUDA", "Metal", "OpenCL", "CPU").
protected override string GetBackendType()
Returns
GetCurrentSnapshot()
Gets current performance metrics
public MetalTelemetrySnapshot GetCurrentSnapshot()
Returns
RecordDeviceUtilization(double, double, long, long)
Records device utilization metrics
public void RecordDeviceUtilization(double gpuUtilization, double memoryUtilization, long totalMemory, long usedMemory)
Parameters
RecordErrorEvent(MetalError, string, Dictionary<string, object>?)
Records error events with context
public void RecordErrorEvent(MetalError error, string context, Dictionary<string, object>? additionalContext = null)
Parameters
errorMetalErrorcontextstringadditionalContextDictionary<string, object>
RecordKernelExecution(string, TimeSpan, long, bool, Dictionary<string, object>?)
Records kernel execution metrics
public void RecordKernelExecution(string kernelName, TimeSpan duration, long dataSize, bool success = true, Dictionary<string, object>? additionalProperties = null)
Parameters
kernelNamestringdurationTimeSpandataSizelongsuccessbooladditionalPropertiesDictionary<string, object>
RecordMemoryAllocation(long, TimeSpan, bool)
Records memory allocation metrics
public void RecordMemoryAllocation(long sizeBytes, TimeSpan duration, bool success = true)
Parameters
RecordMemoryPressure(MemoryPressureLevel, double)
Records memory pressure levels
public void RecordMemoryPressure(MemoryPressureLevel level, double percentage)
Parameters
levelMemoryPressureLevelpercentagedouble
RecordResourceUsage(ResourceType, long, long, long)
Records resource usage metrics
public void RecordResourceUsage(ResourceType type, long currentUsage, long peakUsage, long limit)
Parameters
typeResourceTypecurrentUsagelongpeakUsagelonglimitlong