Surveillance des API
Etats des services
Okapi expose une page Etats des services afin de partager le statut des API.
Le statut se base sur la route GET /healthcheck
de l'API. Si vous n'avez pas de route GET /healthcheck
, alors Okapi utilisera une route de type GET par défaut.
Exposition de la route healthcheck
Il faut ajouter une ressource GET
qui a pour nom Healthcheck
:
- type: resource
value:
name: Healthcheck
method: get
route: /healthcheck
published: true
api:
urlContext: myapi
version: "1"
Recevoir des alertes
Cette fonctionnalité envoie des alertes lorsque le nombre de réponses d'une API dépasse un seuil prédéfini pour certains codes HTTP. Le seuil de déclenchement de l'alerte ainsi que la durée d'observation sont paramétrables. A ce jour, les alertes sont envoyées uniquement par email. Un email est envoyé par période tant que l'API continue de dépasser le seuil établi.
Rappel : il est possible de configurer le timeout d'une API.
Principe de fonctionnement
L'API déclare, via l'import du fichier de configuration Yaml, les paramètres et les valeurs du monitoring dans le namespace monitor
. Les attributs sont les suivants :
urlcontext
: Obligatoire. Partie de l'URL renseignant le nom de l'API concernée. Ex "monapi" pour l'API https://developer.laposte.fr/products/monapi/1.version
: Obligatoire. Numéro de version de l'API concernée. Ex "1" pour l'API https://developer.laposte.fr/products/monapi/1.emails
: Obligatoire. Tableau des emails destinataires de l'alerte.items
: Obligatoire. Tableau de la liste des statuts a observer
Les attributs de chaque element du tableau items :status
: Obligatoire. Le code HTTP. Ex 504threshold
: Facultatif, Seuil, exprimé en pourcentage, de déclenchement de l'alerte. Si non renseigné, la valeur par défaut retenue est 20.period
: Facultatif, Période d'observation non glissante, exprimée en minute, de déclenchement de l'alerte. Si non renseignée, la valeur par défaut retenue est 10.
Principe de mise en oeuvre
Toute création, modification ou suppression de paramètre dans le "monitor" est effective au maximum 1 heure après.
Paramétrage minimal : utilisation des valeurs par défaut
Dans l'exemple ci-dessous, le seuil de déclenchement et la période n'ont pas été renseignés pour les codes 504 et 500 de l'API "monapi v1". Ainsi lorsqu'au moins 20 % des retours seront en timeout (code HTTP 504) ou en erreur 500 sur une période de 10 minutes, une alerte sera envoyée aux adresses email figurant dans le paramétrage. Pour chaque code renseigné, un email d'alerte sera envoyé toutes les 10 minutes tant que le seuil des 20 % sera atteint.
- type: api
value:
urlContext: monapi
version: '1'
...
- type: monitor
value:
api:
urlContext: monapi
version: "1"
emails:
- support.monapi-v1@laposte.fr
- direx.monapi-v1@laposte.fr
items:
- status: 504
- status: 500
Paramétrage fin des valeurs
Dans l'exemple ci-dessous, les emails d'alerte seront envoyés lorsque l'API "monapi v1" sera en timeout (code HTTP 504) pour au moins 40 % de requêtes mesurées sur 20 minutes ou en erreur 500 pour au moins 80 % de requêtes mesurées sur 30 minutes.
Un email d'alerte sera envoyé toutes les 20 minutes tant que le seuil des 40 % sera atteint et un deuxième email sera envoyé toutes les 30 minutes tant que le seuil des 80 % sera atteint.
- type: api
value:
urlContext: monapi
version: '1'
...
- type: monitor
value:
api:
urlContext: monapi
version: "1"
emails:
- support.monapi-v1@laposte.fr
- direx.monapi-v1@laposte.fr
items:
- status: 504
period: 20
threshold: 40
- status: 500
period: 30
threshold: 80