Chapter 9. Setting Up Monitoring

Collect JMX metrics with the Prometheus Operator to monitor events and get statistics for Data Grid clusters.

From a high-level, you set up monitoring capabilities as follows:

  1. Configure Data Grid with the AB_PROMETHEUS_ENABLE environment variable set to true.
  2. Install the Prometheus Operator and expose the Prometheus web UI.
  3. Export Data Grid metrics to Prometheus.
  4. Enable Prometheus to monitor Data Grid for metrics.

9.1. Deploying the Prometheus Operator

To install the Prometheus Operator, you should refer to the following documentation:

9.2. Exposing Data Grid Metrics to Prometheus

Add a service that exposes JMX metrics from Data Grid to Prometheus.

  1. Create a service-metrics.yaml file that defines a metrics service.

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        description: Expose Data Grid metrics to Prometheus.
      labels:
        app: datagrid-service
        application: datagrid-service
        template: datagrid-service
        metrics: datagrid
      name: datagrid-app-metrics
    spec:
      ClusterIP: None
      ports:
          # Set the port name where Data Grid publishes metrics.
          # You add the port name to service-monitor.yaml.
        - name: web
          port: 8080
          protocol: TCP
          targetPort: 9779
      selector:
        deploymentConfig: datagrid-service
      sessionAffinity: None
  2. Apply service-metrics.yaml.

    $ oc apply -f service-metrics.yaml

9.3. Enabling Prometheus to Monitor Data Grid

A service monitor lets Prometheus connect to the Data Grid metrics service.

  1. Create a service-monitor.yaml file that holds the definition for a ServiceMonitor object.

    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      name: datagrid-service-monitor
      labels:
        team: frontend
    spec:
      selector:
        matchLabels:
          metrics: datagrid
      endpoints:
          # Set the name of the port where Data Grid publishes metrics.
          # You create this port in service-metrics.yaml.
        - port: web
  2. Apply service-monitor.yaml.

    $ oc apply -f service-monitor.yaml