Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuDen här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
Med hjälp av en OpenTelemetry-dataagent med din Azure Container Apps-miljö kan du välja att skicka observerbarhetsdata i ett OpenTelemetry-format genom att:
Skicka data från en agent till en önskad slutpunkt. Målalternativen är Azure Monitor Application Insights, Datadog och alla OTLP-kompatibla slutpunkter (OpenTelemetry Protocol).
Ändra enkelt målslutpunkter utan att behöva konfigurera om hur de genererar data och utan att behöva köra en OpenTelemetry-agent manuellt.
Den här artikeln visar hur du konfigurerar en OpenTelemetry-agent för din containerapp.
OpenTelemetry-agenter finns i din containerappmiljö. Du konfigurerar agentinställningar via en ARM-mall eller Bicep-anrop till miljön, eller via CLI eller via Terraform (via AzAPI-providern).
Varje slutpunktstyp (Azure Monitor Application Insights, DataDog och OTLP) har specifika konfigurationskrav.
Att aktivera den hanterade OpenTelemetry-agenten i din miljö innebär inte automatiskt att agenten samlar in data. Agenter skickar endast data baserat på dina konfigurationsinställningar och instrumenterar koden korrekt.
Förbered ditt program för att samla in data genom att installera OpenTelemetry SDK och följa Riktlinjerna för OpenTelemetry för att instrumentera mått, loggar eller spårningar.
Innan du kan skicka data till ett insamlingsmål måste du först skapa en instans av måltjänsten. Om du till exempel vill skicka data till Azure Monitor Application Insights måste du skapa en Application Insights-instans i förväg.
Den hanterade OpenTelemetry-agenten accepterar följande mål:
I följande tabell visas vilken typ av data du kan skicka till varje mål:
Mål | Loggar | Mått | Spårningar |
---|---|---|---|
Azure App Insights | Ja | No | Ja |
Datadog | Nej | Ja | Ja |
OpenTelemetry Protocol (OTLP) konfigurerad slutpunkt | Ja | Ja | Ja |
Den enda konfigurationsinformation som krävs från Application Insights är anslutningssträng. När du har anslutningssträng kan du konfigurera agenten via containerappens ARM-mall med Azure CLI-kommandon eller Terraform.
Anslutningssträng innehåller en instrumentationsnyckel, som är en unik identifierare som används för att associera telemetri till en specifik Application Insights-resurs. Instrumenteringsnycklar är inte säkerhetstoken eller säkerhetsnycklar och betraktas inte som hemligheter.
Om du vill skydda din Application Insights-resurs från missbruk läser du Microsoft Entra-autentisering för Application Insights. Application Insights-resursen måste dock tillåta lokal autentisering för att ta emot data från OpenTelemetry-dataagenten.
Innan du distribuerar den här mallen <PLACEHOLDERS>
ersätter du med dina värden.
{
...
"properties": {
"appInsightsConfiguration ": {
"connectionString": "<APP_INSIGHTS_CONNECTION_STRING>"
}
"openTelemetryConfiguration": {
...
"tracesConfiguration":{
"destinations": ["appInsights"]
},
"logsConfiguration": {
"destinations": ["appInsights"]
}
}
}
}
Datadog-agentkonfigurationen kräver ett värde för site
och key
från din Datadog-instans. Samla in dessa värden från din Datadog-instans enligt den här tabellen:
Datadog-agentegenskap | Konfigurationsegenskap för Container Apps |
---|---|
DD_SITE |
site |
DD_API_KEY |
key |
När du har den här konfigurationsinformationen kan du konfigurera agenten via containerappens ARM- eller Bicep-mall eller med Azure CLI-kommandon.
Undvik att ange värdet för en hemlighet, till exempel din Datadog API-nyckel, direkt i en produktionsmiljö. Använd i stället en referens till en hemlighet som lagras i Azure Key Vault.
Du måste aktivera nyckelvalvet för malldistribution. Det gör du genom att skapa nyckelvalvet med enabledForTemplateDeployment
egenskapen aktiverad eller köra följande Azure CLI-kommando <KEY_VAULT_NAME>
och ersätta med ditt värde:
az keyvault update --name <KEY_VAULT_NAME> --enabled-for-template-deployment true
Mer information finns i:
Skapa en parameterfil för att hämta din Datadog API-nyckel från ett Azure Key Vault.
Innan du distribuerar följande filer ersätter <PLACEHOLDERS>
du med dina värden.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"datadogapikey": {
"reference": {
"keyVault": {
"id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT_NAME>"
},
"secretName": "<KEY_VAULT_SECRET_NAME>"
}
}
}
}
Nu kan du referera till parametern datadogapikey
i ARM-mallen.
{
...
"parameters": {
"datadogapikey": {
"type": "securestring"
}
},
"properties": {
...
"openTelemetryConfiguration": {
...
"destinationsConfiguration":{
...
"dataDogConfiguration":{
"site": "<YOUR_DATADOG_SUBDOMAIN>.datadoghq.com",
"key": "<YOUR_DATADOG_KEY>"
}
},
"tracesConfiguration":{
"destinations": ["dataDog"]
},
"metricsConfiguration": {
"destinations": ["dataDog"]
}
}
}
}
Om du vill distribuera resursen kör du följande Azure CLI-kommando och <PLACEHOLDERS>
ersätter med dina värden.
az deployment group create \
--resource-group <RESOURCE_GROUP> \
--template-file <ARM_TEMPLATE_FILE> \
--parameters <PARAMETER_FILE>
En Slutpunkt för OpenTelemetry Protocol (OTLP) är ett telemetridatamål som använder OpenTelemetry-data. I programkonfigurationen kan du lägga till flera OTLP-slutpunkter. I följande exempel läggs två slutpunkter till och följande data skickas till dessa slutpunkter.
Slutpunktnamn | Data som skickas till slutpunkten |
---|---|
oltp1 |
Mått och/eller spårningar |
oltp2 |
Loggar och/eller spårningar |
Du kan konfigurera så många OTLP-konfigurerade slutpunkter som du vill, men varje slutpunkt måste ha ett distinkt namn.
{
"properties": {
"appInsightsConfiguration": {},
"openTelemetryConfiguration": {
"destinationsConfiguration":{
"otlpConfigurations": [
{
"name": "otlp1",
"endpoint": "ENDPOINT_URL_1",
"insecure": false,
"headers": "api-key-1=key"
},
{
"name": "otlp2",
"endpoint": "ENDPOINT_URL_2",
"insecure": true
}
]
},
"logsConfiguration": {
"destinations": ["otlp2"]
},
"tracesConfiguration":{
"destinations": ["otlp1", "otlp2"]
},
"metricsConfiguration": {
"destinations": ["otlp1"]
}
}
}
}
Name | beskrivning |
---|---|
resource-group |
Namnet på resursgruppen. Du kan konfigurera standardgruppen med .az configure --defaults group=<NAME> |
name |
Namnet på Container Apps-miljön. |
otlp-name |
Ett namn som du väljer för att identifiera din OTLP-konfigurerade slutpunkt. |
endpoint |
URL:en för målet som tar emot insamlade data. |
insecure |
Standard sant. Definierar om du vill aktivera klienttransportsäkerhet för exportörens gRPC-anslutning. Om det är falskt krävs parametern headers . |
headers |
Blankstegsavgränsade värden i formatet "key=value" som ger nödvändig information för OTLP-slutpunkternas säkerhet. Exempel: "api-key=key other-config-value=value" . |
Om du vill konfigurera en agent använder du matrisen destinations
för att definiera vilka agenter programmet skickar data till. Giltiga nycklar är antingen appInsights
, dataDog
eller namnet på din anpassade OTLP-slutpunkt. Du kan styra hur en agent beter sig baserat på datatyp och slutpunktsrelaterade alternativ.
Alternativ | Exempel |
---|---|
Välj en datatyp. | Du kan konfigurera loggar, mått och/eller spårningar individuellt. |
Aktivera eller inaktivera alla datatyper. | Du kan välja att endast skicka spårningar och inga andra data. |
Skicka en datatyp till flera slutpunkter. | Du kan skicka loggar till både DataDog och en OTLP-konfigurerad slutpunkt. |
Skicka olika datatyper till olika platser. | Du kan skicka spårningar till en OTLP-slutpunkt och mått till DataDog. |
Inaktivera sändning av alla datatyper. | Du kan välja att inte skicka några data via OpenTelemetry-agenten. |
Följande ARM-exempelmall visar hur du använder en OTLP-slutpunkt med namnet customDashboard
. Den skickar:
customDashboard
customDashboard
customDashboard
{
...
"properties": {
...
"openTelemetryConfiguration": {
...
"tracesConfiguration": {
"destinations": [
"appInsights",
"customDashboard"
]
},
"logsConfiguration": {
"destinations": [
"appInsights",
"customDashboard"
]
},
"metricsConfiguration": {
"destinations": [
"dataDog",
"customDashboard"
]
}
}
}
}
Följande exempelmall visar hur du kan konfigurera containerappen för att samla in telemetridata med hjälp av Azure Monitor Application Insights, Datadog och med en anpassad OTLP-agent med namnet customDashboard
.
Det här exemplet fungerar med parameterfilen som används för att hämta Datadog API-nyckeln från ett Azure Key Vault.
Innan du distribuerar den här mallen <PLACEHOLDERS>
ersätter du med dina värden.
{
"location": "eastus",
"properties": {
"appInsightsConfiguration": {
"connectionString": "<APP_INSIGHTS_CONNECTION_STRING>"
},
"openTelemetryConfiguration": {
"destinationsConfiguration": {
"dataDogConfiguration": {
"site": "datadoghq.com",
"key": "parameters('datadogapikey')]"
},
"otlpConfigurations": [
{
"name": "customDashboard",
"endpoint": "<OTLP_ENDPOINT_URL>",
"insecure": true
}
]
},
"tracesConfiguration": {
"destinations": [
"appInsights",
"customDashboard"
]
},
"logsConfiguration": {
"destinations": [
"appInsights",
"customDashboard"
]
},
"metricsConfiguration": {
"destinations": [
"dataDog",
"customDashboard"
]
}
}
}
}
Mer information finns i Microsoft.App/managedEnvironments.
OpenTelemetry-agenten matar automatiskt in en uppsättning miljövariabler i ditt program vid körning.
De två första miljövariablerna följer standardkonfigurationen för OpenTelemetry-exportören och används i OTLP-standardpaket för programvaruutveckling. Om du uttryckligen anger miljövariabeln i containerappspecifikationen skriver ditt värde över det automatiskt inmatade värdet.
Läs mer om konfigurationen av OTLP-exportören i KONFIGURATION av OTLP-exportör.
Name | beskrivning |
---|---|
OTEL_EXPORTER_OTLP_ENDPOINT |
En basslutpunkts-URL för valfri signaltyp, med ett valfritt angivet portnummer. Den här inställningen är användbar när du skickar mer än en signal till samma slutpunkt och vill att en miljövariabel ska styra slutpunkten. Exempel: http://otel.service.k8se-apps:4317/ |
OTEL_EXPORTER_OTLP_PROTOCOL |
Anger otlp-transportprotokollet som används för alla telemetridata. Den hanterade agenten stöder grpc endast . Värde: grpc . |
De övriga tre miljövariablerna är specifika för Azure Container Apps och matas alltid in. Dessa variabler innehåller agentens slutpunkts-URL:er för varje specifik datatyp (loggar, mått, spårningar).
Dessa variabler är bara nödvändiga om du använder både den hanterade OpenTelemetry-agenten och en annan OpenTelemetry-agent. Med hjälp av dessa variabler får du kontroll över hur du dirigerar data mellan de olika OpenTelemetry-agenterna.
Name | Beskrivning | Exempel |
---|---|---|
CONTAINERAPP_OTEL_TRACING_GRPC_ENDPOINT |
Slutpunkts-URL endast för spårningsdata. | http://otel.service.k8se-apps:43178/v1/traces/ |
CONTAINERAPP_OTEL_LOGGING_GRPC_ENDPOINT |
Slutpunkts-URL endast för loggdata. | http://otel.service.k8se-apps:43178/v1/logs/ |
CONTAINERAPP_OTEL_METRIC_GRPC_ENDPOINT |
Slutpunkts-URL endast för måttdata. | http://otel.service.k8se-apps:43178/v1/metrics/ |
Du debiteras för den underliggande beräkningen av agenten.
Se måltjänsten för deras faktureringsstruktur och villkor. Om du till exempel skickar data till både Azure Monitor Application Insights och Datadog ansvarar du för de avgifter som tillämpas av båda tjänsterna.
Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuUtbildning
Modul
Implementera observerbarhet i ett .NET-molnbaserat program med OpenTelemetry - Training
Lär dig mer om observerbarhet och hur du implementerar det i ett molnbaserat program. Använd OpenTelemetry-paket för att mata ut loggar, mått och spåra data och analysera data i Application Insights och program från tredje part.