Get network endpoint summary
Returns who a network endpoint is and what it did over the range: its resolved name, kind, provider, service, region, vendor, AS number, private scope and address, the inventory resources it maps to, when traffic was first and last seen, and its totals as a client and as a server. Totals count each connection once from this endpoint’s side: bytes_sent and bytes_received are from the endpoint’s own point of view, unhealthy_connections is reset plus refused plus failed, and failure_rate is unhealthy over opened connections capped at 1. cost is the period cost (bytes in the range priced at each connection’s attributed rate) and cost_monthly is the monthly projection of the connections that carried traffic; both are null when no connection is priced. cross_zone_share and cross_region_share are the shares of bytes by locality, and cost_split divides cost_monthly into internet, cross zone and other. An endpoint that was merged into another resolves to the surviving endpoint, whose id is returned in identity.id. An endpoint with no traffic in the range returns zero totals
curl --request GET \
--url https://api.costgraph.ai/api/v1/tenant/service-map/endpoints/{id}/summary \
--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}/summary"
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}/summary', 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}/summary",
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}/summary"
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}/summary")
.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}/summary")
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": {
"as_client": {
"bytes_received": 123,
"bytes_sent": 123,
"connections_closed": 123,
"connections_failed": 123,
"connections_opened": 123,
"connections_refused": 123,
"connections_reset": 123,
"cost": 123,
"cost_monthly": 123,
"failure_rate": 123,
"peers": 123,
"unhealthy_connections": 123
},
"as_server": {
"bytes_received": 123,
"bytes_sent": 123,
"connections_closed": 123,
"connections_failed": 123,
"connections_opened": 123,
"connections_refused": 123,
"connections_reset": 123,
"cost": 123,
"cost_monthly": 123,
"failure_rate": 123,
"peers": 123,
"unhealthy_connections": 123
},
"bytes_in": 123,
"bytes_out": 123,
"cost": 123,
"cost_monthly": 123,
"cost_split": {
"cross_zone_cost_monthly": 123,
"internet_cost_monthly": 123,
"other_cost_monthly": 123
},
"cross_region_share": 123,
"cross_zone_share": 123,
"first_seen": "<string>",
"identity": {
"address": "<string>",
"asn": "<string>",
"cluster": "<string>",
"endpoint_key": "<string>",
"engine": "<string>",
"id": "<string>",
"kind": "<string>",
"labels": {},
"name": "<string>",
"namespace": "<string>",
"parent_kind": "<string>",
"parent_name": "<string>",
"provider": "<string>",
"region": "<string>",
"resolution_source": "<string>",
"scope": "<string>",
"service": "<string>",
"vendor": "<string>"
},
"last_seen": "<string>",
"range": {
"end": "<string>",
"start": "<string>"
},
"related": {
"cluster_id": "<string>",
"container_id": "<string>",
"database_id": "<string>",
"node_id": "<string>",
"vm_host_id": "<string>",
"workload_resource_id": "<string>"
}
}
}{
"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
Range start timestamp in RFC3339 format
Range end timestamp in RFC3339 format
Was this page helpful?
curl --request GET \
--url https://api.costgraph.ai/api/v1/tenant/service-map/endpoints/{id}/summary \
--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}/summary"
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}/summary', 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}/summary",
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}/summary"
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}/summary")
.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}/summary")
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": {
"as_client": {
"bytes_received": 123,
"bytes_sent": 123,
"connections_closed": 123,
"connections_failed": 123,
"connections_opened": 123,
"connections_refused": 123,
"connections_reset": 123,
"cost": 123,
"cost_monthly": 123,
"failure_rate": 123,
"peers": 123,
"unhealthy_connections": 123
},
"as_server": {
"bytes_received": 123,
"bytes_sent": 123,
"connections_closed": 123,
"connections_failed": 123,
"connections_opened": 123,
"connections_refused": 123,
"connections_reset": 123,
"cost": 123,
"cost_monthly": 123,
"failure_rate": 123,
"peers": 123,
"unhealthy_connections": 123
},
"bytes_in": 123,
"bytes_out": 123,
"cost": 123,
"cost_monthly": 123,
"cost_split": {
"cross_zone_cost_monthly": 123,
"internet_cost_monthly": 123,
"other_cost_monthly": 123
},
"cross_region_share": 123,
"cross_zone_share": 123,
"first_seen": "<string>",
"identity": {
"address": "<string>",
"asn": "<string>",
"cluster": "<string>",
"endpoint_key": "<string>",
"engine": "<string>",
"id": "<string>",
"kind": "<string>",
"labels": {},
"name": "<string>",
"namespace": "<string>",
"parent_kind": "<string>",
"parent_name": "<string>",
"provider": "<string>",
"region": "<string>",
"resolution_source": "<string>",
"scope": "<string>",
"service": "<string>",
"vendor": "<string>"
},
"last_seen": "<string>",
"range": {
"end": "<string>",
"start": "<string>"
},
"related": {
"cluster_id": "<string>",
"container_id": "<string>",
"database_id": "<string>",
"node_id": "<string>",
"vm_host_id": "<string>",
"workload_resource_id": "<string>"
}
}
}{
"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"
}