AEM アプリケーションのインサイトを得るためのOpenTelemetryの設定

AEM as a Cloud Service環境を任意のOpenTelemetry互換オブザーバビリティ プラットフォームに接続する方法について説明します。

前の記事では、AEM as a Cloud ServiceでOpenTelemetryを使用する概念と利点について説明しました。 このチュートリアルでは、AEM WKND サンプルプロジェクト ​をサンプルアプリケーションとして使用し、Cloud Manager Config パイプラインを使用してconfig/otel.yamlをデプロイしてテレメトリを書き出す方法を説明します。

大まかな手順は次のとおりです。

  1. オブザーバビリティ プラットフォーム のOTLP/HTTPS エンドポイントと取り込み資格情報を取得します。
  2. Cloud Managerで資格情報を安全に保存します。
  3. config/otel.yaml ファイルをAEM プロジェクト リポジトリに追加します。
  4. Cloud Manager Config Pipelineを実行します。
  5. AEM アプリケーションへのトラフィックを生成します。
  6. 観測可能プラットフォームのテレメトリを確認します。
AVAILABILITY
この機能は​ 可用性が制限 ​されています。 これを使用するには、aemcs-apm-beta@adobe.comに電子メールでアクセスをリクエストします。Adobeでは、リクエストに返信した直後に、お客様の環境でOpenTelemetryを有効にします。 現在Adobeの組み込みAPM統合を使用している場合、OpenTelemetryが有効になると、それらの2つを同時に実行できないため、その統合はデータの送信を停止します。
HIPAA スコープの環境、迅速な開発環境(RDE)、およびサンドボックスで使用できる​ not ​であることに注意してください。

前提条件

始める前に、次のことを確認してください。

  • WKND サイトまたは独自のアプリケーションがデプロイされた​ AEM as a Cloud Service ​開発環境、ステージング環境、実稼動環境。 OpenTelemetryは、HIPAA スコープの環境、サンドボックスプログラム、および高速開発環境(RDE)ではサポートされていません。
  • 環境変数を管理し、Config パイプラインを作成および実行する権限を持つ​ Cloud Manager ​にアクセスします。
  • エンドポイントと取り込み資格情報を使用して、HTTPS 経由で OTLPを受け入れるオブザーバビリティ プラットフォーム。
  • 受信AEM テレメトリを検証および視覚化するためのオブザーバビリティ プラットフォームへのアクセス。

手順1:識別可能性エンドポイントと資格情報の取得

オブザーバビリティ プラットフォームで、OTLP/HTTPS取り込みエンドポイント​を見つけ、適切な取り込み資格情報を作成または取得します。 手順については、プラットフォームのドキュメントを参照してください。

どのプラットフォームを使用すればよいかわからない場合は、 可観測性プラットフォームの選択を参照してください。

このチュートリアルでは、HTTPS経由のOTLPをサポートし、基本的な認証トークンを必要とするセルフホスト型のオブザーバビリティ プラットフォームを使用します。

手順2:オブザーバビリティ資格情報をCloud Managerに保存する

取り込み資格情報をCloud Manager シークレット環境変数​として保存します。

  1. Adobe Cloud Managerで、AEM プログラムを選択します。
    Cloud ManagerのAEM プログラムを選択

  2. ターゲット環境を選択し、詳細を表示​をクリックします。
    環境の詳細を表示

  3. 設定 タブで、追加/更新​をクリックし、次の値を持つ環境変数を追加します。
    環境変数を追加

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2
    設定 値
    名前 OTEL_CUSTOMER_AUTH
    値 プロバイダーの取り込み資格情報。 形式はプラットフォームによって異なります。 例については、​ プロバイダー固有の設定を参照してください。
    適用されるサービス すべて
    種類 秘密鍵

    この例では、セルフホスト型プラットフォームはBasic <base64(user:password)>形式の基本認証トークンを使用しています。

  4. 環境変数を保存するには、Add​をクリックしてから​ Save ​をクリックします。
    環境変数を保存

config/otel.yaml ファイルは、この秘密鍵を${{secrets.OTEL_CUSTOMER_AUTH}}として参照しています。 資格情報は、AEM リポジトリまたはパイプラインログに絶対に表示しないでください。

手順3:OpenTelemetry設定の追加

AEM プロジェクト リポジトリで、config/otel.yaml ファイルを作成します。 このチュートリアルのセルフホストプラットフォームでは、次の設定を使用します。

kind: "Otel"
version: "v1"
metadata:
  envTypes:
    - "dev"
    - "stage"
    - "prod"
data:
  enabled: true
  type: "generic"
  endpoint: "https://my-self-hosted-observability.adobe.net"
  authHeaderName: "Authorization"
  authHeaderValue: "${{secrets.OTEL_CUSTOMER_AUTH}}"
  metrics: true
  logs: true

キー設定は次のとおりです。

設定
目的
metadata.envTypes
設定が適用される環境タイプ。 ターゲット環境タイプを含めます。
enabled
trueに設定した場合の顧客テレメトリの書き出しを有効にします。
type
セルフホスト型プラットフォームの宛先設定(例:generic)を選択します。
endpoint
宛先のベース OTLP/HTTPS URL。
authHeaderName
資格情報を保持するHTTP ヘッダー(例:Authorization)。
authHeaderValue
資格情報自体ではなく、Cloud Manager秘密鍵への参照。
metrics
true時に指標の書き出しを有効にします。
logs
true時にアプリケーションログの書き出しを有効にします。

統合が有効になっている場合は、常に書き出しを追跡します。 指標とログはオプションです。 trueに設定されている場合にのみ書き出されます。

例えば、次のWKND サンプル設定を参照してください。

WKND サンプル設定

手順4:OpenTelemetry設定のデプロイ

  1. config/otel.yaml ファイルをコミットし、Config パイプラインがソースとして使用するリポジトリとブランチにプッシュします。
  2. Cloud Managerで、環境用に​ Config Pipeline ​を作成または編集し、その詳細を確認します。
    ​ パイプラインの詳細を設定
  3. パイプライン名を選択し、実行​をクリックします。
    設定パイプラインの実行
  4. パイプラインが正常に完了するまで実行を監視します。
    構成パイプラインの監視

パイプラインは、宛先設定を適用する前に設定を検証します。

ステップ 5:AEMトラフィックの生成

パイプラインが完了したら、次のアプリケーションアクティビティを生成します。

  1. AEM パブリッシュサービスでWKND サイトまたはアプリケーションを開き、数ページ間を移動します。
  2. オプションで、オーサーサービスでWKND サイトを開いて、オーサーのテレメトリを生成します。

テレメトリが観測可能なプラットフォームに到達するまで数分待ちます。

手順6:観測可能プラットフォームでのテレメトリの検証

観測可能性プラットフォームを開き、テレメトリを探します。 トレース、指標、ログを見つける手順は、プラットフォームによって異なります。 次のスクリーンショットは、Grafana ベースのオブザーバビリティ プラットフォーム ダッシュボードのものです。

AEM サービスを探す

次のようなAEM サービス名を検索します。

cm-p<program>-e<environment>-aem-publish-<environment-type>

このチュートリアルで使用するセルフホストプラットフォームでは、パブリッシュサービスのテレメトリは次のように表示されます。

WKND パブリッシュ サービス テレメトリを識別可能性プラットフォームで

トレースの検査

WKND ページリクエストに一致するインバウンド HTTP リクエストのスパンを探します。 トレースを開き、リクエスト名、期間、および関連するスパンを確認します。

オブザーバビリティ プラットフォームでの WKND リクエストトレース ​

指標の調査

設定がmetrics: trueを設定しているので、メモリ使用量、ガベージコレクション期間、スレッド数、HTTP リクエスト期間などのJVMおよびHTTP指標を探します。

オブザーバビリティ プラットフォームの WKND サービス指標

ログの調査

設定がlogs: trueに設定されているため、AEM アプリケーション ログの保存先を確認してください。 統合は、サポートされている重要度(WARN以上)のしきい値でログを書き出すため、通常のページ訪問では、そのレベルでログエントリが生成されない場合があります。

オブザーバビリティ プラットフォームに WKND サービスのログ ​

トラブルシューティング

Config Pipelineが失敗するか、テレメトリがオブザーバビリティ プラットフォームに表示されない場合は、パイプラインログを確認し、次の点を確認します。

症状
確認すべきこと
環境でOpenTelemetryが有効になっていません
AEM プログラムがOpenTelemetryの対象であり、この機能がターゲット環境で有効になっていることを確認します。 アクセスまたはプラットフォームの有効化が必要な場合は、Adobe サポートにお問い合わせください。
設定は無視されたようです
metadata.envTypesにターゲット環境タイプ (dev、stage、またはprod)が含まれていることを確認してください。 不一致が発生すると、設定がエラーなしでスキップされます。
秘密参照エラー
OTEL_CUSTOMER_AUTHがCloud Manager シークレット環境変数​として存在し、サービスが適用された​が​ すべて ​に設定されていることを確認します。 パイプライン変数であってはなりません。
認証エラー(401または403)
プロバイダーに必要な資格情報と認証ヘッダーを確認します。 例えば、New Relicでは、ユーザーAPI キーではなく、取り込みライセンスキーが必要です。
エンドポイントに到達できないか、資格情報の検証に失敗する
エンドポイント URL、地域、およびHTTPS接続を確認します。 安定したアウトバウンド IP アドレスを必要とするプライベート エンドポイントまたは宛先では、アドバンストネットワークをプロビジョニングして有効にする必要がある場合があります。
Dynatrace OneAgentの競合
Dynatrace OneAgentが環境上でアクティブになっている間は、OpenTelemetryを有効にすることはできません。 OpenTelemetryを設定する前に、既存の統合を削除する必要があります。
パイプラインは完了しますが、テレメトリは表示されません
データが到着するまで数分待ち、WKNDまたはその他の関連トラフィックを生成し、プロバイダーの取り込みステータスとservice.name個のフィルターを確認します。
ログが表示されない
logs: trueが設定されており、AEM アプリケーションがWARN レベル以上のログエントリを生成したことを確認します。
ログエントリの重複
OpenTelemetry ログの書き出しとAEM ログ転送が同じ宛先にログを送信しているかどうかを確認します。
内部システムエラー
設定パイプラインを再試行します。 エラーが解決しない場合は、パイプライン実行の詳細についてAdobe サポートにお問い合わせください。

問題が解決しない場合は、Adobe サポートに連絡し、AEM プログラム ID、環境ID、設定パイプライン実行ID、正確なエラーメッセージ、オブザーバビリティ プロバイダーの詳細を提供してください。 認証資格情報または秘密値を含めないでください。

その他の設定例とトラブルシューティング情報については、OpenTelemetry製品ドキュメント ​を参照してください。

次の手順

AEM as a Cloud Service用にOpenTelemetryを設定し、WKND サンプルアプリケーションのテレメトリがオブザーバビリティプラットフォームで使用できることを確認しました。

このテレメトリを使用して、低速または失敗したリクエストを調査し、JVMおよびHTTP パフォーマンスを監視し、アプリケーションログをトレースと関連付けて、AEM アプリケーションの動作をより詳細に把握できるようになりました。

アプリケーション固有のロジックのテレメトリを拡張するには、OpenTelemetryを使用したカスタムインストルメンテーション ​を参照してください。

追加の設定オプション、サポートされるオブザーバビリティ プロバイダー、ネットワーク要件については、OpenTelemetry製品ドキュメント ​を参照してください。

その他のリソース

recommendation-more-help
experience-manager-learn-help-cloud-service