Show / Hide Table of Contents

# Interface IClusterMetrics

Represents runtime information of a cluster. Apart from obvious statistical value, this information is used for implementation of load balancing, failover, and collision SPIs. For example, collision SPI in combination with fail-over SPI could check if other nodes don't have any active or waiting jobs and fail-over some jobs to those nodes.

Node metrics for any node can be accessed via GetMetrics() method. Keep in mind that there will be a certain network delay (usually equal to heartbeat delay) for the accuracy of node metrics. However, when accessing metrics on local node the metrics are always accurate and up to date.

###### Namespace: Apache.Ignite.Core.Cluster

###### Assembly: Apache.Ignite.Core.dll

##### Syntax

    public interface IClusterMetrics

### Properties

#### AverageActiveJobs

Average number of active jobs.

##### Declaration

    float AverageActiveJobs { get; }

##### Property Value

Type | Description
--- | ---
System.Single |

#### AverageCancelledJobs

Average number of cancelled jobs.

##### Declaration

    float AverageCancelledJobs { get; }

##### Property Value

Type | Description
--- | ---
System.Single |

#### AverageCpuLoad

Average of CPU load values in [0, 1] range over all metrics kept in the history.

##### Declaration

    double AverageCpuLoad { get; }

##### Property Value

Type | Description
--- | ---
System.Double |

#### AverageJobExecuteTime

Average job execution time.

##### Declaration

    double AverageJobExecuteTime { get; }

##### Property Value

Type | Description
--- | ---
System.Double |

#### AverageJobWaitTime

Average time jobs spend waiting in the queue to be executed.

##### Declaration

    double AverageJobWaitTime { get; }

##### Property Value

Type | Description
--- | ---
System.Double |

#### AverageRejectedJobs

Average number of jobs this node rejects during collision resolution operations.

##### Declaration

    float AverageRejectedJobs { get; }

##### Property Value

Type | Description
--- | ---
System.Single |

#### AverageWaitingJobs

Average number of waiting jobs.

##### Declaration

    float AverageWaitingJobs { get; }

##### Property Value

Type | Description
--- | ---
System.Single |

#### BusyTimePercentage

Percentage of time this node is busy.

##### Declaration

    float BusyTimePercentage { get; }

##### Property Value

Type | Description
--- | ---
System.Single |

#### CurrentActiveJobs

Number of currently active jobs concurrently executing on the node.

##### Declaration

    int CurrentActiveJobs { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### CurrentCancelledJobs

Number of cancelled jobs that are still running.

##### Declaration

    int CurrentCancelledJobs { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### CurrentCpuLoad

Returns the CPU usage usage in [0, 1] range.

##### Declaration

    double CurrentCpuLoad { get; }

##### Property Value

Type | Description
--- | ---
System.Double |

#### CurrentDaemonThreadCount

Current number of live daemon threads.

##### Declaration

    int CurrentDaemonThreadCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### CurrentGcCpuLoad

Average time spent in CG since the last update.

##### Declaration

    double CurrentGcCpuLoad { get; }

##### Property Value

Type | Description
--- | ---
System.Double |

#### CurrentIdleTime

Time this node spend idling since executing last job.

##### Declaration

    long CurrentIdleTime { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### CurrentJobExecuteTime

Longest time a current job has been executing for.

##### Declaration

    long CurrentJobExecuteTime { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### CurrentJobWaitTime

Current time an oldest jobs has spent waiting to be executed.

##### Declaration

    long CurrentJobWaitTime { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### CurrentRejectedJobs

Number of jobs rejected after more recent collision resolution operation.

##### Declaration

    int CurrentRejectedJobs { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### CurrentThreadCount

Current number of live threads.

##### Declaration

    int CurrentThreadCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### CurrentWaitingJobs

Number of queued jobs currently waiting to be executed.

##### Declaration

    int CurrentWaitingJobs { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### HeapMemoryCommitted

Amount of heap memory in bytes that is committed for the JVM to use. This amount of memory is guaranteed for the JVM to use. The heap consists of one or more memory pools. This value is the sum of committed heap memory values of all heap memory pools.

##### Declaration

    long HeapMemoryCommitted { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### HeapMemoryInitialized

Amount of heap memory in bytes that the JVM initially requests from the operating system for memory management. This method returns `-1` if the initial memory size is undefined.

This value represents a setting of the heap memory for Java VM and is not a sum of all initial heap values for all memory pools.

##### Declaration

    long HeapMemoryInitialized { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### HeapMemoryMaximum

Mmaximum amount of heap memory in bytes that can be used for memory management. This method returns `-1` if the maximum memory size is undefined.

This amount of memory is not guaranteed to be available for memory management if it is greater than the amount of committed memory. The JVM may fail to allocate memory even if the amount of used memory does not exceed this maximum size.

This value represents a setting of the heap memory for Java VM and is not a sum of all initial heap values for all memory pools.

##### Declaration

    long HeapMemoryMaximum { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### HeapMemoryTotal

Total amount of heap memory in bytes. This method returns `-1` if the total memory size is undefined.

This amount of memory is not guaranteed to be available for memory management if it is greater than the amount of committed memory. The JVM may fail to allocate memory even if the amount of used memory does not exceed this maximum size.

This value represents a setting of the heap memory for Java VM and is not a sum of all initial heap values for all memory pools.

##### Declaration

    long HeapMemoryTotal { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### HeapMemoryUsed

Current heap size that is used for object allocation. The heap consists of one or more memory pools. This value is the sum of used heap memory values of all heap memory pools.

The amount of used memory in the returned is the amount of memory occupied by both live objects and garbage objects that have not been collected, if any.

##### Declaration

    long HeapMemoryUsed { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### IdleTimePercentage

Percentage of time this node is idle

##### Declaration

    float IdleTimePercentage { get; }

##### Property Value

Type | Description
--- | ---
System.Single |

#### LastDataVersion

Ignite assigns incremental versions to all cache operations. This property provides the latest data version on the node.

##### Declaration

    long LastDataVersion { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### LastUpdateTime

Last update time of this node metrics.

##### Declaration

    DateTime LastUpdateTime { get; }

##### Property Value

Type | Description
--- | ---
System.DateTime |

#### MaximumActiveJobs

Maximum number of jobs that ever ran concurrently on this node.

##### Declaration

    int MaximumActiveJobs { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### MaximumCancelledJobs

Maximum number of cancelled jobs ever had running concurrently.

##### Declaration

    int MaximumCancelledJobs { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### MaximumJobExecuteTime

Time it took to execute the longest job on the node.

##### Declaration

    long MaximumJobExecuteTime { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### MaximumJobWaitTime

Maximum time a job ever spent waiting in a queue to be executed.

##### Declaration

    long MaximumJobWaitTime { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### MaximumRejectedJobs

Maximum number of jobs rejected at once.

##### Declaration

    int MaximumRejectedJobs { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### MaximumThreadCount

The peak live thread count.

##### Declaration

    int MaximumThreadCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### MaximumWaitingJobs

Maximum number of waiting jobs.

##### Declaration

    int MaximumWaitingJobs { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### NodeStartTime

Start time of the Ignite node in milliseconds.

##### Declaration

    DateTime NodeStartTime { get; }

##### Property Value

Type | Description
--- | ---
System.DateTime |

#### NonHeapMemoryCommitted

Amount of non-heap memory in bytes that is committed for the JVM to use.

##### Declaration

    long NonHeapMemoryCommitted { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### NonHeapMemoryInitialized

Amount of non-heap memory in bytes that the JVM initially requests from the operating system for memory management.

##### Declaration

    long NonHeapMemoryInitialized { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### NonHeapMemoryMaximum

Maximum amount of non-heap memory in bytes that can be used for memory management.

##### Declaration

    long NonHeapMemoryMaximum { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### NonHeapMemoryTotal

Total amount of non-heap memory in bytes that can be used for memory management.

##### Declaration

    long NonHeapMemoryTotal { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### NonHeapMemoryUsed

Current non-heap memory size that is used by Java VM.

##### Declaration

    long NonHeapMemoryUsed { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### OutboundMessagesQueueSize

Outbound messages queue size.

##### Declaration

    int OutboundMessagesQueueSize { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### ReceivedBytesCount

Received bytes count.

##### Declaration

    long ReceivedBytesCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### ReceivedMessagesCount

Received messages count.

##### Declaration

    int ReceivedMessagesCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### SentBytesCount

Sent bytes count.

##### Declaration

    long SentBytesCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### SentMessagesCount

Sent messages count

##### Declaration

    int SentMessagesCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### StartTime

Start time of the JVM in milliseconds.

##### Declaration

    DateTime StartTime { get; }

##### Property Value

Type | Description
--- | ---
System.DateTime |

#### TotalBusyTime

Total time this node spent executing jobs.

##### Declaration

    long TotalBusyTime { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### TotalCancelledJobs

Total number of cancelled jobs since node startup.

##### Declaration

    int TotalCancelledJobs { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### TotalCpus

Returns the number of CPUs available to the Java Virtual Machine.

##### Declaration

    int TotalCpus { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### TotalExecutedJobs

Total number of jobs handled by the node since node startup.

##### Declaration

    int TotalExecutedJobs { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### TotalExecutedTasks

Total number of jobs handled by the node.

##### Declaration

    int TotalExecutedTasks { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### TotalIdleTime

Total time this node spent idling.

##### Declaration

    long TotalIdleTime { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### TotalNodes

Gets total number of nodes.

##### Declaration

    int TotalNodes { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### TotalRejectedJobs

Total number of jobs this node rejects during collision resolution operations since node startup.

##### Declaration

    int TotalRejectedJobs { get; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### TotalStartedThreadCount

The total number of threads started.

##### Declaration

    long TotalStartedThreadCount { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### Uptime

Uptime of the JVM in milliseconds.

##### Declaration

    long Uptime { get; }

##### Property Value

Type | Description
--- | ---
System.Int64 |