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é tartoznak az Azure Monitor-alkalmazás Elemzések, a Datadog és az OpenTelemetry Protocol (OTLP)-kompatibilis végpontok.
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ületre.
Minden végponttípus (Azure Monitor-alkalmazás Elemzések, 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 Alkalmazás Elemzések, előre létre kell hoznia egy alkalmazáspéldányt Elemzések.
A felügyelt OpenTelemetry-ügynök a következő célhelyeket fogadja el:
- Azure Monitor-alkalmazás Elemzések
- 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 Elemzések | Igen | Nem | Igen |
Datadog | Nem | Igen | Igen |
OpenTelemetry Protocol (OTLP) konfigurált végpont | Igen | Igen | Igen |
Azure Monitor-alkalmazás Elemzések
Az alkalmazás Elemzések egyetlen konfigurációs részlete a kapcsolati sztring. Miután megkapta a kapcsolati sztring, konfigurálhatja az ügynököt a tárolóalkalmazás ARM-sablonján vagy az Azure CLI-parancsokkal.
A sablon üzembe helyezése előtt cserélje le az értékekkel körülvett <>
helyőrzőket.
{
...
"properties": {
"appInsightsConfiguration ": {
"connectionString": "<YOUR_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-sablonján vagy az Azure CLI-parancsokkal.
A sablon üzembe helyezése előtt cserélje le az értékekkel körülvett <>
helyőrzőket.
{
...
"properties": {
...
"openTelemetryConfiguration": {
...
"destinationsConfiguration":{
...
"dataDogConfiguration":{
"site": "<YOUR_DATADOG_SUBDOMAIN>.datadoghq.com",
"key": "<YOUR_DATADOG_KEY>"
}
},
"tracesConfiguration":{
"destinations": ["dataDog"]
},
"metricsConfiguration": {
"destinations": ["dataDog"]
}
}
}
}
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 |
---|---|
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égesek. 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 alkalmazás-Elemzések é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 példa 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"
]
}
}
}
}
## Example OpenTelemetry configuration
The following example ARM template shows how you might configure your container app to collect telemetry data using Azure Monitor Application Insights, Datadog, and with a custom OTLP agent named `customDashboard`.
Before you deploy this template, replace placeholders surrounded by `<>` with your values.
```json
{
"location": "eastus",
"properties": {
"appInsightsConfiguration": {
"connectionString": "<APP_INSIGHTS_CONNECTION_STRING>"
},
"openTelemetryConfiguration": {
"destinationsConfiguration": {
"dataDogConfiguration": {
"site": "datadoghq.com",
"key": "<YOUR_DATADOG_KEY>"
},
"otlpConfigurations": [
{
"name": "customDashboard",
"endpoint": "<OTLP_ENDPOINT_URL>",
"insecure": true
}
]
},
"tracesConfiguration": {
"destinations": [
"appInsights",
"customDashboard"
]
},
"logsConfiguration": {
"destinations": [
"appInsights",
"customDashboard"
]
},
"metricsConfiguration": {
"destinations": [
"dataDog",
"customDashboard"
]
}
}
}
}
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
A rendszer az ügynök alapjául szolgáló számításért számláz.
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-alkalmazásnak Elemzések é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 alkalmazás Elemzések végpont nem fogad el metrikákat.
- A Datadog-végpont nem fogadja el a naplókat.