Overview
This service exposes callback REST endpoints for Infobip and Macrokiosk to feed their SMS and Viber delivery statuses, and publishes internal messages to related Kafka topics for output-manager to handle SMS failover. It also exposes metrics to Prometheus for delivery reliability analysis.
API
HTTP
https://output-delivery-status-manager.apps.brave.safibank.online/swagger/views/swagger-ui/#
POST /callback/infobip/sms
POST /callback/infobip/viber
GET /callback/macrokiosk/sms
GET /infobip/sms
GET /infobip/sms/{id}
GET /infobip/viber
GET /infobip/viber/{id}
GET /macrokiosk/sms
GET /macrokiosk/sms/{id}
Usage
Infobip send delivery statuses of SMS and Viber to
/callback/infobip/sms
and/callback/infobip/viber
respectivelyPrometheus can retrieve metrics from endpoint /prometheus. The following delivery-specific metrics are available there
# HELP infobip_total_sms_delivered_to_handset_total total number of SMS requests Infobip delivered to customers # TYPE infobip_total_sms_delivered_to_handset_total counter infobip_total_sms_delivered_to_handset_total 8.0 # HELP infobip_total_viber_fail_to_deliver_to_handset_total total Viber requests Infobip failed to deliver to customers # TYPE infobip_total_viber_fail_to_deliver_to_handset_total counter infobip_total_viber_fail_to_deliver_to_handset_total 0.0 # HELP infobip_total_viber_delivered_to_handset_total total Viber requests Infobip delivered to customers # TYPE infobip_total_viber_delivered_to_handset_total counter infobip_total_viber_delivered_to_handset_total 0.0 # HELP kafka_producer_bufferpool_wait_time_ns_total # TYPE kafka_producer_bufferpool_wait_time_ns_total gauge kafka_producer_bufferpool_wait_time_ns_total{client_id="delivery-status-producer",} 0.0 # HELP infobip_per_sms_delivery_time_seconds average time Infobip takes to deliver SMS requests to customers # TYPE infobip_per_sms_delivery_time_seconds summary infobip_per_sms_delivery_time_seconds{quantile="0.25",} 0.0 infobip_per_sms_delivery_time_seconds{quantile="0.5",} 0.0 infobip_per_sms_delivery_time_seconds{quantile="0.6",} 0.0 infobip_per_sms_delivery_time_seconds{quantile="0.75",} 0.0 infobip_per_sms_delivery_time_seconds{quantile="0.8",} 0.0 infobip_per_sms_delivery_time_seconds{quantile="0.85",} 0.0 infobip_per_sms_delivery_time_seconds{quantile="0.9",} 0.0 infobip_per_sms_delivery_time_seconds{quantile="0.95",} 0.0 infobip_per_sms_delivery_time_seconds{quantile="0.99",} 0.0 infobip_per_sms_delivery_time_seconds_count 18.0 infobip_per_sms_delivery_time_seconds_sum 84.993 # HELP infobip_per_sms_delivery_time_seconds_max average time Infobip takes to deliver SMS requests to customers # TYPE infobip_per_sms_delivery_time_seconds_max gauge infobip_per_sms_delivery_time_seconds_max 0.0 # HELP infobip_per_viber_delivery_time_seconds_max average time Infobip takes to deliver Viber requests to customers # TYPE infobip_per_viber_delivery_time_seconds_max gauge infobip_per_viber_delivery_time_seconds_max 0.0 # HELP infobip_per_viber_delivery_time_seconds average time Infobip takes to deliver Viber requests to customers # TYPE infobip_per_viber_delivery_time_seconds summary infobip_per_viber_delivery_time_seconds{quantile="0.25",} 0.0 infobip_per_viber_delivery_time_seconds{quantile="0.5",} 0.0 infobip_per_viber_delivery_time_seconds{quantile="0.6",} 0.0 infobip_per_viber_delivery_time_seconds{quantile="0.75",} 0.0 infobip_per_viber_delivery_time_seconds{quantile="0.8",} 0.0 infobip_per_viber_delivery_time_seconds{quantile="0.85",} 0.0 infobip_per_viber_delivery_time_seconds{quantile="0.9",} 0.0 infobip_per_viber_delivery_time_seconds{quantile="0.95",} 0.0 infobip_per_viber_delivery_time_seconds{quantile="0.99",} 0.0 infobip_per_viber_delivery_time_seconds_count 0.0 infobip_per_viber_delivery_time_seconds_sum 0.0 # HELP macrokiosk_per_sms_delivery_time_seconds average time Macrokiosk takes to deliver SMS requests to customers # TYPE macrokiosk_per_sms_delivery_time_seconds summary macrokiosk_per_sms_delivery_time_seconds{quantile="0.25",} 0.0 macrokiosk_per_sms_delivery_time_seconds{quantile="0.5",} 0.0 macrokiosk_per_sms_delivery_time_seconds{quantile="0.6",} 0.0 macrokiosk_per_sms_delivery_time_seconds{quantile="0.75",} 0.0 macrokiosk_per_sms_delivery_time_seconds{quantile="0.8",} 0.0 macrokiosk_per_sms_delivery_time_seconds{quantile="0.85",} 0.0 macrokiosk_per_sms_delivery_time_seconds{quantile="0.9",} 0.0 macrokiosk_per_sms_delivery_time_seconds{quantile="0.95",} 0.0 macrokiosk_per_sms_delivery_time_seconds{quantile="0.99",} 0.0 macrokiosk_per_sms_delivery_time_seconds_count 0.0 macrokiosk_per_sms_delivery_time_seconds_sum 0.0 # HELP macrokiosk_per_sms_delivery_time_seconds_max average time Macrokiosk takes to deliver SMS requests to customers # TYPE macrokiosk_per_sms_delivery_time_seconds_max gauge macrokiosk_per_sms_delivery_time_seconds_max 0.0
other users/callers can use REST endpoints to query delivery status details; e.g: time cost in milliseconds, money or failure reason and so on.