Skip to main content
POST
/
api
/
v1
/
logs
/
aggregate
cURL
curl --request POST \
  --url https://api.staging.qyl.dev/api/v1/logs/aggregate \
  --header 'Content-Type: application/json' \
  --data '
{
  "aggregation": {
    "group_by": [
      "<string>"
    ],
    "field": "<string>",
    "top_n": 123
  },
  "query": {
    "query": "<string>",
    "service_name": "<string>",
    "trace_id": "0af7651916cd43dd8448eb211c80319c",
    "span_id": "b7ad6b7169203331",
    "time_start": "2023-11-07T05:31:56Z",
    "time_end": "2023-11-07T05:31:56Z",
    "attribute_filters": [
      {
        "key": "<string>",
        "value": "<string>"
      }
    ],
    "limit": 5000
  }
}
'
import requests

url = "https://api.staging.qyl.dev/api/v1/logs/aggregate"

payload = {
"aggregation": {
"group_by": ["<string>"],
"field": "<string>",
"top_n": 123
},
"query": {
"query": "<string>",
"service_name": "<string>",
"trace_id": "0af7651916cd43dd8448eb211c80319c",
"span_id": "b7ad6b7169203331",
"time_start": "2023-11-07T05:31:56Z",
"time_end": "2023-11-07T05:31:56Z",
"attribute_filters": [
{
"key": "<string>",
"value": "<string>"
}
],
"limit": 5000
}
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
aggregation: {group_by: ['<string>'], field: '<string>', top_n: 123},
query: {
query: '<string>',
service_name: '<string>',
trace_id: '0af7651916cd43dd8448eb211c80319c',
span_id: 'b7ad6b7169203331',
time_start: '2023-11-07T05:31:56Z',
time_end: '2023-11-07T05:31:56Z',
attribute_filters: [{key: '<string>', value: '<string>'}],
limit: 5000
}
})
};

fetch('https://api.staging.qyl.dev/api/v1/logs/aggregate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.staging.qyl.dev/api/v1/logs/aggregate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'aggregation' => [
'group_by' => [
'<string>'
],
'field' => '<string>',
'top_n' => 123
],
'query' => [
'query' => '<string>',
'service_name' => '<string>',
'trace_id' => '0af7651916cd43dd8448eb211c80319c',
'span_id' => 'b7ad6b7169203331',
'time_start' => '2023-11-07T05:31:56Z',
'time_end' => '2023-11-07T05:31:56Z',
'attribute_filters' => [
[
'key' => '<string>',
'value' => '<string>'
]
],
'limit' => 5000
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.staging.qyl.dev/api/v1/logs/aggregate"

payload := strings.NewReader("{\n \"aggregation\": {\n \"group_by\": [\n \"<string>\"\n ],\n \"field\": \"<string>\",\n \"top_n\": 123\n },\n \"query\": {\n \"query\": \"<string>\",\n \"service_name\": \"<string>\",\n \"trace_id\": \"0af7651916cd43dd8448eb211c80319c\",\n \"span_id\": \"b7ad6b7169203331\",\n \"time_start\": \"2023-11-07T05:31:56Z\",\n \"time_end\": \"2023-11-07T05:31:56Z\",\n \"attribute_filters\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"limit\": 5000\n }\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.staging.qyl.dev/api/v1/logs/aggregate")
.header("Content-Type", "application/json")
.body("{\n \"aggregation\": {\n \"group_by\": [\n \"<string>\"\n ],\n \"field\": \"<string>\",\n \"top_n\": 123\n },\n \"query\": {\n \"query\": \"<string>\",\n \"service_name\": \"<string>\",\n \"trace_id\": \"0af7651916cd43dd8448eb211c80319c\",\n \"span_id\": \"b7ad6b7169203331\",\n \"time_start\": \"2023-11-07T05:31:56Z\",\n \"time_end\": \"2023-11-07T05:31:56Z\",\n \"attribute_filters\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"limit\": 5000\n }\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.staging.qyl.dev/api/v1/logs/aggregate")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"aggregation\": {\n \"group_by\": [\n \"<string>\"\n ],\n \"field\": \"<string>\",\n \"top_n\": 123\n },\n \"query\": {\n \"query\": \"<string>\",\n \"service_name\": \"<string>\",\n \"trace_id\": \"0af7651916cd43dd8448eb211c80319c\",\n \"span_id\": \"b7ad6b7169203331\",\n \"time_start\": \"2023-11-07T05:31:56Z\",\n \"time_end\": \"2023-11-07T05:31:56Z\",\n \"attribute_filters\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"limit\": 5000\n }\n}"

response = http.request(request)
puts response.read_body
{
  "results": [
    {
      "key": "<string>",
      "value": 123,
      "count": 1,
      "timestamp": "2023-11-07T05:31:56Z"
    }
  ],
  "total_count": 1
}
{
"type": "about:blank",
"title": "Validation Failed",
"status": 123,
"errors": [
{
"field": "<string>",
"message": "<string>",
"code": "<string>",
"rejected_value": "<string>"
}
],
"detail": "<string>",
"instance": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}
{
"type": "about:blank",
"title": "Internal Server Error",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"error_code": "<string>"
}

Body

application/json

Log aggregation request

aggregation
object
required

Aggregation specification

query
object

Query filters

Response

The request has succeeded.

Log aggregation response

results
object[]
required

Aggregation results

total_count
integer<int64>
required

Total matching logs

Required range: x >= 0