---
title: "如何使用 Alchemy 的应用监控工具"
description: "借助 Alchemy 的 Application Monitoring Tools 充分发挥 dApp 的潜力。分析、监控和调试,实现最佳性能。"
---

# 如何使用 Alchemy 的应用监控工具

你已经阅读过我们关于使用节点与区块链通信以及[为什么你可能需要节点提供商](https://medium.com/alchemy-api/what-is-a-node-provider-and-why-do-i-need-alchemy-16e89b43bfda)（比如 Alchemy）而不是自己运行节点的文章了！

不过，我们还没有充分讨论的是，与普通节点提供商相比，使用我们能获得哪些额外的好处。

事实上，我们之所以拥有 [Ethereum 生态系统](https://www.alchemy.com/dapps/ecosystem/ethereum)中 70% 的顶级应用，主要原因之一是我们提供了一整套对开发者友好的工具，能大大简化开发者的工作。

这些工具覆盖了很多方面，从帮助你更快地搭建应用，到分析通过我们节点端点发送的请求和响应，再到实时监控你的流量和用户健康状况！如果你想直接体验一下而不是继续阅读本文，[可以在这里试用](https://dashboard.alchemy.com/)。

<ImageBlock
  src="https://media.alchemy.com/1704722168-the-home-page-for-our-dashboard.png"
  alt="我们仪表盘的主页"
  width={1600}
  height={1173}
  caption="我们仪表盘的主页"
/>

‍即使在开发早期你还用不到这个仪表盘，相信我们——一旦你把 dApp 公开发布，其他人开始通过你的基础设施发送请求，这些工具在调试时会非常有用。

## Alchemy explorer：查看历史请求

当你向区块链发送一个请求时，通常会立即从节点收到查询结果的响应。但在以下情况下你该怎么办？

- 你的部分请求格式有误，你想查看过去一天内所有失败的请求，从而找出规律（例如找出所有返回 -32000 节点错误代码的响应）。
- 你已经把 dApp 部署到生产环境，用户发送的请求会触发你基础设施中的区块链请求。他们开始反馈某些交易未能成功上链，你需要调试他们的交易发送请求。

如果没有工具来帮你处理这个过程，你就得翻查存储在压缩文本文件中的一页页日志，按时间排序，再用 grep 语句去筛选出你需要的信息。我们知道这很原始——这就是 Request Explorer 的用武之地！

<ImageBlock
  src="https://media.alchemy.com/1704722308-debugging-your-json-rpc-api-request.jpg"
  alt="上集回顾:“调试你的 JSON-RPC API 请求”"
  width={1600}
  height={953}
  caption="上集回顾:“调试你的 JSON-RPC API 请求”"
/>

<ImageBlock
  src="https://media.alchemy.com/1704722379-your-new-improved-request-debugger.png"
  alt="Alchemy Request Explorer:搜索和筛选历史 JSON-RPC 请求"
  width={1600}
  height={1032}
  caption="全新升级的请求调试工具!"
/>

我们的 Explorer 让你可以搜索通过我们基础设施发送的历史请求和响应，时间范围从 1 秒前到 10 天前！不用再翻找日志了——现代技术触手可及。

对于这些请求，你可以按各种参数进行筛选，比如方法类型、HTTP 响应，或节点特定的错误！你还可以根据时间戳、请求耗时等更多选项查看请求。

一旦你找到一个感兴趣的请求，通常会想做以下几件事：

1. 在日志中搜索类似的请求，以确定某个问题的普遍程度。
1. 尝试重新发出完全相同的请求，验证它是否仍然失败。

对于第一点，我们在每个请求旁边都提供了一个方便的小按钮“Explore Similar”，让你可以用匹配的参数进行新的搜索！对于第二点，这正好引出下面的内容：

<VideoCta
  title="查看 Alchemy 仪表盘的实际操作"
  description="30 分钟引导式演示:实时演示仪表盘中的每一个工具。"
  ctaHref="/resources/dashboard-demo"
  thumbnail={{
    src: "https://media.alchemy.com/alchemy-dashboard-demo-thumbnail.png",
    alt: "Alchemy Dashboard Demo",
  }}
/>


## Alchemy composer：在浏览器中测试请求

你是否觉得手动发出一次性的 API 请求比实际需要的时间要长得多？相信我们，我们也有同感。不管你是在终端里一丝不苟地编写 curl 请求，还是在查找两个月前自己起了个奇怪名字的 Postman 库——总归有点烦人。

Alchemy Composer 本质上让你可以通过基于浏览器的 GUI 发出一次性的区块链请求，并在同一网页上立即得到响应。

不需要：

- 编写 curl 请求并选择端点，你只需选择要测试的区块链、网络和方法。
- 猜测每个方法的参数，你只需从下拉菜单中选择！
- 解析 JSON 对象，它们在浏览器中已经预先解析好了！

<ImageBlock
  src="https://media.alchemy.com/1704722459-the-alchemy-composer.png"
  alt="Alchemy Composer:在浏览器中测试区块链 API 请求"
  width={1593}
  height={999}
  caption="Alchemy Composer"
/>

还有一个特别实用的功能：如果你想把正在查看的请求分享给结对编程的伙伴，只需点击右上角的“Copy config URL”，就能把这个 URL 直接分享给对方，同时保留所有请求信息！这是朋友之间快速便捷地验证请求的好方法。

## Alchemy mempool watcher：查看你的交易状态

首先，理解 Mempool 的作用很重要。本质上，mempool 是每个节点内用于待处理交易的等候区。这些交易是用户已发送但尚未被“挖出”、即尚未写入区块链的交易。

以下是一笔交易在区块链上确认之前的典型流程概要：

1. 用户生成并签署一笔交易，创建 sendTransaction 请求，并将请求发送给一个节点。
1. 该节点将待处理交易放入其 mempool。mempool 会对该交易进行一系列验证，否则会拒绝它。
1. 该节点尽可能地将待处理交易分享给它的对等节点，依此类推，使网络中的各个节点的 mempool 里都能拥有这笔特定的待处理交易。
1. 一旦一个区块被挖出，矿工会从其 mempool 中选择 gas 价格最高的待处理交易，并将它们打包进区块。这些待处理交易此时已被挖出确认。
1. 随着时间推移，一笔始终未被挖出的待处理交易最终可能会被节点丢弃。

如果你还有疑问，[这篇关于待处理交易的文章可能会对你有帮助！](https://www.alchemy.com/blog/how-to-debug-pending-ethereum-transactions)‍

一个主要问题是，mempool 对用户来说基本上是不透明的——获取其内容信息的唯一方式是通过 API 请求查询状态，而这会返回没完没了的日志流。

<ImageBlock
  src="https://media.alchemy.com/1704722572-successful-request-to-the-mempool-to-fetch-its-status.jpg"
  alt="这是一个真实的、成功的请求,用于向内存池获取其状态。很不错吧。"
  width={1600}
  height={683}
  caption="这是一个真实的、成功的请求,用于向内存池获取其状态。很不错吧。"
/>

‍看到这有多麻烦后，我们决定构建一个 GUI，让你可以在仪表盘中查看 mempool 状态，而不用通过命令行！

以下是用我们的 Mempool Watcher 浏览 mempool 的效果：

<ImageBlock
  src="https://media.alchemy.com/1704722647-mempool-watcher.png"
  alt="Alchemy 内存池监视器展示待处理交易的 gas 价格和状态列表"
  width={1600}
  height={870}
  caption="Alchemy 内存池监视器"
/>

‍你是否曾想过[为什么你的待处理交易迟迟未能上链](https://www.alchemy.com/blog/how-to-debug-pending-ethereum-transactions)？绝大多数情况下，是因为你交易的 gas 价格低于当前的市场行情价。有了这样的工具，你应该能够快速识别出卡在 mempool 中的交易，查看它们对应的 gas 价格，并与市场行情比较，判断是否该以更高的 gas 价格重新提交交易。

## 这些图表都是做什么用的？

<ImageBlock
  src="https://media.alchemy.com/1704722888-charts-and-analytics.jpeg"
  alt="Alchemy 仪表盘图表展示请求量和使用情况分析随时间变化"
  width={1600}
  height={788}
  caption="Alchemy 上的图表与分析"
/>

作为你的节点提供商，我们能为你收集到大量有用的信息——我们也在尽力将这些信息展示给你！以下是我们能为你绘制图表、而你原本无法看到的内容：

- 按应用划分的请求数量随时间的变化。
- 你的请求 IP 地址在美国地图和世界地图上的分布（如果你的客户端应用直接向 Alchemy 发送流量，这非常有用！）
- 通过你的应用发送的近期请求的可视化展示。
- 你的使用历史，可按应用和月份排序，帮助你识别流量趋势！

## Alchemy 还能提供哪些其他好处？

Alchemy 为区块链提供节点基础设施，这意味着我们管理与向 Ethereum 区块链（以及其他几条链！）发送和接收请求相关的所有基础设施。以下是关于[为什么你需要节点提供商的一些信息](https://www.alchemy.com/overviews/blockchain-node-providers)。

一旦你通过我们的系统发送请求，你就能获得上面提到的所有好处：可视化界面和基于浏览器的工具，让构建和监控你的[应用](https://www.alchemy.com/dapps/top/defi-dapps)变得更容易。

除此之外，我们还会为你提供：

- 访问 Alchemy 的 Node API 的权限，其背后是专有基础设施，能解决困扰区块链的可扩展性和一致性问题。
- 访问 Alchemy Notify 的权限，这是一个为区块链上发生的事件（比如交易）提供推送通知（webhook）的工具。
- 访问我们 Enhanced APIs 的权限，让你能够发出那些原本计算成本高昂甚至不可能实现的区块链请求。
- 还有更多，包括在 Flow、Crypto.org 等多种链，以及 Polygon 和 Arbitrum 等 L2 上使用这些功能的权限！

## 开始使用 Alchemy
将 Alchemy 设置为节点提供商极其简单——事实上，只需要一行代码！如果你一直在使用 [web3.js](https://www.alchemy.com/dapps/web3-js) 或 [ethers.js](https://www.alchemy.com/dapps/ethers-js)，那么只需[通过我们的仪表盘创建一个 Alchemy 账户](https://dashboard.alchemy.com/)，生成一个 API key，然后用类似这样的代码替换实例化过程即可：

如果你想看完整教程，请阅读我们的 [Alchemy 入门指南](https://www.alchemy.com/docs/alchemy-quickstart-guide)。如果需要帮助，请访问 [Alchemy 支持中心](https://www.alchemy.com/support)。
