Skip to main content
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.
Os detalhamentos são 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 de Type 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).
Os campos que a API pode enviar como 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.