このガイドでは、マネージド OpenTelemetry エージェントを使用して、ログ、トレース、メトリックを Datadog に転送するようにAzure Container Appsを構成する方法について説明します。
マネージド OpenTelemetry エージェントの詳細については、「Set up OpenTelemetry agents in Azure Container Apps」を参照してください。
学習内容
- テレメトリの取り込み用の Datadog API キーを作成します。
- Bicep、Azure CLI、または Azure ポータルを使用して、Container Apps 環境で Datadog の宛先を構成します。
- 既存の Container Apps 環境とアプリに構成の更新を適用します。
- Datadog でテレメトリを確認します。
前提条件
- リソース グループを作成してリソースをデプロイできるAzure サブスクリプションAzure Container Apps。
- Datadog 環境と API キー。
- Azure CLI がインストールされ、サインインされました。
- AZURE CONTAINER APPS CLI 拡張機能がインストールされています。
az extension add --name containerapp --upgrade
Datadog API キーを作成する
テレメトリの取り込みを許可するアクセス許可を持つ Datadog API キーを作成します。
Container Apps マネージド OTel 構成には、次の Datadog 値が必要です。
-
site(完全な Datadog サイト値 (例:datadoghq.com、us3.datadoghq.com、us5.datadoghq.com、datadoghq.eu) -
key(Datadog API キー)
Datadog キーの作成と管理については、 Datadog API とアプリケーション キーに関する説明を参照してください。
OpenTelemetry の送信先を設定する
次のいずれかのオプションを使用して、Container Apps 環境で Datadog を OpenTelemetry 変換先として構成します。
Important
マネージド OpenTelemetry の送信先を構成しても、テレメトリーが自動的に生成されるわけではありません。 また、OpenTelemetry SDK を使用してトレース、メトリック、ログを出力するようにアプリケーションをインストルメント化する必要があります。
デプロイ コマンドの CLI 変数を設定します。
$RESOURCE_GROUP = "<resource-group-name>"
$DATADOG_SITE = "<datadog-site>" # Example: us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu
$DATADOG_API_KEY = ""
$IMAGE = ""
$ACR_USERNAME = ""
$ACR_PASSWORD = ""
次の例のように、マネージド環境リソース ブロックを使用します。
param datadogSite string
@secure()
param datadogApiKey string
var datadogDestinationName = 'dataDog'
resource environment 'Microsoft.App/managedEnvironments@2024-10-02-preview' = {
name: ''
location: ''
properties: {
openTelemetryConfiguration: {
destinationsConfiguration: {
dataDogConfiguration: {
site: datadogSite
key: datadogApiKey
}
}
tracesConfiguration: {
destinations: [
datadogDestinationName
]
}
logsConfiguration: {
destinations: [
datadogDestinationName
]
}
metricsConfiguration: {
destinations: [
datadogDestinationName
]
}
}
}
}
次の例のようなコンテナー アプリ リソース ブロックを使用して、必要な環境変数を設定します。
resource app 'Microsoft.App/containerApps@2024-10-02-preview' = {
name: ''
location: ''
properties: {
managedEnvironmentId: environment.id
template: {
containers: [
{
name: ''
image: ''
env: [
{
name: 'OTEL_SERVICE_NAME'
value: ''
}
{
name: 'OTEL_TRACES_EXPORTER'
value: 'otlp'
}
{
name: 'OTEL_METRICS_EXPORTER'
value: 'otlp'
}
{
name: 'OTEL_LOGS_EXPORTER'
value: 'otlp'
}
{
name: 'OTEL_EXPORTER_OTLP_PROTOCOL'
value: 'grpc'
}
]
}
]
}
}
}
運用環境のデプロイでは、シークレットをハードコーディングするのではなく、セキュリティで保護されたBicep パラメーターまたはKey Vaultを介してトークン値を渡します。
テンプレートを更新した後、リポジトリ ルートからBicep構成をデプロイします。
az deployment group create `
--resource-group $RESOURCE_GROUP `
--template-file infra/main.bicep `
--parameters @infra/main.parameters.json `
image=$IMAGE `
acrUsername=$ACR_USERNAME `
acrPassword=$ACR_PASSWORD `
datadogSite="$DATADOG_SITE" `
datadogApiKey="$DATADOG_API_KEY"
これで、マネージド OpenTelemetry エージェントを介して Datadog にテレメトリを送信するようにコンテナー アプリが構成されました。
Datadog で OpenTelemetry データを確認する
構成が完了すると、コンテナー アプリは、マネージド OpenTelemetry エージェントを介して Datadog へのテレメトリの送信を開始します。 Datadog を使用して、ログ、トレース、メトリックがアプリケーションから到着していること、およびデータが想定されるサービスと環境のコンテキストの下に表示されることを確認します。
ログ探索、分散トレース、メトリック検索などの Datadog ツールを確認して、結果を検証します。 正確なクエリまたはナビゲーション パスは、検査するデータによって異なります。
Datadog でのデータ探索の詳細については、 Datadog の可観測性とテレメトリに関するページを参照してください。