---
title: "dappの問題を素早く特定し、ユーザーに影響が及ぶ前に修正をデプロイする方法"
description: "dappのヘルスモニタリングにおいてエンジニアが直面する課題と解決策について解説します"
---

# dappの問題を素早く特定し、ユーザーに影響が及ぶ前に修正をデプロイする方法

[分散型アプリケーションの動的な世界](https://www.alchemy.com/dapps)において、迅速な問題の特定と解決は、シームレスなユーザー体験を維持し、顧客の信頼を築く上で重要です。

その鍵となるのが、従来の事後対応型のトラブルシューティングから、データドリブンなエンジニアリングによる[アプリ](https://www.alchemy.com/dapps/top/defi-dapps)のプロアクティブなヘルス管理への転換です。

## **Web3におけるデータドリブンエンジニアリングの独自性とは**

データドリブンエンジニアリングとは、勘や感覚ではなく、確かなデータに基づいて意思決定を行うことを指します。データドリブンエンジニアリングにより、エンジニアリングチームは問題がエンドユーザーに影響を及ぼす前に予測し、理解し、解決することが可能になります。

### **Web3におけるデータドリブンエンジニアリングの課題とは**

データドリブンエンジニアリングが持つ大きな可能性にもかかわらず、現状多くのweb3開発者は、適切なツールの欠如、web3の複雑さ、ブロックチェーン業界の24時間365日稼働という性質といった課題により、事後対応モードから抜け出せずにいます。

#### **1. Web3向けオブザーバビリティツールの欠如**

効果的なweb3特化型モニタリングツールが不足しているため、問題はエンドユーザーに影響が出始めるまで発見されないことが多く、慌てて修正を展開する事態につながります。web3開発者は、進行中の問題を解決するために、心の平穏や睡眠時間を犠牲にすることが頻繁にあり、これは以下のような二次的な影響をもたらします。

1. ユーザー体験の悪化
1. 開発者が常に高ストレス・高リスクな状況で作業を強いられる
1. 問題対応疲れがdappの全体的な成功を脅かす

#### **2. 従来のツールはWeb3の複雑さをカバーできない**

さらに、他の分野では強みを持つ従来の分析ツールが、web3特有のニーズに応えられないことが多いため、状況はさらに悪化しています。

これらのツールは、分散環境における問題の予測と軽減に開発者が必要とするデータの深さと幅を捉えることができません。

ユーザーインタラクションからスマートコントラクトの実行、トークン転送に至るまで、web3の世界にはその多面的な複雑さに対応できるモニタリングと分析が求められます。

### **データドリブンエンジニアリングツールの利点とは**

データドリブンエンジニアリングツールの主な利点は3つあります。プロアクティブな問題管理、パフォーマンスの最適化、そしてエンジニアがより的確な意思決定を行えるようになることです。

#### **1. プロアクティブな問題管理**

リアルタイムデータは、潜在的な問題を早期に検知し、ユーザーへの影響が出る前にそれを軽減するのに役立ちます。早期に発見できる潜在的な問題は、パフォーマンスのボトルネックから異常なユーザー行動まで多岐にわたります。

例として以下が挙げられます。

- ピーク時にAPIの利用制限に達する
- 使用中のノードが同期していない
- サードパーティプロバイダーが利用不能になる
- ブロックチェーンの混雑
- 本番環境にデプロイされたフロントエンドのバグによりトランザクションが失敗する
- スマートコントラクトとやり取りしようとする不正なアクターの検知

実際の事例として、あるdappが本番環境に機能アップデートをデプロイした結果、失敗するトランザクションが大幅に増加し、トランザクションが正常に実行されないままユーザーがガス代を負担する事態が発生しました。

このスパイクについて警告を受けたエンジニアリングチームは、迅速に根本原因を特定できました。原因は、dappのフロントエンドにあるバグで、ハードコードされたパラメータを渡してスマートコントラクトの関数を呼び出す際、この関数内のrevert文に一貫して抵触していたことでした。

このrevert文には理由の説明が含まれていなかったため、オブザーバビリティツールなしで根本原因を特定していれば、より多くのユーザーに影響が及んでいたでしょう。

#### **2. パフォーマンスの最適化**

データを分析することで、ボトルネックや非効率性を特定し、パフォーマンスの最適化とユーザー体験の向上につなげることができます。こうしたパフォーマンスの問題には、スマートコントラクトの実行の遅さ、オラクルのレイテンシの問題、リソース利用の非効率性、[web3スタック](https://www.alchemy.com/overviews/web3-stack)全体にわたる相互運用性の問題などがあります。

具体的な事例として、Blocktorchを使用していた開発チームが、あるスマートコントラクトの複雑な構造により通常より高いガス代が発生しているという、dapp内で繰り返し起きていた非効率性を特定しました。

この情報を基に、dapp開発者はスマートコントラクトをリファクタリングして実行を効率化し、ガス代を大幅に削減することができました。この効率化により、dappのパフォーマンスが向上しただけでなく、コスト削減とユーザーのUX改善にもつながりました。この事例は、データドリブンなインサイトがWeb3の世界において具体的なメリットと競争優位性をもたらし得ることを示しています。

#### **3. 的確な意思決定**

データから得られたインサイトを活用することで、チームは機能開発、リソース配分、システム改善についてより良い意思決定を行えます。

オブザーバビリティは、ユーザーがdappの各機能をどのように利用しているか、また時間の経過とともに利用傾向がどう変化しているかについての可視性を提供します。例えば、ユーザーが他のチェーンよりも多く使用している特定のチェーンに関する情報（最良のユーザー体験のためには、dApp内で最も使用されているチェーンをデフォルトチェーンに設定することが重要です）や、こうした情報を競合アプリと比較することなどが挙げられます。

もう一つの例は、利用者が増加している特定のブラウザやウォレットへのサポートを最適化することです。

<VideoCta
  title="Alchemyダッシュボードの動作を見る"
  description="30分のガイド付きウォークスルー:ダッシュボードの全ツールをライブでデモ。"
  ctaHref="/resources/dashboard-demo"
  thumbnail={{
    src: "https://media.alchemy.com/alchemy-dashboard-demo-thumbnail.png",
    alt: "Alchemy Dashboard Demo",
  }}
/>
 

## **Web3のエンジニアリング上の問題を監視するのに役立つ3つのツール**

web3エンジニアリングチームがよりデータドリブンになるためには、オブザーバビリティと詳細なデータ分析を提供するツールを取り入れることが重要です。以下は、web3エンジニアがアプリケーションに対して優れたオブザーバビリティとモニタリングを実現するのに役立つツールです。

### **1. Alchemy Monitor**

[Alchemy Monitor](https://www.alchemy.com/monitor)は、dappのユーザー行動やAlchemy APIの健全性・パフォーマンスを把握するための、モニタリングと分析のための包括的なダッシュボード群を提供します。

Monitorを使うと、dapp開発者はコールタイプ別にAPI利用状況を分析でき、プログラムの最適化とデバッグの方法をより理解しやすくなります。また、アプリケーションのアクティビティに関するアラートやダイジェストを作成するためのプラットフォームも提供します。

### **2. Blocktorch**

[Blocktorch](https://www.blocktorch.xyz/)は、Alchemy Venturesのポートフォリオ企業であり、ブロックチェーン開発者にアプリのエンドツーエンドのインサイトを提供します。web3アプリケーション向けのフルスタックモニタリングプラットフォームと位置づけられており、フロントエンド、ブロックチェーントランザクション、スマートコントラクトのパフォーマンス、web3スタックの各レイヤーに至るまで、他に類を見ない幅と深さのインサイトを提供します。

Blocktorchは、エンジニアリングチームがリアルタイムデータに対応するだけでなく、潜在的な問題を予測することも可能にします。パターンを特定し、異常を検知し、これらのインサイトを解釈しやすい形式で可視化することで、プロアクティブな管理をさらに一歩進めています。

これにより、チームはdappの全体的な健全性を把握できるだけでなく、的確な意思決定と迅速な修正のデプロイが可能になります。

### **3. Tenderly**

[Tenderly](https://www.alchemy.com/dapps/tenderly)は、開発から採用までのスマートコントラクトの構築、テスト、監視、運用を行うためのスマートコントラクト開発者向けツールです。このツールスイートは、メインネットへのデプロイ前に強力なトランザクションシミュレーターでスマートコントラクトを徹底的にテストすることや、問題を引き起こしているスマートコントラクト内の具体的なコード行を特定することで、本番環境での問題特定をエンジニアが行えるよう支援します。

## **Web3モニタリングツールを選ぶ前に検討すべき5つの要素**

分散型アプリケーション向けのweb3オブザーバビリティ・モニタリングツールを選ぶ際は、カバレッジ、リアルタイムアラート、データの解釈のしやすさ、スケーラビリティ、他プロバイダーとの統合、といった要素を検討してください。

### **1. 包括的なカバレッジ**

そのツールは、ユーザーインタラクションからスマートコントラクトの実行まで、web3スタックのあらゆるレイヤーに対するインサイトを提供する必要があります。Blocktorchは、エンジニアに対してアプリのフロントエンド、エンジニアリングチームが開発したスマートコントラクト、統合されている他のプロトコル、さらに必要に応じて使用しているオラクルや分散型ファイルストレージについての可視性を提供します。

さらにBlocktorchは、web2のデータ標準であるOpen Telemetryとの相互運用性を備えており、アプリケーションが部分的にしか分散化されておらずクラウドサービスにも依存している場合に、任意のweb2オブザーバビリティツールと併用できます。

### **2. リアルタイムアラート**

そのツールは、潜在的な問題に対するリアルタイムアラートを提供し、チームが問題が拡大する前に修正できるようにする必要があります。web3エンジニアが設定する最も頻繁に使われるアラートには、以下のようなものがあります。

- mempool内でトランザクションが保留となっている平均時間
- ドロップおよび失敗したトランザクションの割合
- 潜在的な機能不良を示す利用の急激な低下
- 特にネットワーク全体のガスコストとの関連におけるガス代の急上昇

これらの例はいずれも、ユーザーに直接影響を与えます。dappの利用コストが上昇してユーザーがより安価な代替手段を探すようになるか、あるいはdappの利用時に問題に直面し、離脱につながるかのいずれかです。

### **3. データの解釈のしやすさ**

理解しやすいデータの可視化と、実行可能なインサイトを提供するツールを探してください。

すぐに使えるダッシュボードは短時間でインサイトを提供し、カスタムダッシュボードはチームのニーズに正確に合わせてモニタリングする柔軟性をエンジニアに与えます。理想的なツールは両方をサポートすべきです。ダッシュボードは、システム全体を俯瞰し、傾向、スパイク、稼働状況を把握した上で、さらに深く掘り下げていくための視点を提供します。

### 4. スケーラビリティ

dappが成長するにつれ、モニタリングツールもシームレスにスケールアップできる必要があります。例えば、dappが新しいブロックチェーンネットワークへの対応を追加する場合、モニタリングツールも同様にその新しいチェーンへ拡張できる必要があります。

また、ツール自体とその料金プランもスケーラブルである必要があり、dappの利用が増加した際にもリアルタイム機能が問題なく動作するようにしなければなりません。

### **5. 統合**

そのツールは、チームが使用している他のツールやサービスとスムーズに統合できる必要があります。例えば、スマートコントラクトのデプロイ用IDEとの統合や、ノードなどのサービス向けAPIプロバイダーとの統合は、スムーズなオブザーバビリティ体験と最も充実したデータを得る上で役立ちます。

## **結論**

web3エンジニアリングチームがシームレスなユーザー体験を提供するためには、データドリブンなアプローチを採用することが不可欠です。AlchemyやBlocktorchのようなツールは、その高度なオブザーバビリティ機能により、チームが問題を迅速に特定し是正する上で重要な役割を果たします。
