Function Compute は Alibaba Cloud Managed Service for OpenTelemetry と統合されています。このサービスは、デファクトスタンダードである W3C プロトコルである OpenTelemetry に基づいており、分散アプリケーションのパフォーマンスボトルネックを特定および診断するのに役立ちます。この統合により、サーバーレスアーキテクチャにおける開発者と O&M の効率が大幅に向上します。このトピックでは、関数のトレース分析を有効にし、関数の呼び出しチェーン情報を表示して、エンドツーエンドのリクエストモニタリングとパフォーマンス分析を実行する方法について説明します。
背景情報
サーバーレスアーキテクチャでは、従来のロギング方法では、呼び出しチェーンのトレースやパフォーマンスの分析には不十分なことがよくあります。これにより、次のような問題点が生じます。
コールドスタートのレイテンシの特定が困難:ログをつなぎ合わせる必要があり、システムとビジネスのレイテンシを区別することが困難になります。
サービス間の呼び出しが切断される:コンテキストが壊れていると、完全なトレースを再構築できません。
視覚的な分析機能の欠如:パフォーマンスボトルネックを正確に特定することが困難です。
システムの可観測性と O&M 効率を向上させるため、Function Compute は Managed Service for OpenTelemetry を使用して、エンドツーエンドの可観測性機能を強化しました。エンドツーエンドのトレースには W3C ヘッダーのパススルーを使用し、スパンのセグメンテーションをサポートしています。これにより、呼び出しパスの可視化とパフォーマンス問題の迅速な特定が可能になります。
メリット
エンドツーエンドの透明性
FC システムレベルのスパンのパススルーと、カスタムビジネススパンとシステムスパンの自動連結をサポートし、エンドツーエンドのトレースビューを形成します。このプロセスにより、コールドスタートのレイテンシやリソース競合などの潜在的なパフォーマンスボトルネックが明らかになります。
環境間の相互運用性
このサービスは、`traceparent`、`tracestate`、`baggage` などのヘッダーと互換性があります。これにより、FC 関数と、データベースやメッセージキューなどのダウンストリームサービスとの間で、コンテキストが失われることなく伝送されます。
また、関数、Alibaba Cloud サービス、および他のクラウドベンダー間でのトレースコンテキストのパススルーもサポートしており、既存の OpenTelemetry エコシステムのツールチェーンとのシームレスな統合が可能です。
動的なコスト管理
関数の構成でサンプルレートを調整できます。低負荷のサンプリングでは 1% から、トラブルシューティングでは 100% までレートを設定して、データ量とリソースのオーバーヘッドのバランスを取ることができます。
課金
Function Compute は、トレース分析を有効にしても追加料金は発生しません。ただし、Alibaba Cloud Managed Service for OpenTelemetry は、レポートするトレースデータの量に基づいて別途課金されます。
前提条件
関数を作成し、そのロギング機能を有効化していること。
Alibaba Cloud Tracing Analysis を有効化していること。このサービスを有効化していない場合は、Alibaba Cloud アカウントで Alibaba Cloud Tracing Analysis コンソールにログインして有効化してください。
トレース分析の有効化
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーでリージョンを選択します。[関数] ページで、対象の関数をクリックします。
[関数詳細] ページで、[トレース分析] タブをクリックします。[トレース分析] スイッチをオンにし、[サンプルレート] を設定してから、[OK] をクリックします。

関数呼び出しチェーン情報の表示
[関数詳細] ページで、[コード] タブをクリックします。コードが正しいことを確認した後、[関数のテスト] をクリックします。
[トレース分析] タブをクリックして、詳細な呼び出しチェーン分析を表示します。
たとえば、CP クライアントが Amap 天気予報 CP サーバーを呼び出すシナリオでは、完全な呼び出しチェーン情報を明確に表示できます。この情報には、コールドスタートプロセス、SSE 接続、メッセージ通信、エージェント呼び出しが含まれます。
次の図に示すように、呼び出しチェーン分析ページで、対象の TraceId をクリックします。

右側に表示されるパネルで、コールドスタートの期間を確認できます。`PrepareCode` の時間が予想よりも長い場合は、コードパッケージを簡素化できます。

Function Compute が分散トレースのエンドポイントとして機能する場合、トレース分析はアップストリームとダウンストリームのサービスを接続して、各ステップでのリクエストのレイテンシを表示できます。これにより、`cp-client` と `cp-server` のエンドポイントが接続されます。
