MC2 provides various Rest interfaces to support features such as generic load, extract, health check, etc. It is a multi-tiers architecture for security, scalability, and fault tolerances.
Following picture depicts the high level flows of current MC2 Rest Services.
MC2 Rest Endpoints Routing
MC2 currently support following Rest Services
MC2 Generic Load/Extract
EBS
Health Check
Pace report service (additional services outside MC2)
MC2 Rest Service Routes
For MC2 Generic Load/Extract, it travels through the following route:
Rest Client → Web Server (Security Validation) → MC2 Load Balancer → MC2 Worker.
For MC2 EBS Request, it travels through the following route:
Rest Client → Web Server (Security Validation) → MC2 Load Balancer → Pyruleservice.
For Pace Report Service Rest Request, it will take the route below:
Rest Client → Web Server (Security Validation) → MC2 Load Balancer → Pace Report Service.
When encounter errors, depends on the type of request and error code, users need to go identify the route and check each endpoint of the route to diagnose the trouble endpoint(s).
General Troubleshooting guide
When invoke MC2 rest services, it returns a status code follow the standard of HTTP respond codes:
200+ means OK
400+ means bad client request
500+ means internal server error
Possible client side requests issues:
When Rest Invocation responds with error code int range of 400+, usually indicates that the error is on the client end with exception of when server endpoint is down.
Frequently bad request error codes are:
400 - Bad request
401 - Unauthorized
403 - Forbidden
404 - Not Found
Check list when encounter client side errors are:
If response code = 400 or 404, check if request URL is correct or server URL is accessible.
If response code = 401, check if correct authentication parameters, user name or password, is specified correctly as part of request.
If response code = 403, the specified URL is not allowed.
Possible server endpoints services issues:
When Rest Invocation failed with error code >= 500, it indicates as a server site errors.
Is all corresponding backend endpoints are up and running?
Is System configurations
Is all deployed Endpoints versions compatibility
others ...
There are multiple way to check if all backend services are up and running. It is easier to login to backend servers or with backend accesses to perform the following checks.
Check MC2 health using healthcheck url
From browser, check the health check url http://{appserver}:{healthcheckport}/health. On returning json, check if all services are "UP".
From backend, check if MC2 services (extractservicelb, extractserviceworker, kafkaservice and pyruleservices) are up and running:
Please reference MC2 Troubleshooting to check if all required services endpoint is up and running.
Check version compatibilities
It is strongly recommended that all MC2 components to be from the same release. Please reference Installed Version Check and verify all installed version.
For issue related to pace-reportservice endpoint, needs to check the following:
Is pace-reportservice deployed?
"pace-reportservice" is deployed on $EAGLE_ROOT_TO_APP/estar/tpe/servers/pace-reportservice. Ensure there is a deployed version in the path.
Is pace-reportserice up and running?
Login to backend, check "ps -ef | grep pace-reportserivce" and see if the process is up and running.
URL for a quick check of the rest endpoints
Following URL can be a quick diagnose of the health of MC2 rest endpoints