curl --request POST \
--url https://api.kombify.io/v1/techstack/api/v1/workers/{id}/telemetry \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"schema_version": "kombify.guard-telemetry/v1",
"source_epoch": "<string>",
"records": [
{
"sequence": 2,
"at": "2023-11-07T05:31:56Z",
"samples": [
{
"name": "<string>",
"value": 123,
"labels": {}
}
]
}
]
}
'import requests
url = "https://api.kombify.io/v1/techstack/api/v1/workers/{id}/telemetry"
payload = {
"schema_version": "kombify.guard-telemetry/v1",
"source_epoch": "<string>",
"records": [
{
"sequence": 2,
"at": "2023-11-07T05:31:56Z",
"samples": [
{
"name": "<string>",
"value": 123,
"labels": {}
}
]
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
schema_version: 'kombify.guard-telemetry/v1',
source_epoch: '<string>',
records: [
{
sequence: 2,
at: '2023-11-07T05:31:56Z',
samples: [{name: '<string>', value: 123, labels: {}}]
}
]
})
};
fetch('https://api.kombify.io/v1/techstack/api/v1/workers/{id}/telemetry', 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.kombify.io/v1/techstack/api/v1/workers/{id}/telemetry",
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([
'schema_version' => 'kombify.guard-telemetry/v1',
'source_epoch' => '<string>',
'records' => [
[
'sequence' => 2,
'at' => '2023-11-07T05:31:56Z',
'samples' => [
[
'name' => '<string>',
'value' => 123,
'labels' => [
]
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.kombify.io/v1/techstack/api/v1/workers/{id}/telemetry"
payload := strings.NewReader("{\n \"schema_version\": \"kombify.guard-telemetry/v1\",\n \"source_epoch\": \"<string>\",\n \"records\": [\n {\n \"sequence\": 2,\n \"at\": \"2023-11-07T05:31:56Z\",\n \"samples\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"labels\": {}\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.kombify.io/v1/techstack/api/v1/workers/{id}/telemetry")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"schema_version\": \"kombify.guard-telemetry/v1\",\n \"source_epoch\": \"<string>\",\n \"records\": [\n {\n \"sequence\": 2,\n \"at\": \"2023-11-07T05:31:56Z\",\n \"samples\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"labels\": {}\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kombify.io/v1/techstack/api/v1/workers/{id}/telemetry")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"schema_version\": \"kombify.guard-telemetry/v1\",\n \"source_epoch\": \"<string>\",\n \"records\": [\n {\n \"sequence\": 2,\n \"at\": \"2023-11-07T05:31:56Z\",\n \"samples\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"labels\": {}\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"telemetry": {
"state": "disabled",
"acked_sequence": 123,
"accepted": 1,
"dropped": 1
}
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "<string>",
"details": "<unknown>"
}
}Send kombify Guard host and container telemetry
Telemetry on the managed transport. A batch carries records of one source epoch with increasing sequence numbers: each record is one collection cycle of the data contract (host CPU, memory, swap, load, disk per mount, uptime and container resource usage; SERVER-CONNECTION-STANDARD section 9) or an explicit gap marker. The control plane repeats the contract filter, stamps tenant, worker and server from the authentication, stores the samples and acknowledges only what it stored (acked_sequence), so a Guard that lost an acknowledgement replays without duplicates and keeps everything else. Editions that store no telemetry answer state: disabled and the Guard stops collecting.
curl --request POST \
--url https://api.kombify.io/v1/techstack/api/v1/workers/{id}/telemetry \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"schema_version": "kombify.guard-telemetry/v1",
"source_epoch": "<string>",
"records": [
{
"sequence": 2,
"at": "2023-11-07T05:31:56Z",
"samples": [
{
"name": "<string>",
"value": 123,
"labels": {}
}
]
}
]
}
'import requests
url = "https://api.kombify.io/v1/techstack/api/v1/workers/{id}/telemetry"
payload = {
"schema_version": "kombify.guard-telemetry/v1",
"source_epoch": "<string>",
"records": [
{
"sequence": 2,
"at": "2023-11-07T05:31:56Z",
"samples": [
{
"name": "<string>",
"value": 123,
"labels": {}
}
]
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
schema_version: 'kombify.guard-telemetry/v1',
source_epoch: '<string>',
records: [
{
sequence: 2,
at: '2023-11-07T05:31:56Z',
samples: [{name: '<string>', value: 123, labels: {}}]
}
]
})
};
fetch('https://api.kombify.io/v1/techstack/api/v1/workers/{id}/telemetry', 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.kombify.io/v1/techstack/api/v1/workers/{id}/telemetry",
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([
'schema_version' => 'kombify.guard-telemetry/v1',
'source_epoch' => '<string>',
'records' => [
[
'sequence' => 2,
'at' => '2023-11-07T05:31:56Z',
'samples' => [
[
'name' => '<string>',
'value' => 123,
'labels' => [
]
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.kombify.io/v1/techstack/api/v1/workers/{id}/telemetry"
payload := strings.NewReader("{\n \"schema_version\": \"kombify.guard-telemetry/v1\",\n \"source_epoch\": \"<string>\",\n \"records\": [\n {\n \"sequence\": 2,\n \"at\": \"2023-11-07T05:31:56Z\",\n \"samples\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"labels\": {}\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.kombify.io/v1/techstack/api/v1/workers/{id}/telemetry")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"schema_version\": \"kombify.guard-telemetry/v1\",\n \"source_epoch\": \"<string>\",\n \"records\": [\n {\n \"sequence\": 2,\n \"at\": \"2023-11-07T05:31:56Z\",\n \"samples\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"labels\": {}\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kombify.io/v1/techstack/api/v1/workers/{id}/telemetry")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"schema_version\": \"kombify.guard-telemetry/v1\",\n \"source_epoch\": \"<string>\",\n \"records\": [\n {\n \"sequence\": 2,\n \"at\": \"2023-11-07T05:31:56Z\",\n \"samples\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"labels\": {}\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"telemetry": {
"state": "disabled",
"acked_sequence": 123,
"accepted": 1,
"dropped": 1
}
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "<string>",
"details": "<unknown>"
}
}प्राधिकरण
Runtime-agent credential bound to the exact tenant, placement, server, and worker identity. Signed, opaque, and explicit legacy compatibility tokens are validated fail-closed by the worker runtime.
पथ पैरामीटर
Resource ID
बॉडी
प्रतिक्रिया
The acknowledgement
Show child attributes
Show child attributes
