7. GraphOS 指标和客户端感知
3m

概述

为我们提供了可观测性工具来监视的运行状况和性能。这些工具有助于了解我们的超级图的使用方式,这有助于我们继续对其进行改进。

在本课中,我们将

  • 通过指标来探索见解
  • 了解如何设置客户端感知以指示哪个是由哪个客户端发送的

向超级图发送(模拟)流量

我们仍处于教程阶段,因此任何真实流量并未传输到我们的 。除非你先前已经继续并与其他人共享了你的 API,否则加油!

让我们继续进行,在此处获取一些数字,以便我们了解如果 拥有更多流量时的情况。

以下代码沙箱包含一个脚本,该脚本获取一个 URL,并在一段时间内向该 URL 发送请求。我们将使用该脚本向我们的超图发送虚假流量。

继续并输入你的 URL(你可以在 的 README 页面顶部找到该 URL)。然后,按按钮以触发脚本!

注意:目前我们的 Poetic Plates API 没有任何针对恶意查询或拒绝服务 (DoS) 攻击的保护。在未来的课程中,我们将介绍更多为 提供安全性的技术。在此期间,你可以 查看阿波罗技术说明,了解关于该主题的更多信息,以便了解更多关于速率限制、设置超时、分页等信息。

我们现在可以深入讨论我们的 指标!

操作指标

回到我们的 指标所在的 Studio 中。首先,我们查看 见解页面。

https://studio.apollographql.com

Insights page in Studio, showing Operations tab

操作选项卡提供 请求速率、服务时间和错误百分比的概述,包括具体的操作,可能值得深入探讨。

我们建议客户清楚地命名发送到 的每个 ,以便我们轻松地在指标中查看它们。

我们还可以筛选以选择特定的 ,以查看有关其用法的更具体详细信息,以及它的签名,也就是 的结构形式。我们可以看到已提出的请求数量以及每个请求历时多长时间。

https://studio.apollographql.com

Operations page filter for a specific operation in Studio

https://studio.apollographql.com

Operation signature

字段指标

接下来,我们查看 指标。切换到 字段选项卡。

在每个 旁边,我们看到 请求操作的总数,即在给定期间包含了特定 的所有 数。

https://studio.apollographql.com

Fields page in Studio

注意:还有另一种类型的指标,称为字段执行。要查看此指标,您需要向发送

再次,我们可以深入了解。单击某个以导航至详细视图。

https://studio.apollographql.com

Fields page details for a specific field in Studio

我们可以同时使用指标来监控我们的类型和字段的运行状况和使用情况,并根据它们的性能和客户端使用它们的方式确定可以从哪里开始改进。

客户端感知

客户端感知的另一项强大功能。在客户端页面上,我们可以查看每个客户端如何使用我们的,例如它们请求最多的,它们遇到的任何问题以及它们正在使用的。访问客户端特定指标非常酷,因为它可以让我们随时了解何时弃用或优化某些字段。

https://studio.apollographql.com

Clients page in Studio

对于指标,当您深入研究某个特定操作或字段时,您还可以看到客户端使用信息。

要启用客户端感知,客户端应在其请求中发送两个特定的 HTTP 标头:apollographql-client-nameapollographql-client-version

注意:客户端版本指标仅在 企业计划中可用。

我们建议鼓励所有下游客户端在每次请求中都包含这些特定于客户端的标头。此信息将显示在 中,以便我们可以准确了解请求的来源。

注意:如果您正在使用 ,您可以在实例化 ApolloClient 类时添加 nameversion 属性。您可以 阅读 Apollo 文档获取代码片段示例

练习

下列哪些标头可以包含在每次请求中以设置 GraphOS 客户端感知?
GraphOS 提供以下哪些操作指标?

要点

  • 指标概述了特定时间段内或特定操作中的操作请求速度、服务时间和错误百分比。
  • 指标包括请求 指标,其中列出了指定时间段中包含特定字段的操作数量。
  • 要在 中设置客户端感知指标, apollographql-client-nameapollographql-client-version 应包含这些标题之一。

下一步

现在,我们配备了有用的可观察性工具,可以随着越来越多的客户端开始使用,让我们得以了解我们的 。说到客户端,让我们利用 中的一个很酷的功能来改善客户端 体验。

上一步

分享你对这一课程的问题和评论

你的反馈有助于我们改进!如果你陷入困境或感到困惑,请告诉我们,我们会帮助你。所有评论都是公开的,并且必须遵循 Apollo 行为准则。请注意,已解决或已解决的评论可能会被删除。

你需要一个 GitHub 帐户才可以在下面发帖。没有吗? 改在我们的 Odyssey 论坛中发帖。