curl --request GET \
--url {schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability/profiles/{uuid}/graph \
--header 'Authorization: Bearer <token>'import requests
url = "{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability/profiles/{uuid}/graph"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability/profiles/{uuid}/graph', 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 => "{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability/profiles/{uuid}/graph",
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: Bearer <token>"
],
]);
$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 := "{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability/profiles/{uuid}/graph"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability/profiles/{uuid}/graph")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability/profiles/{uuid}/graph")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"_project_id": "abc123def456",
"_environment_id": "main",
"_branch_machine_name": "main-bvxea6i",
"_agent": "a38f69ca-3b56-4ea6-beac-272b2568164a",
"_uuid": "4b5266a2-fd71-468b-bf05-87b342079cbf",
"dimensions": {},
"root": "main()",
"nodes": {},
"edges": {},
"comparison": false,
"language": "php",
"peaks": {},
"arguments": {},
"layers": {},
"labels": {},
"spans": {},
"spans-ot": {},
"hierarchy": {}
}Get profile call graph
Returns the call graph data for a Blackfire profile, showing function calls and their performance metrics.
curl --request GET \
--url {schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability/profiles/{uuid}/graph \
--header 'Authorization: Bearer <token>'import requests
url = "{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability/profiles/{uuid}/graph"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability/profiles/{uuid}/graph', 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 => "{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability/profiles/{uuid}/graph",
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: Bearer <token>"
],
]);
$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 := "{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability/profiles/{uuid}/graph"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability/profiles/{uuid}/graph")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("{schemes}://api.upsun.com/projects/{projectId}/environments/{environmentId}/observability/profiles/{uuid}/graph")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"_project_id": "abc123def456",
"_environment_id": "main",
"_branch_machine_name": "main-bvxea6i",
"_agent": "a38f69ca-3b56-4ea6-beac-272b2568164a",
"_uuid": "4b5266a2-fd71-468b-bf05-87b342079cbf",
"dimensions": {},
"root": "main()",
"nodes": {},
"edges": {},
"comparison": false,
"language": "php",
"peaks": {},
"arguments": {},
"layers": {},
"labels": {},
"spans": {},
"spans-ot": {},
"hierarchy": {}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The unique identifier of the Upsun project
[a-z0-9]+"abc123def456"
The environment identifier
.+"main"
The profile UUID
[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"4b5266a2-fd71-468b-bf05-87b342079cbf"
Response
Call graph retrieved successfully
Project identifier
"abc123def456"
Environment identifier
"main"
Branch machine name
"main-bvxea6i"
Blackfire Agent UUID
"a38f69ca-3b56-4ea6-beac-272b2568164a"
Profile UUID
"4b5266a2-fd71-468b-bf05-87b342079cbf"
Available metric dimensions (wt, cpu, mu, pmu, io, nw, ct)
Root node identifier
"main()"
Call graph nodes with inclusive/exclusive costs and percentages
Call graph edges linking caller to callee nodes
Whether this is a comparison graph
false
Profiled application language
php, python "php"
Peak inclusive and exclusive costs
Function arguments and metric data
Layer information
Timespan labels
Span metadata
OpenTelemetry span data
Profile hierarchy data
Was this page helpful?