mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
dc2b109b50
* Upgrade to .NET 10 - Require .NET 10 SDK - Include net10.0 assets in all assemblies - Move net9.0-only targets to net10.0 - Update LangVersion to latest - Remove complicated distinctions between debug target TFMs and release target TFMs - Remove unnecessary package dependencies when built into netcoreapp - Clean up some ifdefs - Clean up some analyzer warnings * Fix CI
140 lines
5.3 KiB
PowerShell
140 lines
5.3 KiB
PowerShell
# OpenTelemetry Console Demo with Aspire Dashboard (Docker)
|
|
# This script starts the Aspire Dashboard via Docker and the Console Application
|
|
|
|
Write-Host "Starting OpenTelemetry Console Demo..." -ForegroundColor Green
|
|
Write-Host ""
|
|
|
|
# Check if we're in the right directory
|
|
if (!(Test-Path "AgentOpenTelemetry.csproj")) {
|
|
Write-Host "Error: Please run this script from the AgentOpenTelemetry directory" -ForegroundColor Red
|
|
Write-Host "Expected to find AgentOpenTelemetry.csproj file" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
# Check if Docker is running
|
|
try {
|
|
docker version | Out-Null
|
|
Write-Host "Docker is running" -ForegroundColor Green
|
|
} catch {
|
|
Write-Host "Docker is not running or not installed" -ForegroundColor Red
|
|
Write-Host "Please start Docker Desktop and try again" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
# Check for Azure OpenAI configuration
|
|
if ($env:AZURE_OPENAI_ENDPOINT) {
|
|
Write-Host "Found Azure OpenAI endpoint: $($env:AZURE_OPENAI_ENDPOINT)" -ForegroundColor Green
|
|
if ($env:AZURE_OPENAI_DEPLOYMENT_NAME) {
|
|
Write-Host "Using deployment: $($env:AZURE_OPENAI_DEPLOYMENT_NAME)" -ForegroundColor Green
|
|
} else {
|
|
Write-Host "Using default deployment: gpt-4o-mini" -ForegroundColor Cyan
|
|
}
|
|
} else {
|
|
Write-Host "Warning: AZURE_OPENAI_ENDPOINT not found!" -ForegroundColor Yellow
|
|
Write-Host "Please set the AZURE_OPENAI_ENDPOINT environment variable" -ForegroundColor Yellow
|
|
Write-Host "Example: `$env:AZURE_OPENAI_ENDPOINT='https://your-resource.openai.azure.com/'" -ForegroundColor Yellow
|
|
Write-Host ""
|
|
}
|
|
|
|
# Build console application
|
|
Write-Host ""
|
|
Write-Host "Building console application..." -ForegroundColor Cyan
|
|
|
|
$buildResult = dotnet build --verbosity quiet
|
|
if ($LASTEXITCODE -ne 0) {
|
|
Write-Host "Failed to build Console App" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
Write-Host "Build completed successfully" -ForegroundColor Green
|
|
|
|
Write-Host ""
|
|
Write-Host "Starting Aspire Dashboard via Docker..." -ForegroundColor Cyan
|
|
|
|
# Stop any existing Aspire Dashboard container
|
|
Write-Host "Stopping any existing Aspire Dashboard container..." -ForegroundColor Gray
|
|
docker stop aspire-dashboard-afdemo 2>$null | Out-Null
|
|
docker rm aspire-dashboard-afdemo 2>$null | Out-Null
|
|
|
|
# Start Aspire Dashboard in Docker daemon mode with fixed token
|
|
Write-Host "Starting Aspire Dashboard container..." -ForegroundColor Green
|
|
$fixedToken = "demo-token-12345"
|
|
$dockerResult = docker run -d `
|
|
--name aspire-dashboard-afdemo `
|
|
-p 4318:18888 `
|
|
-p 4317:18889 `
|
|
-e DOTNET_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS=true `
|
|
--restart unless-stopped `
|
|
mcr.microsoft.com/dotnet/aspire-dashboard:latest
|
|
|
|
if ($LASTEXITCODE -ne 0) {
|
|
Write-Host "Failed to start Aspire Dashboard container" -ForegroundColor Red
|
|
Write-Host "Make sure Docker is running and try again" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
Write-Host "Aspire Dashboard started successfully!" -ForegroundColor Green
|
|
Write-Host "OTLP Endpoint: http://localhost:4318" -ForegroundColor Cyan
|
|
|
|
# Wait for dashboard to be ready by polling the port
|
|
Write-Host "Waiting for dashboard to be ready..." -ForegroundColor Gray
|
|
$maxWaitSeconds = 10
|
|
$waitCount = 0
|
|
$dashboardReady = $false
|
|
|
|
while ($waitCount -lt $maxWaitSeconds -and !$dashboardReady) {
|
|
try {
|
|
$tcpConnection = Test-NetConnection -ComputerName "localhost" -Port 4317 -InformationLevel Quiet -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
|
|
if ($tcpConnection) {
|
|
$dashboardReady = $true
|
|
Write-Host "Dashboard is ready! (took $waitCount seconds)" -ForegroundColor Green
|
|
} else {
|
|
Write-Host "." -NoNewline -ForegroundColor Gray
|
|
Start-Sleep -Seconds 1
|
|
$waitCount++
|
|
}
|
|
} catch {
|
|
Write-Host "." -NoNewline -ForegroundColor Gray
|
|
Start-Sleep -Seconds 1
|
|
$waitCount++
|
|
}
|
|
}
|
|
|
|
if (!$dashboardReady) {
|
|
Write-Host ""
|
|
Write-Host "Dashboard port 4317 not responding after $maxWaitSeconds seconds" -ForegroundColor Yellow
|
|
Write-Host " Continuing anyway - dashboard might still be starting..." -ForegroundColor Yellow
|
|
} else {
|
|
Write-Host ""
|
|
}
|
|
|
|
# Open the dashboard in browser (anonymous access enabled)
|
|
Write-Host "Opening dashboard in browser..." -ForegroundColor Green
|
|
Write-Host "Dashboard URL: http://localhost:4318" -ForegroundColor Cyan
|
|
Start-Process "http://localhost:4318"
|
|
|
|
Write-Host ""
|
|
Write-Host "Starting Console Application..." -ForegroundColor Cyan
|
|
Write-Host "You can now interact with the AI agent!" -ForegroundColor Green
|
|
Write-Host ""
|
|
|
|
# Set the OTLP endpoint for the console application (Docker Aspire Dashboard)
|
|
$otlpEndpoint = "http://localhost:4317"
|
|
Write-Host "Using OTLP endpoint: $otlpEndpoint" -ForegroundColor Cyan
|
|
|
|
$env:OTEL_EXPORTER_OTLP_ENDPOINT = $otlpEndpoint
|
|
|
|
# Start the console application in the current window
|
|
Write-Host ""
|
|
Write-Host "Starting the console application..." -ForegroundColor Green
|
|
Write-Host "Tip: The dashboard should now be open in your browser!" -ForegroundColor Cyan
|
|
Write-Host ""
|
|
|
|
dotnet run --no-build
|
|
|
|
Write-Host ""
|
|
Write-Host "Demo completed!" -ForegroundColor Green
|
|
Write-Host "The Aspire Dashboard is still running in Docker." -ForegroundColor Gray
|
|
Write-Host "You can view telemetry data in the browser tab that opened." -ForegroundColor Gray
|
|
Write-Host "To stop the dashboard: docker stop aspire-dashboard-afdemo" -ForegroundColor Gray
|