← Privacy Proxy / privacy-proxy / reference / metriky
GraphQL Analytics API
Privacy Proxy zpřístupňuje metriky prostřednictvím Cloudflare GraphQL Analytics API. Všechny metriky lze dotazovat prostřednictvím jediného endpointu:
POST https://api.cloudflare.com/client/v4/graphqlNež začnete, budete potřebovat:
- API token : vytvořte token s Account Analytics oprávnění ke čtení. Další informace najdete v naší dokumentaci k tokenům Analytics API: Nakonfigurujte token Analytics API.
- ID účtu : vaše ID účtu Cloudflare, předávané jako
accountTagv dotazech. Další informace najdete v Vyhledání ID účtu a zóny.
Vytvoření požadavku
Následující příklad ukazuje, jak pomocí curl dotázat denní objem požadavků z metrik Privacy Proxy. Zástupné hodnoty nahraďte vlastními.
curl https://api.cloudflare.com/client/v4/graphql \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"query": "query DailyRequestVolume($accountTag: String!, $startDate: Date!, $endDate: Date!) { viewer { accounts(filter: { accountTag: $accountTag }) { privacyProxyRequestMetricsAdaptiveGroups(filter: { date_geq: $startDate, date_leq: $endDate }, limit: 10000, orderBy: [date_ASC]) { count dimensions { date } } } } }",
"variables": {
"accountTag": "<YOUR_ACCOUNT_TAG>",
"startDate": "2026-04-04",
"endDate": "2026-04-06"
}
}'Dostupné uzly
K dispozici jsou čtyři uzly GraphQL. Všechny čtyři vracejí pouze agregovaná data, žádné surové záznamy jednotlivých připojení nejsou zpřístupněny.
privacyProxyRequestMetricsAdaptiveGroups: dotazuje se na souhrnný objem požadavků a chybovost, filtrovatelné podle času, lokality, endpointu, stavového kódu a stavu proxy.privacyProxyIngressConnMetricsAdaptiveGroups: dotazuje se na počty připojení klient-proxy, přenesené bajty a percentily latence, filtrovatelné podle času, lokality, endpointu a typu přenosu.privacyProxyEgressConnMetricsAdaptiveGroups: dotazuje se na počty připojení proxy-origin, přenesené bajty a percentily latence, filtrovatelné podle času, lokality, endpointu a typu přenosu.privacyProxyAuthMetricsAdaptiveGroups: dotazuje se na počty pokusů o autentizaci, filtrovatelné podle času, lokality, endpointu, metody autentizace a výsledku autentizace.
Schéma
Metriky
Součet polí
| Pole | Typ | Popis | Node |
|---|---|---|---|
bytesSentToClient |
uint64 |
Celkový počet bajtů odeslaných proxy zpět klientovi. | Příchozí připojení |
bytesRecvdFromClient |
uint64 |
Celkový počet bajtů přijatých proxy od klienta. | Příchozí připojení |
bytesSentToOrigin |
uint64 |
Celkový počet bajtů odeslaných proxy k upstreamovému originu. | Odchozí připojení |
bytesRecvdFromOrigin |
uint64 |
Celkový počet bajtů přijatých proxy od upstreamového originu. | Odchozí připojení |
packetsSentToClient |
uint64 |
Celkový počet paketů odeslaných proxy zpět klientovi. | Příchozí připojení |
packetsRecvdFromClient |
uint64 |
Celkový počet paketů přijatých proxy od klienta. | Příchozí připojení |
packetsSentToOrigin |
uint64 |
Celkový počet paketů odeslaných proxy k upstreamovému originu. | Odchozí připojení |
packetsRecvdFromOrigin |
uint64 |
Celkový počet paketů přijatých proxy od upstreamového originu. | Odchozí připojení |
Počítaná pole
Všechny čtyři uzly poskytují count pole, které vrací celkový počet vzorkovaných událostí (požadavků, připojení nebo pokusů o autentizaci) odpovídajících filtru dotazu.
Kvantilová pole
| Pole | Typ | Popis | Node |
|---|---|---|---|
durationMsP50 |
float64 |
Medián doby trvání připojení v milisekundách. | Příchozí a odchozí připojení |
durationMsP95 |
float64 |
95. percentil doby trvání připojení v milisekundách. | Příchozí a odchozí připojení |
durationMsP99 |
float64 |
99. percentil doby trvání připojení v milisekundách. | Příchozí a odchozí připojení |
handshakeDurationUsP50 |
float64 |
Medián doby handshake TCP+TLS/QUIC v mikrosekundách. | Příchozí a odchozí připojení |
handshakeDurationUsP95 |
float64 |
95. percentil doby handshake v mikrosekundách. | Příchozí a odchozí připojení |
handshakeDurationUsP99 |
float64 |
99. percentil doby handshake v mikrosekundách. | Příchozí a odchozí připojení |
connectRequestHandlingDurationUsP50 |
float64 |
Medián doby zpracování požadavku CONNECT, v mikrosekundách. Zatím není k dispozici. | Požadavek |
connectRequestHandlingDurationUsP95 |
float64 |
95. percentil doby zpracování požadavku CONNECT v mikrosekundách. Zatím není k dispozici. | Požadavek |
connectRequestHandlingDurationUsP99 |
float64 |
99. percentil doby zpracování požadavku CONNECT v mikrosekundách. Zatím není k dispozici. | Požadavek |
connectTunnelSetupDurationUsP50 |
float64 |
Medián doby potřebné k navázání tunelu po přijetí požadavku CONNECT, v mikrosekundách. Zatím není k dispozici. | Požadavek |
connectTunnelSetupDurationUsP95 |
float64 |
95. percentil doby nastavení tunelu v mikrosekundách. Zatím není k dispozici. | Požadavek |
connectTunnelSetupDurationUsP99 |
float64 |
99. percentil doby nastavení tunelu v mikrosekundách. Zatím není k dispozici. | Požadavek |
Dimenze
Všechny uzly
| Pole | Typ | Popis |
|---|---|---|
date |
Date |
Kalendářní datum (s granularitou na den). |
datetimeMinute |
Time |
Časové razítko zaokrouhlené na celou minutu. |
datetimeFiveMinutes |
Time |
Časové razítko zaokrouhlené na pětiminutové intervaly. |
datetimeFifteenMinutes |
Time |
Časové razítko zaokrouhlené na patnáctiminutové intervaly. |
datetimeHour |
Time |
Časové razítko zaokrouhlené na celou hodinu. |
coloCode |
string |
Datové centrum Cloudflare, které požadavek zpracovalo. |
endpoint |
string |
appId, který vygeneroval provoz. |
Všechny časové dimenze se vztahují ke konci připojení nebo požadavku, nikoli k jeho začátku.
Pouze uzel požadavku
| Pole | Typ | Popis |
|---|---|---|
statusCode |
uint16 |
Stavový kód HTTP, který proxy vrací klientovi. |
proxyStatus |
string |
Klasifikace chyb na úrovni proxy. null pokud nedošlo k žádné chybě na úrovni proxy. Viz referenční dokumentace o stavu proxy pro možné hodnoty. |
tunnelType |
string |
Použitý protokol tunelu (connect-tcp, connect-udp, connect-ip). Zatím není k dispozici. |
Pouze uzel příchozího připojení
| Pole | Typ | Popis |
|---|---|---|
transport |
string |
Transportní protokol na spojení mezi klientem a proxy (tcp, quic). |
tlsVersion |
string |
Verze TLS sjednaná na spojení mezi klientem a proxy. Zatím není k dispozici. |
Pouze uzel odchozího připojení
| Pole | Typ | Popis |
|---|---|---|
transport |
string |
Transportní protokol na spojení mezi proxy a originem (tcp, quic). |
Pouze uzel pro autentizaci
| Pole | Typ | Popis |
|---|---|---|
authMethod |
string |
Použitá metoda autentizace (například Token, Psk). |
authResult |
string |
Výsledek autentizace (success, failure). |
Argumenty
Všechny čtyři uzly mají stejnou signaturu argumentů.
filterpovinné : filtruje vaše data.accountTagje uvnitř filtru vždy povinné.limitvolitelné : Maximální počet záznamů, které se mají vrátit.orderByvolitelné : pořadí řazení výsledků.
Ukázkové dotazy
uzel privacyProxyRequestMetricsAdaptiveGroups
Přehled objemu požadavků
Získejte celkový přehled o objemu požadavků za zvolené období.
query DailyRequestVolume(
$accountTag: String!
$startDate: Date!
$endDate: Date!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
privacyProxyRequestMetricsAdaptiveGroups(
filter: {
date_geq: $startDate
date_leq: $endDate
}
limit: 10000
orderBy: [date_ASC]
) {
count
dimensions {
date
}
}
}
}
}{
"accountTag": "<YOUR_ACCOUNT_TAG>",
"startDate": "2026-04-04",
"endDate": "2026-04-06"
}Rozdělení chyb podle stavového kódu a stavu proxy
Zjistěte, které stavové kódy HTTP a chyby na úrovni proxy se vyskytují, a určete tak zdroj selhání.
query ErrorBreakdown(
$accountTag: String!
$start: Time!
$end: Time!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
privacyProxyRequestMetricsAdaptiveGroups(
filter: {
datetimeFifteenMinutes_geq: $start
datetimeFifteenMinutes_leq: $end
statusCode_geq: 400
}
limit: 10000
orderBy: [datetimeFifteenMinutes_ASC]
) {
count
dimensions {
datetimeFifteenMinutes
statusCode
proxyStatus
}
}
}
}
}{
"accountTag": "<YOUR_ACCOUNT_TAG>",
"start": "2026-04-04T00:00:00Z",
"end": "2026-04-06T23:59:59Z"
}Nejčastější chyby proxy podle frekvence
Seřaďte nejčastější typy chyb proxy, abyste určili priority při vyšetřování.
query TopProxyErrors(
$accountTag: String!
$start: Date!
$end: Date!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
privacyProxyRequestMetricsAdaptiveGroups(
filter: {
date_geq: $start
date_leq: $end
proxyStatus_neq: ""
}
limit: 10000
orderBy: [count_DESC]
) {
count
dimensions {
proxyStatus
statusCode
}
}
}
}
}{
"accountTag": "<YOUR_ACCOUNT_TAG>",
"start": "2026-04-04",
"end": "2026-04-06"
}Rozložení typů tunelů
Sledujte podíl connect-tcp, connect-udp, a connect-ip v čase, abyste pochopili, jak se klienti připojují.
query TunnelTypeDistribution(
$accountTag: String!
$startDate: Date!
$endDate: Date!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
privacyProxyRequestMetricsAdaptiveGroups(
filter: {
date_geq: $startDate
date_leq: $endDate
}
limit: 10000
orderBy: [date_ASC]
) {
count
dimensions {
date
tunnelType
}
}
}
}
}{
"accountTag": "<YOUR_ACCOUNT_TAG>",
"startDate": "2026-04-04",
"endDate": "2026-04-06"
}uzel privacyProxyIngressConnMetricsAdaptiveGroups
Přehled objemu připojení a příchozích bajtů
Získejte celkový přehled o denním počtu příchozích připojení a objemu přenesených dat.
query IngressTrafficOverview(
$accountTag: String!
$startDate: Date!
$endDate: Date!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
privacyProxyIngressConnMetricsAdaptiveGroups(
filter: {
date_geq: $startDate
date_leq: $endDate
}
limit: 10000
orderBy: [date_ASC]
) {
count
sum {
bytesSentToClient
bytesRecvdFromClient
}
dimensions {
date
}
}
}
}
}{
"accountTag": "<YOUR_ACCOUNT_TAG>",
"startDate": "2026-04-04",
"endDate": "2026-04-06"
}Doba trvání připojení podle datového centra
Porovnejte dobu trvání připojení klient-proxy napříč datovými centry a zjistěte regiony s dlouho trvajícími nebo zaseknutými připojeními.
query IngressDurationByColo(
$accountTag: String!
$startDate: Date!
$endDate: Date!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
privacyProxyIngressConnMetricsAdaptiveGroups(
filter: {
date_geq: $startDate
date_leq: $endDate
}
limit: 10000
orderBy: [quantiles_durationMsP50_DESC]
) {
quantiles {
durationMsP50
durationMsP95
durationMsP99
}
dimensions {
coloCode
}
}
}
}
}{
"accountTag": "<YOUR_ACCOUNT_TAG>",
"startDate": "2026-04-04",
"endDate": "2026-04-06"
}Rozložení protokolů a verzí TLS
Pochopení toho, které transportní protokoly (QUIC oproti TCP) a verze TLS vaši klienti používají, vám pomůže naplánovat ukončení podpory, odhalit špatně nakonfigurované klienty a ověřit, že provoz splňuje vaše bezpečnostní požadavky.
query IngressProtocolDistribution(
$accountTag: String!
$start: Time!
$end: Time!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
privacyProxyIngressConnMetricsAdaptiveGroups(
filter: {
datetimeFifteenMinutes_geq: $start
datetimeFifteenMinutes_leq: $end
}
limit: 10000
orderBy: [datetimeFifteenMinutes_ASC]
) {
count
dimensions {
datetimeFifteenMinutes
transport
tlsVersion
}
}
}
}
}{
"accountTag": "<YOUR_ACCOUNT_TAG>",
"start": "2026-04-04T00:00:00Z",
"end": "2026-04-06T23:59:59Z"
}uzel privacyProxyEgressConnMetricsAdaptiveGroups
Přehled odchozích bajtů
Získejte celkový přehled o denním objemu dat přenášených mezi proxy a upstream origin serverem.
query EgressBytesOverview(
$accountTag: String!
$startDate: Date!
$endDate: Date!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
privacyProxyEgressConnMetricsAdaptiveGroups(
filter: {
date_geq: $startDate
date_leq: $endDate
}
limit: 10000
orderBy: [date_ASC]
) {
count
sum {
bytesSentToOrigin
bytesRecvdFromOrigin
}
dimensions {
date
}
}
}
}
}{
"accountTag": "<YOUR_ACCOUNT_TAG>",
"startDate": "2026-04-04",
"endDate": "2026-04-06"
}Latence mezi proxy a origin serverem podle datacentra
Porovnejte doby handshake mezi proxy a origin serverem napříč datovými centry a zjistěte regiony se sníženou dostupností originu.
query EgressLatencyByColo(
$accountTag: String!
$startDate: Date!
$endDate: Date!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
privacyProxyEgressConnMetricsAdaptiveGroups(
filter: {
date_geq: $startDate
date_leq: $endDate
}
limit: 10000
orderBy: [quantiles_handshakeDurationUsP50_DESC]
) {
quantiles {
handshakeDurationUsP50
handshakeDurationUsP95
handshakeDurationUsP99
}
dimensions {
coloCode
}
}
}
}
}{
"accountTag": "<YOUR_ACCOUNT_TAG>",
"startDate": "2026-04-04",
"endDate": "2026-04-06"
}Trend výkonu odchozího provozu
Sledujte latenci handshake mezi proxy a originem s vysokou granularitou v konkrétním časovém okně.
query EgressPerformanceTrend(
$accountTag: String!
$start: Time!
$end: Time!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
privacyProxyEgressConnMetricsAdaptiveGroups(
filter: {
datetimeFiveMinutes_geq: $start
datetimeFiveMinutes_leq: $end
}
limit: 10000
orderBy: [datetimeFiveMinutes_ASC]
) {
quantiles {
handshakeDurationUsP50
handshakeDurationUsP95
handshakeDurationUsP99
}
count
dimensions {
datetimeFiveMinutes
}
}
}
}
}{
"accountTag": "<YOUR_ACCOUNT_TAG>",
"start": "2026-04-04T08:00:00Z",
"end": "2026-04-06T14:00:00Z"
}uzel privacyProxyAuthMetricsAdaptiveGroups
Objem autentizací podle metody
Sledujte denní objem autentizací podle metody, abyste pochopili míru využívání a odhalili anomálie.
query AuthVolumeByMethod(
$accountTag: String!
$startDate: Date!
$endDate: Date!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
privacyProxyAuthMetricsAdaptiveGroups(
filter: {
date_geq: $startDate
date_leq: $endDate
}
limit: 10000
orderBy: [date_ASC]
) {
count
dimensions {
date
authMethod
}
}
}
}
}{
"accountTag": "<YOUR_ACCOUNT_TAG>",
"startDate": "2026-04-04",
"endDate": "2026-04-06"
}Detekce nárůstu chyb autentizace
Odhalte nárůsty chyb autentizace a zjistěte, která metoda autentizace selhává.
query AuthFailureSpike(
$accountTag: String!
$start: Time!
$end: Time!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
privacyProxyAuthMetricsAdaptiveGroups(
filter: {
datetimeMinute_geq: $start
datetimeMinute_leq: $end
authResult: "failure"
}
limit: 10000
orderBy: [datetimeFiveMinutes_ASC]
) {
count
dimensions {
datetimeFiveMinutes
authMethod
}
}
}
}
}{
"accountTag": "<YOUR_ACCOUNT_TAG>",
"start": "2026-04-04T10:00:00Z",
"end": "2026-04-06T14:00:00Z"
}Úspěšnost autentizace
Porovnejte hodinové počty úspěchů a neúspěchů, abyste vypočítali úspěšnost autentizace a odhalili trendy zhoršování.
query AuthSuccessRate(
$accountTag: String!
$start: Time!
$end: Time!
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
privacyProxyAuthMetricsAdaptiveGroups(
filter: {
datetimeHour_geq: $start
datetimeHour_leq: $end
}
limit: 10000
orderBy: [datetimeHour_ASC]
) {
count
dimensions {
datetimeHour
authResult
}
}
}
}
}{
"accountTag": "<YOUR_ACCOUNT_TAG>",
"start": "2026-04-04T00:00:00Z",
"end": "2026-04-06T23:59:59Z"
}Související zdroje
- GraphQL Analytics API: začínáme
- GraphQL Analytics API: filtrování
- Referenční přehled stavů proxy : všechny možné
proxyStatushodnoty a jejich význam.