c.Apps.Network funziona solo con le app web. Ogni metodo accetta prima ctx e l’id dell’app.
Ogni snippet qui sotto funziona da solo all’interno di questo programma: incollane uno alla volta in main ed esegui goimports (vedi Eseguire gli esempi).
Finestre temporali
Analytics, Errors, Logs e Performance accettano uno start e un end, ciascuno un time.Time (inviato in RFC 3339 in UTC). Il programma qui sopra li imposta sulle ultime 24 ore. Una finestra è al massimo di 7 giorni, e start viene limitato alla data di creazione dell’app. Una finestra non valida produce 400 INVALID_TIME_RANGE.
I risultati vengono messi in cache in intervalli di 5 minuti. I cache miss di questi quattro metodi condividono un limite di 20 richieste ogni 60 secondi per account: superarlo produce 429 RATE_LIMITED.
Analytics
Network.Analytics(ctx, appID, start, end, filters) restituisce i totali del traffico e le relative suddivisioni come *NetworkAnalytics. Restituisce nil (e un errore nil) per una finestra senza traffico. Passa un squarecloud.AnalyticsFilters{} vuoto per non applicare filtri.
Countries, Devices, OS, Browsers, Protocols, Methods, Paths, Referers, Providers, IPs, StatusCodes, Bots e ContentTypes (in JSON countries, …, status_codes, bots, content_types). Ogni gruppo ha Type, Visits, Requests e Bytes (int64).
Filtri
I filtri restringono ogni suddivisione. Ciascuno accetta il valore esatto diType della sua suddivisione. Un campo vuoto non viene inviato:
Un filtro non valido produce 400
INVALID_FILTER.
Errori
Network.Errors(ctx, appID, start, end, include4xx) restituisce le risposte 5xx della finestra, più le 4xx quando include4xx è true. Restituisce nil per una finestra vuota.
Log delle richieste
Network.Logs(ctx, appID, start, end) restituisce le singole richieste con i dettagli del client, della richiesta e della risposta. Disponibile nei piani Pro ed Enterprise (altrimenti 403 UPGRADE_REQUIRED).
null sono puntatori (Client.IP, Client.Country, Request.Query, Request.Referer, Response.Cache, …).
Prestazioni
Network.Performance(ctx, appID, start, end) restituisce i percentili di latenza (P50, P95, P99, in ms) all’edge e all’origine, per paese, per località e per i percorsi più lenti. Restituisce nil per una finestra vuota. Disponibile nei piani Pro ed Enterprise.
Ogni percentile è un *float64, nil quando non c’erano richieste da misurare:
DNS
Network.DNS(ctx, appID) restituisce i record DNS di cui ha bisogno il tuo dominio personalizzato, con il loro stato. Senza un dominio personalizzato produce 400 NO_CUSTOM_DOMAIN.
Dominio personalizzato
Network.SetDomain(ctx, appID, domain) associa un dominio personalizzato (piano Standard o superiore). Passa "@" per rimuoverlo.
Svuotare la cache
Network.PurgeCache(ctx, appID) svuota la cache dell’edge dell’app. È limitato a uno svuotamento ogni 60 secondi (429 KEEP_CALM).
Errori dei metodi di analytics
Prossimi passi
Realtime
Log e stato in tempo reale, in streaming.
Riferimento API di rete
Gli endpoint REST dietro questi metodi.
Analytics edge dalla CLI
Le stesse azioni dal terminale.

