3 Health Checks

This section describes the possible approaches to monitor health of Oracle Banking Microservices Architecture services.

3.1 Discovery Health Check

This topic describes about the health status of all the registered services and their instances.

Figure 3-1 Discovery Health Check



3.2 Actuator Health Indicator Endpoint

This topic describes about the Health Status of the Endpoint

3.2.1 Generic Service

To check the health status of any service hit the below endpoint:

http://<Host>:<Port>/context_path/actuator/health

Example:http://localhost:8089/refapp/actuator/health

With headers similar to:

userId: XYZ

appId: PLATOREFAPP

entityId: DEFAULTENTITY

branchCode: 000

Sample Response:
{
    "status": "UP"
}

To get more detailed health status add following property:

management.endpoint.health.show-details=always

Sample Response:
{
    "status": "UP",
    "components": {
        "binders": {
            "status": "UP",
            "components": {
                "kafka": {
                    "status": "UP"
                }
            }
        },
        "clientConfigServer": {
            "status": "UP",
            "details": {
                "propertySources": [
                    "refapp-jdbc"
                ]
            }
        },
        "db": {
            "status": "UP",
            "components": {
                "PLATO_LOGGER_DS": {
                    "status": "UP",
                    "details": {
                        "database": "Oracle",
                        "validationQuery": "isValid()"
                    }
                },
                "dataSource": {
                    "status": "UP",
                    "details": {
                        "database": "Oracle",
                        "validationQuery": "isValid()"
                    }
                }
            }
        },
        "discoveryComposite": {
            "status": "UP",
            "components": {
                "discoveryClient": {
                    "status": "UP",
                    "details": {
                        "services": [
                            "plato-feed-services",
                            "plato-api-gateway",
                            "plato-rule-service",
                            "refapp"
                        ]
                    }
                },
                "eureka": {
                    "description": "Remote status from Eureka server",
                    "status": "UP",
                    "details": {
                        "applications": {
                            "PLATO-API-GATEWAY": 1,
                            "PLATO-RULE-SERVICE": 1,
                            "REFAPP": 1,
                            "PLATO-FEED-SERVICES": 4,
                        }
                    }
                }
            }
        },
        "diskSpace": {
            "status": "UP",
            "details": {
                "total": 248031522816,
                "free": 81710915584,
                "threshold": 10485760,
                "exists": true
            }
        },
        "hystrix": {
            "status": "UP"
        },
        "ping": {
            "status": "UP"
        },
        "refreshScope": {
            "status": "UP"
        }
    }
}

3.2.2 Kafka Consumers and Producers

To check the health status of kafka consumers and producers hit the following endpoint: http://<Host>:<Port>/context_path/actuator/health

To stop discovery service from routing requests to kafka consumers or producers when connection to kafka is not successful, following flag needs to be set: eureka.client.healthcheck.enabled=true