Skip to content

Uploading Agent Data

If an agent needs to upload data to Insights Hub, an additional configuration is required to know how to interpret the agent's data stream. This configuration requires the following definitions:

  • Data Source Configuration
  • Property Set Provisioning
  • Mapping for Data Source and Property Set

Preparing Data Upload

Creating a Data Source Configuration

Insights Hub needs a data source configuration for interpreting the data it receives from an agent. Without this configuration Insights Hub cannot understand the data. The data source configuration contains data sources and data points. Data sources are logical groups, e.g. a sensor or a machine, which contain one or more measurable data points, e.g. temperature or pressure.

Use the Agent Management Service to create the data source configuration as shown below:

PUT /api/agentmanagement/v3/agents/{agent_id}/dataSourceConfiguration HTTP/1.1
Content-Type: application/json
If-Match: etag
Authorization: Bearer eyx...
{
    "configurationId": "string",
    "dataSources": [
        {
        "name": "string",
        "description": "string",
        "dataPoints": [
            {
            "id": "string",
            "name": "string",
            "description": "string",
            "type": "int",
            "unit": "string",
            "customData": {}
            }
        ],
        "customData": {}
        }
    ]
}
Parameter Description Remarks
dataSource.name Name of the data sources Mandatory. Any string is allowed.
dataSource.description Description of the data sources Optional. Any string is allowed.
dataPoint.id Data point ID Mandatory. Must be unique per agent. No duplicates are allowed
dataPoint.name Name of the data point Mandatory. Any string is allowed, e.g. pressure, voltage, current, etc.
dataPoint.description Description of the data point Optional. Any string is allowed.
dataPoint.type Data type of the data point.

By default, the following base types are provided: Double, Long, Int, String, Boolean
Mandatory
dataPoint.unit Unit of the data point Mandatory. Any string is allowed, e.g. percent, SI, etc. Empty strings are allowed.
dataPoint.customData Custom data, if any will be provided Optional
dataSources.customData Custom data, if any will be provided Optional

If successful, Insights Hub returns an HTTP response 200 OK with a JSON body that holds the created data sources configuration:

{
  "id": "string",
  "eTag": "2",
  "configurationId": "string",
  "dataSources": [
    {
      "name": "string",
      "description": "string",
      "dataPoints": [
        {
          "id": "string",
          "name": "string",
          "description": "string",
          "type": "int",
          "unit": "string",
          "customData": {}
        }
      ],
      "customData": {}
    }
  ]
}

Warning

When an existing Data Source Configuration is updated, all Data Point Mappings of the agent are deleted.

Note

For consuming exchange services the parameter configurationId needs to be provided to Insights Hub.

Creating a Data Point Mapping

Creating a data point mapping requires not only a data source configuration, but also a corresponding property set in Insights Hub.

Insights Hub needs a data point mapping for storing the data it receives from an agent. This maps the data points from the data source configuration to properties of the digital entity, that represents the agent. When Insights Hub receives data from an agent, it looks up which property the data point is mapped to and stores the data there.

Use the MindConnect API to create the data point mapping as shown below:

POST /api/mindconnect/v3/dataPointMappings HTTP/1.1
Content-Type: Application/Json
Authorization: Bearer eyc..
{
    "agentId": "11961bc396cd4a87a9b26b723f5b7ba0",
    "dataPointId": "DP0001",
    "entityId": "83e78008eadf453bae4f5c7bef3db550",
    "propertySetName": "ElectricalProperties",
    "propertyName": "Voltage"
}
Parameter Description Trouble Shooting
agentId String, validated, null-checked. Must exist in Agent Management. HTTP 400: Agent is empty!

HTTP 404: AgentId, {...} in the data point mapping does not exist!
dataPointId String, validated, null-checked. Must exist in Agent Management and belong to the specified agent's data source configuration. HTTP 400: DataPointId is empty!

HTTP 404: DataPointId, {...} in the data point mapping does not exist in the related agent!
entityId String, validated, null-checked. Must exist in IoT Entity Service. HTTP 400: Entity ID is empty!

HTTP 404: Not Found
propertySetName String, validated, null-checked. Must exist in IoT Type Service and belong to entity type of the specified entity. HTTP 400: PropertySetName is empty!

HTTP 404: Property set not found with name {...}

HTTP 404: Entity type does not own a property set with name {...}
propertyName String, validated. Must exist in IoT Type Service and belong to the specified property set. HTTP 400: PropertyName is empty!

HTTP 404: Property set does not own a property with name {...}

The following aspects have to be considered:

  • Unit and type of data point and property should match.
  • If the property does not have a unit (NULL), the data point unit should be empty string.
  • The selected property cannot be static.
  • One data point cannot be mapped to multiple properties with the same property name.

Before creating a data point mapping, the following checks are executed:

Create Data Point Mapping workflow and checks

If successful, Insights Hub returns an HTTP responds 201 Created with a JSON body that holds the created mapping configuration. It only maps a single data point to a single property. If more mapping is needed, this step must be repeated.

{
  "id": "4fad6258-5def-4d84-a4c2-1481b209c116",
  "agentId": "11961bc396cd4a87a9b26b723f5b7ba0",
  "dataPointId": "DP0001",
  "dataPointUnit": "%",
  "dataPointType": "INT",
  "entityId": "83e78008eadf453bae4f5c7bef3db550",
  "propertySetName": "ElectricalProperties",
  "propertyName": "Voltage",
  "propertyUnit": "%",
  "propertyType": "INT",
  "qualityEnabled": true
}

Warning

When an existing data source configuration is updated, all data point mappings of the agent are deleted.

Creating Event Mapping

Events originating from the device in the field are sent to Insights Hub using MindConnect API. These events are stored in the corresponding agent asset. For example, if a field device is connected to Insights Hub over MCLIB agent, all the events originated from the field device is stored in the MCLIB (core.mclib type) agent. By using event mapping APIs from the agent, these events can now be mapped to appropriate asset in Insights Hub. The API allows you to define mapping criteria. For example, if the event type field source contains “MyMachine” then map the events to the asset (asset id field in the API). Once the mapping is performed, every time the event of the selected type reaches the agent, the event is automatically stored against the asset. If otherwise, the event remains in the agent itself.

  • If there are no event mappings matching an event, that event will be stored in the agent asset.
  • Multiple mappings can match for an event uploaded. In such a case, all matching mappings will be applied for the event.
  • An asset can have multiple event mappings.
  • Maximum of 50 event mappings can be created per agent.
  • Maximum of 5 event mappings can be created per agent from an event type.

Before creating event mapping, please check following use case:

!Event Mapping Use Case

Use the MindConnect API to create the event mapping as shown below:

POST /api/mindconnect/v3/eventMappings HTTP/1.1
Content-Type: Application/Json
Authorization: Bearer eyc..
{
    "agentId": "11961bc396cd4a87a9b26b723f5b7ba0",
    "assetId": "2196dbc396cd4a87a9bd6b723fsb7baz",
    "eventTypeId": "mytenant.connectivity.event.type.TestEventType",
    "eventTypeName": "TestEventType",
    "eventTypeFieldName": "source",
    "eventTypeFieldValue": "Trumpfh1"
}

An event mapping can be updated using the MindConnect API eventMappings/id endpoint:

PATCH /api/mindconnect/v3/eventMappings/id HTTP/1.1
Content-Type: Application/Json
Authorization: Bearer eyc..
{
    "agentId": "11961bc396cd4a87a9b26b723f5b7ba0",
    "assetId": "2196dbc396cd4a87a9bd6b723fsb7baz",
    "eventTypeId": "mytenant.connectivity.event.type.TestEventType",
    "eventTypeName": "TestEventType",
    "eventTypeFieldName": "source",
    "eventTypeFieldValue": "Trumpfh1",
    "eTag": "1"
}

The PATCH operation supports partial updates, meaning that if there is an update only for the eventTypeFieldValue, it is sufficient to include this field in the request, as shown in the following example request.

PATCH /api/mindconnect/v3/eventMappings/id HTTP/1.1
Content-Type: Application/Json
Authorization: Bearer eyc..
{
    "eventTypeFieldValue": "Trumpfh2",
}

Uploading Data

The exchange endpoint of the MindConnect API provides the agent with the capability of uploading data to Insights Hub. This data can be of type:

  • Time Series
  • File
  • Event

Agents require an access token with the mdsp:core:DefaultAgent scope to upload data.

The format conforms to a subset of the HTTP multipart specification, but only permits nesting of 2 levels.

Mandatory New Line

<CR><LF> at the end of a request represents a mandatory new line (Carriage Return and Line Feed). This representation is used for emphasis in the following samples.
Replace these characters with \r\n when uploading data to Insights Hub.

Uploading Time Series Data

Below is a sample request with a multipart message to upload time series data:

POST {{ _gateway_url }}/api/mindconnect/v3/exchange
Content-Type: multipart/mixed; boundary=f0Ve5iPP2ySppIcDSR6Bak
Authorization: Bearer access_token ...

--f0Ve5iPP2ySppIcDSR6Bak
Content-Type: multipart/related;boundary=penFL6sBQHJJUN3HA4ftqC

--penFL6sBQHJJUN3HA4ftqC
Content-Type: application/vnd.siemens.mindsphere.meta+json

{
    "type": "item",
    "version": "1.0",
    "payload": {
        "type": "standardTimeSeries",
        "version": "1.0",
        "details": {
            "configurationId": "{{ _configuration_id }}"
        }
    }
}
--penFL6sBQHJJUN3HA4ftqC
Content-Type: application/json

[
    {
        "timestamp": "2017-02-01T08:30:03.780Z",
        "values": [
            {
                "dataPointId": "{{ _datapoint_id_1 }}",
                "value": "9856",
                "qualityCode": "0"
            },
            {
                "dataPointId": "{{ _datapoint_id_2 }}",
                "value": "3766",
                "qualityCode": "0"
            }
        ]
    }
]
--penFL6sBQHJJUN3HA4ftqC--
--f0Ve5iPP2ySppIcDSR6Bak--
<CR><LF>

The multipart message starts with the --f0Ve5iPP2ySppIcDSR6Bak identifier. It closes with the --f0Ve5iPP2ySppIcDSR6Bak-- identifier, which is equal to the starting identifier appended by a double dash. After accepting the structure of a multipart request, Insights Hub returns an HTTP response 200 OK with an empty body. Insights Hub validates and stores data asynchronously. The agent can continue uploading data as long as its access token is valid.

The multipart messages occur within this initial boundary. Each multipart message consists of metadata and a payload, therefore each message contains two boundary start identifiers and a single end identifier at the end:

--initial boundary

--boundary1
Metadata

--boundary1
Payload

--boundary1--

--initial boundary--
<CR><LF>

Note

The property configurationId in the metadata part of the multipart message tells Insights Hub how to interpret the data it receives (see section Creating a Data Source Configuration).

Uploading Files

Agents can upload files into Insights Hub, where they are stored in the respective asset. Within Insights Hub metadata and payload couples are referred as tuples. Each tuple may contain different type of data (for example one tuple may contain a specific timestamp data, whereas the other may contain octet/stream data). The example below contains an exchange payload for an octet/stream mime type:

POST {{ _gateway_url }}/api/mindconnect/v3/exchange
Content-Type: multipart/mixed; boundary=f0Ve5iPP2ySppIcDSR6Bak
Authorization: Bearer access_token ...

--f0Ve5iPP2ySppIcDSR6Bak
Content-Type: multipart/related;boundary=5c6d7e29ef6868d0eb73

--5c6d7e29ef6868d0eb73
Content-Type: application/vnd.siemens.mindsphere.meta+json

{
    "type": "item",
    "version": "1.0",
    "payload": {
        "type": "file",
        "version": "1.0",
        "details":{
            "fileName":"data_collector.log.old",
            "creationDate":"2017-02-10T13:00:00.000Z",
            "fileType":"log"
        }
    }
}

--5c6d7e29ef6868d0eb73
Content-Type: application/octet-stream

  ... File content here ...

--5c6d7e29ef6868d0eb73--
--f0Ve5iPP2ySppIcDSR6Bak--
<CR><LF>

Uploading Events

Agents can upload events into Insights Hub, where they are stored in the respective asset. The events must be of an event type derived from type AgentBaseEvent. The following rules apply for uploading events:

  • The fields eventId and version are required in the payload. Allowed values for the version are: MAJOR, MINOR.
  • The event type must exist in Event Management. Otherwise, the event is dropped.
  • The severity is optional, but events with invalid severity values are dropped. Allowed integer values depend on the version of an event.
    version 1.0: 1 (URGENT), 2 (IMPORTANT), 3 (INFORMATION)
    version 2.0: 20 (ERROR), 30 (WARNING), 40 (INFORMATION)
Model of AgentBaseEvent
{ "id": "core.connectivity.event.type.AgentBaseEvent",
  "name": "AgentBaseEvent",
  "ttl": 35,
  "parentId": "com.siemens.mindsphere.eventmgmt.event.type.MindSphereStandardEvent",
  "fields": [
    {
      "name": "eventId",
      "filterable": true,
      "required": true,
      "updatable": true,
      "type": "STRING"
    },
    {
      "name": "version",
      "filterable": true,
      "required": true,
      "updatable": true,
      "type": "STRING"
    }
  ]
}

Here is a sample custom event type which is derived from AgentBaseEvent:

{
  "name": "FileUploadCompletedEvent",
  "parentId": "core.connectivity.event.type.AgentBaseEvent",
  "ttl": 35,
  "scope": "LOCAL",
  "fields": [
    {
      "name": "fileNumber",
      "filterable": true,
      "required": false,
      "updatable": true,
      "type": "INTEGER"
    },
    {
      "name": "fileSize",
      "filterable": true,
      "required": false,
      "updatable": true,
      "type": "DOUBLE"
    },
    {
      "name": "fileName",
      "filterable": true,
      "required": true,
      "updatable": true,
      "type": "STRING"
    },
    {
      "name": "isValid",
      "filterable": true,
      "required": false,
      "updatable": true,
      "type": "BOOLEAN"
    }
  ]
}

Here is a sample request for event upload:

--FRaqbC9wSA2XvpFVjCRGry
Content-Type: multipart/related;boundary=5c6d7e29ef6868d0eb73

--5c6d7e29ef6868d0eb73
Content-Type: application/vnd.siemens.mindsphere.meta+json

{
    "type": "item",
    "version": "1.0",
    "payload": {
      "type": "businessEvent",
      "version": "1.0"
    }
}
--5c6d7e29ef6868d0eb73
Content-Type: application/json

[
    {
        "id": "7ba7b810-9dad-11d1-80b4-00c04fd430c8",
        "correlationId": "fd7fb194-cd73-4a54-9e53-97aca7bc8568",
        "timestamp": "2018-07-11T11:06:25.317Z",
        "severity": 2,
        "type": "FileUploadCompletedEvent",
        "description": "file uploaded event",
        "version": "1.0",
        "details":{
            "fileName": "test1",
            "fileSize": 11.2,
            "isValid": "true",
            "fileNumber": 15
        }
    }
]
--5c6d7e29ef6868d0eb73--
--FRaqbC9wSA2XvpFVjCRGry--
<CR><LF>

Uploading Compressed Data

Agents can upload to compress data using .zip format. Sending large volumes of data proves to be costly for the end users from the time and cost perspective. An option to compress the data using .zip format, will reduce the consumption of data/bandwidth.

Below is a sample request with a multipart message to upload time series data as gzip format:

Python Example

import http.client
import gzip
conn = http.client.HTTPSConnection("gateway.eu1.mindsphere.io")
payload = '--FRaqbC9wSA2XvpFVjCRGry\r\nContent-Type: multipart/related;boundary=WtIIZS3TRqf70aZbLAX4cf\r\n\r\n--WtIIZS3TRqf70aZbLAX4cf\r\nContent-Type: application/vnd.siemens.mindsphere.meta+json\r\n\r\n {\r\n        "type": "item",\r\n        "version": "1.0",\r\n        "payload": {\r\n            "type": "standardTimeSeries",\r\n            "version": "1.0",\r\n            "details": {\r\n                "configurationId": "configuration1"\r\n            }\r\n        }\r\n    }\r\n--WtIIZS3TRqf70aZbLAX4cf\r\nContent-Type: application/json\r\n\r\n[{\r\n        "timestamp": "2023-06-11T03:06:25.317Z",\r\n        "values": [{\r\n                "dataPointId": "dp1",\r\n                "value": "12.2",\r\n                "qualityCode": "00000000"\r\n            },{\r\n                "dataPointId": "dp2",\r\n                "value": "test1",\r\n                "qualityCode": "00000000"\r\n            }\r\n        ]\r\n    },{\r\n        "timestamp": "2023-06-11T04:07:25.317Z",\r\n        "values": [{\r\n                "dataPointId": "dp1",\r\n                "value": "13.3",\r\n                "qualityCode": "00000000"\r\n            },{\r\n                "dataPointId": "dp2",\r\n                "value": "test2",\r\n                "qualityCode": "00000000"\r\n            }\r\n        ]\r\n    }]\r\n--WtIIZS3TRqf70aZbLAX4cf--\r\n--FRaqbC9wSA2XvpFVjCRGry--'
payload_bytes = bytes(payload, 'utf-8')
compressed_payload = gzip.compress(payload_bytes)
headers = {
  'Authorization': ' Bearer access_token ...',
  'Content-Type': 'multipart/mixed; boundary=FRaqbC9wSA2XvpFVjCRGry',
  'Content-Encoding': 'application/gzip'
}
conn.request("POST", "/api/mindconnect/v3/exchange", compressed_payload, headers)
res = conn.getresponse()
data = res.read()
print(res.status)
print(data.decode("utf-8"))

JavaScript Example

const axios = require('axios');
const zlib = require('zlib');

let payload = '--FRaqbC9wSA2XvpFVjCRGry\r\nContent-Type: multipart/related;boundary=WtIIZS3TRqf70aZbLAX4cf\r\n\r\n--WtIIZS3TRqf70aZbLAX4cf\r\nContent-Type: application/vnd.siemens.mindsphere.meta+json\r\n\r\n {\r\n        "type": "item",\r\n        "version": "1.0",\r\n        "payload": {\r\n            "type": "standardTimeSeries",\r\n            "version": "1.0",\r\n            "details": {\r\n                "configurationId": "configuration1"\r\n            }\r\n        }\r\n    }\r\n--WtIIZS3TRqf70aZbLAX4cf\r\nContent-Type: application/json\r\n\r\n[{\r\n        "timestamp": "2023-06-11T03:06:25.317Z",\r\n        "values": [{\r\n                "dataPointId": "dp1",\r\n                "value": "12.2",\r\n                "qualityCode": "00000000"\r\n            },{\r\n                "dataPointId": "dp2",\r\n                "value": "test1",\r\n                "qualityCode": "00000000"\r\n            }\r\n        ]\r\n    },{\r\n        "timestamp": "2023-06-11T04:07:25.317Z",\r\n        "values": [{\r\n                "dataPointId": "dp1",\r\n                "value": "13.3",\r\n                "qualityCode": "00000000"\r\n            },{\r\n                "dataPointId": "dp2",\r\n                "value": "test2",\r\n                "qualityCode": "00000000"\r\n            }\r\n        ]\r\n    }]\r\n--WtIIZS3TRqf70aZbLAX4cf--\r\n--FRaqbC9wSA2XvpFVjCRGry--';

zlib.gzip(payload, (err, compressedPayloadBuffer) => {
  if (err) {
    console.error(err);
    return;
  }
  let config = {
    method: 'post',
    url: 'https://gateway.eu1.mindsphere.io/api/mindconnect/v3/exchange',
    headers: {
      'Authorization': 'Bearer access_token ...',
      'Content-Type': 'multipart/mixed; boundary=FRaqbC9wSA2XvpFVjCRGry',
      'Content-Encoding': 'application/gzip',
    },
    data: compressedPayloadBuffer
  };
  axios.request(config)
    .then((response) => {
      console.log(JSON.stringify(response.status));
    })
    .catch((error) => {
      console.log(error);
    });
});

Replaying an Exchange Request

If Insights Hub cannot process data after it has been uploaded via MindConnect API, MindConnect's Recovery Service stores the unprocessed data for 15 calendar days. For a list of the stored unprocessed data, use the recoverableRecords endpoint. It responds with a page of recoverable records as shown below. The response can be filtered by the agentId, correlationId, requestTime and dropReason fields using a JSON filter.

{
      "id": "4fad6258-5def-4d84-a4c2-1481b209c116",
      "correlationId": "7had568-5def-4d84-a4c2-1481b209c116",
      "agentId": "33238f98784711e8adc0fa7ae01bbebc",
      "requestTime": "2018-08-27T16:40:11.235Z",
      "dropReason": " <[Dropped] TimeSeries Data is dropped. Validation failed for reason <Pre-processing of <153000> data points ended with <60600> valid and <92400> dropped data points. Following issues found: Data point with no mapping count is <92400>, including <[variable101, variable102, variable103, variable104, variable105, variable106, variable107, variable108, variable109, variable110]>.>>"
}

To inspect a record's payload, the MindConnect API provides the /recoverableRecords/{id}/downloadLink endpoint. The response contains a URL, to which the data is uploaded by MindConnect API, e.g.:

GET /api/mindconnect/v3/recoverableRecords/{id}/downloadLink` HTTP/1.1
"https://bucketname-s3.eu-central-1.amazonaws.com/c9bcd-44ab-4cfa-a87e-d81e727d9af4?X"

If an invalid mapping or registration has caused the data not to be processed, the exchange request can be replayed after correcting the definition. Use the /recoverableRecords/{id}/replay endpoint of the MindConnect API to trigger a replay.

Note

If the data can successfully be processed after a replay, it is removed from the recovery system after 2 days.

Diagnosing Data Upload

Data uploaded via MindConnect API can be diagnosed with the Diagnostic Service feature. In order to activate an agent for the Diagnostic Service, the diagnosticActivations endpoint of the MindConnect API is provided, which needs to be used with following parameters:

POST /api/mindconnect/v3/diagnosticActivations HTTP/1.1
Content-Type: Application/Json
Authorization: Bearer eyc..
{
    "agentId": "11961bc396cd4a87a9b26b723f5b7ba0",
    "status": "ACTIVE"
}
Parameter Description Trouble Shooting
agentId String, validated HTTP 400: Agent is empty!

HTTP 404: Agent id {...} exists!

Agent id {...} could not be enabled. Because agent limitation is {...} for tenant {...}!
status String, validated
Allowed inputs are: ACTIVE, INACTIVE, NULL. If NULL, value is set as ACTIVE by default.
HTTP 400: Custom statuses are not allowed. Use one of the allowed input values

Note

The Diagnostic Service can be activated for up to 5 agents per tenant. Diagnostic activation statuses are set to inactive after 1 hour. Activations can be deleted by the diagnosticActivations/id endpoint.

A list of diagnostic activations is provided by the diagnosticActivations endpoint. It responds with a page of diagnostic activations as shown below. The response can be filtered by the agentId and status fields using a JSON filter.

{
  "content": [
    {
      "id": "0b2d1cdecc7611e7abc4cec278b6b50a",
      "agentId": "3b27818ea09a46b48c7eb3fbd878349f",
      "status": "ACTIVE"
    }
  ],
  "last": true,
  "totalPages": 1,
  "totalElements": 1,
  "numberOfElements": 1,
  "first": true,
  "sort": {},
  "size": 20,
  "number": 0
}

An activation can be updated or deleted using the diagnosticActivations/id endpoint:

PUT /api/mindconnect/v3/diagnosticActivations HTTP/1.1
{
  "status": "INACTIVE"
}
Parameter Description Trouble Shooting
status String, validated
Allowed inputs are: ACTIVE, INACTIVE
HTTP 400: Custom statuses are not allowed. Status value must be one of: [ACTIVE, INACTIVE]

Diagnostic data is listed by the diagnosticInformation endpoint. Its response is a page as shown below, which can be filtered by the agentId, correlationId,message,source,timestamp and severity fields using a JSON filter.

{
  "content": [
    {
      "agentId": "3b27818ea09a46b48c7eb3fbd878349f",
      "correlationId": "3fcf2a5ecc7611e7abc4cec278b6b50a",
      "severity": "INFO",
      "message": "[Accepted] Exchange request arrived",
      "source": "TIMESERIES",
      "state": "ACCEPTED",
      "timestamp": "2018-08-27T16:40:11.235Z"
    },
    {
      "agentId": "78e73978d6284c75ac2b8b5c33ffff57",
      "correlationId": "39301469413183203248389064099640",
      "severity": "ERROR",
      "message": "[Dropped] Registration is missing. Data type is: notstandardTimeSeries"
      "source": "TIMESERIES",
      "state": "DROPPED",
      "timestamp": "2018-08-27T16:40:11.235Z"
    },
  ],
  "last": true,
  "totalPages": 1,
  "totalElements": 2,
  "numberOfElements": 2,
  "first": true,
  "sort": {},
  "size": 20,
  "number": 0
}

Diagnostic data of a given activation is provided by the /diagnosticActivations/{id}/messages endpoint. Its response is a page as shown below, which can be filtered by the correlationId,message,source,timestamp and severity fields using a JSON filter.

{
  "content": [
    {
      "correlationId": "3fcf2a5ecc7611e7abc4cec278b6b50a",
      "severity": "INFO",
      "message": "[Accepted] Exchange request arrived",
      "source": "TIMESERIES",
      "state": "ACCEPTED",
      "timestamp": "2018-08-27T16:40:11.235Z"
    },
    {
      "correlationId": "39301469413183203248389064099640",
      "severity": "ERROR",
      "message": "[Dropped] Registration is missing. Data type is: notstandardTimeSeries"
      "source": "TIMESERIES",
      "state": "DROPPED",
      "timestamp": "2018-08-27T16:40:11.235Z"
    },
  ],
  "last": true,
  "totalPages": 1,
  "totalElements": 2,
  "numberOfElements": 2,
  "first": true,
  "sort": {},
  "size": 20,
  "number": 0
}

Last update: December 1, 2023

Except where otherwise noted, content on this site is licensed under the Development License Agreement.