curl --request GET \
--url https://api.eu.bronto.io/metrics/{metric_id}/top-keys \
--header 'X-BRONTO-API-KEY: <api-key>'import requests
url = "https://api.eu.bronto.io/metrics/{metric_id}/top-keys"
headers = {"X-BRONTO-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-BRONTO-API-KEY': '<api-key>'}};
fetch('https://api.eu.bronto.io/metrics/{metric_id}/top-keys', 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.eu.bronto.io/metrics/{metric_id}/top-keys",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-BRONTO-API-KEY: <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 := "https://api.eu.bronto.io/metrics/{metric_id}/top-keys"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-BRONTO-API-KEY", "<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("https://api.eu.bronto.io/metrics/{metric_id}/top-keys")
.header("X-BRONTO-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eu.bronto.io/metrics/{metric_id}/top-keys")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-BRONTO-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"Resource:service.name": {
"type": "STRING",
"field_type": "ATTRIBUTE",
"values": {
"checkout": {
"value": "checkout"
},
"payments": {
"value": "payments"
}
}
},
"Resource:host.name": {
"type": "STRING",
"field_type": "ATTRIBUTE",
"values": {
"ip-10-0-1-23": {
"value": "ip-10-0-1-23"
}
}
},
"cpu": {
"type": "NUMBER",
"field_type": "ATTRIBUTE",
"values": {
"0": {
"value": "0"
},
"1": {
"value": "1"
}
}
}
}{
"bad_request_validation": {
"summary": "Bad Request - Validation Error",
"description": "Example error when request validation fails",
"value": {
"code": 400,
"type": "Bad Request",
"correlation_id": "95c6a974e3ab01209b6b0dfedb1b16c5",
"details": "Validation failed: 'name' field is required and cannot be empty"
}
},
"bad_request_invalid_type": {
"summary": "Bad Request - Invalid Metric Type",
"description": "Example error when an invalid metric type is provided",
"value": {
"code": 400,
"type": "Bad Request",
"correlation_id": "00d8a51bb2874f2583670317a4fb8db7",
"details": "Invalid metric_type 'INVALID'. Must be one of: COUNTER, GAUGE, HISTOGRAM"
}
},
"forbidden": {
"summary": "Forbidden Access",
"description": "Example error when user lacks required permissions",
"value": {
"code": 403,
"type": "Forbidden",
"correlation_id": "40276639de0f49d586e32edd8c4f6b34",
"details": "Access denied. User does not have permission to create metric definition templates"
}
},
"not_found": {
"summary": "Resource Not Found",
"description": "Example error when requested resource doesn't exist",
"value": {
"code": 404,
"type": "Not Found",
"correlation_id": "605f832bcfe44a1081441691c8d42253",
"details": "Metric definition template with id '550e8400-e29b-41d4-a716-446655440000' not found"
}
},
"rate_limit": {
"summary": "Rate Limit Exceeded",
"description": "Example error when API rate limit is exceeded",
"value": {
"code": 429,
"type": "Too Many Requests",
"correlation_id": "53909ed43c544531b7a555e295960437",
"details": "Rate limit exceeded. Maximum 100 requests are allowed within a 5-minute window"
}
},
"internal_server_error": {
"summary": "Internal Server Error",
"description": "Example error for unexpected server-side failures",
"value": {
"code": 500,
"type": "Internal Server Error",
"correlation_id": "b129b8e0e66c41aa9541a30f67e38ce2",
"details": "An unexpected error occurred while processing your request"
}
}
}{
"bad_request_validation": {
"summary": "Bad Request - Validation Error",
"description": "Example error when request validation fails",
"value": {
"code": 400,
"type": "Bad Request",
"correlation_id": "95c6a974e3ab01209b6b0dfedb1b16c5",
"details": "Validation failed: 'name' field is required and cannot be empty"
}
},
"bad_request_invalid_type": {
"summary": "Bad Request - Invalid Metric Type",
"description": "Example error when an invalid metric type is provided",
"value": {
"code": 400,
"type": "Bad Request",
"correlation_id": "00d8a51bb2874f2583670317a4fb8db7",
"details": "Invalid metric_type 'INVALID'. Must be one of: COUNTER, GAUGE, HISTOGRAM"
}
},
"forbidden": {
"summary": "Forbidden Access",
"description": "Example error when user lacks required permissions",
"value": {
"code": 403,
"type": "Forbidden",
"correlation_id": "40276639de0f49d586e32edd8c4f6b34",
"details": "Access denied. User does not have permission to create metric definition templates"
}
},
"not_found": {
"summary": "Resource Not Found",
"description": "Example error when requested resource doesn't exist",
"value": {
"code": 404,
"type": "Not Found",
"correlation_id": "605f832bcfe44a1081441691c8d42253",
"details": "Metric definition template with id '550e8400-e29b-41d4-a716-446655440000' not found"
}
},
"rate_limit": {
"summary": "Rate Limit Exceeded",
"description": "Example error when API rate limit is exceeded",
"value": {
"code": 429,
"type": "Too Many Requests",
"correlation_id": "53909ed43c544531b7a555e295960437",
"details": "Rate limit exceeded. Maximum 100 requests are allowed within a 5-minute window"
}
},
"internal_server_error": {
"summary": "Internal Server Error",
"description": "Example error for unexpected server-side failures",
"value": {
"code": 500,
"type": "Internal Server Error",
"correlation_id": "b129b8e0e66c41aa9541a30f67e38ce2",
"details": "An unexpected error occurred while processing your request"
}
}
}Retrieve the top keys and sample values for a metric
Returns the keys (attributes) received for a metric within a time window, together with each key’s data type and a sample of the values seen for it. Use this to discover which dimensions you can filter or group a metric by.
Set the time window in one of two ways:
time_range, a relative range such aslast 20 minutes, orfrom_tsandto_tstogether, as an absolute range in Unix milliseconds.
If no time window is provided, the most recent keys and values are returned. The response is an object keyed by key name. Values are a sample, not an exhaustive list.
curl --request GET \
--url https://api.eu.bronto.io/metrics/{metric_id}/top-keys \
--header 'X-BRONTO-API-KEY: <api-key>'import requests
url = "https://api.eu.bronto.io/metrics/{metric_id}/top-keys"
headers = {"X-BRONTO-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-BRONTO-API-KEY': '<api-key>'}};
fetch('https://api.eu.bronto.io/metrics/{metric_id}/top-keys', 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.eu.bronto.io/metrics/{metric_id}/top-keys",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-BRONTO-API-KEY: <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 := "https://api.eu.bronto.io/metrics/{metric_id}/top-keys"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-BRONTO-API-KEY", "<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("https://api.eu.bronto.io/metrics/{metric_id}/top-keys")
.header("X-BRONTO-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eu.bronto.io/metrics/{metric_id}/top-keys")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-BRONTO-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"Resource:service.name": {
"type": "STRING",
"field_type": "ATTRIBUTE",
"values": {
"checkout": {
"value": "checkout"
},
"payments": {
"value": "payments"
}
}
},
"Resource:host.name": {
"type": "STRING",
"field_type": "ATTRIBUTE",
"values": {
"ip-10-0-1-23": {
"value": "ip-10-0-1-23"
}
}
},
"cpu": {
"type": "NUMBER",
"field_type": "ATTRIBUTE",
"values": {
"0": {
"value": "0"
},
"1": {
"value": "1"
}
}
}
}{
"bad_request_validation": {
"summary": "Bad Request - Validation Error",
"description": "Example error when request validation fails",
"value": {
"code": 400,
"type": "Bad Request",
"correlation_id": "95c6a974e3ab01209b6b0dfedb1b16c5",
"details": "Validation failed: 'name' field is required and cannot be empty"
}
},
"bad_request_invalid_type": {
"summary": "Bad Request - Invalid Metric Type",
"description": "Example error when an invalid metric type is provided",
"value": {
"code": 400,
"type": "Bad Request",
"correlation_id": "00d8a51bb2874f2583670317a4fb8db7",
"details": "Invalid metric_type 'INVALID'. Must be one of: COUNTER, GAUGE, HISTOGRAM"
}
},
"forbidden": {
"summary": "Forbidden Access",
"description": "Example error when user lacks required permissions",
"value": {
"code": 403,
"type": "Forbidden",
"correlation_id": "40276639de0f49d586e32edd8c4f6b34",
"details": "Access denied. User does not have permission to create metric definition templates"
}
},
"not_found": {
"summary": "Resource Not Found",
"description": "Example error when requested resource doesn't exist",
"value": {
"code": 404,
"type": "Not Found",
"correlation_id": "605f832bcfe44a1081441691c8d42253",
"details": "Metric definition template with id '550e8400-e29b-41d4-a716-446655440000' not found"
}
},
"rate_limit": {
"summary": "Rate Limit Exceeded",
"description": "Example error when API rate limit is exceeded",
"value": {
"code": 429,
"type": "Too Many Requests",
"correlation_id": "53909ed43c544531b7a555e295960437",
"details": "Rate limit exceeded. Maximum 100 requests are allowed within a 5-minute window"
}
},
"internal_server_error": {
"summary": "Internal Server Error",
"description": "Example error for unexpected server-side failures",
"value": {
"code": 500,
"type": "Internal Server Error",
"correlation_id": "b129b8e0e66c41aa9541a30f67e38ce2",
"details": "An unexpected error occurred while processing your request"
}
}
}{
"bad_request_validation": {
"summary": "Bad Request - Validation Error",
"description": "Example error when request validation fails",
"value": {
"code": 400,
"type": "Bad Request",
"correlation_id": "95c6a974e3ab01209b6b0dfedb1b16c5",
"details": "Validation failed: 'name' field is required and cannot be empty"
}
},
"bad_request_invalid_type": {
"summary": "Bad Request - Invalid Metric Type",
"description": "Example error when an invalid metric type is provided",
"value": {
"code": 400,
"type": "Bad Request",
"correlation_id": "00d8a51bb2874f2583670317a4fb8db7",
"details": "Invalid metric_type 'INVALID'. Must be one of: COUNTER, GAUGE, HISTOGRAM"
}
},
"forbidden": {
"summary": "Forbidden Access",
"description": "Example error when user lacks required permissions",
"value": {
"code": 403,
"type": "Forbidden",
"correlation_id": "40276639de0f49d586e32edd8c4f6b34",
"details": "Access denied. User does not have permission to create metric definition templates"
}
},
"not_found": {
"summary": "Resource Not Found",
"description": "Example error when requested resource doesn't exist",
"value": {
"code": 404,
"type": "Not Found",
"correlation_id": "605f832bcfe44a1081441691c8d42253",
"details": "Metric definition template with id '550e8400-e29b-41d4-a716-446655440000' not found"
}
},
"rate_limit": {
"summary": "Rate Limit Exceeded",
"description": "Example error when API rate limit is exceeded",
"value": {
"code": 429,
"type": "Too Many Requests",
"correlation_id": "53909ed43c544531b7a555e295960437",
"details": "Rate limit exceeded. Maximum 100 requests are allowed within a 5-minute window"
}
},
"internal_server_error": {
"summary": "Internal Server Error",
"description": "Example error for unexpected server-side failures",
"value": {
"code": 500,
"type": "Internal Server Error",
"correlation_id": "b129b8e0e66c41aa9541a30f67e38ce2",
"details": "An unexpected error occurred while processing your request"
}
}
}Authorizations
Path Parameters
The unique identifier (UUID) of the metric.
Query Parameters
The relative time range for which to retrieve the keys.
The starting time (unix time in milliseconds) for which retrieve the keys. Must be used together with to_ts. This parameter is incompatible with time_range.
The ending time (unix time in milliseconds) for which to retrieve the keys. Must be used together with from_ts. This parameter is incompatible with time_range.
Response
Metric keys retrieved successfully
Show child attributes
Show child attributes

