c.Apps.Network funciona solo con aplicaciones web. Todos los métodos reciben primero ctx y el id de la aplicación.
Cada fragmento de abajo se ejecuta por sí solo dentro de este programa: pega uno a la vez en main y ejecuta goimports (consulta Ejecutar los ejemplos).
Ventanas de tiempo
Analytics, Errors, Logs y Performance reciben un start y un end, cada uno un time.Time (enviado como RFC 3339 en UTC). El programa de arriba los define como las últimas 24 horas. Una ventana abarca como máximo 7 días, y start se ajusta a la fecha de creación de la aplicación. Una ventana no válida da 400 INVALID_TIME_RANGE.
Los resultados se almacenan en caché en intervalos de 5 minutos. Los fallos de caché de estos cuatro métodos comparten un límite de 20 peticiones cada 60 segundos por cuenta: superarlo da 429 RATE_LIMITED.
Analíticas
Network.Analytics(ctx, appID, start, end, filters) devuelve los totales de tráfico y sus desgloses como un *NetworkAnalytics. Devuelve nil (y un error nil) para una ventana sin tráfico. Pasa un squarecloud.AnalyticsFilters{} vacío para no aplicar filtros.
Countries, Devices, OS, Browsers, Protocols, Methods, Paths, Referers, Providers, IPs, StatusCodes, Bots y ContentTypes (en JSON countries, …, status_codes, bots, content_types). Cada grupo tiene Type, Visits, Requests y Bytes (int64).
Filtros
Los filtros acotan todos los desgloses. Cada uno recibe el valor exacto deType de su desglose. Un campo vacío no se envía:
Un filtro no válido da 400
INVALID_FILTER.
Errores
Network.Errors(ctx, appID, start, end, include4xx) devuelve las respuestas 5xx de la ventana, más las 4xx cuando include4xx es true. Devuelve nil para una ventana vacía.
Logs de peticiones
Network.Logs(ctx, appID, start, end) devuelve peticiones individuales con detalles del cliente, la petición y la respuesta. Disponible en los planes Pro y Enterprise (en caso contrario, 403 UPGRADE_REQUIRED).
null son punteros (Client.IP, Client.Country, Request.Query, Request.Referer, Response.Cache, …).
Rendimiento
Network.Performance(ctx, appID, start, end) devuelve percentiles de latencia (P50, P95, P99, en ms) en el edge y en el origen, por país, por ubicación y para las rutas más lentas. Devuelve nil para una ventana vacía. Disponible en los planes Pro y Enterprise.
Cada percentil es un *float64, nil cuando no hubo peticiones que medir:
DNS
Network.DNS(ctx, appID) devuelve los registros DNS que necesita tu dominio personalizado, con su estado. Sin un dominio personalizado da 400 NO_CUSTOM_DOMAIN.
Dominio personalizado
Network.SetDomain(ctx, appID, domain) asocia un dominio personalizado (plan Standard o superior). Pasa "@" para eliminarlo.
Purgar la caché
Network.PurgeCache(ctx, appID) borra la caché del edge de la aplicación. Está limitado a una purga cada 60 segundos (429 KEEP_CALM).
Errores de los métodos de analíticas
Próximos pasos
Tiempo real
Transmite logs y estado en vivo.
Referencia de la API de red
Los endpoints REST detrás de estos métodos.
Analíticas de edge desde la CLI
Las mismas acciones desde la terminal.

