---
title: "如何使用 Alchemy 的應用程式監控工具"
description: "運用 Alchemy 的應用程式監控工具，發揮 dApp 的最大潛力。分析、監控並除錯，以達到最佳效能。"
---

# 如何使用 Alchemy 的應用程式監控工具

你已經讀過我們介紹如何用節點與區塊鏈溝通，以及[為什麼你會需要像 Alchemy 這樣的節點供應商](https://medium.com/alchemy-api/what-is-a-node-provider-and-why-do-i-need-alchemy-16e89b43bfda)而不是自己架設節點的文章了！

不過我們還沒完整討論到的是，相較於一般的節點供應商，使用我們能額外獲得哪些好處。

其中一個主要原因，說明了為什麼[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 library——總是有點麻煩。

Alchemy Composer 基本上讓你能透過瀏覽器介面發出一次性的區塊鏈請求，並在同一個網頁上立即取得回應。

不用再：

- 撰寫 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. 該節點會盡可能將這筆待處理交易分享給它的節點對等端（peer），如此依序傳遞，讓網路中各個節點的 mempool 都能擁有這筆特定的待處理交易。
1. 一旦某個區塊被挖出，礦工會從其 mempool 中挑選 gas price 最高的待處理交易並納入該區塊中。這些待處理交易就此被挖掘確認。
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="這是一個真實且成功的請求,用於擷取 mempool 的狀態。很棒,對吧。"
  width={1600}
  height={683}
  caption="這是一個真實且成功的請求,用於擷取 mempool 的狀態。很棒,對吧。"
/>

看到這個過程如此麻煩，我們決定打造一個 GUI，讓你能在儀表板中查看 mempool 狀態，而不必使用 CLI！

以下是用我們的 Mempool Watcher 瀏覽 mempool 的畫面：

<ImageBlock
  src="https://media.alchemy.com/1704722647-mempool-watcher.png"
  alt="Alchemy Mempool Watcher 列出待處理交易及其 gas 價格與狀態"
  width={1600}
  height={870}
  caption="Alchemy mempool 監控工具"
/>

你是否曾納悶[為什麼你的待處理交易一直卡著送不出去](https://www.alchemy.com/blog/how-to-debug-pending-ethereum-transactions)？絕大多數情況下，是因為你交易的 gas price 低於目前的市場行情。有了這樣的工具，你應該能快速找出卡在 mempool 中的交易，查看其對應的 gas price，並與市場行情比較，判斷是否該用更高的 gas price 重新送出交易。

## 這些圖表是做什麼用的？

<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，再把實例化的部分換成類似這樣即可：

如果你想要完整的教學，可以閱讀我們的[Getting Started with Alchemy 指南](https://www.alchemy.com/docs/alchemy-quickstart-guide)。如果需要協助，請造訪[Alchemy support center](https://www.alchemy.com/support)。
