Chapter 9. Monitoring Data Grid with Prometheus

Data Grid exposes a metrics endpoint that provides statistics and events to Prometheus.

9.1. Setting Up Prometheus

Set up Prometheus so it can authenticate with and monitor Data Grid clusters.

Prerequisites

  • Install the Prometheus Operator.
  • Create a running Prometheus instance.

Procedure

  1. Add an authentication secret to your Prometheus namespace.

    This secret allows Prometheus to authenticate with your Data Grid cluster. You can find Data Grid credentials in the authentication secret in your Data Grid Operator namespace.

    apiVersion: v1
    stringData:
      username: developer 1
      password: dIRs5cAAsHIeeRIL 2
    kind: Secret
    metadata:
      name: basic-auth
    type: Opaque
    1
    specifies an application user. developer is the default application user.
    2
    specifies a corresponding password.
  2. Create a service monitor instance that configures Prometheus to monitor your Data Grid cluster.

    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      labels:
        k8s-app: prometheus
      name: datagrid-monitoring 1
      namespace: infinispan-monitoring 2
    spec:
      endpoints:
        - basicAuth:
            username:
              key: username
              name: basic-auth 3
            password:
              key: password
              name: basic-auth 4
          interval: 30s
          scheme: https 5
          tlsConfig:
            insecureSkipVerify: true
            serverName: certificate-CN 6
      namespaceSelector:
        matchNames:
          - infinispan 7
      selector:
        matchLabels:
          app: infinispan-service
          clusterName: cluster-name 8
    1
    names the service monitor.
    2
    specifies your Prometheus namespace.
    3
    specifies the name of the authentication secret that has Data Grid credentials.
    4
    specifies the name of the authentication secret that has Data Grid credentials.
    5
    specifies that Data Grid endpoints use encryption. If you do not use TLS, remove spec.endpoints.scheme.
    6
    specifies the Common Name (CN) of the TLS certificate for Data Grid encryption. If you use an OpenShift service certificate, the CN matches the metadata.name resource for your Data Grid cluster. If you do not use TLS, remove spec.endpoints.tlsConfig.
    7
    specifies the Data Grid Operator namespace.
    8
    specifies the name of the Data Grid cluster.