org.apache.ignite.mxbean

## Interface DataRegionMetricsMXBean

All Superinterfaces:
  DataRegionMetrics

    @MXBeanDescription(value="MBean that provides access to DataRegionMetrics of a local Apache Ignite node.")
    public interface DataRegionMetricsMXBean
    extends DataRegionMetrics

This interface defines a JMX view on `DataRegionMetrics`.

### Method Summary

All Methods Instance Methods Abstract Methods Deprecated Methods
`void` `disableMetrics()` Disables memory metrics collection on an Apache Ignite node.
`void` `enableMetrics()` Enables memory metrics collection on an Apache Ignite node.
`float` `getAllocationRate()` Gets pages allocation rate of a memory region.
`long` `getDirtyPages()` Gets the number of dirty pages (pages which contents is different from the current persistent storage state).
`float` `getEvictionRate()` Gets eviction rate of a given memory region.
`int` `getInitialSize()` Gets initial memory region size defined by its `DataRegionConfiguration`.
`float` `getLargeEntriesPagesPercentage()` Gets percentage of pages that are fully occupied by large entries that go beyond page size.
`int` `getMaxSize()` Maximum memory region size defined by its `DataRegionConfiguration`.
`String` `getName()` A name of a memory region the metrics are collected for.
`long` `getOffHeapSize()` Total offheap size in bytes.
`long` `getOffheapUsedSize()` Total used offheap size in bytes.
`float` `getPagesFillFactor()` Gets the percentage of the used space.
`long` `getPagesRead()` The number of read pages from last restart.
`float` `getPagesReplaceAge()` Gets average age (in milliseconds) for the pages being replaced from the disk storage.
`long` `getPagesReplaced()` The number of replaced pages from last restart .
`float` `getPagesReplaceRate()` Gets rate (pages per second) at which pages get replaced with other pages from persistent storage.
`long` `getPagesWritten()` The number of written pages from last restart.
`long` `getPhysicalMemoryPages()` Gets total number of pages currently loaded to the RAM.
`String` `getSwapPath()` A path to the memory-mapped files the memory region defined by `DataRegionConfiguration` will be mapped to.
`long` `getTotalAllocatedPages()` Gets a total number of allocated pages related to the data region.
`long` `getTotalUsedPages()` Gets a total number of pages used for storing the data.
`void` `rateTimeInterval(long rateTimeInterval)` Deprecated. Use `MetricsMxBean.configureHitRateMetric(String, long)` instead.
`void` `subIntervals(int subInts)` Deprecated. Use `MetricsMxBean.configureHitRateMetric(String, long)` instead.

### Methods inherited from interface org.apache.ignite.DataRegionMetrics

`getCheckpointBufferSize, getPageSize, getPhysicalMemorySize, getTotalAllocatedSize, getUsedCheckpointBufferPages, getUsedCheckpointBufferSize`

### Method Detail

#### getName

    @MXBeanDescription(value="A name of a memory region the metrics are collected for.")
    String getName()

A name of a memory region the metrics are collected for.

Specified by:
  `getName` in interface `DataRegionMetrics`
Returns:
  Name of the memory region.

#### getInitialSize

    @MXBeanDescription(value="Initial memory region size defined by its data region.")
    int getInitialSize()

Gets initial memory region size defined by its `DataRegionConfiguration`.

Returns:
  Initial size in MB.

#### getMaxSize

    @MXBeanDescription(value="Maximum memory region size defined by its data region.")
    int getMaxSize()

Maximum memory region size defined by its `DataRegionConfiguration`.

Returns:
  Maximum size in MB.

#### getSwapPath

    @MXBeanDescription(value="Path to the memory-mapped files.")
    String getSwapPath()

A path to the memory-mapped files the memory region defined by `DataRegionConfiguration` will be mapped to.

Returns:
  Path to the memory-mapped files.

#### getTotalAllocatedPages

    @MXBeanDescription(value="Total number of allocated pages.")
    long getTotalAllocatedPages()

Gets a total number of allocated pages related to the data region. When persistence is disabled, this metric shows the total number of pages in memory. When persistence is enabled, this metric shows the total number of pages in memory and on disk.

Specified by:
  `getTotalAllocatedPages` in interface `DataRegionMetrics`
Returns:
  Total number of allocated pages.

#### getTotalUsedPages

    @MXBeanDescription(value="Total number of used pages.")
    long getTotalUsedPages()

Gets a total number of pages used for storing the data. It includes allocated pages except of empty pages that are not used yet or pages that can be reused.

E. g. data region contains 1000 allocated pages, and 200 pages are used to store some data, this metric shows 200 used pages. Then the data was partially deleted and 50 pages were totally freed, hence this metric should show 150 used pages.

Specified by:
  `getTotalUsedPages` in interface `DataRegionMetrics`
Returns:
  Total number of used pages.

#### getAllocationRate

    @MXBeanDescription(value="Allocation rate (pages per second) averaged across rateTimeInternal.")
    float getAllocationRate()

Gets pages allocation rate of a memory region.

Specified by:
  `getAllocationRate` in interface `DataRegionMetrics`
Returns:
  Number of allocated pages per second.

#### getEvictionRate

    @MXBeanDescription(value="Eviction rate (pages per second).")
    float getEvictionRate()

Gets eviction rate of a given memory region.

Specified by:
  `getEvictionRate` in interface `DataRegionMetrics`
Returns:
  Number of evicted pages per second.

#### getLargeEntriesPagesPercentage

    @MXBeanDescription(value="Percentage of pages that are fully occupied by large entries that go beyond page size.")
    float getLargeEntriesPagesPercentage()

Gets percentage of pages that are fully occupied by large entries that go beyond page size. The large entities are split into fragments in a way so that each fragment can fit into a single page.

Specified by:
  `getLargeEntriesPagesPercentage` in interface `DataRegionMetrics`
Returns:
  Percentage of pages fully occupied by large entities.

#### getPagesFillFactor

    @MXBeanDescription(value="The percentage of the used space.")
    float getPagesFillFactor()

Gets the percentage of the used space.

Specified by:
  `getPagesFillFactor` in interface `DataRegionMetrics`
Returns:
  The percentage of the used space.

#### getDirtyPages

    @MXBeanDescription(value="Number of pages in memory not yet synchronized with persistent storage.")
    long getDirtyPages()

Gets the number of dirty pages (pages which contents is different from the current persistent storage state). This metric is enabled only for Ignite nodes with enabled persistence.

Specified by:
  `getDirtyPages` in interface `DataRegionMetrics`
Returns:
  Current number of dirty pages.

#### getPagesReplaceRate

    @MXBeanDescription(value="Rate at which pages in memory are replaced with pages from persistent storage (pages per second).")
    float getPagesReplaceRate()

Gets rate (pages per second) at which pages get replaced with other pages from persistent storage. The rate effectively represents the rate at which pages get 'evicted' in favor of newly needed pages. This metric is enabled only for Ignite nodes with enabled persistence.

Specified by:
  `getPagesReplaceRate` in interface `DataRegionMetrics`
Returns:
  Pages per second replace rate.

#### getPagesReplaceAge

    @MXBeanDescription(value="Average age at which pages in memory are replaced with pages from persistent storage (milliseconds).")
    float getPagesReplaceAge()

Gets average age (in milliseconds) for the pages being replaced from the disk storage. This number effectively represents the average time between the moment when a page is read from the disk and the time when the page is evicted. Note that if a page is never evicted, it does not contribute to this metric. This metric is enabled only for Ignite nodes with enabled persistence.

Specified by:
  `getPagesReplaceAge` in interface `DataRegionMetrics`
Returns:
  Replaced pages age in milliseconds.

#### getPhysicalMemoryPages

    @MXBeanDescription(value="Number of pages residing in physical RAM.")
    long getPhysicalMemoryPages()

Gets total number of pages currently loaded to the RAM. When persistence is disabled, this metric is equal to `DataRegionMetrics.getTotalAllocatedPages()`.

Specified by:
  `getPhysicalMemoryPages` in interface `DataRegionMetrics`
Returns:
  Total number of pages loaded to RAM.

#### getPagesRead

    @MXBeanDescription(value="Number of pages read from last restart.")
    long getPagesRead()

The number of read pages from last restart.

Specified by:
  `getPagesRead` in interface `DataRegionMetrics`
Returns:
  The number of read pages from last restart.

#### getPagesWritten

    @MXBeanDescription(value="Number of pages written from last restart.")
    long getPagesWritten()

The number of written pages from last restart.

Specified by:
  `getPagesWritten` in interface `DataRegionMetrics`
Returns:
  The number of written pages from last restart.

#### getPagesReplaced

    @MXBeanDescription(value="Number of pages replaced from last restart.")
    long getPagesReplaced()

The number of replaced pages from last restart .

Specified by:
  `getPagesReplaced` in interface `DataRegionMetrics`
Returns:
  The number of replaced pages from last restart .

#### getOffHeapSize

    @MXBeanDescription(value="Offheap size in bytes.")
    long getOffHeapSize()

Total offheap size in bytes.

Specified by:
  `getOffHeapSize` in interface `DataRegionMetrics`
Returns:
  Total offheap size in bytes.

#### getOffheapUsedSize

    @MXBeanDescription(value="Offheap used size in bytes.")
    long getOffheapUsedSize()

Total used offheap size in bytes.

Specified by:
  `getOffheapUsedSize` in interface `DataRegionMetrics`
Returns:
  Total used offheap size in bytes.

#### enableMetrics

    @MXBeanDescription(value="Enables memory metrics collection on an Apache Ignite node.")
    void enableMetrics()

Enables memory metrics collection on an Apache Ignite node.

#### disableMetrics

    @MXBeanDescription(value="Disables memory metrics collection on an Apache Ignite node.")
    void disableMetrics()

Disables memory metrics collection on an Apache Ignite node.

#### rateTimeInterval

    @MXBeanDescription(value="Sets time interval for pages allocation and eviction monitoring purposes.")
     @MXBeanParametersNames(value="rateTimeInterval")
     @MXBeanParametersDescriptions(value="Time interval (in milliseconds) to set.")
     @Deprecated
    void rateTimeInterval(long rateTimeInterval)

Deprecated. Use `MetricsMxBean.configureHitRateMetric(String, long)` instead.
Sets time interval for `getAllocationRate()` and `getEvictionRate()` monitoring purposes.

For instance, after setting the interval to 60 seconds, subsequent calls to `getAllocationRate()` will return average allocation rate (pages per second) for the last minute.

Parameters:
  `rateTimeInterval` - Time interval (in milliseconds) used for allocation and eviction rates calculations.

#### subIntervals

    @MXBeanDescription(value="Sets a number of sub-intervals to calculate allocation and eviction rates metrics.")
     @MXBeanParametersNames(value="subInts")
     @MXBeanParametersDescriptions(value="Number of subintervals to set.")
     @Deprecated
    void subIntervals(int subInts)

Deprecated. Use `MetricsMxBean.configureHitRateMetric(String, long)` instead.
Sets a number of sub-intervals the whole `rateTimeInterval(long)` will be split into to calculate `getAllocationRate()` and `getEvictionRate()` rates (5 by default).

Setting it to a bigger value will result in more precise calculation and smaller drops of `getAllocationRate()` metric when next sub-interval has to be recycled but introduces bigger calculation overhead.

Parameters:
  `subInts` - A number of sub-intervals.

${current.year} Copyright © Apache Software Foundation

Follow @ApacheIgnite

Ignite Database and Caching Platform | : ver. 2.8.1
Release Date | : May 21 2020