AWS Rust SDK を使用したカスタムメトリクスの作成
はじめに
Rust は、安全性、パフォーマンス、並行処理に重点を置いたシステムプログラミング言語で、ソフトウェア開発の世界で人気を集めています。 メモリ管理とスレッドの安全性に対するユニークなアプローチにより、堅牢で効率的なアプリケーションの構築に適しており、特にクラウドでの利用に適しています。 サーバーレスアーキテクチャの台頭と、高性能でスケーラブルなサービスへのニーズの高まりにより、Rust の機能はクラウドネイティブアプリケーションの構築に最適な選択肢となっています。 このガイドでは、AWS Rust SDK を活用してカスタム CloudWatch メトリクスを作成し、AWS エコシステム内でアプリケーションのパフォーマンスと動作についてより深い洞察を得る方法を探ります。
前提条件
このガイドを使用するには、Rust をインストールし、後で使用するデータを保存するための CloudWatch ロググループとログストリームを作成する必要があります。
Rust のインストール
Mac または Linux の場合:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Windows の場合は、rustup-init.exe をダウンロードして実行してください。
CloudWatch ロググループとログストリームの作成
- CloudWatch ロググループを作成します:
aws logs create-log-group --log-group-name rust_custom
- CloudWatch ログストリ ームを作成します:
aws logs create-log-stream --log-group-name rust_custom --log-stream-name diceroll_log_stream
コード
完全なコードは、このリポジトリの sandbox セクションにあります。
git clone https://github.com/aws-observability/observability-best-practices.git
cd observability-best-practices/sandbox/rust-custom-metrics
このコードではまず、サイコロを振るシミュレーションを行います。このサイコロの値をカスタムメトリクスとして扱います。 そして、このメトリクスを CloudWatch に追加し、ダッシュボードで表示する 3 つの異なる方法を紹介します。
アプリケーションのセットアップ
まず、アプリケーションで使用するクレートをインポートする必要があります。
use crate::cloudwatch::types::Dimension;
use crate::cloudwatchlogs::types::InputLogEvent;
use aws_sdk_cloudwatch as cloudwatch;
use aws_sdk_cloudwatch::config::BehaviorVersion;
use aws_sdk_cloudwatch::types::MetricDatum;
use aws_sdk_cloudwatchlogs as cloudwatchlogs;
use rand::prelude::*;
use serde::Serialize;
use serde_json::json;
use std::time::{SystemTime, UNIX_EPOCH};