← Analytics / analytics / analytics-integrations
Prometheus
Tento návod vysvětluje, jak exportovat metriky Cloudflare do Prometheus ↗ pomocí Cloudflare Prometheus Exporter ↗, open-source nástroj postavený na Cloudflare Workers s Durable Objects.
Přehled
Než nastavíte Cloudflare Prometheus Exporter, vezměte na vědomí, že tato integrace:
- Je k dispozici pro všechny plány zákazníků Cloudflare (Free, Pro, Business a Enterprise). Zóny s plánem Free mají omezenou dostupnost metrik.
- Je založeno na Cloudflare GraphQL Analytics API a REST API.
- Exportuje více než 90 metrik Prometheus zahrnujících požadavky, šířku pásma, hrozby, Workers, load balancery, SSL certifikáty, události firewallu, kontroly stavu, Magic Transit, Stream a další.
- Běží jako Cloudflare Worker s Durable Objects pro stavovou akumulaci počítadel a aktualizaci na pozadí.
- Podporuje konfigurace s více účty a automaticky zjišťuje všechny dostupné účty a zóny.
Předpoklady
Než exportér nasadíte, ujistěte se, že:
- Mít účet Cloudflare.
- Máte Token Cloudflare API s požadovanými oprávněními (viz Vytvořte token API níže).
- Mít k dispozici instanci Prometheus, která bude exportér scrapovat.
Úkol 1 - Nasazení exportéru
Exportér můžete nasadit buď jedním kliknutím, nebo manuálně.
Nasazení jedním kliknutím
Kliknutím na tlačítko níže nasadíte exportér do svého účtu Cloudflare Workers:
Po nasazení nakonfigurujte CLOUDFLARE_API_TOKEN jako tajný klíč (secret). Volitelně nastavte BASIC_AUTH_USER a BASIC_AUTH_PASSWORD k zabezpečení exportéru pomocí HTTP Basic Auth.
Ruční nasazení
git clone https://github.com/cloudflare/cloudflare-prometheus-exporter.git
cd cloudflare-prometheus-exporter
bun install
wrangler secret put CLOUDFLARE_API_TOKEN
bun run deployÚkol 2 - Vytvoření API tokenu
Vytvořte token Cloudflare API s následujícími oprávněními:
Vytvoření tokenu s předvyplněnými oprávněními ↗
| Oprávnění | Access | Povinné |
|---|---|---|
| Zone > Analytics | Čtení | Ano |
| Account > Account Analytics | Čtení | Ano |
| Account > Workers Scripts | Čtení | Ano |
| Zone > SSL and Certificates | Čtení | Volitelné |
| Zone > Firewall Services | Čtení | Volitelné |
| Zone > Load Balancers | Čtení | Volitelné |
| Account > Logs | Čtení | Volitelné |
| Account > Magic Transit | Čtení | Volitelné |
Úkol 3 - Konfigurace Prometheus
Přidejte exportér jako scrape target do konfigurace Prometheus:
scrape_configs:
- job_name: 'cloudflare'
scrape_interval: 60s
scrape_timeout: 30s
static_configs:
- targets: ['your-worker.your-subdomain.workers.dev']S Basic Auth
Pokud jste na exportéru nakonfigurovali Basic Auth, upravte konfiguraci Prometheus:
scrape_configs:
- job_name: 'cloudflare'
scrape_interval: 60s
scrape_timeout: 30s
basic_auth:
username: 'your-username'
password: 'your-password'
static_configs:
- targets: ['your-worker.your-subdomain.workers.dev']Konfigurace
Konfigurace se řeší v tomto pořadí: Přepsání KV > proměnné prostředí > výchozí hodnoty. Pro dynamické změny bez nutnosti opětovného nasazení můžete použít runtime config API.
Nastavte proměnné prostředí v wrangler.jsonc nebo přes wrangler secret put:
| Proměnná | Výchozí | Popis |
|---|---|---|
CLOUDFLARE_API_TOKEN |
- | Cloudflare API token (tajný) |
SCRAPE_DELAY_SECONDS |
300 |
Zpoždění před načtením metrik (šíření dat) |
TIME_WINDOW_SECONDS |
60 |
Časové okno dotazu |
METRIC_REFRESH_INTERVAL_SECONDS |
60 |
Interval aktualizace na pozadí |
CF_ACCOUNTS |
- | ID účtů oddělená čárkami, která se mají zahrnout (výchozí: all) |
CF_ZONES |
- | ID zón oddělená čárkami, která se mají zahrnout (výchozí: all) |
METRICS_DENYLIST |
- | Seznam metrik k vyloučení, oddělený čárkami |
EXCLUDE_HOST |
false |
Vyloučit štítky hostitele z metrik |
METRICS_PATH |
/metrics |
Vlastní cesta pro koncový bod metrik |
BASIC_AUTH_USER |
- | Uživatelské jméno pro Basic Auth (tajné) |
BASIC_AUTH_PASSWORD |
- | Heslo pro Basic Auth (tajné) |
Úplný seznam možností konfigurace najdete v README exportéru ↗.
Endpointy
| Cesta | Metoda | Popis |
|---|---|---|
/ |
GET | Vstupní stránka |
/metrics |
GET | Metriky Prometheus |
/health |
GET | Kontrola stavu |
/config |
GET | Získat celou konfiguraci runtime |
/config/:key |
PUT | Nastavte přepis konfigurace (uložený v KV) |
/config/:key |
DELETE | Obnovení klíče konfigurace na výchozí hodnotu |
Dostupné metriky
Exportér poskytuje více než 90 metrik v následujících kategoriích:
- Požadavky zóny - celkový počet požadavků, počet požadavků z cache, požadavky podle stavového kódu, země, typu obsahu, verze HTTP a dalších parametrů.
- Šířka pásma zóny - celková šířka pásma, šířka pásma z cache, šířka pásma podle typu obsahu a země.
- Hrozby zóny - Počty hrozeb podle země a typu.
- Firewall - Události firewallu podle akce, zdroje a pravidla. Metriky detekce botů.
- Workers - Počty požadavků, počty chyb, čas CPU a doba trvání podle skriptu.
- Load balancery - Stav poolů, počty požadavků, RTT, zásady směrování a váhy originů.
- Kontroly stavu - Události kontrol stavu, RTT, TTFB, doba TCP spojení a doba TLS handshake.
- SSL certifikáty - Stav ověření certifikátu podle typu a vydavatele.
- Cache - Poměr zásahů v cache a doba odezvy origin serveru při zásahu mimo cache.
- Chybovost - počty chyb 4xx/5xx, míra chyb na edge a origin serveru, doba odezvy origin serveru.
- Logpush - Počty neúspěšných úloh na úrovni účtu a zóny.
- Magic Transit - stav tunelu, stav SLO a provoz podle jednotlivých tunelů (v bitech a paketech).
- Magic Firewall - Vzorkovaný provoz podle jednotlivých pravidel (v bitech a paketech).
- Network Analytics - objem provozu napříč Magic Transit, DDoS defense, IDPS, TCP protection a DNS protection.
- Stream - počty přehrání videa, doba sledování a metriky živých vstupů.
- Metriky podle hostitele - Počty požadavků, průměry latence a percentily u jednotlivých hostname (vyžaduje
HOST_METRICS_ALLOWLIST).
Úplný seznam metrik s typy a popisky najdete v README exportéru ↗.
Omezení zón v tarifu Free
Zóny na plánu Cloudflare Free nemají přístup k rozhraní GraphQL Analytics API. Exportér automaticky rozpozná zóny na bezplatné úrovni a u metrik, které toto rozhraní vyžadují, je přeskočí.
Zóny v tarifu Free přesto exportují:
cloudflare_zone_certificate_validation_status(certifikáty SSL)cloudflare_zone_lb_origin_weight(váhy load balanceru, pokud jsou nakonfigurované)
Vynechané zóny můžete sledovat pomocí cloudflare_zones_skipped_free_tier metriku.