Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide montre comment configurer Azure Container Apps pour transférer des journaux, des suivis et des métriques vers Dynatrace à l’aide de l’assistant OpenTelemetry géré.
Pour plus d’informations sur l’agent OpenTelemetry managé, consultez Set up OpenTelemetry agents in Azure Container Apps.
Ce que vous apprenez
- Créez un jeton d’ingestion Dynatrace avec les étendues requises.
- Configurez une destination OTLP (Dynatrace OpenTelemetry Protocol) à l’aide de Bicep ou du portail Azure.
- Configurez les variables d’environnement d’application requises pour l’exportation des métriques.
- Appliquez des mises à jour de configuration à votre environnement et application Container Apps existants.
- Vérifiez la télémétrie dans Dynatrace.
Prerequisites
- Un abonnement Azure dans lequel vous pouvez créer des groupes de ressources et déployer des ressources Azure Container Apps.
- Un environnement SaaS Dynatrace.
- Azure CLI installé et connecté.
- Azure Container Apps extension CLI installée.
az extension add --name containerapp --upgrade
Créer un jeton d’ingestion Dynatrace
Créez un jeton d’API Dynatrace avec ces étendues :
logs.ingestmetrics.ingestopenTelemetryTrace.ingest
Pour connaître les étapes de création de jetons et les détails de l’autorisation, consultez les instructions d’authentification Dynatrace OTLP.
Configurer des destinations OpenTelemetry
Utilisez l’une des options suivantes pour configurer Dynatrace en tant que point de terminaison OpenTelemetry dans votre environnement Container Apps.
Important
La configuration d’une destination OpenTelemetry managée ne produit pas automatiquement de données de télémétrie. Votre application doit également être instrumentée pour émettre des suivis, des métriques et des journaux à l’aide d’un Kit de développement logiciel (SDK) OpenTelemetry.
Définissez les variables CLI pour la commande de déploiement :
$RESOURCE_GROUP = "<RESOURCE_GROUP_NAME>"
$DYNATRACE_OTLP_ENDPOINT = "https://<TENANT>.live.dynatrace.com/api/v2/otlp"
$DYNATRACE_API_TOKEN = "<DYNATRACE_INGEST_TOKEN>"
Utilisez uniquement le point de terminaison de base OTLP (/api/v2/otlp). N’ajoutez pas /v1/traces, /v1/metrics ni /v1/logs ; l’agent géré ajoute automatiquement les chemins de signalisation.
var dynatraceEndpoint = 'https://<TENANT>.live.dynatrace.com/api/v2/otlp'
var dynatraceApiKey = '<DYNATRACE_INGEST_TOKEN>'
var dynatraceAuthHeader = 'Api-Token ${dynatraceApiKey}'
var dynatraceOtlpDestinationName = 'dynatrace-otlp'
resource environment 'Microsoft.App/managedEnvironments@2026-03-02-preview' = {
name: '<managed-environment-name>'
location: '<region>'
properties: {
openTelemetryConfiguration: {
destinationsConfiguration: {
otlpConfigurations: [
{
name: dynatraceOtlpDestinationName
endpoint: dynatraceEndpoint
protocol: 'http'
insecure: false
headers: [
{
key: 'Authorization'
value: dynatraceAuthHeader
}
]
}
]
}
tracesConfiguration: {
destinations: [
dynatraceOtlpDestinationName
]
}
logsConfiguration: {
destinations: [
dynatraceOtlpDestinationName
]
}
metricsConfiguration: {
destinations: [
dynatraceOtlpDestinationName
]
}
}
}
}
Pour définir les variables d’environnement requises, utilisez un bloc de ressources d’application conteneur comme dans l’exemple suivant :
resource app 'Microsoft.App/containerApps@2023-05-01' = {
name: '<CONTAINER_APP_NAME>'
location: '<REGION>'
properties: {
managedEnvironmentId: environment.id
template: {
containers: [
{
name: '<CONTAINER_NAME>'
image: '<IMAGE_NAME>'
env: [
{
name: 'OTEL_SERVICE_NAME'
value: '<SERVICE_NAME>'
}
{
name: 'OTEL_TRACES_EXPORTER'
value: 'otlp'
}
{
name: 'OTEL_METRICS_EXPORTER'
value: 'otlp'
}
{
name: 'OTEL_LOGS_EXPORTER'
value: 'otlp'
}
{
name: 'OTEL_EXPORTER_OTLP_METRICS_PROTOCOL'
value: 'http/protobuf'
}
{
name: 'OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE'
value: 'DELTA'
}
]
}
]
}
}
}
Dynatrace nécessite OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=DELTA pour ingérer des métriques.
Pour les déploiements de production, transmettez des valeurs de jeton via des paramètres de Bicep sécurisés ou des Key Vault au lieu de coder en dur les secrets.
Après avoir mis à jour le modèle, déployez la configuration Bicep à partir de la racine du référentiel :
az deployment group create `
--resource-group $RESOURCE_GROUP `
--template-file infra/main.bicep `
--parameters @infra/main.parameters.json `
dynatraceEndpoint="$DYNATRACE_OTLP_ENDPOINT" `
dynatraceApiKey="$DYNATRACE_API_TOKEN"
Utilisez les mêmes valeurs de point de terminaison et de jeton indiquées précédemment dans ce guide, y compris le format de point de terminaison de base OTLP.
Votre application conteneur est maintenant configurée pour envoyer des données de télémétrie à Dynatrace.
Vérifier les données OpenTelemetry dans Dynatrace
Une fois la configuration terminée, votre application conteneur doit commencer à envoyer des données de télémétrie à Dynatrace via l’agent OpenTelemetry géré. Le moyen le plus rapide de confirmer que les métriques, les journaux d'activité et les traces viennent tous de votre application consiste à ouvrir l’application Services dans Dynatrace. L’application Services fournit un seul écran dans lequel vous pouvez valider les trois signaux de télémétrie pour votre service en un seul endroit.
Pour vérifier vos données de télémétrie :
- Ouvrez l’application Services dans Dynatrace.
- Localisez votre service Container App et vérifiez que les métriques, les journaux et les traces sont présents pour le service ou le contexte d’environnement attendu.
Si vous avez besoin d’un arrière-plan sur la façon dont les données OpenTelemetry sont ingérées dans Dynatrace, consultez le guide de prise en main d’OpenTelemetry.
Si la télémétrie est manquante ou n’apparaît pas comme prévu, consultez le guide de résolution des problèmes d’OpenTelemetry.