ObservabilityOntology and AIP observabilityロギングとデバッグ

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

サービスログとデバッグ

詳細なログ情報にアクセスするには、特定の実行でログの詳細を表示オプションを選択した後、詳細ビューに移動します。

サービスログには、次の情報が含まれます。

  • 時系列のログエントリー: 実行中に生成されたすべてのログメッセージ。
  • ログレベル: INFO、WARN、ERROR、DEBUG、TRACE のメッセージ。
  • カスタムログメッセージ: 関数やモデル内の console.log() またはログ出力ステートメントによるメッセージ。

サービスログを表示した Workflow Lineage の例

必要な権限

トレースとサービスログを閲覧するには、管理者が該当するプロジェクトのログアクセスを有効にする必要があります。ユーザーは、過去24時間以内の自身の実行ログに常にアクセスできます。ただし、CBAC スタックでは、トレースとサービスログを閲覧するためにログアクセスを有効にする必要があります。

ログを絞り込む

特定のログレベルで絞り込むには、テーブル上部のログレベルセレクターを使用します。

サービスログフィルターを表示した Workflow Lineage の例

利用可能なログレベル:

  • ERROR: エラーメッセージとスタックトレース
  • WARN: 潜在的な問題に関する警告
  • INFO: 実行フローに関する一般情報
  • DEBUG: 詳細なデバッグ情報
  • TRACE: 詳細なトレース情報

ログエントリーの詳細をすべて表示するには、コンテンツフィールドを選択します。

サービスログの詳細を表示した Workflow Lineage の例

関数内で効果的なログを出力する

効果的なログ出力は、問題を迅速にデバッグし、本番環境での関数の動作を理解するのに役立ちます。次のベストプラクティスに従ってください。

適切なログレベルを選択する

  • INFO: 通常の処理フローや主要な業務イベントに使用します。
  • WARN: 回復可能な問題や、実行を妨げない予期しない状況に使用します。
  • ERROR: 通常の処理を妨げる障害に使用します。
  • DEBUG: 詳細な診断情報に使用します(本番環境では使用を避けてください)。

関連するコンテキストを含める

何が起きたかを理解するのに役立つ識別子や関連データを含めることを推奨します。

Copied!
1 2 3 4 5 // TypeScript v1 の例 - 適切なログ記録の方法 console.log("Processing order", orderId, "for user", userId); // 関連する ID を含めます console.log("Retrieved", results.length, "items from Ontology"); // 件数やメトリクスを含めます console.warn("Retry attempt", attemptNumber, "of", maxRetries, "for operation", operationId); // 再試行のコンテキストを含めます console.error("Failed to process order", orderId, "Error:", error.message); // エラーの詳細を含めます
Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import { logs } from "@opentelemetry/api-logs"; const logger = logs.getLogger("my-function"); // TypeScript v2 の例 - 適切なログ記録の方法 logger.emit({ severityText: "INFO", attributes: { LOG_MESSAGE: `Processing order ${orderId} for user ${userId}` }, // 関連する ID を含めます body: { orderId, userId }, }); logger.emit({ severityText: "WARN", attributes: { LOG_MESSAGE: `Retry attempt ${attemptNumber} of ${maxRetries} for operation ${operationId}` }, // 再試行のコンテキストを含めます body: { attemptNumber, maxRetries, operationId }, }); logger.emit({ severityText: "ERROR", attributes: { LOG_MESSAGE: `Failed to process order ${orderId}. Error: ${error.message}` }, // エラーの詳細を含めます body: { orderId, error: error.message }, });

機密データのログ出力を避ける

セキュリティを損なうおそれのある機密情報は、決してログに出力しないでください。

Copied!
1 2 3 4 5 6 7 // ❌ このようにしないでください console.log("User credentials", username, password); console.log("API response", fullApiResponse); // 機密データが含まれている可能性があります // ✅ 代わりにこのようにします console.log("Authentication attempt for user", username); console.log("API call completed with status", response.status);

関連項目

  • ログ検索:Workflow Lineage 内の実行可能なリソースと実行を横断してログを検索します。
  • ログ権限:ログを閲覧できるユーザーを設定します。
  • トレースビュー:ログと実行タイムラインを関連付けます。