Hi,
We have discussed (APIM team and analytics team) and came to a decision to
implement the health monitor for APIM as a separate Java client. The
following diagram depicts the architecture of the health monitor.
- Health checker incorporates the full life cycle of an API, therefore
it is located outside the firewall and can be viewed by the admin of the
APIM.
- This client consumes quota from the whole API, therefore the client
needs to manage it.
- This Java client will ping (call API methods from the client) the APIs
periodically (hourly, daily, weekly) and tracks the status codes of the
responses.
- For each API, there will be a separate thread spawned and that thread
will keep track of that API.
- This information will be published to DAS inside the firewall using
HTTPS protocal.
- Based on the status code, a status will be reported as one of the
following (These are to be decided):
1. Healthy - 2xx
2. Some problems occurred during the time period - 4xx
3. Failures reported - 5xx
- Following configuration information will be given the the health
monitor using a yaml file:
- APIM credentials:
- APIM username
- APIM password
- APIM configuration info:
- APIM host
- APIM port
- Application name
- Application tier
- Application key type
- Application key validity time (default -1, infinitely valid)
- Information of APIs:
- API name
- API url
- API version
- API provider
- API tier
- API parameters (if available)
- API payload (if available)
- DAS creadentials:
- DAS username
- DAS password
- DAS configuration info:
- DAS receiver url
- An email notification can be configured to be sent when a failure
is reported for an API.
WDYT?
Best regards.
References:
[1] API metrics: http://apimetrics.io/check-api-health/
--
Pruthuvi Maheshakya Wijewardena
[email protected]
+94711228855
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture