CloudWatch Embedded Metric Format
はじめに
CloudWatch Embedded Metric Format (EMF) を使用すると、複雑で高カーディナリティのアプリケーションデータをログの形式で Amazon CloudWatch に取り込み、実用的なメトリクスを生成できます。Embedded Metric Format を使用することで、環境に関する洞察を得るために複雑なアーキテクチャに依存したり、サードパーティツールを使用したりする必要がなくなります。この機能はすべての環境で使用できます が、AWS Lambda 関数や Amazon Elastic Container Service (Amazon ECS)、Amazon Elastic Kubernetes Service (Amazon EKS)、または EC2 上の Kubernetes のコンテナなど、エフェメラルリソースを持つワークロードで特に有用です。Embedded Metric Format を使用すると、個別のコードを実装または保守することなく、カスタムメトリクスを簡単に作成でき、同時にログデータに対する強力な分析機能を獲得できます。
Embedded Metric Format (EMF) ログの仕組み
Amazon EC2、オンプレミスサーバー、Amazon Elastic Container Service (Amazon ECS)、Amazon Elastic Kubernetes Service (Amazon EKS)、または EC2 上の Kubernetes のコンテナなどのコンピューティング環境は、CloudWatch Agent を通じて Embedded Metric Format (EMF) ログを生成し、Amazon CloudWatch に送信できます。
AWS Lambda を使用すると、カスタムコードを必要とせず、ネットワーク呼び出しをブロックしたり、サードパーティソフトウェアに依存したりすることなく、Embedded Metric Format (EMF) ログを生成して Amazon CloudWatch に取り込むことで、カスタムメトリクスを簡単に生成できます。
お客様は、EMF 仕様に準拠した構造化ログを発行する際に、特別なヘッダー宣言を提供することなく、詳細なログイベントデータと共にカスタムメトリクスを非同期で埋め 込むことができます。CloudWatch は自動的にカスタムメトリクスを抽出するため、お客様はリアルタイムのインシデント検出のために視覚化とアラームを設定できます。抽出されたメトリクスに関連する詳細なログイベントと高カーディナリティコンテキストは、CloudWatch Logs Insights を使用してクエリできるため、運用イベントの根本原因に関する深い洞察を提供します。
Fluent Bit 用の Amazon CloudWatch 出力プラグインを使用すると、Embedded Metric Format (EMF) のサポートを含む Amazon CloudWatch サービスにメトリクスとログデータを取り込むことができます。

Embedded Metric Format (EMF) ログを使用する場合
従来、モニタリングは 3 つのカテゴリに分類されてきました。最初のカテゴリは、アプリケーションの従来型のヘルスチェックです。2 番目のカテゴリは「メトリクス」で、カウンター、タイマー、ゲージなどのモデルを使用してアプリケーションを計装します。3 番目のカテゴリは「ログ」で、アプリケーション全体のオブザーバビリティにとって非常に重要です。ログは、アプリケーションがどのように動作しているかについて、継続的な情報を提供します。現在、Embedded Metric Format (EMF) ログを通じて、データの粒度や豊富さを犠牲にすることなく、アプリケーションのすべての計装を統合および簡素化しながら、優れた分析機能を獲得することで、アプリケーションのオブザーバビリティを大幅に向上させる方法が利用できるようになりました。
Embedded Metric Format (EMF) ログは、高カーディナリティのアプリケーションデータを生成する環境に最適です。このデータは、メトリクスディメンションを増やすことなく EMF ログの一部として含めることができます。これにより、すべての属性をメトリクスディメンションとして設定することなく、CloudWatch Logs Insights と CloudWatch Metrics Insights を通じて EMF ログをクエリすることで、アプリケーションデータを詳細に分析できます。
数百万台の通信デバイスや IoT デバイスからのテレメトリデータを集約するお客様は、デバイスのパフォーマンスに関する洞察と、デバイスが報告する固有のテレメトリに迅速に深く掘り下げる能力を必要としています。また、質の高いサービスを提供するために、膨大なデータを掘り下げることなく、問題をより簡単かつ迅速にトラブルシューティングする必要があります。Embedded Metric Format (EMF) ログを使用することで、お客様はメトリクスとログを単一のエンティティに結合して大規模なオブザーバビリティを実現し、コスト効率と優れたパフォーマンスでトラブルシューティングを改善できます。
Embedded Metric Format (EMF) ログの生成
Embedded metric format ログを生成するには、以下の方法を使用できます。
- オープンソースのクライアントライブラリを使用して、エージェント(CloudWatch や Fluent-Bit、Firelens など)を通じて EMF ログを生成して送信します。
- EMF ログの作成に使用できるオープンソースのクライアントライブラリが、以下の言語で利用可能です
- Node.Js
- Python
- Java
- C#
- EMF ログは AWS Distro for OpenTelemetry (ADOT) を使用して生成できます。ADOT は、Cloud Native Computing Foundation (CNCF) の一部である OpenTelemetry プロジェクトの、安全で本番環境対応の AWS サポート付きディストリビューションです。OpenTelemetry は、分散トレース、ログ、メトリクスを収集してアプリケーション監視を行うための API、ライブラリ、エージェントを提供するオープンソースイニシアチブであり、ベンダー固有のフォーマット間の境界と制限を取り除きます。これには 2 つのコンポーネントが必要です。OpenTelemetry 準拠のデータソースと、CloudWatch EMF ログで使用できるように有効化された ADOT Collector です。
- JSON 形式で定義された仕様に準拠して手動で構築されたログは、CloudWatch エージェントまたは PutLogEvents API を通じて CloudWatch に送信できます。