Analytics Summary
curl --request GET \
--url http://{host}:{port}/{basePath}/analytics/summary \
--header 'Authorization: <api-key>'import requests
url = "http://{host}:{port}/{basePath}/analytics/summary"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('http://{host}:{port}/{basePath}/analytics/summary', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "62437",
CURLOPT_URL => "http://{host}:{port}/{basePath}/analytics/summary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://{host}:{port}/{basePath}/analytics/summary"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://{host}:{port}/{basePath}/analytics/summary")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("http://{host}:{port}/{basePath}/analytics/summary")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"apiVersion": "v1",
"kind": "AnalyticsSummary",
"metadata": {
"period": "7d",
"from": "2026-03-12T00:00:00Z",
"to": "2026-03-19T15:00:00Z",
"generatedAt": "2026-03-19T15:05:00Z"
},
"summary": {
"incidents": {
"total": 42,
"bySeverity": {
"critical": 3,
"high": 12,
"medium": 18,
"low": 9
},
"byState": {
"resolved": 35,
"analyzing": 3,
"remediating": 2,
"escalated": 2
},
"autoResolved": 28,
"autoResolvedPercent": 66.7,
"avgTimeToDetect": "45s",
"avgTimeToResolve": "8m30s"
},
"slos": {
"total": 8,
"healthy": 5,
"warning": 2,
"breached": 1,
"avgBudgetRemaining": "58%"
},
"remediations": {
"total": 30,
"successful": 28,
"failed": 2,
"successRate": 93.3,
"avgExecutionTime": "4m15s",
"topRunbooks": [
{"name": "runbook-oomkill-standard", "count": 12},
{"name": "runbook-crashloop-restart", "count": 8},
{"name": "runbook-latency-scale", "count": 5}
]
},
"approvals": {
"total": 15,
"approved": 12,
"rejected": 2,
"expired": 1,
"avgDecisionTime": "3m20s"
},
"trends": {
"incidentsVsPrevPeriod": "-15%",
"mttrVsPrevPeriod": "-22%",
"autoResolveVsPrevPeriod": "+8%"
}
}
}
Analytics
Resumo de Analytics
Retorna um resumo consolidado de métricas operacionais da plataforma
GET
/
analytics
/
summary
Analytics Summary
curl --request GET \
--url http://{host}:{port}/{basePath}/analytics/summary \
--header 'Authorization: <api-key>'import requests
url = "http://{host}:{port}/{basePath}/analytics/summary"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('http://{host}:{port}/{basePath}/analytics/summary', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "62437",
CURLOPT_URL => "http://{host}:{port}/{basePath}/analytics/summary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://{host}:{port}/{basePath}/analytics/summary"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://{host}:{port}/{basePath}/analytics/summary")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("http://{host}:{port}/{basePath}/analytics/summary")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"apiVersion": "v1",
"kind": "AnalyticsSummary",
"metadata": {
"period": "7d",
"from": "2026-03-12T00:00:00Z",
"to": "2026-03-19T15:00:00Z",
"generatedAt": "2026-03-19T15:05:00Z"
},
"summary": {
"incidents": {
"total": 42,
"bySeverity": {
"critical": 3,
"high": 12,
"medium": 18,
"low": 9
},
"byState": {
"resolved": 35,
"analyzing": 3,
"remediating": 2,
"escalated": 2
},
"autoResolved": 28,
"autoResolvedPercent": 66.7,
"avgTimeToDetect": "45s",
"avgTimeToResolve": "8m30s"
},
"slos": {
"total": 8,
"healthy": 5,
"warning": 2,
"breached": 1,
"avgBudgetRemaining": "58%"
},
"remediations": {
"total": 30,
"successful": 28,
"failed": 2,
"successRate": 93.3,
"avgExecutionTime": "4m15s",
"topRunbooks": [
{"name": "runbook-oomkill-standard", "count": 12},
{"name": "runbook-crashloop-restart", "count": 8},
{"name": "runbook-latency-scale", "count": 5}
]
},
"approvals": {
"total": 15,
"approved": 12,
"rejected": 2,
"expired": 1,
"avgDecisionTime": "3m20s"
},
"trends": {
"incidentsVsPrevPeriod": "-15%",
"mttrVsPrevPeriod": "-22%",
"autoResolveVsPrevPeriod": "+8%"
}
}
}
string
padrão:"7d"
Período de análise:
24h, 7d, 30d, 90dstring
Filtrar por namespace específico
string
Filtrar por cluster (em ambientes federados)
{
"apiVersion": "v1",
"kind": "AnalyticsSummary",
"metadata": {
"period": "7d",
"from": "2026-03-12T00:00:00Z",
"to": "2026-03-19T15:00:00Z",
"generatedAt": "2026-03-19T15:05:00Z"
},
"summary": {
"incidents": {
"total": 42,
"bySeverity": {
"critical": 3,
"high": 12,
"medium": 18,
"low": 9
},
"byState": {
"resolved": 35,
"analyzing": 3,
"remediating": 2,
"escalated": 2
},
"autoResolved": 28,
"autoResolvedPercent": 66.7,
"avgTimeToDetect": "45s",
"avgTimeToResolve": "8m30s"
},
"slos": {
"total": 8,
"healthy": 5,
"warning": 2,
"breached": 1,
"avgBudgetRemaining": "58%"
},
"remediations": {
"total": 30,
"successful": 28,
"failed": 2,
"successRate": 93.3,
"avgExecutionTime": "4m15s",
"topRunbooks": [
{"name": "runbook-oomkill-standard", "count": 12},
{"name": "runbook-crashloop-restart", "count": 8},
{"name": "runbook-latency-scale", "count": 5}
]
},
"approvals": {
"total": 15,
"approved": 12,
"rejected": 2,
"expired": 1,
"avgDecisionTime": "3m20s"
},
"trends": {
"incidentsVsPrevPeriod": "-15%",
"mttrVsPrevPeriod": "-22%",
"autoResolveVsPrevPeriod": "+8%"
}
}
}
Autorizações
Bearer token issued by the operator. Format: Authorization: Bearer <token>.
Parâmetros de consulta
Analysis period.
Opções disponíveis:
24h, 7d, 30d, 90d Filter by namespace.
Filter by cluster (federated environments).
Resposta
Analytics summary
Exemplo:
"v1"
Exemplo:
"AnalyticsSummary"
Show child attributes
Show child attributes
Aggregated counters returned at the top level of the spec body. As of the GAP-03/04 fixes, dashboards rely on containedIssues, postMortemsRequiringHumanAction and chaosInducedIssues to distinguish truly resolved incidents from contained ones and to keep chaos drills out of production trend widgets.
Show child attributes
Show child attributes
⌘I