Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek vám ukáže, jak nakonfigurovat vaši funkční aplikaci pro export dat protokolu a sledování ve formátu OpenTelemetry. Azure Functions vygeneruje telemetrická data o spouštění funkcí z hostitelského procesu Functions i pracovního procesu specifického pro jazyk, ve kterém běží kód funkce. Ve výchozím nastavení se tato telemetrická data odesílají do Application Insights pomocí sady Application Insights SDK. Tato data však můžete exportovat pomocí sémantiky OpenTelemetry. I když stále můžete k odesílání dat do Application Insights použít formát OpenTelemetry, můžete teď také exportovat stejná data do jakéhokoli jiného koncového bodu kompatibilního s OpenTelemetry.
Tyto výhody můžete získat povolením OpenTelemetry ve vaší aplikaci funkcí:
- Koreluje data napříč trasováními a protokoly generovanými na hostiteli i v kódu vaší aplikace.
- Umožňuje konzistentní generování exportovatelných telemetrických dat založených na standardech.
- Integruje se s dalšími poskytovateli, kteří můžou využívat data kompatibilní s OpenTelemetry.
Při používání tohoto článku mějte na paměti tyto aspekty:
- Vyzkoušejte kurz OpenTelemetry, který vám pomůže rychle začít s OpenTelemetry a Azure Functions. Tento článek používá rozhraní příkazového řádku pro vývojáře Azure (
azd) k vytvoření a nasazení aplikace funkcí, která používá integraci OpenTelemetry pro distribuované trasování.
- Vzhledem k tomu, že se tento článek zaměřuje na zvolený vývojový jazyk, nezapomeňte zvolit správný jazyk v horní části článku.
- OpenTelemetry se v současné době nepodporuje pro procesní aplikace jazyka C#.
- OpenTelemetry je povolená na úrovni aplikace funkcí v konfiguraci hostitele (
host.json) i v projektu kódu. Funkce také poskytují prostředí optimalizované pro klienta pro export dat OpenTelemetry z kódu funkce, který běží v pracovním procesu specifickém pro jazyk.
Povolení OpenTelemetry v hostiteli Functions
Když povolíte výstup OpenTelemetry v souboru funkční aplikace host.json, hostitel exportuje výstup OpenTelemetry bez ohledu na jazykový zásobník používaný vaší aplikací.
Pokud chcete povolit výstup OpenTelemetry z hostitele Functions, aktualizujte soubor host.json v projektu kódu a přidejte "telemetryMode": "OpenTelemetry" do kořenové kolekce prvek. Když je povolený OpenTelemetry, může váš soubor host.json vypadat takto:
{
"version": "2.0",
"telemetryMode": "OpenTelemetry",
...
}
Konfigurace nastavení aplikace
Když v host.json souboru povolíte OpenTelemetry, proměnné prostředí aplikace určují koncové body pro odesílání dat na základě toho, jaká nastavení aplikace podporuje OpenTelemetry.
Vytvořte v aplikaci funkcí konkrétní nastavení aplikace na základě cíle výstupu OpenTelemetry. Když zadáte nastavení připojení pro Application Insights a exportér protokolu OpenTelemetry (OTLP), data OpenTelemetry se odesílají do obou koncových bodů.
APPLICATIONINSIGHTS_CONNECTION_STRING: Connection string pro pracovní prostor Application Insights. Pokud toto nastavení existuje, data OpenTelemetry se odesílají do tohoto pracovního prostoru. Stejné nastavení použijte pro připojení k Application Insights bez povolení OpenTelemetry. Pokud vaše aplikace toto nastavení ještě nemá, budete možná muset povolit integraci Application Insights.
JAVA_APPLICATIONINSIGHTS_ENABLE_TELEMETRY: je nastavená na true tak, aby hostitel služby Functions umožnil Java pracovnímu procesu přímo streamovat protokoly OpenTelemetry, což brání duplicitním položkám na úrovni hostitele.
PYTHON_APPLICATIONINSIGHTS_ENABLE_TELEMETRY: je nastavená na true tak, aby hostitel služby Functions umožnil Python pracovnímu procesu přímo streamovat protokoly OpenTelemetry, což brání duplicitním položkám na úrovni hostitele.
U aplikací Go toto nastavení konfiguruje export OpenTelemetry z hostitele Functions do Application Insights. Nekonfiguruje middleware OpenTelemetry pro pracovní proces Go, který exportuje telemetrii pracovního procesu pomocí nastavení OTLP. Pokud chcete odesílat telemetrii pracovního procesu Go do Application Insights, směrujte výstup OTLP prostřednictvím kolektoru OpenTelemetry nebo jiného kanálu OpenTelemetry nakonfigurovaného pro export do Azure Monitor.
Povolení OpenTelemetry v aplikaci
Jakmile nakonfigurujete hostitele Functions tak, aby používal OpenTelemetry, aktualizujte kód aplikace na výstup dat OpenTelemetry. Když v hostiteli i kódu aplikace povolíte OpenTelemetry, získáte lepší korelaci mezi trasováními a protokoly, které hostitelský proces Functions a váš jazykový pracovní proces vygenerují.
Způsob instrumentace aplikace pro použití OpenTelemetry závisí na cílovém koncovém bodu OpenTelemetry:
Příklady v tomto článku předpokládají, že vaše aplikace používá IHostApplicationBuilder, která je dostupná ve verzi 2.x a novější verzi Microsoft.Azure. Functions.Worker. Další informace najdete ve verzi 2.x v průvodci izolovaným pracovním modelem jazyka C#.
Spuštěním těchto příkazů nainstalujte požadovaná sestavení v aplikaci:
Poznámka:
Od verze 3.0 využívá balíček
Microsoft.ApplicationInsights.WorkerServiceexportér Azure Monitor. Tento balíček můžete použít k zachování stávajícího chování konfigurace Application Insights při interním používání kanálu Azure Monitor, včetně exportéru OpenTelemetry. Místo balíčkuMicrosoft.ApplicationInsights.WorkerServicemůžete použít balíčekAzure.Monitor.OpenTelemetry.Exporter(v3.0 nebo novější), který je znázorněn v následujícím příkladu.dotnet add package Microsoft.Azure.Functions.Worker.OpenTelemetry dotnet add package OpenTelemetry.Extensions.Hosting dotnet add package Azure.Monitor.OpenTelemetry.ExporterDo souboru projektu Program.cs přidejte tento
usingpříkaz:using Azure.Monitor.OpenTelemetry.Exporter;Nakonfigurujte OpenTelemetry podle toho, zda při spuštění projektu používáte
IHostBuilderneboIHostApplicationBuilder. Tento poslední byl zaveden ve verzi v2.x rozšíření .NET izolovaného pracovního modelu.Do program.cs přidejte tento řádek kódu za
ConfigureFunctionsWebApplication:builder.Services.AddOpenTelemetry() .UseFunctionsWorkerDefaults() .UseAzureMonitorExporter();Z jedné aplikace můžete exportovat do obou koncových bodů OpenTelemetry.
Přidejte do aplikace požadované knihovny. Způsob přidávání knihoven závisí na tom, jestli nasazujete pomocí Mavenu nebo Kotlinu a jestli chcete také odesílat data do Application Insights.
<dependency> <groupId>com.microsoft.azure.functions</groupId> <artifactId>azure-functions-java-opentelemetry</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>com.azure</groupId> <artifactId>azure-monitor-opentelemetry-autoconfigure</artifactId> <version>1.2.0</version> </dependency>(Volitelné) Přidejte tento kód pro vytvoření vlastních rozsahů:
import com.microsoft.azure.functions.opentelemetry.FunctionsOpenTelemetry; import io.opentelemetry.api.trace.Span; import io.opentelemetry.api.trace.SpanKind; import io.opentelemetry.context.Scope; Span span = FunctionsOpenTelemetry.startSpan( "com.contoso.PaymentFunction", // tracer name "validateCharge", // span name null, // parent = current context SpanKind.INTERNAL); try (Scope ignored = span.makeCurrent()) { // business logic here } finally { span.end(); }
Nainstalujte do projektu tyto balíčky npm:
npm install @opentelemetry/api npm install @opentelemetry/auto-instrumentations-node npm install @azure/monitor-opentelemetry-exporter npm install @azure/functions-opentelemetry-instrumentation
Vytvořte v projektu soubor kódu, zkopírujte a vložte do tohoto nového souboru následující kód a uložte ho takto
src/index.js:const { AzureFunctionsInstrumentation } = require('@azure/functions-opentelemetry-instrumentation'); const { AzureMonitorLogExporter, AzureMonitorTraceExporter } = require('@azure/monitor-opentelemetry-exporter'); const { getNodeAutoInstrumentations, getResourceDetectors } = require('@opentelemetry/auto-instrumentations-node'); const { registerInstrumentations } = require('@opentelemetry/instrumentation'); const { detectResourcesSync } = require('@opentelemetry/resources'); const { LoggerProvider, SimpleLogRecordProcessor } = require('@opentelemetry/sdk-logs'); const { NodeTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-node'); const resource = detectResourcesSync({ detectors: getResourceDetectors() }); const tracerProvider = new NodeTracerProvider({ resource }); tracerProvider.addSpanProcessor(new SimpleSpanProcessor(new AzureMonitorTraceExporter())); tracerProvider.register(); const loggerProvider = new LoggerProvider({ resource }); loggerProvider.addLogRecordProcessor(new SimpleLogRecordProcessor(new AzureMonitorLogExporter())); registerInstrumentations({ tracerProvider, loggerProvider, instrumentations: [getNodeAutoInstrumentations(), new AzureFunctionsInstrumentation()], });mainAktualizujte pole v souboru package.json tak, aby zahrnovalo novýsrc/index.jssoubor. Například:"main": "src/{index.js,functions/*.js}"
Vytvořte v projektu soubor kódu, zkopírujte a vložte do tohoto nového souboru následující kód a uložte ho takto
src/index.ts:import { AzureFunctionsInstrumentation } from '@azure/functions-opentelemetry-instrumentation'; import { AzureMonitorLogExporter, AzureMonitorTraceExporter } from '@azure/monitor-opentelemetry-exporter'; import { getNodeAutoInstrumentations, getResourceDetectors } from '@opentelemetry/auto-instrumentations-node'; import { registerInstrumentations } from '@opentelemetry/instrumentation'; import { detectResourcesSync } from '@opentelemetry/resources'; import { LoggerProvider, SimpleLogRecordProcessor } from '@opentelemetry/sdk-logs'; import { NodeTracerProvider, SimpleSpanProcessor } from '@opentelemetry/sdk-trace-node'; const resource = detectResourcesSync({ detectors: getResourceDetectors() }); const tracerProvider = new NodeTracerProvider({ resource }); tracerProvider.addSpanProcessor(new SimpleSpanProcessor(new AzureMonitorTraceExporter())); tracerProvider.register(); const loggerProvider = new LoggerProvider({ resource }); loggerProvider.addLogRecordProcessor(new SimpleLogRecordProcessor(new AzureMonitorLogExporter())); registerInstrumentations({ tracerProvider, loggerProvider, instrumentations: [getNodeAutoInstrumentations(), new AzureFunctionsInstrumentation()], });mainAktualizujte pole v souboru package.json tak, aby zahrnovalo výstup tohoto novéhosrc/index.tssouboru, který může vypadat takto:"main": "dist/src/{index.js,functions/*.js}"
Důležité
Výstup OpenTelemetry do Application Insights z jazykového procesu není v současné době podporován pro aplikace PowerShell. Místo toho můžete chtít použít koncový bod exportéru OTLP. Když nakonfigurujete hostitele pro generování výstupu OpenTelemetry do Application Insights, protokoly vygenerované procesem pracovníka PowerShellu se stále přeposílají, ale distribuované trasování není v tuto chvíli podporováno.
Tyto pokyny platí pouze pro vývozce OTLP:
Přidejte nastavení aplikace s názvem
OTEL_FUNCTIONS_WORKER_ENABLEDa hodnotouTrue.V kořenovém adresáři vaší aplikace vytvořte složku
na úrovni aplikace a spusťte následující příkaz: Save-Module -Name AzureFunctions.PowerShell.OpenTelemetry.SDKTento příkaz nainstaluje požadovaný
AzureFunctions.PowerShell.OpenTelemetry.SDKmodul přímo do vaší aplikace. Nemůžete použít souborrequirements.psd1k automatické instalaci této závislosti, protože spravované závislosti nejsou v současné době podporovány ve verzi plánu Flex Consumption Preview.Přidejte tento kód do souboru profile.ps1:
Import-Module AzureFunctions.PowerShell.OpenTelemetry.SDK -Force -ErrorAction Stop Initialize-FunctionsOpenTelemetry
Ujistěte se, že se tyto knihovny nacházejí ve vašem
requirements.txtsouboru, ať už tím, že je odkomentujete, nebo je sami přidáte.azure-monitor-opentelemetryPřidejte tento kód do
function_app.pyhlavního vstupního souboru:Pokud jste už přidali
PYTHON_APPLICATIONINSIGHTS_ENABLE_TELEMETRY=truedo nastavení aplikace, můžete tento krok přeskočit. Pokud chcete ručně povolit shromažďování Application Insights bez automatické instrumentace, přidejte do aplikace tento kód:from azure.monitor.opentelemetry import configure_azure_monitor configure_azure_monitor()Přečtěte si dokumentaci použití Azure Monitor Distro, kde najdete možnosti, jak dále konfigurovat sadu SDK.
U aplikací Go se stejné nastavení pracovního procesu používá pro libovolný cíl OpenTelemetry. Middleware exportuje telemetrii pracovního procesu pomocí nastavení OTLP. Vaším koncovým bodem OTLP může být koncový bod dodavatele nebo kolektor OpenTelemetry, který předává telemetrii do jiného cíle, například Azure Monitor.
Ujistěte se, že váš projekt používá verzi sady SDK pracovního procesu Go, která obsahuje middleware OpenTelemetry:
go get github.com/azure/azure-functions-golang-worker@latest go mod tidymain.goV souboru naimportujte middleware OpenTelemetry a zaregistrujte ho před registrací funkcí:package main import ( "fmt" "log/slog" "net/http" "github.com/azure/azure-functions-golang-worker/middleware/otelfunc" "github.com/azure/azure-functions-golang-worker/sdk" "github.com/azure/azure-functions-golang-worker/worker" ) func hello(w http.ResponseWriter, r *http.Request) { slog.InfoContext(r.Context(), "processing request", "path", r.URL.Path) fmt.Fprintln(w, "hello") } func main() { app := sdk.FunctionApp() app.Use(otelfunc.Middleware()) app.HTTP("hello", hello, sdk.WithMethods("GET"), sdk.WithAuth("anonymous"), ) worker.Start(app) }
Middleware s nulovým argumentem používá standardní OTEL_EXPORTER_OTLP_* nastavení aplikace, která jste nakonfigurovali dříve v tomto článku. Vytvoří rozsah volání, koreluje slog záznamy generované s kontextem vyvolání a po každém vyvolání vyprázdní telemetrii.
Pokud chcete vytvořit vlastní podřízené rozsahy, použijte standardní rozhraní OpenTelemetry Go API s kontextem vyvolání. Pro triggery HTTP použijte r.Context() jako nadřazený kontext. Pro jiné typy triggerů použijte parametr context.Context, který se předává vaší obslužné funkci.
Důležité informace o OpenTelemetry
Při exportu dat pomocí OpenTelemetry mějte na paměti tyto aspekty.
Portál Azure podporuje trasování
Recent function invocationpouze v případě, že se telemetrie odesílá do Azure Monitor.Když nakonfigurujete hostitele tak, aby používal OpenTelemetry, portál Azure nepodporuje streamování protokolů.
Pokud nastavíte
telemetryModenaOpenTelemetry, konfigurace v částilogging.applicationInsightssouboru host.json se nepoužije.
Vlastní rozsahy automaticky zahrnují všechny atributy prostředků a používají exportéry nakonfigurované ve vaší aplikaci.
Když vaše aplikace běží mimo Azure, včetně místního vývoje, detektor prostředků nastaví atribut
service.namenajava-function-appve výchozím nastavení.Pomocí těchto příznaků Java virtuálních počítačů (JVM) můžete telemetrii při místním spuštění během testů jednotek ztlumit:
-Dotel.traces.exporter=none-Dotel.metrics.exporter=none-Dotel.logs.exporter=none
- Nemusíte ručně registrovat middleware; Java worker ho automaticky rozpozná
OpenTelemetryInvocationMiddleware.
Použijte metody pracující s kontextem ze standardního balíčku
log/slog, napříkladslog.InfoContextaslog.ErrorContext, k propojení strukturovaných protokolů s aktuálním voláním a trasováním.Middleware OpenTelemetry pro Go worker je volitelné. Aplikace, které neimportují a nezaregistrují
middleware/otelfunc, nezahrnují balíčky OpenTelemetry do kompilovaného binárního souboru.Chcete-li dočasně zakázat middleware workeru Go bez nutnosti znovu nasadit aplikaci, nastavte
AZURE_FUNCTIONS_WORKER_OPENTELEMETRY_DISABLEDnatrue.Pro pokročilou konfiguraci můžete nakonfigurovat vlastní poskytovatele OpenTelemetry, exportéry, atributy prostředků a šíření v kódu před registrací middlewaru.
Detektory zdrojů a sémantické konvence
Atributy prostředků v Azure Functions popisují proces aplikace funkcí a jeho prostředí. Atributy Span popisují jedno vyvolání.
Výchozí chování (nevyžaduje se žádná akce)
V Azure Functions ve službě App Service detektory prostředků obvykle automaticky naplňují běžné atributy, včetně:
-
service.name(výchozí hodnota je název funkční aplikace) - Azure atributy cloudu, jako jsou
cloud.provider,cloud.regionacloud.resource_id
Ve většině případů jsou tyto výchozí hodnoty dostatečné pro správné seskupení map aplikací a Azure kontextu.
Kdy přepsat service.name (název cloudové role)
Přepsat pouze v případě, že potřebujete jiný, stabilní název uzlu v Application Insights (seskupování map aplikací), například pro normalizaci pojmenování mezi sloty nebo prostředími.
Nastavte OTEL_SERVICE_NAME pro přepsání zjištěné hodnoty:
export OTEL_SERVICE_NAME="my-function-app"
Vyvolání atributů span (obvykle automatické)
Pokud nevytváíráte vlastní rozsah volání, nebudete je muset nastavit ručně.
-
faas.name(název funkce) -
faas.trigger(napříkladhttp,servicebus,eventhubs) -
faas.execution(vyvolání/identifikátor spuštění)
Důležité
Aplikace funkcí můžou v jednom procesu hostovat více funkcí. Neukládejte do prostředku hodnoty specifické pro funkci. Nasaďte identitu jednotlivých volání na časové úseky.
Poznámka:
Při místním spuštění (Functions Core Tools) nebo v kontejnerizovaném či vlastním prostředí, kde nejsou dostupná metadata Azure, může service.name přijmout obecnou hodnotu. Nastavte OTEL_SERVICE_NAME místně tak, aby odpovídalo produkčnímu pojmenování.
Řešení problémů
Při exportu dat pomocí OpenTelemetry mějte na paměti tyto běžné problémy a řešení.
Filtrování protokolů
Pokud chcete správně nakonfigurovat filtrování protokolů v aplikaci funkcí, musíte pochopit rozdíl mezi hostitelským procesem a pracovním procesem.
Proces hostitele host je modul runtime Azure Functions, který spravuje triggery, škálování a generuje telemetrii na úrovni systému, jako jsou inicializační protokoly, trasování požadavků a informace o stavu modulu runtime.
Pracovní proces je specifický pro jazyk, spouští kód funkce a vytváří protokoly aplikací a telemetrii nezávisle.
Důležité
Filtry definované v host.json se vztahují pouze na protokoly vygenerované hostitelským procesem. K filtrování protokolů z pracovního procesu musíte použít nastavení OpenTelemetry specifické pro jazyk.
Příklad: Filtrování protokolů hostitele pro všechny poskytovatele v host.json
Tento přístup použijte k nastavení globální úrovně protokolu napříč všemi poskytovateli spravovanými hostitelem:
{
"version": "2.0",
"telemetryMode": "OpenTelemetry",
"logging": {
"logLevel": {
"default": "Warning"
}
}
}
Příklad: Filtrování protokolů pouze pro zprostředkovatele protokolovacího nástroje OpenTelemetry
Tento přístup použijte k cílení pouze na poskytovatele loggeru OpenTelemetry, zatímco ostatní poskytovatelé (například konzolové nebo souborové protokolování) zůstávají neovlivněni.
{
"version": "2.0",
"telemetryMode": "OpenTelemetry",
"logging": {
"OpenTelemetry": {
"logLevel": {
"default": "Warning"
}
}
}
}
Protokolování konzoly
Hostitel Functions automaticky zachytí všechno, co je zapsáno do stdoutu nebo stderru, a předá ho do kanálu telemetrie. Pokud také použijete ConsoleExporter nebo zapisujete přímo do konzoly ve svém kódu, může dojít k duplicitním záznamům v telemetrických datech.
Poznámka:
Abyste se vyhnuli duplicitním položkám telemetrie, nepřidávejte ConsoleExporter ani nezapisujte do konzoly v produkčním kódu.
ověřování Microsoft Entra
Pokud používáte ověřování Microsoft Entra s OpenTelemetry, musíte pro hostitelský proces i pracovní proces nakonfigurovat ověřování samostatně.
Chcete-li konfigurovat ověřování pro hostitelský proces, viz Vyžadování ověřování Microsoft Entra.
Pokud chcete nakonfigurovat ověřování pro pracovní proces, viz Povolení ověřování Microsoft Entra.
Podpora atributů prostředků
Podpora atributů prostředků v Azure Monitor je aktuálně ve verzi Preview. Chcete-li tuto funkci povolit, nastavte proměnnou OTEL_DOTNET_AZURE_MONITOR_ENABLE_RESOURCE_METRICS prostředí na truehodnotu . Toto nastavení ingestuje atributy prostředků do tabulky vlastních metrik.
Duplicitní telemetrie požadavků
Hostitelský proces automaticky generuje telemetrii požadavků. Pokud je pracovní proces instrumentován také s knihovnami pro sledování požadavků (například AspNetCoreInstrumentation v .NET), je stejný požadavek hlášen dvakrát.
Poznámka:
Vzhledem k tomu, že distribuce Azure Monitor typicky zahrnuje AspNetCoreInstrumentation v .NET a podobnou instrumentaci v jiných jazycích, v pracovním procesu nepoužívejte distribuci Azure Monitor, aby nedocházelo k duplicitní telemetrii.
Nezahrnuté obory protokolování
Ve výchozím nastavení pracovní proces neobsahuje do svých protokolů obory. Pokud chcete povolit scopy, musíte toto nastavení explicitně nakonfigurovat ve workeru. Následující příklad ukazuje, jak povolit obory v .NET Izolované:
builder.Logging.AddOpenTelemetry(b => b.IncludeScopes = true);
Chybějící telemetrie požadavků
Triggery, jako je HTTP, Service Bus a Event Hubs, závisí na šíření kontextu pro distribuované trasování. U vzorkování založeného na nadřazených objektech jako výchozího chování se telemetrie požadavků negeneruje, když se vzorek příchozího požadavku nebo zprávy nevygeneruje.
Duplicitní identifikátor operace
V Azure Functions pochází OperationId pro korelaci telemetrie přímo z hodnoty traceparent příchozího požadavku nebo zprávy. Pokud více volání znovu použije stejnou traceparent hodnotu, všechny získají stejnou OperationIdhodnotu .
Konfigurace OpenTelemetry s proměnnými prostředí
Chování OpenTelemetry můžete nakonfigurovat pomocí standardních proměnných prostředí. Tyto proměnné poskytují konzistentní způsob řízení chování v různých jazycích a runtimes. Můžete upravit strategie vzorkování, nastavení vývozce a atributy prostředků. Další informace o podporovaných proměnných prostředí najdete v dokumentaci k OpenTelemetry.
Řešení potíží s monitorováním pomocí diagnostiky
diagnostika Azure Functions na portálu Azure je užitečným prostředkem pro zjišťování a diagnostiku potenciálních problémů souvisejících s monitorováním.
Přístup k diagnostice v aplikaci:
Na portálu Azure přejděte k prostředku aplikace funkcí.
V levém podokně vyberte Diagnostikovat a řešit problémy a vyhledejte workflow Application Insights nebo OpenTelemetry pro aplikaci Function App chybějící telemetrii.
Vyberte tento pracovní postup, zvolte metodu příjmu dat a vyberte Další.
Projděte si pokyny a všechna doporučení poskytnutá poradcem při potížích.
Další kroky
Další informace o OpenTelemetry a monitorování Azure Functions: