getRecentPerformanceSamples RPCメソッドは、Solanaネットワークの最近のパフォーマンスのスナップショットを提供します。約60秒ごとに撮影されたサンプルのリストを返し、その期間内に処理されたトランザクションとスロットの数を詳細に示します。このデータは、ネットワークのスループットと健康状態を監視するために非常に価値があります。TPSやスロット時間などのSolanaのパフォーマンス指標についての詳しい情報は、Solana for Enterpriseガイドを読むことができます。
一般的な使用例
- ネットワークの健康状態の監視: トランザクション処理率とスロット生成を追跡し、全体的なネットワークの健康状態を評価し、潜在的な混雑や遅延を特定します。
- パフォーマンス分析: 歴史的なパフォーマンスデータを分析して、さまざまな条件下でのネットワークの動作を理解します。
- ダッシュボード: 監視ダッシュボード上でトランザクション毎秒(TPS)やスロット毎分などの主要パフォーマンス指標(KPI)を表示します。
- キャパシティプランニング: アプリケーションやインフラストラクチャのスケーリング決定を行うためにネットワーク負荷の傾向を観察します。
リクエストパラメータ
limit(usize, オプション):- 返す最新のパフォーマンスサンプルの数。
- 最大値:
720(サンプルは60秒間隔で取得され、約12時間のデータを表す)。 - 省略した場合、RPCノードはデフォルトのサンプル数を返します(正確なデフォルト値はRPCプロバイダによって異なる場合があります)。
レスポンス構造
JSON-RPCレスポンスのresultフィールドは、パフォーマンスサンプルオブジェクトの配列であり、逆時系列順(最新のサンプルが最初)で返されます。各オブジェクトは次の構造を持ちます。
slot(u64): このパフォーマンスサンプルが記録されたスロット番号。numTransactions(u64): このslotまでに処理されたトランザクション(投票トランザクションおよび非投票トランザクションを含む)の総数。numSlots(u64): このslotまでに処理されたスロットの数。samplePeriodSecs(u16): このサンプルが取得された期間(通常は60)を秒単位で。numNonVoteTransactions(u64): このsamplePeriodSecsの間に処理された、コンセンサス投票トランザクションではないトランザクション数。
例
1. 最新の5つのパフォーマンスサンプルを取得
この例では、ネットワークから直近の5つのパフォーマンスサンプルを要求します。2. デフォルトのパフォーマンスサンプル数を取得
この例では、limitパラメータを省略し、RPCノードのデフォルトのサンプル数を要求します。
開発者向けのヒント
- サンプリング間隔: サンプルは通常60秒ごとに取得されますが、これは概算です。レスポンスの
samplePeriodSecsフィールドは各サンプルの実際の期間を示します。 - 履歴データ制限: 最大
limitは720サンプルで、約12時間の履歴データのウィンドウを提供します。長期間のパフォーマンス分析には、外部のデータロギングと集計が必要です。 - 投票トランザクションと非投票トランザクション:
numTransactionsはすべてのトランザクションを含みますが、numNonVoteTransactionsはコンセンサス投票プロセスに含まれないものを特にカウントします。後者はユーザーによるネットワーク活動のより良い指標です。 - ノードの変動性: 正確なデータは、サンプルが取得されたときの同期状態とネットワークのローカルビューに応じて、異なるRPCノード間でわずかに異なる場合があります。
getRecentPerformanceSamplesを利用することで、開発者やネットワークオブザーバーはSolanaネットワークの運用状態とスループットについて貴重な洞察を得ることができます。