GemFire

Topics marked with * relate to features available only in vFabric Hyperic.

This page documents Hyperic's GemFire plugin.

GemFire Plugin Overview

Hyperic's GemFire plugin manages a GemFire Distributed System (DS) and the servers and services it comprises. The indented list of resource types below illustrates the hierarchical relationships among that managed components of a GemFire DS. Each resource type is described below in GemFire Resources and the Hyperic Inventory Model.

 
GemFire Distributed System 
     JMX Agent 
     Cache Server 6.5 
          Cache Server 6.5 Region 
     Application Peer 6.5 
          Application Peer 6.5 Region 
     Gateway Hub 6.5 
          Gateway Hub 6.5 Gateway 
          Gateway Hub 6.5 Region 

Supported Versions

The GemFire plugin supports GemFire v6.5

GemFire Resources and the Hyperic Inventory Model

The table below has a brief description of each GemFire resource type; the right column indicates the inventory level for a type in the Hyperic inventory model.

GemFire Resource Hierarchy

Description

Inventory Type

GemFire Distributed System (DS)

GemFire is a distributed caching system. A GemFire Distributed System (DS) is a logical entity --- a set of servers that are configured to communicate with one another. The servers in a DS are referred to as members or nodes. Member types (defined in the rows below) include:

  • JMX Agent

  • Gateway Hub 6.5

  • Cache Server 6.5

  • Application Peer 6.5

platform

JMX Agent

A GemFire JMX Agent  is an administrative member of a DS through which the Hyperic Agent obtains GemFire resource and metric data. The JMX Agent returns ModelMBeans attributes that correspond to inventory properties and metric values for members of the DS.

server

Gateway Hub 6.5

A Gateway Hub is present in a DS that is part of a multi-DS deployment. The Gateway Hub for a DS: 

  • Creates and manages Gateways for communicating with remote DSs,

  • Receives gateway events from other DSs, and distributes the events to one or all local gateways, in accordance with its distribution policy.

  • Hosts a GemFire cache.

server

Gateway Hub 6.5 Gateway

A Gateway manages a queue of events (where an event is an operation that affects a specific region) to be propagated to a particular remote DS.

service

Cache Server 6.5

A Cache Server is a server for cached objects.  (As opposed to a GemFire Application Peer, which is a GemFire cache within an application).

server

Application Peer 6.5

An Application Peer is an application process running a GemFire cache.

server

regions

In GemFire, a region is a set of cached objects that are managed in accordance with the same policies.  For example, rules for expiration, data policy, scope, the directories to which region data is written, the Gateway Hub to which region events are distributed, and so on.

A region can have subregions, which in turn can have their own subregions. Regions provide a hierarchical namespace for sets of objects in a cache. A region can exist in any non-admin member of the DS. The name of a region in Hyperic indicates the resource type of its parent in the managed resource hierarchy:

  • Application Peer 6.5 Region

  • Cache Server 6.5 Region

  • Gateway Hub 6.5 Region

service

Note: For more information about the managed resource hierarchy, see Resources, Resource Types and Inventory Types in vFabric Hyperic Overview.

Configuration Overview

The GemFire plugin uses the GemFire JMX Agent to obtain inventory properties and metrics for the GemFire components in a GemFire Distributed System (DS). You configure a Hyperic Agent to communicate with the DS's JMX Agent. The Hyperic Agent can run on the same platform as the JMX Agent, or on another platform.

The key requirements for successfully managing GemFire components with Hyperic are:

  • The Hyperic Agent must be able to connect to the JMX Agent. If the Hyperic Agent is on a different platform than the JMX Agent for the DS, you must ensure that the Hyperic Agent can connect to the JMX Agent's RMI service.

  • Each GemFire member's statistic-sampling-enabled property (in its gemfire.properties file) must be set to true. The default value for the property is false.

Resource Types and Management Functions

Management Functions for GemFire Distributed System

Management Function

Description

Classes

Auto-discovery

The GemFire plugin does not automatically discover the platform resource — you explicitly create the resource, and configure it to connect to the JMX Agent for the DS, as described in the Configuration Instructions.

com.vmware.springsource.hyperic.
plugin.gemfire.detectors.
GemfirePlatformDetector

Metric Collection

The GemfireCollector class obtains data about DS membership and presents it as metrics for the platform resource. See GemFire Distributed System Metrics.

com.vmware.springsource.hyperic.
plugin.gemfire.collectors.
GemfireCollector

Event Tracking

If event tracking is configured for the DS, the AlertsPlugin class logs an event for each of the GemFire alert types listed in GemFire Events.

com.vmware.springsource.hyperic.
plugin.gemfire.AlertsPlugin

Live Data

The GemFireLiveData class provides a live data user interface for viewing member metrics in real-time. (As opposed to the Monitor tab for a GemFire component, which presents metrics that have been saved to the Hyperic database.) See Hyperic GemFire View.

com.vmware.springsource.hyperic.
plugin.gemfire.GemFireLiveData

Management Functions for JMX Agent

Management Function

Description

Classes

Auto-discovery

The JMX Agent for a DS is discovered when the plugin connects to the JMX connection configured for the DS platform.

com.vmware.springsource.hyperic.
plugin.gemfire.detectors.
JMXAgentDetector

Metric Collection

The JMXAgentCollector class reports the Availability of a JMX Agent based on its ability to connect to it and query for member information.

com.vmware.springsource.hyperic
.plugin.gemfire.collectors.
JMXAgentCollector

Management Functions for Cache Server 6.5

Management Function

Description

Classes

Auto-Discovery

A Cache Server is discovered via JMX Agent for the DS. The CacheServerDetector class obtains inventory properties from the MemberInfoWithStatsMBean ModelMBean for a Cache Server. This list indicates the MBean attribute that supplies each property:

  • ID - The gemfire.member.id.string 

  • Type -  gemfire.member.type.string 

  • Peer Host - gemfire.member.host.string 

  • Peer Port - gemfire.member.port.string

com.vmware.springsource.hyperic.
plugin.gemfire.detectors.
CacheServerDetector

Metric Collection

The plugin obtains metrics for Cache Server from the GemFire MemberInfoWithStatsMBean ModelMBean for the server via the JMX Agent for the DS. Each metric corresponds to an attribute of the MBean.

For more information, see Member Metrics.

com.vmware.springsource.hyperic.
plugin.gemfire.collectors.
MemberCollector

Management Functions for Cache Server 6.5 Region

Management Function

Description

Classes

Auto-Discovery

The CacheServerDetector class obtains inventory properties from the MemberInfoWithStatsMBean ;ModelMBean for a Region in a Cache Server. This list indicates the MBean attribute that supplies each property:

  • Name - gemfire.region.name.string 

  • Path - gemfire.region.path.string

  • Scope - gemfire.region.scope.string 

  • Data Policy - gemfire.region.datapolicy.string 

  • Interest Policy - gemfire.region.interestpolicy.string 

  • Disk Attributes - gemfire.region.distattrs.string

com.vmware.springsource.hyperic.
plugin.gemfire.detectors.
CacheServerDetector

Metric Collection

The RegionCollector class obtains metrics for a Region in a Cache Server from the GemFire MemberInfoWithStatsMBean ModelMBean for the server. Each metric corresponds to an attribute of the MBean. See Region Metrics.

com.vmware.springsource.hyperic.
plugin.gemfire.collectors.
RegionCollector

Management Functions for Gateway Hub 6.5

Management Function

Description

Classes

Auto-Discovery

The GemFire plugin discovers members of a DS via the JMX Agent for the DS. The GatewayHubDetector class obtains inventory properties from the MemberInfoWithStatsMBean ModelMBean for a Gateway Hub.  This list indicates the MBean attribute that supplies each property:

  • ID - The gemfire.member.id.string 

  • Type -  gemfire.member.type.string 

  • Peer Host - gemfire.member.host.string 

  • Peer Port - gemfire.member.port.string

com.vmware.springsource.hyperic.
plugin.gemfire.collectors. 
GatewayHubDetector

Metric Collection

The GatewayHubCollector obtains metrics for a Gateway Hub from the GemFire {{MemberInfoWithStatsMBean} ModelMBean for the server. Each metric corresponds to an attribute of the MBean. See Member Metrics.

com.vmware.springsource.hyperic.
plugin.gemfire.collectors.
GatewayHubCollector

Management Functions for Gateway Hub 6.5 Gateway

Management Function

Description

Classes

Auto-Discovery

The GatewayHubDetector class obtains inventory properties for a Gateway from the GemFire MemberInfoWithStatsMBean ModelMBean for the Gateway Hub server. Each metric corresponds to an attribute of the MBean.

com.vmware.springsource.hyperic.
plugin.gemfire.collectors. 
GatewayHubDetector

Metric Collection

The GatewayCollector class obtains metrics for a Gateway from the GemFire MemberInfoWithStatsMBean ModelMBean for the Gateway Hub server. Each metric corresponds to an attribute of the MBean.

For more information, see See Gateway Hub 6.5 Gateway Metrics.

com.vmware.springsource.hyperic.
plugin.gemfire.collectors.
GatewayCollector

Management Functions for Gateway Hub 6.5 Region

Management Function

Description

Classes

Auto-Discovery

The GatewayHubDetector class obtains inventory properties for a region in the Gateway Hub from the MemberInfoWithStatsMBean ModelMBean for the Gateway Hub. This list indicates the MBean attribute that supplies each property:

  • ID - gemfire.member.id 

  • Name - gemfire.region.name.string 

  • Path - gemfire.region.path.string

  • Scope - gemfire.region.scope.string 

  • Data Policy - gemfire.region.datapolicy.string 

  • Interest Policy - gemfire.region.interestpolicy.string 

  • Disk Attributes - gemfire.region.distattrs.string

com.vmware.springsource.hyperic.
plugin.gemfire.collectors. 
GatewayHubDetector

Metric Collection

The RegionCollector class obtains metrics for a region in a Gateway Hub from the GemFire MemberInfoWithStatsMBean ModelMBean for the Gateway Hub. See Region Metrics.

com.vmware.springsource.hyperic.
plugin.gemfire.collectors.
RegionCollector

Management Functions for Application Peer 6.5

Management Function

Description

Classes

Auto-Discovery

The GemFire plugin discovers members of a DS via the JMX Agent for the DS. The ApplicationServerDetector class obtains inventory properties from the MemberInfoWithStatsMBean ModelMBean for an Application Peer. This list indicates the MBean attribute that supplies each property:

  • ID - The gemfire.member.id.string 

  • Type -  gemfire.member.type.string 

  • Peer Host - gemfire.member.host.string 

  • Peer Port - gemfire.member.port.string

com.vmware.springsource.hyperic.
plugin.gemfire.detectors.
ApplicationServerDetector

Metric Collection

The plugin MemberCollector class obtains metrics for an Application Peer from the GemFire MemberInfoWithStatsMBean ModelMBean for the server. Each metric corresponds to an attribute of the MBean.See Member Metrics

com.vmware.springsource.hyperic.
plugin.gemfire.collectors.
MemberCollector

Management Functions for Application Peer 6.5 Region

Management Function

Description

Classes

Auto-Discovery

The ApplicationServer Detector class obtains inventory properties for a region in the Application Peer from the MemberInfoWithStatsMBean ModelMBean for the Application Peer. This list indicates the MBean attribute that supplies each property:

  • Name - gemfire.region.name.string 

  • Path - gemfire.region.path.string

  • Scope - gemfire.region.scope.string 

  • Data Policy - gemfire.region.datapolicy.string 

  • Interest Policy - gemfire.region.interestpolicy.string 

  • Disk Attributes - gemfire.region.distattrs.string

com.vmware.springsource.hyperic.
plugin.gemfire.detectors. 
ApplicationServerDetector

Metric Collection

The RegionCollector class obtains metrics for a region in a Application from the GemFire MemberInfoWithStatsMBean ModelMBean for the Application Peer. Each metric corresponds to an attribute of the MBean. See Region Metrics.

com.vmware.springsource.hyperic.
plugin.gemfire.collectors.
RegionCollector

Configuration Instructions

Perform these steps for each DS to be managed.

Step 1: Enable GemFire Member Discovery and Monitoring

Follow these steps to ensure that the GemFire plugin can discover and monitor GemFire components:

  1. If you plan to run the Hyperic Agent on the same platform as the JMX Agent for the DS, skip to Step 2. If you plan to run the Hyperic Agent on a different platform than the JMX Agent for the DS, you must ensure that the Hyperic Agent can connect to the JMX Agent's RMI service — you can do this by specifying the JMX Agent's rmi-bind-address when you start it:
    ./agent start rmi-bind-address=IP_Address -dir/AgentHome

  2. Enable statistics sampling for each GemFire member in the DS — by default, statistics sampling is not enabled. To enable it, edit each member's gemfire.properties file to set the statistic-sampling-enabled property to true.

Step 2: Configure Hyperic Agent for the DS

If you have not already done so, either:

  • install a Hyperic Agent to monitor the DS, either on the same platform as the JMX Agent, or on another platform (see Install an Agent-Only Package in Getting Started with vFabric Hyperic for instructions), or

  • Select an existing Hyperic Agent on a remote platform to monitor the DS.

Step 3: Configure a Platform for the DS

These instructions assume the Hyperic Agent that will monitor the DS is up and running.

  1. Resources > Browse.

  2. Click New Platform on the Tools menu.

  3. On the New Platform page:

    1. In the "General Properties" section, enter a meaningful name for the DS, and as desired, a description and its location.

    2. In the "General Properties" section,

      1. Select Gemfire Distributed System from the Platform Type pulldown.

      2. If the Hyperic Agent is on a different platform from the JMX Agent, select its address:port combination from the Agent Connection pulldown.

      3. Enter the FQDN of the platform where the JMX Agent runs.

      4. Enter the IP Address of the platform where the JMX Agent runs.

      5. Click OK.

    3. In the "Configuration Properties" section of the Inventory page for the new platform:

      • jmx.url — If the Hyperic Agent and the JMX Agent are on different platforms, edit the default JMX URL shown to include the IP address of the JMX Agent.

        • The default jmx.url is:
          service:jmx:rmi:///jndi/rmi://localhost:1099/jmxconnector

        • In the correctly modified jmx.url, localhost is replaced by the hostname or address of the JMX Agent, and the valid JMX connector listen port is specified:
          service:jmx:rmi:///jndi/rmi://Host:Port/jmxconnector

      • jmx.username — Enter the username for accessing the JMX Agent.

      • jmx.password — Enter the password for accessing the JMX Agent.

Step 4: Set Event Tracking Options

To enable log tracking, click the Enable Log Tracking box in the Monitoring section of the Configuration Properties page for the DS. Hyperic will log events of level "ERR" for the alert types listed in GemFire Events.

For information about Hyperic log tracking functionality and configuration options, and how to view log events, see Set Up Log Tracking for a Resource.

Step 5: Tailor Plugin Monitoring Defaults

You can enable and disable metrics, select indicator metrics, and change the collection interval for a resource type on its Monitoring Defaults page. To navigate to a resource type's Monitoring Defaults page:

  1. Click the Administration tab.

  2. Click Monitoring Defaults.

  3. Scroll down to the resource type and click Edit Metric Template.

Step 6: Configure Alert Definitions

Create alert definitions as desired for your managed vSphere components.

Metric Documentation

The following sections define the metrics for each Gemfire resource type.

GemFire Distributed System Metrics

Name

Alias

Description

Units

Category

Default On

Default Interval

Availability

Availability

The DS is considered available if the Hyperic Agent can connect to the JMX Agent for the DS.

percentage

AVAILABILITY

true

1 min

Cache Servers

n_caches

Number of Cache Servers in the DS.

none

UTILIZATION

true

5 min

Applications Peer

n_apps

Number of Application Peers in the DS.

none

UTILIZATION

true

5 min

Gateway Hubs

n_gateways

Number of Gateway Hubs in the DS.

none

UTILIZATION

true

5 min

Member Metrics

The table below defines the metrics available for the server resources in a GemFire deployment.

  • Gateway Hub 6.5

  • Cache Server 6.5 Metrics

  • Application Peer 6.5

Name

Alias

Definition

Units

Category

Default On

Default Interval

Availability

Availability

 

percentage

AVAILABILITY

true

5 min

Used Heap

used_memory

gemfire.
member.
stat.
usedmemory.
long

percentage

UTILIZATION

true

5 min

Used CPU

used_cpu

gemfire.
member.
stat.
maxmemory.long

percentage

UTILIZATION

true

5 min

Uptime

uptime

gemfire.
member.
uptime.l
ong

sec

UTILIZATION

true

30 min

Number of Clients

nclients

 

none

UTILIZATION

false

5 min

Gets

stat.gets

gemfire.
member.
stat.
gets.
int

none

UTILIZATION

false

10 min

Gets per Minute

stat.gets1m

 

none

UTILIZATION

false

10 min

GetTime

stat.gettime

gemfire.
member.
stat.
gettime.
long

sec

UTILIZATION

false

5 min

Puts

stat.puts

gemfire.
member.
stat.
puts.
int

none

UTILIZATION

false

10 min

Puts per Minute

stat.puts1m

 

none

UTILIZATION

false

10 min

PutTime

stat.puttime

gemfire.
member.
stat.
puttime.
long

sec

UTILIZATION

false

5 min

Region Metrics

The table below defines the metrics available for the region service resources in a GemFire deployment:

  • Cache Server 6.5 Region

  • Application Peer 6.5 Region

  • Gateway Hub 6.5 Region

Name

Alias

Definition

Units

Category

Default On

Default Interval

Availability

Availability

 

percentage

AVAILABILITY

true

10 min

Entry Count

entry_count

Number of regions;
 
gemfire.
region.
entrycount.
int

none

UTILIZATION

true

5 min

Gateway Hub 6.5 Gateway Metrics

Name

Alias

Definition

Units

Category

Default On

Default Interval

Availability

Availability

 

percentage

AVAILABILITY

true

10 min

Queue size

queuesize

gemfire.
member.
gateway.
queuesize.
int

none

UTILIZATION

true

5 min

GemFire Events

Event

Notification Type

Notification Source

Notification Message

A new member has joined the GemFire Enterprise DS.

gemfire.distributedsystem.member.joined

ObjectName of the member

String id of the member

A member has left the GemFire Enterprise DS

gemfire.distributedsystem.
member.left

ObjectName of the member

String id of the member

A member has crashed in the GemFire Enterprise DS

gemfire.distributedsystem.
member.crashed

ObjectName of the member

String id of the member

An alert raised from GemFire after scraping the logs of members of the GemFire Enterprise DS.

gemfire.distributedsystem.
alert

String form of ObjectName of the AdminDistributedSystem MBean

Message containg the alert details in a fixed format.

The agent has disconnected from the GemFire Enterprise DS.

gemfire.distributedsystem.
disconnect

String form of ObjectName of the AdminDistributedSystem MBean

null

A cache is created on a member in a GemFire Enterprise DS.

gemfire.distributedsystem.
cache.created

ObjectName of the member

 

A cache is closed on a member in a GemFire Enterprise DS.

gemfire.distributedsystem.
cache.closed

ObjectName of the member

 

A region is created in a cache on a member in a GemFire Enterprise DS

gemfire.distributedsystem.
cache.region.created

ObjectName of the member

 

A region is removed from a cache on a member in a GemFire Enterprise DS.

gemfire.distributedsystem.
cache.region.lost

ObjectName of the member

 

Hyperic GemFire View

VMware vFabric™ Hyperic®'s GemFire plugin provides a live data user interface for viewing metrics in real-time.  (As opposed to the Monitor tab for a GemFire component, which presents metrics that have been saved to the Hyperic database.)  

Learn About GemFire Monitoring

See GemFire in vFabric Hyperic Resource Configuration and Metrics.

GemFire View for a DS

The HQ GemFire View for a Distributed System displays the following information.

  • Servers in the DS — The number of Cache Servers, Gateway Hubs and Application Peers in the DS.

  • Gateways in the DS — If the DS is part of a multi-site deployment, the number of Gateways in the DS's Gateway Hub.

  • Clients connected to the DS — The number of clients (Cache Servers, Gateways, or Application Peers) in other Distributed Systems that are connected to the DS.

The table in the middle of the GemFire View for a DS displays inventory properties and last reported metric values for each server (including Cache Servers, Gateway Hubs and Application Peers) the DS.

images/download/attachments/79038211/GemfireViewDS.png

GemFire View for a Cache Server or Application Peer

The GemFire View for a Cache Server or Application Peer displays server and region inventory properties and metrics:

  • Server metrics — The single row table presents last reported metric values for the Cache Server or Application Peer.

  • Region metrics — The multi-row table presents inventory properties and the Entry Count metric for each region the server contains.

images/download/attachments/79038211/GemfireViewServerDetails.png

GemFire View for a Gateway Hub

The HQ GemFire View for a Gateway Hub displays inventory data and live measurements for the Gateway Hub, the Hubs and Regions it contains, and any clients connected to the Hub.

images/download/attachments/79038211/GemfireViewGatewayServerDetails.png