Query API

This page describes the API for querying the data from Apica Ascent Observability stack

Getting data is a two step process

Create a Query Request

POST /v1/query will respond with a QueryId. Use that to access data

$ curl --location --request POST 'http://cluster-1.logiq.ai/v1/query' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
    "applicationNames": [
        "tomcat"
    ],
    "filters": {
        "Message": {
            "values": [
                "user-369"
            ]
        }
    },
    "namespace": "production",
    "pageSize": 100,
    "startTime": "2020-05-10T17:55:20+05:30"
}'
{
    "queryId": "4c977d08-4acf-52b5-a99d-d8c0eb41fe4b-lgq"
}

Use GET /v1/data/{queryId}/next and GET /v1/data/{queryId}/previous to retrieve data.

$ curl 'https://cluster-1.logiq.ai/v1/data/4c977d08-4acf-52b5-a99d-d8c0eb41fe4b-lgq/next'
[...data]
$ curl 'https://cluster-1.logiq.ai/v1/data/4c977d08-4acf-52b5-a99d-d8c0eb41fe4b-lgq/previous'
[...data]

Query API Documentation

Version: 1.0

/v1/query

POST

Parameters

Name
Located in
Description
Required
Schema

body

body

Yes

Responses

Code

Description

Schema

200

A successful response.

/v1/data/{queryId}/next

GET

Parameters

Name
Located in
Description
Required
Schema

queryId

path

Yes

string

Responses

Code
Description
Schema

200

A successful response.

400

Invalid Request.

403

Token Expired.

404

Returned when the resource does not exist.

/v1/data/{queryId}/previous

GET

Parameters

Name
Located in
Description
Required
Schema

queryId

path

Yes

string

_internal

query

No

boolean (boolean)

Responses

Code
Description
Schema

200

A successful response.

400

Invalid Request.

403

Token Expired.

404

Returned when the resource does not exist.

protobufAny

A

if (any.UnpackTo(&foo)) {
  ...
}

Example 2: Pack and unpack a message in Java.

Foo foo = ...;
Any any = Any.pack(foo);
...
if (any.is(Foo.class)) {
  foo = any.unpack(Foo.class);
}

Example 3: Pack and unpack a message in Python.

foo = Foo(...)
any = Any()
any.Pack(foo)
...
if any.Is(Foo.DESCRIPTOR):
  any.Unpack(foo)
  ...

Example 4: Pack and unpack a message in Go

 foo := &pb.Foo{...}
 any, err := ptypes.MarshalAny(foo)
 ...
 foo := &pb.Foo{}
 if err := ptypes.UnmarshalAny(any, foo); err != nil {
   ...
 }

The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example "foo.bar.com/x/y.z" will yield type name "y.z".

JSON

The JSON representation of an Any value uses the regular representation of the deserialized, embedded message, with an additional field @type which contains the type URL. Example:

package google.profile;
message Person {
  string first_name = 1;
  string last_name = 2;
}

{
  "@type": "type.googleapis.com/google.profile.Person",
  "firstName": <string>,
  "lastName": <string>
}

If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field value which holds the custom JSON in addition to the @type field. Example (for message [google.protobuf.Duration][]):

{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1.212s"
}

queryFilterValues

Name
Type
Description
Required

values

[ string ]

No

queryGetDataResponse

Name
Type
Description
Required

data

No

Status

string

No

remaining

integer

No

queryGetQueryResponse

Name
Type
Description
Required

queryId

string

No

info

No

errors

No

meta

object

No

queryOrderBy

Name
Type
Description
Required

queryOrderBy

string

queryQueryErrors

Name
Type
Description
Required

Key

string

No

message

string

No

queryQueryInfo

Name
Type
Description
Required

Key

string

No

message

string

No

queryQueryProperties

Name
Type
Description
Required

applicationNames

[ string ]

No

filters

object

No

namespace

string

No

pageSize

long

No

startTime

string

No

endTime

string

No

keyWord

string

No

querySysLogMessage

Name
Type
Description
Required

ID

string

No

AppName

string

No

Facility

string

No

FacilityString

string

No

Hostname

string

No

Message

string

No

MsgID

string

No

PartitionID

string

No

Priority

string

No

ProcID

string

No

Sender

string

No

Severity

string

No

SeverityString

string

No

StructuredData

string

No

Tag

string

No

Timestamp

string

No

Namespace

string

No

runtimeError

Name
Type
Description
Required

error

string

No

code

integer

No

message

string

No

Last updated