Skip to main content
c.Apps.Network 仅适用于 Web 应用。每个方法都以 ctx 和应用 ID 作为前两个参数。 下面的每个代码片段都可以在这个程序中单独运行:每次将一个片段粘贴到 main 中,然后运行 goimports(参见运行示例)。

时间窗口

Analytics、Errors、Logs 和 Performance 接受 start 和 end,每个都是 time.Time(以 UTC 的 RFC 3339 格式发送)。上面的程序将它们设为最近 24 小时。一个窗口最长 7 天,且 start 会被限制为不早于应用的创建日期。无效的窗口会返回 400 INVALID_TIME_RANGE。 结果以 5 分钟为单位进行缓存。这四个方法的缓存未命中共享每个账户每 60 秒 20 次请求的限制:超出后返回 429 RATE_LIMITED。

分析

Network.Analytics(ctx, appID, start, end, filters) 以 *NetworkAnalytics 返回流量总计和细分数据。对于没有流量的窗口,它返回 nil(错误也为 nil)。不需要过滤器时,传入空的 squarecloud.AnalyticsFilters{}。
细分维度包括 Countries、Devices、OS、Browsers、Protocols、Methods、Paths、Referers、Providers、IPs、StatusCodes、Bots 和 ContentTypes(JSON 中为 countries、……、status_codes、bots、content_types)。每个分组都有 Type、Visits、Requests 和 Bytes(int64)。

过滤器

过滤器会缩小每个细分维度的范围。每个过滤器接受其对应细分维度中确切的 Type 值。空字段不会被发送:
无效的过滤器会返回 400 INVALID_FILTER。

错误

Network.Errors(ctx, appID, start, end, include4xx) 返回该窗口内的 5xx 响应,当 include4xx 为 true 时还包括 4xx。对于空窗口返回 nil。

请求日志

Network.Logs(ctx, appID, start, end) 返回单个请求,包含客户端、请求和响应的详细信息。适用于 Pro 和 Enterprise 套餐(否则返回 403 UPGRADE_REQUIRED)。
API 可能以 null 发送的字段是指针(Client.IP、Client.Country、Request.Query、Request.Referer、Response.Cache……)。

性能

Network.Performance(ctx, appID, start, end) 返回边缘和源站的延迟百分位数(P50、P95、P99,单位为毫秒),按国家、按位置以及最慢的路径分别统计。对于空窗口返回 nil。适用于 Pro 和 Enterprise 套餐。 每个百分位数都是 *float64,没有可测量的请求时为 nil:

DNS

Network.DNS(ctx, appID) 返回你的自定义域名所需的 DNS 记录及其状态。没有自定义域名时返回 400 NO_CUSTOM_DOMAIN。

自定义域名

Network.SetDomain(ctx, appID, domain) 绑定一个自定义域名(Standard 及以上套餐)。传入 "@" 即可移除。

清除缓存

Network.PurgeCache(ctx, appID) 清除应用的边缘缓存。每 60 秒最多清除一次(429 KEEP_CALM)。

分析方法的错误

后续步骤

实时

实时流式获取日志和状态。

网络 API 参考

这些方法背后的 REST 端点。

用 CLI 查看边缘分析

在终端中完成同样的操作。