Service map
Get network endpoint ports
Returns the endpoint’s traffic grouped by server port and protocol, with a child per locality so same zone and cross zone traffic stay apart. direction says whether the endpoint was the client of those ports or the server (client, server or both, default both), and bytes_out and bytes_in are from the endpoint’s point of view. share_of_bytes and share_of_cost are shares of the filtered total before paging. sort is cost (default) or bytes
GET
/
api
/
v1
/
tenant
/
service-map
/
endpoints
/
{id}
/
ports
Get network endpoint ports
curl --request GET \
--url https://api.costgraph.ai/api/v1/tenant/service-map/endpoints/{id}/ports \
--header 'Authorization: <api-key>' \
--header 'X-CostGraph-Tenant-ID: <x-costgraph-tenant-id>'import requests
url = "https://api.costgraph.ai/api/v1/tenant/service-map/endpoints/{id}/ports"
headers = {
"X-CostGraph-Tenant-ID": "<x-costgraph-tenant-id>",
"Authorization": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-CostGraph-Tenant-ID': '<x-costgraph-tenant-id>', Authorization: '<api-key>'}
};
fetch('https://api.costgraph.ai/api/v1/tenant/service-map/endpoints/{id}/ports', 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.costgraph.ai/api/v1/tenant/service-map/endpoints/{id}/ports",
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>",
"X-CostGraph-Tenant-ID: <x-costgraph-tenant-id>"
],
]);
$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.costgraph.ai/api/v1/tenant/service-map/endpoints/{id}/ports"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-CostGraph-Tenant-ID", "<x-costgraph-tenant-id>")
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("https://api.costgraph.ai/api/v1/tenant/service-map/endpoints/{id}/ports")
.header("X-CostGraph-Tenant-ID", "<x-costgraph-tenant-id>")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.costgraph.ai/api/v1/tenant/service-map/endpoints/{id}/ports")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-CostGraph-Tenant-ID"] = '<x-costgraph-tenant-id>'
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"message": "some message",
"status": "success",
"data": {
"items": [
{
"bytes_in": 123,
"bytes_out": 123,
"bytes_total": 123,
"connections_opened": 123,
"cost": 123,
"direction": "client",
"localities": [
{
"bytes_in": 123,
"bytes_out": 123,
"bytes_total": 123,
"connections_opened": 123,
"cost": 123,
"locality": "<string>",
"unhealthy_connections": 123
}
],
"port": 123,
"proto": "<string>",
"share_of_bytes": 123,
"share_of_cost": 123,
"unhealthy_connections": 123
}
],
"limit": 123,
"offset": 123,
"range": {
"end": "<string>",
"start": "<string>"
},
"total": 123
}
}{
"message": "some message",
"status": "error"
}{
"message": "some message",
"status": "error"
}{
"message": "some message",
"status": "error"
}{
"message": "some message",
"status": "error"
}{
"message": "some message",
"status": "error"
}Authorizations
Enter "Bearer {token}"
Headers
Tenant ID
Path Parameters
Network endpoint ID
Query Parameters
client, server or both (default both)
cost or bytes (default cost)
Page size, 1 to 500 (default 50)
Rows to skip (default 0)
Range start timestamp in RFC3339 format
Range end timestamp in RFC3339 format
Was this page helpful?
⌘I
Get network endpoint ports
curl --request GET \
--url https://api.costgraph.ai/api/v1/tenant/service-map/endpoints/{id}/ports \
--header 'Authorization: <api-key>' \
--header 'X-CostGraph-Tenant-ID: <x-costgraph-tenant-id>'import requests
url = "https://api.costgraph.ai/api/v1/tenant/service-map/endpoints/{id}/ports"
headers = {
"X-CostGraph-Tenant-ID": "<x-costgraph-tenant-id>",
"Authorization": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-CostGraph-Tenant-ID': '<x-costgraph-tenant-id>', Authorization: '<api-key>'}
};
fetch('https://api.costgraph.ai/api/v1/tenant/service-map/endpoints/{id}/ports', 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.costgraph.ai/api/v1/tenant/service-map/endpoints/{id}/ports",
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>",
"X-CostGraph-Tenant-ID: <x-costgraph-tenant-id>"
],
]);
$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.costgraph.ai/api/v1/tenant/service-map/endpoints/{id}/ports"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-CostGraph-Tenant-ID", "<x-costgraph-tenant-id>")
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("https://api.costgraph.ai/api/v1/tenant/service-map/endpoints/{id}/ports")
.header("X-CostGraph-Tenant-ID", "<x-costgraph-tenant-id>")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.costgraph.ai/api/v1/tenant/service-map/endpoints/{id}/ports")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-CostGraph-Tenant-ID"] = '<x-costgraph-tenant-id>'
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"message": "some message",
"status": "success",
"data": {
"items": [
{
"bytes_in": 123,
"bytes_out": 123,
"bytes_total": 123,
"connections_opened": 123,
"cost": 123,
"direction": "client",
"localities": [
{
"bytes_in": 123,
"bytes_out": 123,
"bytes_total": 123,
"connections_opened": 123,
"cost": 123,
"locality": "<string>",
"unhealthy_connections": 123
}
],
"port": 123,
"proto": "<string>",
"share_of_bytes": 123,
"share_of_cost": 123,
"unhealthy_connections": 123
}
],
"limit": 123,
"offset": 123,
"range": {
"end": "<string>",
"start": "<string>"
},
"total": 123
}
}{
"message": "some message",
"status": "error"
}{
"message": "some message",
"status": "error"
}{
"message": "some message",
"status": "error"
}{
"message": "some message",
"status": "error"
}{
"message": "some message",
"status": "error"
}