6.2. API de de supervision

Chaque composant VITAM peut dialoguer, selon le paramétrage, via 2 réseaux :

  • patte d’administration
  • patte de service

Si les partitions ne possèdent qu’une seule interface, les deux « pattes » passent par cette unique interface.

6.2.1. Patte d’administration

La solution logicielle VITAM expose en interne de la plate-forme les API REST suivantes sur ses composants:

  • /admin/v1/status : statut simple, renvoyant un statut de fonctionnement incluant des informations techniques sur l’état actuel du composant. Un exemple d’utilisation typique est l’intégration à un outil de supervision ou à un élément actif tiers (ex: load-balancer, …) . L’appel doit être peu coûteux.
  • /admin/v1/version : informations de version, build, commit git ayant servi à builder les différents jar.
  • /admin/v1/autotest : autotest du composant, lançant un test de présence des différentes ressources requises par le composant et renvoyant un statut d’état de ces ressources.

6.2.1.1. /admin/v1/status

L’API de status renvoie un fichier JSON contenant les informations suivantes:

{
    "serverIdentity": {
        "Name":"vitam-iaas-app-01",
        "Role":"logbook",
    "PlatformId":425367
    },
    "status":true,
    "detail": {
    },
        "componentsVersions": {
        "e2eb99d93a74409b3ebc5224e596953e9b8a178f":18
    }
}

Signification des champs:

  • serverIdentity
    • Name: hostname du serveur hébergeant le composant (type: texte)
    • Role: Nom du composant (type: texte)
    • PlatformId: ID de l’environnement (type: entier)
  • status: Statut du composant (OK/KO) (type: booléen)
  • detail: vide dans cette version, sera défini ultérieurement
  • componentsVersions
    • hash de commit git: nombre de jars avec buildés depuis ce hash

6.2.1.2. /admin/v1/version

L’API de version renvoie les informations suivantes:

[
    {
        "Scm-tags":"",
        "Scm-commit-id":"e2eb99d93a74409b3ebc5224e596953e9b8a178f",
        "Scm-commit-id-abbrev":"e2eb99d",
        "Maven-version":"0.13.0-SNAPSHOT",
        "Scm-dirty":"false",
        "Scm-commit-time":"2017-01-11T16:38:14+01",
        "Maven-build-timestamp":"2017-01-11T16:06:09Z",
        "Scm-branch":"origin/master_iteration_13",
        "Build-Jdk":"1.8.0_111",
        "Maven-artefactId":"logbook-rest",
        "Maven-groupId":"fr.gouv.vitam"
    },
    {
        "Scm-tags":"",
        "Scm-commit-id":"e2eb99d93a74409b3ebc5224e596953e9b8a178f",
        "Scm-commit-id-abbrev":"e2eb99d",
        "Maven-version":"0.13.0-SNAPSHOT",
        "Scm-dirty":"false",
        "Scm-commit-time":"2017-01-11T16:38:14+01",
        "Maven-build-timestamp":"2017-01-11T16:06:09Z",
        "Scm-branch":"origin/master_iteration_13",
        "Build-Jdk":"1.8.0_111",
        "Maven-artefactId":"logbook-administration",
        "Maven-groupId":"fr.gouv.vitam"
    },
    ...
    ...
    ...
]

Signification des champs:

  • Scm-tags: en cours de définition
  • Scm-commit-id: hash de commit git à partir duquel le composant à été buildé
  • Scm-commit-id-abbrev: hash de commit abrégé
  • Maven-version: Version indiquée à maven dans le fichier pom.xml
  • Scm-dirty: Etat du repo git au moment du build (si présence de fichiers unstaged => dirty)
  • Scm-commit-time: Date du commit git
  • Maven-build-timestamp: Date du build par maven
  • Scm-branch: Nom de la branche git à partir de laquelle le composant a été buildé
  • Build-Jdk: Version de la jdk ayant servit à builder le composant
  • Maven-artefactId: Nom du composant
  • Maven-groupId: namespace du composant

6.2.1.3. /admin/v1/autotest

L’API d’autotest renvoie les informations suivantes:

{
    "httpCode":200,
    "code":"000000",
    "context":"logbook",
    "state":"OK",
    "message":"All services are available",
    "description":"All services are available",
    "errors": [
        {
            "httpCode":200,
            "code":"1",
            "context":"LogbookMongoDbAccessImpl",
            "state":"OK",
            "message":"Sub service is available",
            "description":"LogbookMongoDbAccessImpl service is available"
        },
        {
            "httpCode":200,
            "code":"2",
            "context":"logbook",
            "state":"OK",
            "message":"Internal service is available",
            "description":"vitam-iaas-app-01 service is available"
        }
    ]
}

Signification des champs:

  • httpCode: code de retour http
  • code: en cours de définition ; futur code retour interne VITAM
  • context: Nom du composant
  • state: Etat du composant (OK/KO)
  • message: Message de statut
  • description: Message de description
  • errors:
    • httpCode: code de retour http
    • code: code de retour
    • context: nom du composant
    • state: État du composant
    • message: Message sur l’état du composant
    • description: Description sur l’état du composant

6.2.2. Patte de service

  • /<composant>/v1/status : statut simple, renvoyant un statut de fonctionnement incluant des informations techniques sur l’état actuel du composant. Un exemple d’utilisation typique est l’intégration à un outil de supervision ou à un élément actif tiers (ex: load-balancer, …) . L’appel doit être peu coûteux. Le statut normal HTTP renvoyé est 204.

Avertissement

Les composants vitam-elastic-kibana-interceptor, security-internal, library et les IHM ne possèdent pas ce statut.

Note

Pour le composant security-internal, le point d”API est /v1/status.