python-lambda-openai-demo
Monitor OpenAI API calls inside AWS Lambda with Datadog — including PII awareness.
🎯Purpose
This demo shows how to instrument AWS Lambda functions that call OpenAI, using Datadog's Lambda Extension for tracing and metrics collection — without a traditional sidecar agent.
The core problem: Serverless functions run in ephemeral containers managed by AWS. You can't install a persistent Datadog Agent alongside them. Datadog solves this with a Lambda Extension — a lightweight process that runs in the same Lambda execution environment, collecting traces and metrics without needing a separate container.
🏗️How It Works — Architecture
Python
GPT model
Extension
same env
The Lambda Extension is included as a Lambda Layer. It starts alongside your function handler and intercepts telemetry before the execution environment shuts down. The @tracer.wrap() decorator creates APM spans around any Python function automatically.
💡Key Concepts
- Lambda Extension: A sidecar process running in the Lambda execution environment — collects traces and metrics without a separate container.
- Lambda Layer: A ZIP package containing the Datadog tracer library + extension binary, attached to your function.
- @tracer.wrap(): A Python decorator that automatically creates an APM span for any function — start time, end time, errors, all captured.
- PII (Personally Identifiable Information): Data like emails or names that must not appear in traces unmasked. This demo shows how to handle it.
- MockPIIAPI vs MockPIIAPI_Tracer: Two versions — one uses UDP metrics without the SDK, the other uses the full tracer SDK with
@tracer.wrap.
🚀Quick Start
- Package the function:
zip function.zip MockPIIAPI_Tracer.py
- Deploy to Lambda:
aws lambda update-function-code --function-name your-fn --zip-file fileb://function.zip
- Add the Datadog Lambda Layer to your function in the AWS console.
- Set environment variables:
DD_API_KEY,DD_SITE,DD_TRACE_ENABLED=true - Invoke the function and check Datadog APM.
📊What You'll See in Datadog
Go to APM → Traces and filter:
service:lambda-demoYou'll see spans for the Lambda invocation and child spans for each OpenAI API call wrapped with @tracer.wrap().
python-lambda-openai-demo
DatadogのLambda Extensionを使ってAWS LambdaのOpenAI呼び出しを監視します(PII対応含む)。
🎯目的
このデモは、Datadog Lambda ExtensionでOpenAIを呼び出すAWS Lambda関数を計装する方法を示します。従来のサイドカーエージェントは不要です。
核心的な問題: サーバーレス関数はAWSが管理するエフェメラルコンテナで動作します。永続的なDatadogエージェントをインストールできません。Lambda Extensionは同じLambda実行環境内で動作する軽量プロセスで、別コンテナなしでトレースとメトリクスを収集します。
🏗️仕組み — アーキテクチャ
Python
GPT model
Extension
same env
Lambda ExtensionはLambda Layerとして含まれています。関数ハンドラーと同時に起動し、実行環境がシャットダウンする前にテレメトリをインターセプトします。@tracer.wrap()デコレーターで任意のPython関数にAPMスパンを自動生成できます。
💡重要な概念
- Lambda Extension: Lambda実行環境内で動くサイドカープロセス。別コンテナなしでトレースとメトリクスを収集します。
- Lambda Layer: DatadogトレーサーライブラリとExtensionバイナリを含むZIPパッケージ。
- @tracer.wrap(): 任意の関数のAPMスパンを自動生成するPythonデコレーター。
- PII(個人識別情報): メールや名前など、マスクせずにトレースに含めてはいけないデータ。
- MockPIIAPI vs MockPIIAPI_Tracer: 2つのバージョン — UDPメトリクスのみとフルSDK(
@tracer.wrap)。
🚀クイックスタート
- 関数をパッケージ:
zip function.zip MockPIIAPI_Tracer.py
- Lambdaにデプロイ:
aws lambda update-function-code --function-name your-fn --zip-file fileb://function.zip
- AWSコンソールでDatadog Lambda Layerを追加します。
- 環境変数を設定:
DD_API_KEY、DD_SITE、DD_TRACE_ENABLED=true - 関数を呼び出してDatadog APMを確認します。
📊Datadogで確認できること
APM → トレースでフィルタリング:
service:lambda-demoLambda呼び出しのスパンと、@tracer.wrap()でラップされた各OpenAI API呼び出しの子スパンが表示されます。
python-lambda-openai-demo
使用 Datadog Lambda Extension 監控 AWS Lambda 中的 OpenAI API 呼叫,包括 PII 處理。
🎯目的
本示範展示如何使用 Datadog Lambda Extension 對呼叫 OpenAI 的 AWS Lambda 函數進行追蹤和指標收集,無需傳統的 sidecar agent。
核心問題:無伺服器函數在 AWS 管理的短暫容器中運行,無法安裝持久的 Datadog Agent。Lambda Extension 是在同一 Lambda 執行環境中運行的輕量程序,無需獨立容器即可收集追蹤和指標。
🏗️運作方式 — 架構
Python
GPT model
Extension
same env
Lambda Extension 作為 Lambda Layer 包含在函數中。它與函數處理程序同時啟動,在執行環境關閉前攔截遙測資料。@tracer.wrap() 裝飾器自動為任何 Python 函數建立 APM span。
💡核心概念
- Lambda Extension:在 Lambda 執行環境中運行的 sidecar 程序,無需獨立容器即可收集追蹤和指標。
- Lambda Layer:包含 Datadog tracer 函式庫和 Extension 二進位的 ZIP 套件,附加到您的函數。
- @tracer.wrap():自動為任何函數建立 APM span 的 Python 裝飾器。
- PII(個人識別資訊):電子郵件或姓名等不應在追蹤中以明文出現的資料。
- MockPIIAPI vs MockPIIAPI_Tracer:兩個版本——僅 UDP 指標與完整 SDK(包含
@tracer.wrap)。
🚀快速開始
- 打包函數:
zip function.zip MockPIIAPI_Tracer.py
- 部署到 Lambda:
aws lambda update-function-code --function-name your-fn --zip-file fileb://function.zip
- 在 AWS 主控台將 Datadog Lambda Layer 新增到您的函數。
- 設定環境變數:
DD_API_KEY、DD_SITE、DD_TRACE_ENABLED=true - 呼叫函數並查看 Datadog APM。
📊在 Datadog 中會看到什麼
前往 APM → Traces 並篩選:
service:lambda-demo您將看到 Lambda 呼叫的 span 以及每個用 @tracer.wrap() 包裝的 OpenAI API 呼叫的子 span。