Megosztás a következőn keresztül:


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 appInsightsdataDogaz 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.

Következő lépések