Publier des traces de transport
Objectif
Enterprise Flows Repository est un moteur avancé pour analyser, regrouper et agréger des traces de transport de flux.
Vos applications d’intermédiation doivent envoyer ces traces à EFR.
Ce diagramme illustre:
les publicateurs de traces,
l’API Traces comme point d’entrée dans EFR,
le stockage des traces dans votre espace Elasticsearch.
Description des traces
Ce moteur consomme des traces de transport composée des informations suivantes:
Element JSON | Description | Obligatoire | Dynamique |
|---|---|---|---|
environment | l’environnement d'émission *, | oui |
|
state | l'état de la trace *, | préférable | L'état peut-être RE-calculé. cf. Calculer le statut des traces de médiation dynamiquement |
message | le message avec:
| préférable | L' ID du message est produit si non inconnu. La date de réception est prise en référence en tant que date si celle-ci est inconnue. |
route | la description du programme émetteur:
| oui |
|
business | la liste des données métiers transportées,
| préférable | Les clés peuvent être extraites du corps du message. |
exception | l’exception dans le cas d’une erreur:
| préférable en cas d’erreur | De nouvelles erreurs peuvent être trouvées avec des définitions supplémentaires. |
infrastructure | l’infrastructure de provenance avec:
| préférable | Utilisé dans le Suivi des déploiements . |
Exemple d’une trace
{
"environnement": "PROD",
"state": "success",
"message": {
"created": "2019-10-30T12:30:04.123+01:00",
"correlationID": "132-abc-456-def",
"messageID": "abc-123",
"headers": [
{
"name": "HEADER1",
"value": "1234EFG"
},
{
"name": "HEADER2",
"value": "1234EFG"
}
],
"body": "<content><a>123</a><b>456</b></content>"
},
"route": {
"name": "job-ABC",
"version": "1.2.2",
"id": "Talend-ABC",
"step": "Ecriture du fichier ABC",
"description": "Ecriture du fichier ABC-123.txt"
},
"business": [
{
"name": "Invoice",
"value": "ABCD"
},
{
"name": "Invoice",
"value": "DFEG"
}
],
"exception": {
"code": "SOME-ERROR-001",
"detail": "Error ...",
"stackTrace": "line 1\ncaused by line 2...",
"when": "2019-10-30T12:30:03.456+01:00",
"className": "fr.company.project.exceptions.SomeError"
},
"infrastructure": {
"instance": "processABC",
"hostname": "server2",
"datacenter": "paris"
}
}Qui publie des traces ?
Les publicateurs de traces sont des logiciels qui transportent de la donnée. Il s’agit de logiciels expert comme:
des ETL (Extract-Transform-Load),
des routes d’ESB (Enterprise Flows Repository),
des API (Application Performance Interface),
ou bien, généralistes, comme:
des scripts systèmes (bash, Powershell, etc),
des applications à façon (PHP, Java, .Net, etc),
des triggers de base de données.
API à appeler
API | Description |
|
|---|---|---|
Traces | API de publication des traces. | Spécifique à chaque environnement. /{environnement}/api/traces/{version}/ |