Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Handbuch wird gezeigt, wie Sie Azure Container Apps so konfigurieren, dass Protokolle, Ablaufverfolgungen und Metriken mithilfe des verwalteten OpenTelemetry-Agents an Dynatrace weitergeleitet werden.
Weitere Informationen zum verwalteten OpenTelemetry-Agent finden Sie unter Set up OpenTelemetry agents in Azure Container Apps.
Was Sie lernen
- Erstellen Sie ein Dynatrace-Token zum Einbinden mit den erforderlichen Bereichen.
- Konfigurieren Sie ein Dynatrace OpenTelemetry Protocol (OTLP)-Ziel mithilfe von Bicep oder dem Azure-Portal.
- Konfigurieren Sie erforderliche App-Umgebungsvariablen für den Metrikexport.
- Wenden Sie Konfigurationsupdates auf Ihre vorhandene Container-Apps-Umgebung und -App an.
- Überprüfen Sie die Telemetrie in Dynatrace.
Voraussetzungen
- Ein Azure-Abonnement, in dem Sie Ressourcengruppen erstellen und Azure Container Apps Ressourcen bereitstellen können.
- Eine Dynatrace SaaS-Umgebung.
- Azure CLI installiert und angemeldet.
- Azure Container Apps CLI-Erweiterung installiert.
az extension add --name containerapp --upgrade
Erstellen Sie ein Dynatrace-Ingest-Token
Erstellen Sie ein Dynatrace-API-Token mit den folgenden Bereichen:
logs.ingestmetrics.ingestopenTelemetryTrace.ingest
Anweisungen zur Tokenerstellung und Berechtigungsdetails finden Sie unter Dynatrace OTLP-Authentifizierungsleitfaden.
Konfigurieren von OpenTelemetry-Zielen
Verwenden Sie eine der folgenden Optionen, um Dynatrace als OpenTelemetry-Endpunkt in Ihrer Container-Apps-Umgebung zu konfigurieren.
Important
Das Konfigurieren eines verwalteten OpenTelemetry-Ziels erzeugt nicht automatisch Telemetrie. Ihre Anwendung muss außerdem so instrumentiert sein, dass sie Traces, Metriken und Protokolle mit Hilfe eines OpenTelemetry SDKs ausgibt.
Festlegen von CLI-Variablen für den Bereitstellungsbefehl:
$RESOURCE_GROUP = "<RESOURCE_GROUP_NAME>"
$DYNATRACE_OTLP_ENDPOINT = "https://<TENANT>.live.dynatrace.com/api/v2/otlp"
$DYNATRACE_API_TOKEN = "<DYNATRACE_INGEST_TOKEN>"
Verwenden Sie nur den OTLP-Basisendpunkt (/api/v2/otlp). Hängen Sie /v1/traces, /v1/metrics oder /v1/logs nicht an; der verwaltete Agent fügt Signalpfade automatisch an.
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@2024-10-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
]
}
}
}
}
Verwenden Sie zum Festlegen der erforderlichen Umgebungsvariablen einen Container-App-Ressourcenblock wie das folgende Beispiel:
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 benötigt OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=DELTA zur Erfassung von Metriken.
Für die Bereitstellung in der Produktion sollten Sie Token-Werte über sichere Bicep-Parameter oder Key Vault weitergeben, anstatt Secrets fest zu kodieren.
Nachdem Sie die Vorlage aktualisiert haben, stellen Sie die Bicep-Konfiguration im Stammverzeichnis des Repositorys bereit:
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"
Verwenden Sie die gleichen Endpunkt- und Tokenwerte, die weiter oben in dieser Anleitung gezeigt wurden, einschließlich des OTLP-Basisendpunktformats.
Ihre Container-App ist jetzt so konfiguriert, dass Telemetrie an Dynatrace gesendet wird.
Überprüfen von OpenTelemetry-Daten in Dynatrace
Nachdem Sie die Konfiguration abgeschlossen haben, sollte Ihre Container-App mit dem Senden von Telemetrie an Dynatrace über den verwalteten OpenTelemetry-Agent beginnen. Die schnellste Möglichkeit, zu bestätigen, dass Metriken, Protokolle und Ablaufverfolgungen von Ihrer Anwendung stammen, besteht darin, die Services-App in Dynatrace zu öffnen. Die Dienst-App stellt einen einzelnen Bildschirm bereit, auf dem Sie alle drei Telemetriesignale für Ihren Dienst an einer zentralen Stelle überprüfen können.
So überprüfen Sie Ihre Telemetrie:
- Öffnen Sie die Services-App in Dynatrace.
- Suchen Sie Ihren Container-App-Dienst, und bestätigen Sie, dass Metriken, Protokolle und Ablaufverfolgungen für den erwarteten Dienst- oder Umgebungskontext vorhanden sind.
Wenn Sie Hintergrundinformationen dazu benötigen, wie OpenTelemetry-Daten in Dynatrace aufgenommen werden, lesen Sie den Leitfaden für die ersten Schritte in OpenTelemetry.
Wenn Telemetrie fehlt oder nicht wie erwartet angezeigt wird, lesen Sie das Handbuch zur Problembehandlung in OpenTelemetry.