プレビュー版として2つの新機能、トレーシングとメトリクスをリリースすることになりました。これらの2つの機能により、さまざまなパフォーマンスの問題を効果的に監視およびトラブルシューティングできます。ぜひお試しいただき、フィードバックをお寄せください!
開発者は、「アプリケーションが遅いのはなぜか?」という質問に答えられるようにしたいと考えています。現代のソフトウェアシステムは分散化され複雑化しており、顧客体験に影響を与える問題を診断することがますます困難になっています。
私たちは、これらの懸念を念頭に置いて、新しいトレーシングおよびメトリクス機能を設計しました。これらの機能により、Prismaの可観測性が向上し、監視とデバッグが容易になります。
トレーシングでPrismaのすべての操作に関する詳細な洞察を得る
Prismaのトレーシング機能は、Prisma Clientが実行するすべてのクエリの詳細なビューを提供し、各クエリの実行にかかる時間も含まれます。これは、パフォーマンスの問題のデバッグ、ボトルネックの特定、およびデータベース操作の動作の理解に役立ちます。
トレースをウォーターフォール図として視覚化する
JaegerやHoneycombなどのトレーシングツールを使用すると、トレースをこのようなウォーターフォール図として視覚化できます。
PrismaトレーシングはOpenTelemetryに準拠
トレーシングは、アプリケーションを流れるリクエストを追跡するのに役立つ強力なツールです。これは、各リクエストが複数のサービスにまたがる可能性がある分散システムをデバッグするのに特に役立ちます。トレーシングの能力を最大限に活用するには、アプリケーション全体でエンドツーエンドで実装する必要があります。
Prismaのトレーシング機能はOpenTelemetryに完全に準拠しているため、エンドツーエンドのアプリケーショントレーシング設定にシームレスに統合できます。これは、Jaeger、Zipkin、Honeycomb、Datadogなど、OpenTelemetry互換の任意のトレーシングシステムにトレースデータをエクスポートできることも意味します。
トレーシングの使用を開始するには、トレーシングドキュメントをご覧ください。
メトリクスでシステムの健全性とパフォーマンスを監視する
メトリクスは、Prismaがデータベースとどのように相互作用するかを監視できる新機能です。メトリクスは、Prismaとデータベース接続の状態に関する情報を提供するカウンター、ゲージ、およびヒストグラムのセットを公開します。公開するメトリクスには以下が含まれます。
- 実行されたPrisma Clientクエリの総数(
prisma_client_queries_total
) - 実行されたSQLまたはMongoDBクエリの総数(
prisma_datasource_queries_total
) - アクティブなデータベース接続の数(
prisma_pool_connections_open
) - 実行されたすべてのPrisma Clientクエリの期間を含むヒストグラム(
prisma_client_queries_duration_histogram_ms_bucket
) - ... その他多数!
注:公開されているメトリクスの完全なリストは、メトリクスドキュメントで入手できます。
Prismaは、多くの場合、ユーザーに代わってデータベースと魔法のように対話するブラックボックスのように感じられることがあります。Prismaの内部動作の透明性の欠如は、問題が発生した場合に問題となる可能性があります。メトリクスを使用すると、Prismaが内部で何をしているかについての可視性を向上させ、問題の診断とトラブルシューティングをはるかに容易にすることを目指しています。
メトリクスは外部監視システムと統合可能
メトリクスは、アプリケーションで直接分析することも、PrometheusやStatsDなどの外部監視システムおよび時系列データベースに送信することもできます。これらの外部システムとの統合により、以下の機能をすぐに利用できるようになり、監視能力を大幅に向上させることができます。
- 視覚化とダッシュボードによるリアルタイムのパフォーマンス監視
- 履歴データのクエリと分析
- 障害およびパフォーマンスの低下に対する正確で自動化されたアラート
たとえば、一般的な視覚化ツールであるGrafanaをメトリクスパイプラインに統合することで、詳細なダッシュボードとグラフを作成できます。
要約すると、メトリクスは、アプリケーションの健全性を分析および監視するのに役立ちます。また、パフォーマンスの問題や構成ミスを特定するのにも役立ち、必要なアクションを迅速に実行できます。
メトリクスの使用を開始するには、メトリクスドキュメントをご覧ください。
トレーシング対メトリクス — どちらをいつ使用すべきか?
トレーシングは、各操作のライフサイクルに関する詳細な情報を取得するのに役立ちます。トレーシングは、単一のリクエストが複数のサービスを通過する可能性がある分散環境で特に役立ちます。
アプリケーションの健全性とパフォーマンスを監視するための集計された数値データが必要な場合は、メトリクスの使用を検討してください。
トレーシングとメトリクスは補完的な機能であることも重要です。これらを組み合わせて使用することで、システムの可観測性を向上させることができます。
トレーシングとメトリクスを始める
トレーシングとメトリクスを開始するには
- トレーシングのドキュメントとトレーシングチュートリアルをご覧ください。
- メトリクスのドキュメントとメトリクスのチュートリアルをご覧ください。
フィードバックをお寄せください
皆様からのご意見をお待ちしております!これらの機能を試して、ご感想をお聞かせください。
📊 トレーシングに関するフィードバックをお寄せください。
📈 メトリクスに関するフィードバックをお寄せください。
🚀 これらの機能をミッションクリティカルなアプリケーションに使用する予定がある場合は、ユースケースについて話し合うためにお問い合わせください。
次回の投稿もお見逃しなく!
Prismaニュースレターに登録する