OpenTelemetria-adatok gyűjtése és olvasása az Azure Container Appsben (előzetes verzió)
OpenTelemetry-adatügynök használatával az Azure Container Apps-környezettel a megfigyelhetőségi adatok OpenTelemetria formátumban való elküldéséhez a következő módon választhat:
Adatok beküldése egy ügynökből egy kívánt végpontba. A célbeállítások közé tartozik az Azure Monitor Application Insights, a Datadog és az OpenTelemetry Protocol (OTLP) kompatibilis végpontja.
Egyszerűen módosíthatja a célvégpontokat anélkül, hogy újra kellene konfigurálnia az adatok kibocsájtását, és anélkül, hogy manuálisan kellene futtatnia egy OpenTelemetry-ügynököt.
Ez a cikk bemutatja, hogyan állíthat be és konfigurálhat OpenTelemetry-ügynököt a tárolóalkalmazáshoz.
OpenTelemetry-ügynök konfigurálása
Az OpenTelemetry-ügynökök a tárolóalkalmazás környezetében élnek. Az ügynökbeállításokat ARM-sablonon vagy Bicep-hívásokon keresztül konfigurálhatja a környezetbe, vagy a parancssori felületről, vagy a Terraformon keresztül (az AzAPI-szolgáltatón keresztül).
Minden végponttípus (Azure Monitor Application Insights, DataDog és OTLP) speciális konfigurációs követelményekkel rendelkezik.
Előfeltételek
A felügyelt OpenTelemetry-ügynök környezethez való engedélyezése nem jelenti automatikusan azt, hogy az ügynök adatokat gyűjt. Az ügynökök csak a konfigurációs beállítások és a kód megfelelő rendszerezése alapján küldenek adatokat.
Forráskód konfigurálása
Készítse elő az alkalmazást az adatok gyűjtésére az OpenTelemetry SDK telepítésével, és kövesse az OpenTelemetria irányelveit a mérőszámokhoz, naplókhoz vagy nyomkövetésekhez.
Végpontok inicializálása
Mielőtt adatokat küldhet egy gyűjtemény céljára, először létre kell hoznia a célszolgáltatás egy példányát. Ha például adatokat szeretne küldeni az Azure Monitor Application Insightsba, előre létre kell hoznia egy Application Insights-példányt.
A felügyelt OpenTelemetry-ügynök a következő célhelyeket fogadja el:
- Azure Monitor Application Insights
- Datadog
- Bármely OTLP-végpont (például: New Relic vagy Honeycomb)
Az alábbi táblázat bemutatja, hogy milyen típusú adatokat küldhet az egyes célhelyekre:
Cél | Naplók | Mérőszámok | Hívásláncok |
---|---|---|---|
Azure-alkalmazás Insights | Igen | Nem | Igen |
Datadog | Nem | Igen | Igen |
OpenTelemetry Protocol (OTLP) konfigurált végpont | Igen | Igen | Igen |
Azure Monitor Application Insights
Az Application Insightsban csak a kapcsolati sztring szükséges konfigurációs adatok. Miután megkapta a kapcsolati sztring, konfigurálhatja az ügynököt a tárolóalkalmazás ARM-sablonján keresztül, Azure CLI-parancsokkal vagy Terraform-parancsokkal.
A kapcsolati sztring tartalmaz egy rendszerállapotkulcsot, amely egy egyedi azonosító, amellyel telemetriát társíthat egy adott Application Insights-erőforráshoz. A rendszerállapot-kulcsok nem biztonsági jogkivonatok vagy biztonsági kulcsok, és nem számítanak titkos kulcsnak.
Ha meg szeretné védeni az Application Insights-erőforrást a visszaélésektől, tekintse meg az Application Insights Microsoft Entra-hitelesítését. Az Application Insights-erőforrásnak azonban engedélyeznie kell , hogy a helyi hitelesítés adatokat fogadjon az OpenTelemetry-adatügynöktől.
A sablon üzembe helyezése előtt cserélje le az <PLACEHOLDERS>
értékeket.
{
...
"properties": {
"appInsightsConfiguration ": {
"connectionString": "<APP_INSIGHTS_CONNECTION_STRING>"
}
"openTelemetryConfiguration": {
...
"tracesConfiguration":{
"destinations": ["appInsights"]
},
"logsConfiguration": {
"destinations": ["appInsights"]
}
}
}
}
Datadog
A Datadog-ügynök konfigurációjához a Datadog-példányhoz és key
az abból származó értékre site
van szükség. Gyűjtse össze ezeket az értékeket a Datadog-példányból a következő táblázat szerint:
Datadog-ügynök tulajdonság | Container Apps konfigurációs tulajdonság |
---|---|
DD_SITE |
site |
DD_API_KEY |
key |
Miután megadta ezeket a konfigurációs adatokat, konfigurálhatja az ügynököt a tárolóalkalmazás ARM- vagy Bicep-sablonján keresztül, vagy Azure CLI-parancsokkal.
Ne adja meg egy titkos kód, például a Datadog API-kulcs értékét közvetlenül éles környezetben. Ehelyett használja az Azure Key Vaultban tárolt titkos kódra mutató hivatkozást.
Engedélyeznie kell a kulcstartót a sablon üzembe helyezéséhez. Ehhez hozza létre a kulcstartót engedélyezett enabledForTemplateDeployment
tulajdonsággal, vagy futtassa a következő Azure CLI-parancsot, és cserélje le az értéket az <KEY_VAULT_NAME>
ön értékére:
az keyvault update --name <KEY_VAULT_NAME> --enabled-for-template-deployment true
További információk:
- Az Azure Key Vault használata biztonságos paraméterértékek üzembe helyezéskori átadására
- Oktatóanyag: Az Azure Key Vault integrálása az ARM-sablon üzembe helyezésébe
Hozzon létre egy paraméterfájlt, amely lekéri a Datadog API-kulcsot egy Azure Key Vaultból.
A következő fájlok üzembe helyezése előtt cserélje le az <PLACEHOLDERS>
értékeket.
{
"$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>"
}
}
}
}
Most már hivatkozhat a paraméterre az datadogapikey
ARM-sablonban.
{
...
"parameters": {
"datadogapikey": {
"type": "securestring"
}
},
"properties": {
...
"openTelemetryConfiguration": {
...
"destinationsConfiguration":{
...
"dataDogConfiguration":{
"site": "<YOUR_DATADOG_SUBDOMAIN>.datadoghq.com",
"key": "<YOUR_DATADOG_KEY>"
}
},
"tracesConfiguration":{
"destinations": ["dataDog"]
},
"metricsConfiguration": {
"destinations": ["dataDog"]
}
}
}
}
Az erőforrás üzembe helyezéséhez futtassa az alábbi Azure CLI-parancsot, és cserélje le az <PLACEHOLDERS>
értékeket.
az deployment group create \
--resource-group <RESOURCE_GROUP> \
--template-file <ARM_TEMPLATE_FILE> \
--parameters <PARAMETER_FILE>
OTLP-végpont
Az OpenTelemetry protokoll (OTLP) végpontja egy telemetriai adatcél, amely OpenTelemetry-adatokat használ fel. Az alkalmazáskonfigurációban több OTLP-végpontot is hozzáadhat. Az alábbi példa két végpontot ad hozzá, és elküldi a következő adatokat ezeknek a végpontoknak.
Végpont neve | Végpontnak küldött adatok |
---|---|
oltp1 |
Metrikák és/vagy nyomkövetések |
oltp2 |
Naplók és/vagy nyomkövetések |
Bár tetszőleges számú OTLP-konfigurált végpontot állíthat be, minden végpontnak külön névvel kell rendelkeznie.
{
"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"]
}
}
}
}
Név | Leírás |
---|---|
resource-group |
Az erőforráscsoport neve. Az alapértelmezett csoportot konfigurálhatja a következővel az configure --defaults group=<NAME> : . |
name |
A Container Apps-környezet neve. |
otlp-name |
Az OTLP által konfigurált végpont azonosításához választott név. |
endpoint |
Az összegyűjtött adatokat fogadó cél URL-címe. |
insecure |
Alapértelmezett igaz. Meghatározza, hogy engedélyezi-e az ügyfélszállítás biztonságát az exportőr gRPC-kapcsolatához. Ha hamis, a headers paraméter megadása kötelező. |
headers |
A szóközzel elválasztott értékek "key=value" formátumban, amelyek az OTLP-végpontok biztonságához szükséges információkat biztosítják. Példa: "api-key=key other-config-value=value" |
Adatcélok konfigurálása
Ügynök konfigurálásához használja a tömböt annak destinations
meghatározására, hogy az alkalmazás mely ügynökök küldik az adatokat. Az érvényes kulcsok vagy appInsights
dataDog
az egyéni OTLP-végpont neve. Az ügynök viselkedését az adattípus és a végponttal kapcsolatos beállítások alapján szabályozhatja.
Adattípus szerint
Lehetőség | Példa |
---|---|
Válasszon ki egy adattípust. | Naplókat, metrikákat és/vagy nyomkövetéseket egyenként is konfigurálhat. |
Bármilyen adattípus engedélyezése vagy letiltása. | Dönthet úgy, hogy csak nyomkövetéseket küld, más adatokat nem. |
Egyetlen adattípus küldése több végpontra. | Naplókat küldhet a DataDognak és egy OTLP-konfigurált végpontnak is. |
Különböző adattípusok küldése különböző helyekre. | Nyomkövetéseket küldhet egy OTLP-végpontnak és metrikákat a DataDognak. |
Tiltsa le az összes adattípus küldését. | Dönthet úgy, hogy nem küld adatokat az OpenTelemetry-ügynökön keresztül. |
Végpont szerint
- Egyszerre csak egy Application Insights- és Datadog-végpontot állíthat be.
- Bár több OTLP-konfigurált végpontot is definiálhat, mindegyiknek külön névvel kell rendelkeznie.
Az alábbi ARM-példasablon bemutatja, hogyan használható egy OTLP-végpont neve customDashboard
. A következőt küldi:
- nyomon követik az alkalmazáselemzéseket és
customDashboard
- naplókat az alkalmazáselemzésekhez és
customDashboard
- metrikáit a DataDogra és
customDashboard
{
...
"properties": {
...
"openTelemetryConfiguration": {
...
"tracesConfiguration": {
"destinations": [
"appInsights",
"customDashboard"
]
},
"logsConfiguration": {
"destinations": [
"appInsights",
"customDashboard"
]
},
"metricsConfiguration": {
"destinations": [
"dataDog",
"customDashboard"
]
}
}
}
}
Példa OpenTelemetria-konfigurációra
Az alábbi példasablon bemutatja, hogyan konfigurálhatja a tárolóalkalmazást telemetriai adatok gyűjtésére az Azure Monitor Application Insights, a Datadog és egy egyéni OTLP-ügynökkel, amelynek neve customDashboard
.
Ez a példa a Datadog API-kulcs Azure Key Vaultból való lekéréséhez használt paraméterfájllal működik.
A sablon üzembe helyezése előtt cserélje le az <PLACEHOLDERS>
értékeket.
{
"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"
]
}
}
}
}
További információ: Microsoft.App/managedEnvironments.
Környezeti változók
Az OpenTelemetry-ügynök futásidőben automatikusan injektál egy környezeti változókészletet az alkalmazásba.
Az első két környezeti változó a standard OpenTelemetry-exportőr konfigurációját követi, és az OTLP standard szoftverfejlesztői készleteiben használatos. Ha explicit módon állítja be a környezeti változót a tárolóalkalmazás specifikációjában, az érték felülírja az automatikusan beszúrt értéket.
További információ az OTLP-exportőr konfigurációjáról: OTLP-exportőr konfigurációja.
Név | Leírás |
---|---|
OTEL_EXPORTER_OTLP_ENDPOINT |
Egy alapvégpont URL-címe bármilyen jeltípushoz, opcionálisan megadott portszámmal. Ez a beállítás akkor hasznos, ha több jelet küld ugyanarra a végpontra, és azt szeretné, hogy egy környezeti változó vezérelje a végpontot. Példa: http://otel.service.k8se-apps:4317/ |
OTEL_EXPORTER_OTLP_PROTOCOL |
Az összes telemetriai adathoz használt OTLP átviteli protokollt adja meg. A felügyelt ügynök csak azokat támogatja grpc . Érték: grpc . |
A másik három környezeti változó az Azure Container Appsre jellemző, és mindig injektálva van. Ezek a változók minden egyes adattípushoz (naplókhoz, metrikákhoz, nyomkövetésekhez) az ügynök végponti URL-címeit tárolják.
Ezek a változók csak akkor szükségesek, ha a felügyelt OpenTelemetry-ügynököt és egy másik OpenTelemetry-ügynököt is használ. Ezeknek a változóknak a használatával szabályozhatja, hogyan irányíthatja az adatokat a különböző OpenTelemetry-ügynökök között.
Név | Leírás | Példa |
---|---|---|
CONTAINERAPP_OTEL_TRACING_GRPC_ENDPOINT |
Csak nyomkövetési adatok végponti URL-címe. | http://otel.service.k8se-apps:43178/v1/traces/ |
CONTAINERAPP_OTEL_LOGGING_GRPC_ENDPOINT |
Csak a naplóadatok végponti URL-címe. | http://otel.service.k8se-apps:43178/v1/logs/ |
CONTAINERAPP_OTEL_METRIC_GRPC_ENDPOINT |
Csak metrikaadatok végponti URL-címe. | http://otel.service.k8se-apps:43178/v1/metrics/ |
Az OpenTelemetry-ügynök költségei
Az ügynök alapjául szolgáló számításért díjat számítunk fel.
Tekintse meg a célszolgáltatást a számlázási struktúrához és a feltételekhez. Ha például adatokat küld az Azure Monitor Application Insightsnak és a Datadognak is, a két szolgáltatás által alkalmazott díjakért Ön a felelős.
Ismert korlátozások
- Az OpenTelemetry-ügynökök előzetes verzióban érhetők el.
- A rendszeradatok, például a rendszernaplók vagy a Container Apps standard metrikái nem érhetők el az OpenTelemetry-ügynöknek való elküldéséhez.
- Az Application Insights-végpont nem fogad el metrikákat.
- A Datadog-végpont nem fogadja el a naplókat.