Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze zelfstudie ziet u hoe u OpenTelemetry inschakelt op een agent, zodat interacties met de agent automatisch worden geregistreerd en geëxporteerd. In deze handleiding wordt uitvoer naar de console geschreven met behulp van de OpenTelemetry-consoleexporteur.
Opmerking
Zie voor meer informatie over de standaarden gevolgd door het Microsoft Agent Framework, Semantic Conventions for GenAI agent and framework-onderdelen van Open Telemetry.
Vereiste voorwaarden
Zie de stap Een eenvoudige agent maken en uitvoeren in deze zelfstudie voor vereisten.
NuGet-pakketten installeren
Als u Microsoft Agent Framework wilt gebruiken met Azure OpenAI, moet u de volgende NuGet-pakketten installeren:
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Als u ook OpenTelemetry-ondersteuning wilt toevoegen, met ondersteuning voor schrijven naar de console, installeert u deze aanvullende pakketten:
dotnet add package OpenTelemetry
dotnet add package OpenTelemetry.Exporter.Console
OpenTelemetry inschakelen in uw app
Schakel Agent Framework-telemetrie in en maak een OpenTelemetry TracerProvider die naar de console exporteert.
De TracerProvider moet actief blijven terwijl u de agent uitvoert, zodat traces worden geëxporteerd.
using System;
using OpenTelemetry;
using OpenTelemetry.Trace;
// Create a TracerProvider that exports to the console
using var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddSource("agent-telemetry-source")
.AddConsoleExporter()
.Build();
Creëer en instrumenteer de agent
Maak een agent en gebruik het opbouwpatroon UseOpenTelemetry om een bronnaam op te geven.
Houd er rekening mee dat de letterlijke agent-telemetry-source tekenreeks de openTelemetry-bronnaam is die u hebt gebruikt bij het maken van de tracerprovider.
using System;
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Agents.AI;
using OpenAI;
// Create the agent and enable OpenTelemetry instrumentation
AIAgent agent = new AzureOpenAIClient(
new Uri("https://<myresource>.openai.azure.com"),
new AzureCliCredential())
.GetChatClient("gpt-4o-mini")
.CreateAIAgent(instructions: "You are good at telling jokes.", name: "Joker")
.AsBuilder()
.UseOpenTelemetry(sourceName: "agent-telemetry-source")
.Build();
Voer de agent uit en druk de tekstreactie af. De consoleexporteur toont traceringsgegevens op de console.
Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));
De verwachte uitvoer ziet er ongeveer als volgt uit, waarbij de aanroeptracering van de agent eerst wordt weergegeven, gevolgd door het tekstantwoord van de agent.
Activity.TraceId: f2258b51421fe9cf4c0bd428c87b1ae4
Activity.SpanId: 2cad6fc139dcf01d
Activity.TraceFlags: Recorded
Activity.DisplayName: invoke_agent Joker
Activity.Kind: Client
Activity.StartTime: 2025-09-18T11:00:48.6636883Z
Activity.Duration: 00:00:08.6077009
Activity.Tags:
gen_ai.operation.name: chat
gen_ai.request.model: gpt-4o-mini
gen_ai.provider.name: openai
server.address: <myresource>.openai.azure.com
server.port: 443
gen_ai.agent.id: 19e310a72fba4cc0b257b4bb8921f0c7
gen_ai.agent.name: Joker
gen_ai.response.finish_reasons: ["stop"]
gen_ai.response.id: chatcmpl-CH6fgKwMRGDtGNO3H88gA3AG2o7c5
gen_ai.response.model: gpt-4o-mini-2024-07-18
gen_ai.usage.input_tokens: 26
gen_ai.usage.output_tokens: 29
Instrumentation scope (ActivitySource):
Name: agent-telemetry-source
Resource associated with Activity:
telemetry.sdk.name: opentelemetry
telemetry.sdk.language: dotnet
telemetry.sdk.version: 1.13.1
service.name: unknown_service:Agent_Step08_Telemetry
Why did the pirate go to school?
Because he wanted to improve his "arrr-ticulation"! ?????
Volgende stappen
Deze zelfstudie laat zien hoe u OpenTelemetry snel inschakelt op een agent, zodat interacties met de agent automatisch worden geregistreerd en geëxporteerd.
Zie de gebruikershandleiding voor waarneembaarheid voor uitgebreide documentatie over waarneembaarheid, inclusief alle configuratieopties, omgevingsvariabelen en geavanceerde scenario's.
Vereiste voorwaarden
Zie de stap Een eenvoudige agent maken en uitvoeren in deze zelfstudie voor vereisten.
Pakketten installeren
Als u Agent Framework wilt gebruiken met OpenTelemetry, installeert u het framework:
pip install agent-framework --pre
Voor console-uitvoer tijdens de ontwikkeling zijn er geen extra pakketten nodig. Zie de sectie Afhankelijkheden in de gebruikershandleiding voor andere exporteurs.
OpenTelemetry inschakelen in uw app
De eenvoudigste manier om waarneembaarheid mogelijk te maken, is door gebruik te maken van configure_otel_providers():
from agent_framework.observability import configure_otel_providers
# Enable console output for local development
configure_otel_providers(enable_console_exporters=True)
Of gebruik omgevingsvariabelen voor meer flexibiliteit:
export ENABLE_INSTRUMENTATION=true
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
from agent_framework.observability import configure_otel_providers
# Reads OTEL_EXPORTER_OTLP_* environment variables automatically
configure_otel_providers()
De agent maken en uitvoeren
Maak een agent met Agent Framework. Waarneembaarheid wordt automatisch ingeschakeld nadat configure_otel_providers() is aangeroepen.
from agent_framework import ChatAgent
from agent_framework.openai import OpenAIChatClient
# Create the agent - telemetry is automatically enabled
agent = ChatAgent(
chat_client=OpenAIChatClient(),
name="Joker",
instructions="You are good at telling jokes."
)
# Run the agent
result = await agent.run("Tell me a joke about a pirate.")
print(result.text)
De consoleexporteur toont traceringsgegevens die vergelijkbaar zijn met:
{
"name": "invoke_agent Joker",
"context": {
"trace_id": "0xf2258b51421fe9cf4c0bd428c87b1ae4",
"span_id": "0x2cad6fc139dcf01d"
},
"attributes": {
"gen_ai.operation.name": "invoke_agent",
"gen_ai.agent.name": "Joker",
"gen_ai.usage.input_tokens": 26,
"gen_ai.usage.output_tokens": 29
}
}
Microsoft Foundry-integratie
Als u Microsoft Foundry gebruikt, is er een handige methode waarmee Azure Monitor automatisch wordt geconfigureerd met Application Insights. Controleer eerst of uw Foundry-project Azure Monitor heeft geconfigureerd (zie Monitor-toepassingen).
pip install azure-monitor-opentelemetry
from agent_framework.azure import AzureAIClient
from azure.ai.projects.aio import AIProjectClient
from azure.identity.aio import AzureCliCredential
async with (
AzureCliCredential() as credential,
AIProjectClient(endpoint="https://<your-project>.foundry.azure.com", credential=credential) as project_client,
AzureAIClient(project_client=project_client) as client,
):
# Automatically configures Azure Monitor with connection string from project
await client.configure_azure_monitor(enable_live_metrics=True)
Aangepaste agents met waarneembaarheid van Foundry
Voor aangepaste agents die niet zijn gemaakt via Foundry, kunt u deze registreren in de Foundry-portal en dezelfde OpenTelemetry-agent-id gebruiken. Zie Aangepaste agent registreren voor installatie-instructies.
from azure.monitor.opentelemetry import configure_azure_monitor
from agent_framework import ChatAgent
from agent_framework.observability import create_resource, enable_instrumentation
from agent_framework.openai import OpenAIChatClient
# Configure Azure Monitor
configure_azure_monitor(
connection_string="InstrumentationKey=...",
resource=create_resource(),
enable_live_metrics=True,
)
# Optional if ENABLE_INSTRUMENTATION is already set in env vars
enable_instrumentation()
# Create your agent with the same OpenTelemetry agent ID as registered in Foundry
agent = ChatAgent(
chat_client=OpenAIChatClient(),
name="My Agent",
instructions="You are a helpful assistant.",
id="<OpenTelemetry agent ID>" # Must match the ID registered in Foundry
)
# Use the agent as normal
Aanbeveling
Zie de sectie Microsoft Foundry setup in de gebruikershandleiding voor gedetailleerdere installatie-instructies.
Volgende stappen
Zie de gebruikershandleiding voor waarneembaarheid voor meer geavanceerde scenario's met betrekking tot waarneembaarheid, waaronder aangepaste exporteurs, integraties van derden (Langfuse, enzovoort), het instellen van het Aspire Dashboard en gedetailleerde documentatie over span/metric.