Understanding Execution Logs

Execution logs contain essential information for tracking, debugging, and auditing the execution of an integration flow.

You can view the following execution logs in the Sensedia Analytics.

  • REST trigger request.

  • Request and response of:

    • Connectors

    • Choice

    • For Each

    • JSON Transformation

Common fields

Below are the components present in all execution logs, regardless of the type of step in execution:

  • runtimeExecutionId: a unique identifier related to the integration flow’s runtime. Helps to track and monitor the execution instance.

  • executionId: execution identifier. It can be used to track individual executions within an execution session.

  • integrationFlowId: unique identifier of the integration flow.

  • integrationFlowName: name of the integration flow.

  • integrationFlowVersion: version of the integration flow being executed.

Variable fields

Now, see the components that vary according to the type of step in execution:

  • name: name of the integration flow step being executed.

  • tag: label associated with the step, indicating its nature (request, response, input, or output).

  • message: contains a JSON string with detailed information about the step. This component is especially useful for understanding the step’s content and context.

Examples

REST trigger

Here we have a POST request. The message field provides a JSON string with the request body, path, method, and headers.

"{
  "runtimeExecutionId": "BD4E80522608F3F-0000000000000000",
  "executionId": null,
  "integrationFlowId": "1120e125-4faf-4c27-8418-ea82d5b857ad",
  "integrationFlowName": "Teste e2e Choice v2",
  "integrationFlowVersion": "1.0.0",
  "name": "REST_Trigger",
  "tag": "Request",
  "message":"{
   "body": "{"teste": "apenas um teste"}",
   "path": "1b277a28726f",
   "method": "POST",
   "headers": {
     "Accept": "*/*",
     "X-Request-Id": "e7dd7de8-16cc-410e-afb7-7ef1550dbba4",
     "User-Agent": "PostmanRuntime/7.29.4",
     "X-Forwarded-Proto": "http",
     "X-Request-Start": "t=1717180375.285",
     "Host": "deploy-b233cf36-0b6b-4eac-9911-1b277a28726f.a1b2c3d4e5.integrations-tst.sensedia-eng.com",
     "Accept-Encoding": "gzip, deflate, br",
     "K-Proxy-Request": "activator",
     "Forwarded": "for=186.209.2.69;proto=http, for=10.251.183.82",
     "X-Forwarded-For": "186.209.2.69, 10.251.183.82, 10.251.171.244",
     "Postman-Token": "a44f3ed7-8c57-4f4a-9443-b07e774a6864",
     "Content-Length": "28",
     "Content-Type": "application/json",
     "X-Envoy-External-Address": "186.209.2.69"
  }
 }"
}"

Connectors

Request

In the example below, we have the execution of the "Get_Product_List" step of "Fluxo 1" (version 1.0). During this execution, a request was made using the GET method to an endpoint.

"{
  "runtimeExecutionId":"EA66FA90FBEA138-0000000000000004",
  "executionId":null,
  "integrationFlowId":"3333440d-0897-4346-aeb3-ad1d7f6a74fc",
  "integrationFlowName":"Fluxo 1",
  "integrationFlowVersion":"1.0",
  "name":"Get_Product_List",
  "tag":"Request",
  "message":"{
    "url":"https://api-url.com",
    "path":"/Product",
    "method":"GET"
    }"
}"

Response

The example below provides information about the execution of the "Get_Description" step, including details about the response received and its status.

"{
  "runtimeExecutionId": "EA66FA90FBEA138-0000000000000004",
  "executionId": null,
  "integrationFlowId": "3333440d-0897-4346-aeb3-ad1d7f6a74fc",
  "integrationFlowName": "Fluxo 1",
  "integrationFlowVersion": "1.0",
  "name": "Get_Description",
  "tag": "Response",
  "message": {
    "payload": {
      "@odata.context": "../$metadata#ProductDescription",
      "@odata.metadataEtag": "W/\"20240421022725\"",
      "value": {
        "@odata.etag": "W/\"SADL-201610170000000000000C~20161017000000.0000000\"",
        "Product": "21",
        "Language": "EN",
        "ProductDescription": "Junior Consultant",
        "SAP__Messages": []
      }
    },
    "status": 200
  }
"}"

Choice

The example shows information about the execution of the Choice step, including relevant identifiers and metadata. The message indicates that the restaurant is currently offline and that there is an error related to an invalid or expired token.

"{
"runtimeExecutionId":"BD8894B984F316D-0000000000000000",
"executionId":null,
"integrationFlowId":"92324ecb-89ff-4ada-bb7c-80afbcd8ae13\",
"integrationFlowName":"Consulta Mesas Choice EVH\","integrationFlowVersion":"1.0",
"name":"Choice",
"tag":"Input",
"message":"{
    "payload":"{StatusEstabelecimentoResult={Erros=["Token inválido ou vencido."],
    Online=false}}"
    }
"}"

For Each

The For Each step is processing a list of products, and this log captures the entry of one of these products. Each product in the list is represented by a JSON object, which contains the details of a specific product: product ID, product type, creation date, etc.

"{
  "runtimeExecutionId": "EA66FA90FBEA138-0000000000000004",
  "executionId": null,
  "integrationFlowId": "3333440d-0897-4346-aeb3-ad1d7f6a74fc",
  "integrationFlowName": "Fluxo 1",
  "integrationFlowVersion": "1.0",
  "name": "For_Each_Product",
  "tag": "Input",
  "message": {
    "input": "[{
      "@odata.etag": "W/"SADL-201610170000000000000C~20161017000000.0000000",
      "Product": "21",
      "ProductType": "SERV",
      "CreationDate": "2016-10-17",
      "CreationTime": "00:00:00",
      "CreationDateTime": "2016-10-17T00:00:00Z",
      "CreatedByUser": "CB9980000160",
      "LastChangeDate": null,
      "LastChangedByUser": "CB9980000160",
      "IsMarkedForDeletion": false,
      "CrossPlantStatus": "\",
      "CrossPlantStatusValidityDate": null,
      "ProductOldID": "\",
      "GrossWeight": 0.0,
      "WeightUnit": "KG",
      "WeightISOUnit": "KGM",
      "ManufacturerNumber": "\",
      "ManufacturerPartProfile": "\",
      "OwnInventoryManagedProduct": "\",
      "SAP_Messages": []
    }]"
  }
"}"
The message has been shortened for example purposes.

JSON Transformation

The JSON Transformation step is processing information from a location and this log captures the entry of the data.

The message brings information such as zip code (CEP), neighborhood (bairro), state (UF) etc.

{"runtimeExecutionId":"635812E1B03F2FA-0000000000000000",
"executionId":null,
"integrationFlowId":"4fda2927-54dd-4c82-a9bd-de161f59dd13",
"integrationFlowName":"CEP Choice Json Transf",
"integrationFlowVersion":"1.0",
"name":"Json_Transf_2",
"tag":"Input",
"message":"{
  "payload":"{
   cep=13086-510,
   logradouro=Rua Doutor Ricardo Benetton Martins,
   complemento=,
   bairro=Polo II de Alta Tecnologia (Campinas),
   localidade=Campinas,
   uf=SP,
   ibge=3509502,
   gia=2446,
   ddd=19,
   siafi=6291
}"}"}"

In the output, we see the message with the transformed JSON:

{"runtimeExecutionId":
"635812E1B03F2FA-0000000000000000\,
"executionId":null,
"integrationFlowId":"4fda2927-54dd-4c82-a9bd-de161f59dd13\",
"integrationFlowName":"CEP Choice Json Transf",
"integrationFlowVersion":"1.0",
"name":"Json_Transf_2",
"tag":"Output",
"message\":"A base da Sensedia fica na Rua Doutor Ricardo Benetton Martins, bairro Polo II de Alta Tecnologia (Campinas), da melhor cidade: Campinas"
"}"
Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]