REST Output

Characteristics

  • Rest Output provides data using the JSON format as the response of a HTTP request using the method GET. Each request returns an array of JSON objects;

  • Time iteration control is done by Intelie Live. This means the client will use the same url for every request. There is no need to use request arguments in order to advance time, for example;

  • The data provided (a set of rigs and mnemonics for which data is desired) and the access credentials are configured only on Intelie Live’s admin interface;

  • Each of the selected rigs will have an URL for fetching it’s data;

  • Each of these endpoints will provide events generated during a time window. The size of this window can also be configured on the admin interface and defaults to 15 minutes. Data outside this window will no longer be available through this interface, so the interval between requests made by the application must not be larger than this window;

  • In some cases, related data generated from distinct sources (eg: surface and hole bottom) which were generated on the same moment can be received at different times. In order to mitigate these problems it is possible to set a delay for the data being provided for the application. This way, when the application makes a request at 10:00:00 with a 1 minute delay, Intelie Live will return the data received until 09:59:00. This allows for data received on distinct moments on time to be delivered on the same batch.

  • Timestamp configuration will be used to create an index for rest output generated query. When using collector time, the asset, data management option, "Include raw fields" needs to be enabled

Data format

Rest Output presents a periodic sample of information. Each record is composed by a set of attributes, which value is the last valid value for this attribute on the sampled interval. We could compare this data layout with the columns on a CSV file.

As an example, for a data source which generates values for Intelie Live every 5 seconds, you could set up a Rest Output integration which provides events every 60 seconds. In this scenario, for each event generated by Rest Output there may be up to 12 values. The value chosen by Rest Output will be the last valid value, assuming there is at least one. If this is not the case, the attribute will be omitted on this event.

  • In a JSON object there are multiple events. Each event contains data for multiple attributes;

  • The timestamp field contains arbitrary values, multiples of the data aggregation interval. This timestamp is represented as an Epoch (in milliseconds);

    • The timestamp for each event is a multiple of the interval (eg. 12:00:00, 12:00:05, 12:00:10, and so on);

    • Timestamps are sorted.

  • An event can also contain other data, such as average, minimum, maximum, first and last value, among others. Those will be represented as attributes on the event.

[
 {
   "timestamp": 1473707100000,
   "PUMP": {"value": 3.0, "uom": "psi"},
   "FLOWIN": {"value": 855.47, "uom": "galUS/min"},
   "well_name": "3-RJS-739A",
   "rig_name": "ns48"
 },
 {
   "timestamp": 1473707110000,
   "PUMP": {"value": 3.0, "uom": "psi"},
   "FLOWIN": {"value": 855.47, "uom": "galUS/min"},
   "well_name": "3-RJS-739A",
   "rig_name": "ns48"
 },
 ...
]

Last updated