Table of Contents

Class MetricsCollector

Namespace
DotCompute.Core.Telemetry
Assembly
DotCompute.Core.dll

High-performance metrics collector for kernel execution, memory usage, and device utilization. Provides real-time metrics collection with minimal performance impact (less than 1%).

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

Constructors

MetricsCollector(ILogger<MetricsCollector>)

Initializes a new instance of the MetricsCollector class.

public MetricsCollector(ILogger<MetricsCollector> logger)

Parameters

logger ILogger<MetricsCollector>

The logger.

Methods

CollectAllMetricsAsync(CancellationToken)

Collects all available metrics for export to monitoring systems.

public Task<CollectedMetrics> CollectAllMetricsAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

Task<CollectedMetrics>

DetectBottlenecks()

Detects performance bottlenecks and returns optimization recommendations.

public IReadOnlyList<PerformanceBottleneck> DetectBottlenecks()

Returns

IReadOnlyList<PerformanceBottleneck>

Dispose()

Performs dispose.

public void Dispose()

GetCurrentMemoryUsage()

Gets current memory usage across all devices.

public long GetCurrentMemoryUsage()

Returns

long

GetDevicePerformanceMetrics(string)

Gets device-specific performance metrics including temperature and utilization trends.

public DevicePerformanceMetrics? GetDevicePerformanceMetrics(string deviceId)

Parameters

deviceId string

Returns

DevicePerformanceMetrics

GetDeviceUtilization()

Gets current device utilization as a weighted average across all devices.

public double GetDeviceUtilization()

Returns

double

GetKernelPerformanceMetrics(string)

Gets comprehensive performance metrics for a specific kernel.

public KernelPerformanceMetrics? GetKernelPerformanceMetrics(string kernelName)

Parameters

kernelName string

Returns

KernelPerformanceMetrics

GetMemoryAccessAnalysis(TimeSpan)

Gets memory access patterns for optimization analysis.

public MemoryAccessAnalysis GetMemoryAccessAnalysis(TimeSpan timeWindow)

Parameters

timeWindow TimeSpan

Returns

MemoryAccessAnalysis

RecordKernelExecution(string, string, TimeSpan, long, bool, KernelExecutionDetails)

Records kernel execution metrics with detailed performance characteristics.

public void RecordKernelExecution(string kernelName, string deviceId, TimeSpan executionTime, long memoryUsed, bool success, KernelExecutionDetails details)

Parameters

kernelName string
deviceId string
executionTime TimeSpan
memoryUsed long
success bool
details KernelExecutionDetails

RecordMemoryOperation(string, string, long, TimeSpan, bool, MemoryOperationDetails)

Records memory allocation and transfer operations with bandwidth analysis.

public void RecordMemoryOperation(string operationType, string deviceId, long bytes, TimeSpan duration, bool success, MemoryOperationDetails details)

Parameters

operationType string
deviceId string
bytes long
duration TimeSpan
success bool
details MemoryOperationDetails