c.Apps.Network funciona apenas com aplicações web. Todo método recebe o ctx e o id da aplicação primeiro.
Cada trecho abaixo roda sozinho dentro deste programa: cole um de cada vez em main e execute o goimports (veja Executando os exemplos).
Janelas de tempo
Analytics, Errors, Logs e Performance recebem um start e um end, cada um um time.Time (enviado como RFC 3339 em UTC). O programa acima define os dois como as últimas 24 horas. Uma janela tem no máximo 7 dias, e start é limitado à data de criação da aplicação. Uma janela inválida resulta em 400 INVALID_TIME_RANGE.
Os resultados ficam em cache em intervalos de 5 minutos. Os cache misses desses quatro métodos compartilham um limite de 20 requisições a cada 60 segundos por conta: ultrapassá-lo resulta em 429 RATE_LIMITED.
Analytics
Network.Analytics(ctx, appID, start, end, filters) retorna os totais de tráfego e seus detalhamentos como um *NetworkAnalytics. Retorna nil (e um erro nil) para uma janela sem tráfego. Passe um squarecloud.AnalyticsFilters{} vazio para não usar filtros.
Countries, Devices, OS, Browsers, Protocols, Methods, Paths, Referers, Providers, IPs, StatusCodes, Bots e ContentTypes (JSON countries, …, status_codes, bots, content_types). Cada grupo tem Type, Visits, Requests e Bytes (int64).
Filtros
Os filtros restringem todos os detalhamentos. Cada um recebe o valor exato deType do seu detalhamento. Um campo vazio não é enviado:
Um filtro inválido resulta em 400
INVALID_FILTER.
Erros
Network.Errors(ctx, appID, start, end, include4xx) retorna as respostas 5xx da janela, além das 4xx quando include4xx é true. Retorna nil para uma janela vazia.
Logs de requisições
Network.Logs(ctx, appID, start, end) retorna requisições individuais com detalhes do cliente, da requisição e da resposta. Disponível nos planos Pro e Enterprise (caso contrário, 403 UPGRADE_REQUIRED).
null são ponteiros (Client.IP, Client.Country, Request.Query, Request.Referer, Response.Cache, …).
Desempenho
Network.Performance(ctx, appID, start, end) retorna percentis de latência (P50, P95, P99, em ms) na borda e na origem, por país, por localização e para os caminhos mais lentos. Retorna nil para uma janela vazia. Disponível nos planos Pro e Enterprise.
Cada percentil é um *float64, nil quando não houve requisições para medir:
DNS
Network.DNS(ctx, appID) retorna os registros DNS de que seu domínio personalizado precisa, com seus status. Sem um domínio personalizado, resulta em 400 NO_CUSTOM_DOMAIN.
Domínio personalizado
Network.SetDomain(ctx, appID, domain) associa um domínio personalizado (plano Standard ou superior). Passe "@" para removê-lo.
Limpando o cache
Network.PurgeCache(ctx, appID) limpa o cache de borda da aplicação. É limitado a uma limpeza a cada 60 segundos (429 KEEP_CALM).
Erros dos métodos de analytics
Próximos passos
Tempo real
Acompanhe logs e status ao vivo.
Referência da API de rede
Os endpoints REST por trás destes métodos.
Analytics de borda pela CLI
As mesmas ações pelo terminal.

