Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
maxLevel2
minLevel1
typeflat

...

Endpoints and methods

Anchor
path1
path1
POST /query

Use this endpoint tu run a query through the API.

Rw ui expands macro
Rw expand
titleRequest

Request body

The request JSON body must include an object with the following key-value pairs.

Parameter

Type

Description

query

string

This is the query that you want to run, expressed in LINQ. To find the query's LINQ script in the Devo app, open the query in the Data Searchsearch area, then choose Query code editor from the toolbar.

The body of the request must contain either the query or the queryId parameter.

queryId

string

This is the ID of the query that you want to run. To find the query ID, open the query in the Data Searchsearch area, then choose Additional Tools → open the search window menu and select Current query → Get ID.

The body of the request must contain either the query or the queryId parameter.

from required

integer

The start date as a UTC timestamp in seconds. See the Relative dates section below to learn more about this parameter.

to

integer

The end date as a UTC timestamp in seconds. If this parameter is left out, the query will be continuous. See the Relative dates section below to learn more about this parameter.

mode

object

This object contains the type parameter (string) to specify the format of the response. If left out of the request body, the default response type json will be used.

The possible values are:

  • json

  • json/compact

  • json/simple

  • json/simple/compact

  • msgpack

  • csv

  • tsv

  • xls

These response formats are fully described later in this article. When you indicate a response format other than json, you must include the dateFormat and timeZone parameters.

destination

object

This object specifies where the response should be sent. If this object is left out of the request body, the response will be sent back to the request source.

It must include the following parameters:

  • type - (string) This is the type of system to which the response should be sent. The possible values are:

    • hdfs

    • s3

    • email

    • snmp

    • kafka

Depending on the type, additional parameters will be required. See the related HDFS, S3, email, SNMP and Kafka articles.

  • params - (string) Destination parameters, depend on the type selected. Check the HDFS, KafkaS3, email and SNMP articles to see the parameters required for each destination.

dateFormat

string

This is only required when you specify a type other than json. The possible formats are:

  • default - yyyy-MM-dd' 'HH:mm:ss.SSS

  • sql - yyyy-MM-dd' 'HH:mm:ss.SSS

  • iso - yyyy-MM-dd'T'HH:mm:ss.SSSXX

timeZone

string

Change the timezone of the query, only for mode types other than json. This parameter supports any positive or negative GMT timezones, like GMT-2 or GMT+1

timeUnit

string

When from or to params are timestamps, you can use this parameter to specify the time unit. Only MILLISECONDS or SECONDS are valid values.

skip/offset

integer

You can use either the skip or offset parameters to skip the first X elements of the query.

limit

integer

Limit the results of the query. The query will stop after returning the first X elements of the query or reaching its end.

ipAsString

boolean

Set this parameter to true if you want to get IP addresses as dotted strings (for example, 94.2.23.1). If you don't add this parameter in your request or set it to false, IP addresses will be returned as numbers (for example, 1577195265).

vaultName

string

Query priority. Allowed values are:

  • low

  • normal

  • high

  • urgent

progressInfo

boolean

Set this parameter to true if you want to get progress info about the requested query. You will get an entry p with the timestamp of the event that is being processed at that moment. Progress info will be sent at most once every 5s. 

This is only available if you set type as json/simple/compact. See an example below.

allowPartialResults

boolean

Specifies whether partial results are allowed or not (true by default). If partial results are not allowed, the query will be interrupted every time some results are missing due to a failure.

keepAlive

object

Object with information about the keep alive message for CSV, TSV and XLS modes. If not provided, live queries aren't accepted for the mentioned modes.

Note that this object doesn't apply to any json mode.

  • type - (string) If you set this as empty, then an empty event is sent as a keep alive message. If you set it as token, a configurable token will be sent as a keep alive message.

  • token - (string) Configurable token to be sent as a keep alive message for the token type. The default value is \n

timeRangeFilter

object

Add this object to use time control in your query. Time control allows you to choose either the event date (time when Devo receives the data) or creation date (time when the events are generated in its source) as reference time when you query data.

Check this article to learn more about time control and how to use it in the Devo app.

This object may include the following parameters:

  • by - (string) Choose the reference time to be used in your query. Allowed values are eventdate and creationdate. Default value is eventdate.

  • allowedLateness - (string) This option can only be used if you enter creationdate in the by parameter above. Enter the maximum expected delay between the creation date and the ingestion date of the table queried. It admits duration type expressions (1h, 1d, etc). Default value is now.

Info

Setting a reception delay using the allowedLateness parameter allows the system to increase performance as it only looks for the corresponding events.

Rw expand
titleResponse

The following are examples of responses:

Code Block
{
    "query": "from demo.ecommerce.data select *",
    "from": 1519645036,
    "to": 1519645136,
    "mode": {
        "type": "json"
    },
    "destination": {
      "type": "hdfs",
      "params": {
        "param1": "value1",
        "param1": "value2"
      }
    }
}
Code Block
{
    "from": 1519989362,
    "mode": {
        "type": "json/simple"
    },
    "query": "from my.synthesis.vec00.suricataalert group every 30s every 30s select *",
    "to": 1519989392
}
Code Block
{ 
 "query": "from demo.ecommerce.data select *",
 "limit": 10, 
 "from": 1528306922,
 "to": 1528306952,
 "mode": {
 "type": "tsv" 
 }
}

...

Anchor
queryresponseformats
queryresponseformats

Query response formats

Responses to your queries can be either returned to the source of the request, forwarded to an HDFSS3, SNMP, or Kafka type system, or sent via email.

...