Kotlin サービスのアプリケーションシグナル
はじめに
Kotlin Web アプリケーションのパフォーマンスと健全性をモニタリングすることは、さまざまなコンポーネント間の複雑な相互作用のため、課題となる場合があります。Kotlin Web サービスは通常、Java Archive (jar) ファイルにビルドされ、Java が動作する任意のプラットフォームにデプロイできます。これらのアプリケーションは、多くの場合、データベース、外部 API、キャッシュレイヤーなど、複数の相互接続されたコンポーネントを含む分散環境で動作します。この複雑さにより、平均解決時間 (MTTR) が大幅に増加する可能性があります。
このガイドでは、Linux EC2 サーバー上で動作している Kotlin Web サービスを自動計装する方法を説明します。CloudWatch Application Signals を有効にすることで、AWS Distro for OpenTelemetry (ADOT) Java 自動計装エージェントを使用して、コードを変更することなくアプリケーションからテレメトリを収集できます。呼び出し量、可用性、レイテンシー、障害、エラーなどの主要なメトリクスを活用して、アプリケーションサービスの現在の運用状態を迅速に確認してトリアージし、長期的なパフォーマンスとビジネス目標を満たしているかどうかを検証できます。
前提条件
- CloudWatch Application Signals と連携するための適切な IAM 権限 を持つ Linux EC2 インスタンス。このガイド では Amazon Linux インスタンスを使用しているため、他のものを使用している場合はコマンドが若干異なる可能性があります。
- インスタンスに SSH 接続する能力。
ソリューションの概要
高レベルでは、以下の手順を実行します。
- CloudWatch Application Signals を有効にします。
- ktor Web サービス を fat jar としてデプロイします。
- Web サービスから Application Signals を受信するように設定された CloudWatch エージェントをインストールします。
- ADOT 自動計装エージェントをダウンロードします。
- サービスを自動計装するために、Kotlin サービス jar を Java エージェントと一緒に実行します。
- テレメトリを生成するためにいくつかのテストを実行します。
アーキテクチャ図
CloudWatch Application Signals を有効化する
アカウントでステップ 1: Application Signals の有効化 の手順に従ってください。
Ktor Web サービスのデプロイ
Ktor は、Web サービスを作成するための人気のある Kotlin フレームワークです。 非同期サーバーサイドアプリケーションを素早く開始することができます。
作業ディレクトリを作成します。
mkdir kotlin-signals && cd kotlin-signals