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é 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:

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

Következő lépések