概述
到目前为止,我们已经有了soundtracks
子图 正在运行,并且它的模式已发布,但我们仍然需要一个部件将所有内容联系起来: 路由器。
在本课中,我们将
- 设置 GraphOS 路由器 在本地
- 连接我们的 路由器 到 GraphOS
- 发送我们的第一个 查询 到我们的 超级图
- 探索 超级图 洞察,通过 操作 和 字段 指标,由 GraphOS 提供
下载路由器
GraphOS 路由器 是一个高性能图路由器,作为可执行二进制文件提供,您可以通过几个步骤将其添加到您的项目中:
打开一个终端窗口,导航到 Router
目录。到目前为止,我们这里只有 .env 文件包含我们的环境变量和一个 router-config.yaml
文件,我们稍后会提到它。
📦 Router┣ 📄 router-config.yaml┗ 📄 .env
我们将通过在终端中运行安装命令来下载 路由器。
curl -sSL https://router.apollo.dev/download/nix/v1.37.0 | sh
注意:访问官方文档以探索 下载路由器的其他方法。
现在,当我们检查 路由器 目录的内容时,我们会发现我们有一个名为 router
的新二进制文件!
📦 Router┣ 📄 router-config.yaml┣ 📄 .env┗ 📄 router
路由器配置
让我们看一看 router-config.yaml
文件。此文件使我们能够自定义 路由器 的行为。
supergraph:listen: 127.0.0.1:5000include_subgraph_errors:all: truetelemetry:instrumentation:spans:mode: spec_compliant
目前,我们设置了两个选项: 路由器 应该运行的端口(在 supergraph.listen
属性下)以及包含所有 子图 错误。默认情况下, 路由器 会在响应中删除子图错误的详细信息,我们可能会看到类似于“子图错误被删除”的错误消息。在生产环境中,此属性通常设置为 false,但如果您在按照本教程操作时遇到任何问题,它将很有帮助。
最后,我们有一些遥测配置,它减少了我们在终端输出中看到的错误类型。
注意:要了解有关配置 GraphOS 路由器 可用的其他选项的更多信息,请 查看文档。
运行路由器
回到同一个终端窗口,运行下面的命令。您需要用 <APOLLO_KEY>
和 <APOLLO_GRAPH_REF>
占位符值替换 超级图 在 Router/.env
文件中设置的相应值,我们在上一课中设置了该文件。此命令在本地启动 路由器,告诉路由器要连接到哪个 超级图 并使用配置文件。
APOLLO_KEY=<APOLLO_KEY> APOLLO_GRAPH_REF=<APOLLO_GRAPH_REF> ./router --config router-config.yaml
我们将看到几行 路由器 输出,最后是我们的路由器正在端口 5000 上运行的消息,准备接收查询!
让我们复制此地址,我们将在 Studio 中设置连接设置时需要它。
http://127.0.0.1:5000
这告诉我们 API 的外部使用者可以使用哪个端点来 查询 我们的模式。
注意:由于我们的 路由器 目前正在 http://127.0.0.1:5000 上运行,因此它实际上无法被外部世界访问。但我们仍然可以 查询 我们自己的机器上的 路由器。
连接路由器到 GraphOS
让我们回到 Studio。
点击侧边栏中的 README 选项卡。
接下来,点击页面顶部的 连接设置 链接。
我们将把复制的 路由器 地址(http://127.0.0.1:5000
)粘贴为端点,然后保存。
让我们开始 查询 我们的 超级图!
测试我们的模式
从侧边栏中选择 浏览器 选项卡。
让我们创建一个 查询 来检索我们推荐播放列表的标题和描述。
query GetFeaturedPlaylists {featuredPlaylists {idnamedescription}}
现在让我们运行此 查询。
太棒了,我们拿到了推荐播放列表的列表。
GraphOS 为我们提供了可观察性工具来监控 超级图 的运行状况和性能。这些工具有助于展现超级图使用方式的模式,这有助于我们不断改进它。我们仍然处于教程阶段,因此没有真正的生产流量流向我们的超级图,但我们仍然可以查看我们的超级图洞察!
运行下面的 操作 几次,看看在查看指标之前是否会显示一些数据。
操作指标
让我们转到 洞察 页面。
在 操作 选项卡中,我们可以概览 操作 请求率、服务时间和错误百分比,其中包括每个操作的具体信息,这些信息可能值得进一步深入研究。
我们建议客户明确命名发送到 超图 的每个 GraphQL 操作,以便我们能够轻松地查看其指标。
我们还可以过滤以选择一个特定的 操作 以查看有关其使用情况的更多详细信息,以及其签名,即 查询 的形状。我们可以看到已发出的请求数量以及每个请求随时间的变化。
字段指标
接下来,让我们看看 字段 指标。转到 字段 选项卡。
在每个 字段 旁边,我们将看到 请求操作 的总数,即在给定时间段内包含该特定 字段 的 操作 数量。
我们可以使用 操作 和 字段 指标来监控 超图 的类型和字段的运行状况和使用情况,并根据它们的执行情况和客户的使用方式来确定可以改进的地方。
练习
关键要点
- 操作 指标概述了在给定时间段内或针对特定操作的操作请求率、服务时间和错误百分比。
- 字段 指标包括请求 操作 指标,该指标列出了在给定时间段内包含特定字段的操作数量。
接下来
我们将以 新 的形式引入一个全新的领域 子图:这是一项我们都很熟悉的活动,当我们有音乐来营造气氛时,它会更加有趣。这是一个关于 食谱 的子图!
分享您对本课的疑问和评论
本课程目前处于
您需要一个GitHub帐户才能在下面发布。没有帐户? 请改为在 Odyssey 论坛上发布。