Health Check and Monitoring
Paylaşmış olduğumuz API Collection’ı ile bir transaction ID oluşturmamız gerekiyor. Postman collection’ındaki base 64 formatındaki fotoğrafı da sunucu içerisine eklenmesi gerekmektedir.
Burada dikkat edilmesi gereken nokta JSON body kısmına aşağıdaki modüller eklenerek istek atılmalı ve ardından alınan transaction ile diğer endpointlere istek atılmalıdır.
Method: POST
https://demo.udentify.io/transaction/start
Request JSON Body:
{
"moduleList":["FACE_REGISTRATION", "FACE_LIVENESS", "FACE_IMAGE_UPLOAD"]
}
Response:
{
"status": "OK",
"message": "Transaction created succesfully.",
"response": {
"id": "TRX6EEC4EF8-5C70-4BEF-B9D0-4DFACE7B68B5",
"creationDate": "2022-12-21 09:06:42",
"expireDate": "2022-12-21 09:21:42",
"data": null
}
}
Ardından oluşan transaction ID ile aşağıdaki endpointe istek atılmalıdır.
Method: POST
https://demo.udentify.io/face/image
Request JSON Body:
{
"transactionId": "TRX6EEC4EF8-5C70-4BEF-B9D0-4DFACE7B68B5",
"params": {
"23": "BASE_64_IMAGE"
}
}
Response:
{
"status": "OK",
"message": "MSG_FACE_IMAGE_UPLOAD_SUCCEED",
"response": {
"id": "TRX6EEC4EF8-5C70-4BEF-B9D0-4DFACE7B68B5",
"creationDate": null,
"expireDate": null,
"data": {
"40": "/1/6EEC4EF8-5C70-4BEF-B9D0-4DFACE7B68B5_uploaded_image_1671614260039.jpeg",
"31": "1671614260039"
}
}
}
Yukarıdaki reponse’da 31 numaralı değişken userid olarak geçmektedir. Bu numarayı da register-authentication-liveness isteğimize mutlaka ekleyip saklıyoruz.
Canlılık servisini de dahil etmemiz için aşağıdaki endpointe’de istek atıyoruz. https://demo.udentify.io/face/register-authentication-liveness
Request JSON Body:
{
"transactionId": "TRX6EEC4EF8-5C70-4BEF-B9D0-4DFACE7B68B5",
"registerAuthenticateOrLiveness": 4,
"params": {
"31": "1671614260039",
"23": "BASE_64_IMAGE"
}
}
Response:
{
"status": "OK",
"message": "LIVENESS_REGISTRATION_SUCCESS",
"response": {
"faceRecognitionResponse": {
"status": "OK",
"message": "MSG_FACE_REGISTRATION_SUCCEED",
"response": {
"id": "TRX6EEC4EF8-5C70-4BEF-B9D0-4DFACE7B68B5",
"creationDate": null,
"expireDate": null,
"data": {
"48": "438184831325582096",
"38": "0.99999976",
"40": "/2022/12/21/9/6EEC4EF8-5C70-4BEF-B9D0-4DFACE7B68B5_registration_image_1671614691676.jpeg",
"44": "true",
"31": "1671614260039"
}
}
},
"livenessResponse": {
"status": "OK",
"message": "MSG_FACE_LIVENESS_SUCCEED",
"response": {
"id": "TRX6EEC4EF8-5C70-4BEF-B9D0-4DFACE7B68B5",
"creationDate": null,
"expireDate": null,
"data": {
"37": "4.913722",
"40": "/2022/12/21/9/6EEC4EF8-5C70-4BEF-B9D0-4DFACE7B68B5_liveness_image_1671614691638.jpeg",
"46": "0.9958316",
"47": "0.9927085"
}
}
}
}
}
Son olarak kontrol transaction’ın durumunu kontrol ediyoruz. https://demo.udentify.io/transaction/get-transaction-data
Request JSON Body:
{
"transactionId": "TRX6EEC4EF8-5C70-4BEF-B9D0-4DFACE7B68B5"
}
Response’da transactionStatus Successful gördüysek servisimiz ayarlanmıştır.
{
"status": "OK",
"message": "MSG_TRANSACTION_DATA_REQUEST_COMPLETED",
"response": {
"transactionId": "TRX54436417-A12F-450D-A99A-74143054B95E",
"customId": null,
"transactionStatus": "SUCCESSFUL", -- Bu Kısım
"requiredModuleList": [
"FACE_REGISTRATION",
"FACE_LIVENESS",
"FACE_IMAGE_UPLOAD"
],
....
....
UserID olarak saklanması gereken numarayı sunucu içerisindeki /opt/udentify/udentify.properties dosyası içerisine yazıyoruz. Health check için paylaştığımız fotoğrafı da aşağıda belirtilen path altına koyarak container’lara restart uyguluyoruz.
io.udentify.face.healthcheck.file.path=/opt/udentify/healthcheck.png
io.udentify.face.healthcheck.userid=1671614260039
io.udentify.face.healthcheck.username=healthchecktestuser
Monitoring
Aşağıda çok popüler bir monitoring toolu olan PRTG üzerinden alarm tanımlamasına bakılarak alarm tanımlaması oluşturulabilir. Response HTTP status 200 dışında kalan her durum alarm olarak algılanmalıdır.
https://demo.udentify.io/transaction/get-transaction-data
Request Body:
{}
Response:
{
"status": "OK",
"message": "health check is ok",
"response": null
}
Diğer izlenebilecek bir servis ise get-transaction-data servisidir.