Tracing endpoints
List incident metadata distributions
POST
/
api
/
v2
/
tracing
/
metadata_distributions
List incident metadata distributions
curl --request POST \
--url https://appsignal.com/api/v2/tracing/metadata_distributions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"site_id": "abc123",
"incident_digests": [
"1023993"
],
"from": "2024-01-01T00:00:00Z",
"group_by": "VALUE",
"metadata_key": "hostname"
}
'import requests
url = "https://appsignal.com/api/v2/tracing/metadata_distributions"
payload = {
"site_id": "abc123",
"incident_digests": ["1023993"],
"from": "2024-01-01T00:00:00Z",
"group_by": "VALUE",
"metadata_key": "hostname"
}
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({
site_id: 'abc123',
incident_digests: ['1023993'],
from: '2024-01-01T00:00:00Z',
group_by: 'VALUE',
metadata_key: 'hostname'
})
};
fetch('https://appsignal.com/api/v2/tracing/metadata_distributions', 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://appsignal.com/api/v2/tracing/metadata_distributions",
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([
'site_id' => 'abc123',
'incident_digests' => [
'1023993'
],
'from' => '2024-01-01T00:00:00Z',
'group_by' => 'VALUE',
'metadata_key' => 'hostname'
]),
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://appsignal.com/api/v2/tracing/metadata_distributions"
payload := strings.NewReader("{\n \"site_id\": \"abc123\",\n \"incident_digests\": [\n \"1023993\"\n ],\n \"from\": \"2024-01-01T00:00:00Z\",\n \"group_by\": \"VALUE\",\n \"metadata_key\": \"hostname\"\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://appsignal.com/api/v2/tracing/metadata_distributions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"site_id\": \"abc123\",\n \"incident_digests\": [\n \"1023993\"\n ],\n \"from\": \"2024-01-01T00:00:00Z\",\n \"group_by\": \"VALUE\",\n \"metadata_key\": \"hostname\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://appsignal.com/api/v2/tracing/metadata_distributions")
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 \"site_id\": \"abc123\",\n \"incident_digests\": [\n \"1023993\"\n ],\n \"from\": \"2024-01-01T00:00:00Z\",\n \"group_by\": \"VALUE\",\n \"metadata_key\": \"hostname\"\n}"
response = http.request(request)
puts response.read_body[
{
"key": "frontend1",
"value": 42
}
]{
"error": "<string>",
"message": "<string>",
"details": "<unknown>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>",
"suggestion": "<string>"
}{
"error": "<string>"
}For how to investigate error incidents with this endpoint, see Querying traces.
Authorizations
bearer_authtoken_query
Authorization: Bearer <token>
Body
application/json
Query for the metadata distribution list.
Site to fetch metadata for.
Incident digests to include.
Start of the time range (inclusive).
Which dimension to group by (KEY or VALUE).
Available options:
KEY, VALUE End of the time range (inclusive). Defaults to now.
The metadata key to filter values by. Required when group_by is
VALUE; ignored in KEY mode.
Maximum rows to return, clamped to 1–1000. Defaults to 10 in VALUE mode;
in KEY mode absent means no limit.
Response
A bare array: key rows in KEY mode, value rows in VALUE mode.
Was this page helpful?
⌘I
List incident metadata distributions
curl --request POST \
--url https://appsignal.com/api/v2/tracing/metadata_distributions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"site_id": "abc123",
"incident_digests": [
"1023993"
],
"from": "2024-01-01T00:00:00Z",
"group_by": "VALUE",
"metadata_key": "hostname"
}
'import requests
url = "https://appsignal.com/api/v2/tracing/metadata_distributions"
payload = {
"site_id": "abc123",
"incident_digests": ["1023993"],
"from": "2024-01-01T00:00:00Z",
"group_by": "VALUE",
"metadata_key": "hostname"
}
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({
site_id: 'abc123',
incident_digests: ['1023993'],
from: '2024-01-01T00:00:00Z',
group_by: 'VALUE',
metadata_key: 'hostname'
})
};
fetch('https://appsignal.com/api/v2/tracing/metadata_distributions', 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://appsignal.com/api/v2/tracing/metadata_distributions",
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([
'site_id' => 'abc123',
'incident_digests' => [
'1023993'
],
'from' => '2024-01-01T00:00:00Z',
'group_by' => 'VALUE',
'metadata_key' => 'hostname'
]),
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://appsignal.com/api/v2/tracing/metadata_distributions"
payload := strings.NewReader("{\n \"site_id\": \"abc123\",\n \"incident_digests\": [\n \"1023993\"\n ],\n \"from\": \"2024-01-01T00:00:00Z\",\n \"group_by\": \"VALUE\",\n \"metadata_key\": \"hostname\"\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://appsignal.com/api/v2/tracing/metadata_distributions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"site_id\": \"abc123\",\n \"incident_digests\": [\n \"1023993\"\n ],\n \"from\": \"2024-01-01T00:00:00Z\",\n \"group_by\": \"VALUE\",\n \"metadata_key\": \"hostname\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://appsignal.com/api/v2/tracing/metadata_distributions")
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 \"site_id\": \"abc123\",\n \"incident_digests\": [\n \"1023993\"\n ],\n \"from\": \"2024-01-01T00:00:00Z\",\n \"group_by\": \"VALUE\",\n \"metadata_key\": \"hostname\"\n}"
response = http.request(request)
puts response.read_body[
{
"key": "frontend1",
"value": 42
}
]{
"error": "<string>",
"message": "<string>",
"details": "<unknown>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>",
"suggestion": "<string>"
}{
"error": "<string>"
}