ai newsSa., 24. Okt.
EilmeldungKI-Investitionsboom: Kalender fuer KI-Gesetz veroeffentlicht

Polylane startet als KI-Assistent fuer Cloudflare-Ausfaelle

Die Plattform Polylane ist auf Product Hunt gestartet und will SRE- und Security-Teams bei Cloudflare-Edge-Fehlern in Produktion unterstuetzen. Ein LLM liefert dabei sofort einsatzbereite Unterstuetzung fuer die On-Call-Arbeit.

dev.toSamstag 00:55 · 24.10.DE4 Min. Lesezeit
Bild: dev.to

Wenn ein Cloudflare-Edge-Ausfall die Produktion trifft, zählt jede Sekunde. Polylane, die neue AI-on-call-Plattform, die gerade auf Product Hunt gestartet ist, bietet SRE- und Security-Ops-Teams eine sofort einsatzbereite, LLM-gesteuerte Reaktions-Engine, die Vorfälle diagnostiziert, triagiert und sogar behebt, ohne dass eine manuelle Weitergabe an Menschen nötig ist. In diesem Leitfaden erhalten Sie alles, was Sie brauchen, um Polylane für Cloudflare einzurichten: Architekturdiagramme, sofort lauffähigen Code, die Anbindung an Slack und PagerDuty, Security-Härtung, Monitoring sowie eine Kostenübersicht.

Der Cloudflare-Ausfall im September 2024 zeigte, wie anfällig klassische Bereitschaftsrotationen sind: Ermüdung, verzögerte Übergaben und alerts mit hohem Rauschen. Polylanes LLM-Engine analysiert Cloudflare-Logs, korreliert Telemetriedaten von Drittanbietern und liefert in weniger als fünf Sekunden konkrete Behebungsschritte, wodurch MTTA und MTTR drastisch sinken.

+----------------+ +----------------+ +-------------------+ | Cloudflare | ---> | Polylane Ingest| ---> | LLM (GPT‑4o/Claude‑3) | | Webhooks/API | | Service | | (system prompt with CF schema) | +----------------+ +----------------+ +----------+--------+ | v +-------------------+ | Decision Engine | | → JSON response | +--------+----------+ | +-------------------+ +----------v----------+ +-------------------+ | Slack / PagerDuty | | Remediation Workers| | Observability (Prom) | +-------------------+ +--------------------+ +-------------------+ Enter fullscreen mode Exit fullscreen mode Der Ingest Service validiert Signaturen, normalisiert Payloads und leitet sie an das LLM weiter. Die Decision Engine erzwingt ein JSON-Schema ( severity, recommendation, actions ). Worker führen sichere API-Aufrufe an Cloudflare aus (zum Beispiel Cache-Purge oder Aktualisierung von Firewall-Regeln).

Das Observability-Modul exportiert Metriken an Prometheus und Alerts an Alertmanager. Schritt-für-Schritt-Bereitstellung API-Zugangsdaten erstellen Cloudflare API Token – Scope: Zone.Zone, Zone.Cache Purge, Zone.Settings. curl -X POST "https://api.cloudflare.com/client/v4/user/tokens" \ -H "Content-Type: application/json" \ -d '{ "name":"Polylane‑Token", "policies":[{ "effect":"allow", "resources":{"com.cloudflare.api.account.zone.*": "*"}, "permission_groups":["zone.read","zone.settings.read","zone.settings.edit","cache_purge"] }] }' Enter fullscreen mode Exit fullscreen mode Polylane Service Account – erzeugen Sie ein JWT-Secret im Polylane-Dashboard und kopieren Sie den Token. Hinterlegen Sie beide Secrets in den Einstellungen Ihres GitHub-Repositories unter Settings → Secrets als CF_API_TOKEN und POLYLANE_JWT.

// playbook.js import fetch from ' node-fetch '; export async function handleEvent ( event ) { const { type, details } = event; if ( type!== ' dns_error ' ) return { severity: ' low ' }; // Call Cloudflare API to purge the problematic DNS record cache const resp = await fetch ( `https://api.cloudflare.com/client/v4/zones/ ${ process. env. CF_ZONE_ID } /dns_records/ ${ details. record_id } `, { method: ' PATCH ', headers: { ' Authorization ': `Bearer ${ process. env. CF_API_TOKEN } `, ' Content-Type ': ' application/json ' }, body: JSON. stringify ({ ttl: 300 }) }); const data = await resp. json (); return { severity: ' high ', recommendation: ' Reduced TTL to 5 min ', actions: [{ type: ' api_call ', result: data. success }] }; } Enter fullscreen mode Exit fullscreen mode Python # playbook.py import os, requests def handle_event ( event ): if event [ " type " ]!= " waf_block ": return { " severity ": " low " } zone = os. getenv ( " CF_ZONE_ID " ) token = os. getenv ( " CF_API_TOKEN " ) rule_id = event [ " details " ][ " rule_id " ] url = f " https://api.cloudflare.com/client/v4/zones/ { zone } /firewall/rules/ { rule_id } " payload = { " mode ": " challenge " } # Downgrade von Block auf Challenge headers = { " Authorization ": f " Bearer { token } ", " Content-Type ": " application/json " } r = requests. patch ( url, json = payload, headers = headers ) return { " severity ": " critical ", " recommendation ": " Downgrade rule to challenge ", " actions ": [{ " type ": " api_call ", " success ": r. ok }] } Enter fullscreen mode Exit fullscreen mode Deployen Sie eine der beiden Dateien über die Benutzeroberfläche oder die CLI in Polylanes Playbook Store:

polyctl upload playbook.js --runtime nodejs18 polyctl upload playbook.py --runtime python3.11 Enter fullscreen mode Exit fullscreen mode Integration mit Slack und PagerDuty Slack – erstellen Sie eine Incoming-Webhook-URL in Ihrem Workspace. Fügen Sie sie als Secret SLACK_WEBHOOK hinzu. PagerDuty – generieren Sie einen Integrationschlüssel für die Events API v2 ( PD_INTEGRATION_KEY ). # integration.yaml slack: webhook_url: ${SLACK_WEBHOOK} pagerduty: integration_key: ${PD_INTEGRATION_KEY} Enter fullscreen mode Exit fullscreen mode Polylane sendet eine formatierte Nachricht, sobald der Schweregrad ≥ high ist, und löst automatisch einen PagerDuty-Vorfall aus.

Fügen Sie die folgenden Prometheus-Regeln zu Ihrer alertmanager.yml hinzu:

groups: - name: polylane rules: - alert: HighLLMLatency expr: avg_over_time(polylane_llm_latency_seconds[5m]) > 3 for: 2m labels: severity: warning annotations: summary: " LLM response time > 3 s" description: " Netzwerklatenz oder LLM-Throttling untersuchen." - alert: MTTRExceeded expr: polylane_mttr_seconds > 300 for: 1m labels: severity: critical annotations: summary: " Mean Time to Resolution > 5 min" description: " Effizienz der Playbooks und API-Zustand prüfen." Enter fullscreen mode Exit fullscreen mode Dashboard-Ausschnitte (Grafana):

Automatisch übersetzt. Das Original auf Englisch ist unten aufklappbar.

Original (Englisch) anzeigen

When a Cloudflare edge failure hits production, every second counts. Polylane, the new AI‑on‑call platform that just launched on Product Hunt, gives SREs and security ops teams an instant, LLM‑driven response engine that diagnoses, triages, and even remediates incidents without human hand‑off. In this guide you’ll get everything you need to spin up Polylane for Cloudflare—architecture diagrams, ready‑to‑run code, Slack/PagerDuty wiring, security hardening, monitoring, and a cost breakdown.

The September 2024 Cloudflare outage exposed how fragile traditional on‑call rotations are: fatigue, delayed hand‑offs, and noisy alerts. Polylane’s LLM engine parses Cloudflare logs, correlates third‑party telemetry, and spits out concrete remediation steps in under five seconds, slashing MTTA and MTTR dramatically.

+----------------+ +----------------+ +-------------------+ | Cloudflare | ---> | Polylane Ingest| ---> | LLM (GPT‑4o/Claude‑3) | | Webhooks/API | | Service | | (system prompt with CF schema) | +----------------+ +----------------+ +----------+--------+ | v +-------------------+ | Decision Engine | | → JSON response | +--------+----------+ | +-------------------+ +----------v----------+ +-------------------+ | Slack / PagerDuty | | Remediation Workers| | Observability (Prom) | +-------------------+ +--------------------+ +-------------------+ Enter fullscreen mode Exit fullscreen mode Ingest Service validates signatures, normalizes payloads, and forwards them to the LLM. Decision Engine enforces a JSON schema ( severity, recommendation, actions ). Workers execute safe API calls to Cloudflare (e.g., purge cache, update firewall rules).

Observability exports metrics to Prometheus and alerts to Alertmanager. Step‑by‑Step Deployment Create API Credentials Cloudflare API Token – scope: Zone.Zone, Zone.Cache Purge, Zone.Settings. curl -X POST "https://api.cloudflare.com/client/v4/user/tokens" \ -H "Content-Type: application/json" \ -d '{ "name":"Polylane‑Token", "policies":[{ "effect":"allow", "resources":{"com.cloudflare.api.account.zone.*": "*"}, "permission_groups":["zone.read","zone.settings.read","zone.settings.edit","cache_purge"] }] }' Enter fullscreen mode Exit fullscreen mode Polylane Service Account – generate a JWT secret in the Polylane dashboard and copy the token. Store both secrets in your GitHub repository’s Settings → Secrets as CF_API_TOKEN and POLYLANE_JWT.

// playbook.js import fetch from ' node-fetch '; export async function handleEvent ( event ) { const { type, details } = event; if ( type!== ' dns_error ' ) return { severity: ' low ' }; // Call Cloudflare API to purge the problematic DNS record cache const resp = await fetch ( `https://api.cloudflare.com/client/v4/zones/ ${ process. env. CF_ZONE_ID } /dns_records/ ${ details. record_id } `, { method: ' PATCH ', headers: { ' Authorization ': `Bearer ${ process. env. CF_API_TOKEN } `, ' Content-Type ': ' application/json ' }, body: JSON. stringify ({ ttl: 300 }) }); const data = await resp. json (); return { severity: ' high ', recommendation: ' Reduced TTL to 5 min ', actions: [{ type: ' api_call ', result: data. success }] }; } Enter fullscreen mode Exit fullscreen mode Python # playbook.py import os, requests def handle_event ( event ): if event [ " type " ]!= " waf_block ": return { " severity ": " low " } zone = os. getenv ( " CF_ZONE_ID " ) token = os. getenv ( " CF_API_TOKEN " ) rule_id = event [ " details " ][ " rule_id " ] url = f " https://api.cloudflare.com/client/v4/zones/ { zone } /firewall/rules/ { rule_id } " payload = { " mode ": " challenge " } # downgrade from block to challenge headers = { " Authorization ": f " Bearer { token } ", " Content-Type ": " application/json " } r = requests. patch ( url, json = payload, headers = headers ) return { " severity ": " critical ", " recommendation ": " Downgrade rule to challenge ", " actions ": [{ " type ": " api_call ", " success ": r. ok }] } Enter fullscreen mode Exit fullscreen mode Deploy either file to Polylane’s Playbook Store via the UI or CLI:

polyctl upload playbook.js --runtime nodejs18 polyctl upload playbook.py --runtime python3.11 Enter fullscreen mode Exit fullscreen mode Integrate with Slack & PagerDuty Slack – create an Incoming Webhook URL in your workspace. Add it as SLACK_WEBHOOK secret. PagerDuty – generate an Events API v2 integration key ( PD_INTEGRATION_KEY ). # integration.yaml slack: webhook_url: ${SLACK_WEBHOOK} pagerduty: integration_key: ${PD_INTEGRATION_KEY} Enter fullscreen mode Exit fullscreen mode Polylane will post a formatted message when severity ≥ high and automatically trigger a PagerDuty incident.

Add the following Prometheus rules to your alertmanager.yml:

groups: - name: polylane rules: - alert: HighLLMLatency expr: avg_over_time(polylane_llm_latency_seconds[5m]) > 3 for: 2m labels: severity: warning annotations: summary: " LLM response time > 3 s" description: " Investigate network latency or LLM throttling." - alert: MTTRExceeded expr: polylane_mttr_seconds > 300 for: 1m labels: severity: critical annotations: summary: " Mean Time to Resolution > 5 min" description: " Check playbook efficiency and API health." Enter fullscreen mode Exit fullscreen mode Dashboard snippets (Grafana):

Originaltitel: Polylane: AI‑On‑Call Assistant for Cloudflare Edge FailuresQuelle: dev.to (dev.to). Original öffnen