5. 路由器配置及洞察
5m

概述

到目前为止,我们已经有了soundtracks 正在运行,并且它的模式已发布,但我们仍然需要一个部件将所有内容联系起来:

在本课中,我们将

  • 设置 在本地
  • 连接我们的
  • 发送我们的第一个 到我们的
  • 探索 洞察,通过 指标,由 提供

下载路由器

是一个高性能图路由器,作为可执行二进制文件提供,您可以通过几个步骤将其添加到您的项目中:

打开一个终端窗口,导航到 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 文件。此文件使我们能够自定义 的行为。

router-config.yaml
supergraph:
listen: 127.0.0.1:5000
include_subgraph_errors:
all: true
telemetry:
instrumentation:
spans:
mode: spec_compliant

目前,我们设置了两个选项: 应该运行的端口(在 supergraph.listen 属性下)以及包含所有 错误。默认情况下, 会在响应中删除子图错误的详细信息,我们可能会看到类似于“子图错误被删除”的错误消息。在生产环境中,此属性通常设置为 false,但如果您在按照本教程操作时遇到任何问题,它将很有帮助。

最后,我们有一些遥测配置,它减少了我们在终端输出中看到的错误类型。

注意:要了解有关配置 可用的其他选项的更多信息,请 查看文档

运行路由器

回到同一个终端窗口,运行下面的命令。您需要用 <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 选项卡。

接下来,点击页面顶部的 连接设置 链接。

https://studio.apollographql.com

Studio - README

我们将把复制的 地址(http://127.0.0.1:5000)粘贴为端点,然后保存。

https://studio.apollographql.com

Studio - Connection Settings

让我们开始 我们的

测试我们的模式

从侧边栏中选择 浏览器 选项卡。

让我们创建一个 来检索我们推荐播放列表的标题和描述。

query GetFeaturedPlaylists {
featuredPlaylists {
id
name
description
}
}

现在让我们运行此

https://studio.apollographql.com

Explorer - query featured playlists

太棒了,我们拿到了推荐播放列表的列表。

为我们提供了可观察性工具来监控 的运行状况和性能。这些工具有助于展现超级图使用方式的模式,这有助于我们不断改进它。我们仍然处于教程阶段,因此没有真正的生产流量流向我们的超级图,但我们仍然可以查看我们的超级图洞察!

运行下面的 几次,看看在查看指标之前是否会显示一些数据。

操作指标

让我们转到 洞察 页面。

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

Fields page in Studio

我们可以使用 指标来监控 的类型和字段的运行状况和使用情况,并根据它们的执行情况和客户的使用方式来确定可以改进的地方。

练习

GraphOS 提供以下哪些操作指标?

关键要点

  • 指标概述了在给定时间段内或针对特定操作的操作请求率、服务时间和错误百分比。
  • 指标包括请求 指标,该指标列出了在给定时间段内包含特定字段的操作数量。

接下来

我们将以 的形式引入一个全新的领域 :这是一项我们都很熟悉的活动,当我们有音乐来营造气氛时,它会更加有趣。这是一个关于 食谱 的子图!

上一步

分享您对本课的疑问和评论

本课程目前处于

测试版
.您的反馈有助于我们改进!如果您遇到问题或感到困惑,请告诉我们,我们会帮助您解决。所有评论都是公开的,并且必须遵守 Apollo行为准则。请注意,已解决或已处理的评论可能会被删除。

您需要一个GitHub帐户才能在下面发布。没有帐户? 请改为在 Odyssey 论坛上发布。