Anonymous
Добавить внешний сервис в Aspire
Сообщение
Anonymous » 23 авг 2025, 19:52
Я пытаюсь добавить приложение ASP.NET Core в Aspire Dashboard. < /p>
Я сделал это, используя этот код: < /p>
Код: Выделить всё
builder.AddExternalService("FirstApp", new Uri("http://localhost:5027"))
.WithHttpHealthCheck("/healthz")
.WithExplicitStart();
< /code>
И это сработало. Я вижу, что приложение запускается, но другие данные, такие как метрики, трассировки и журналы, не отправляются в приложение Aspire.
Вот моя программа ASP.net Core App Program.cs Файл:
Код: Выделить всё
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddOpenApi();
var oltpEndpoint = new Uri("http://localhost:19131");
var resourceBuilder = ResourceBuilder.CreateDefault()
.AddService("FirstApi", serviceVersion: "1.0.0");
// OpenTelemetry
builder.Logging.AddOpenTelemetry(options =>
{
options
.SetResourceBuilder(resourceBuilder)
.AddConsoleExporter()
.AddOtlpExporter(oltpOptions =>
{
oltpOptions.Endpoint = oltpEndpoint;
oltpOptions.Protocol = OtlpExportProtocol.Grpc;
});
});
builder.Services.AddOpenTelemetry()
.WithMetrics(metrics =>
{
metrics
.SetResourceBuilder(resourceBuilder)
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddRuntimeInstrumentation()
.AddConsoleExporter()
.AddOtlpExporter(options =>
{
options.Endpoint = oltpEndpoint;
options.Protocol = OtlpExportProtocol.Grpc;
});
})
.WithTracing(tracing =>
{
tracing
.SetResourceBuilder(resourceBuilder)
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddConsoleExporter()
.AddOtlpExporter(options =>
{
options.Endpoint = oltpEndpoint;
options.Protocol = OtlpExportProtocol.Grpc;
});
});
// Service Discovery
builder.Services.AddServiceDiscovery();
var app = builder.Build();
app.MapScalarApiReference();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.MapOpenApi();
}
app.UseHttpsRedirection();
var summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
app.MapGet("/weatherforecast", () =>
{
var forecast = Enumerable.Range(1, 5).Select(index =>
new WeatherForecast
(
DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
Random.Shared.Next(-20, 55),
summaries[Random.Shared.Next(summaries.Length)]
))
.ToArray();
return forecast;
})
.WithName("GetWeatherForecast");
app.MapHealthChecks("/healthz");
app.Run();
record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary)
{
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
}
вот мой Aspire LaunchSettings.json Файл:
Код: Выделить всё
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:15004",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"DOTNET_ENVIRONMENT": "Development",
"ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:19131",
"ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:20150"
}
}
}
}
ps: я не хочу использовать builder.addproject () .
Подробнее здесь:
https://stackoverflow.com/questions/797 ... -in-aspire
1755967951
Anonymous
Я пытаюсь добавить приложение ASP.NET Core в Aspire Dashboard. < /p> Я сделал это, используя этот код: < /p> [code]builder.AddExternalService("FirstApp", new Uri("http://localhost:5027")) .WithHttpHealthCheck("/healthz") .WithExplicitStart(); < /code> И это сработало. Я вижу, что приложение запускается, но другие данные, такие как метрики, трассировки и журналы, не отправляются в приложение Aspire. Вот моя программа ASP.net Core App Program.cs [/code] Файл: [code]var builder = WebApplication.CreateBuilder(args); builder.Services.AddOpenApi(); var oltpEndpoint = new Uri("http://localhost:19131"); var resourceBuilder = ResourceBuilder.CreateDefault() .AddService("FirstApi", serviceVersion: "1.0.0"); // OpenTelemetry builder.Logging.AddOpenTelemetry(options => { options .SetResourceBuilder(resourceBuilder) .AddConsoleExporter() .AddOtlpExporter(oltpOptions => { oltpOptions.Endpoint = oltpEndpoint; oltpOptions.Protocol = OtlpExportProtocol.Grpc; }); }); builder.Services.AddOpenTelemetry() .WithMetrics(metrics => { metrics .SetResourceBuilder(resourceBuilder) .AddAspNetCoreInstrumentation() .AddHttpClientInstrumentation() .AddRuntimeInstrumentation() .AddConsoleExporter() .AddOtlpExporter(options => { options.Endpoint = oltpEndpoint; options.Protocol = OtlpExportProtocol.Grpc; }); }) .WithTracing(tracing => { tracing .SetResourceBuilder(resourceBuilder) .AddAspNetCoreInstrumentation() .AddHttpClientInstrumentation() .AddConsoleExporter() .AddOtlpExporter(options => { options.Endpoint = oltpEndpoint; options.Protocol = OtlpExportProtocol.Grpc; }); }); // Service Discovery builder.Services.AddServiceDiscovery(); var app = builder.Build(); app.MapScalarApiReference(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.MapOpenApi(); } app.UseHttpsRedirection(); var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; app.MapGet("/weatherforecast", () => { var forecast = Enumerable.Range(1, 5).Select(index => new WeatherForecast ( DateOnly.FromDateTime(DateTime.Now.AddDays(index)), Random.Shared.Next(-20, 55), summaries[Random.Shared.Next(summaries.Length)] )) .ToArray(); return forecast; }) .WithName("GetWeatherForecast"); app.MapHealthChecks("/healthz"); app.Run(); record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary) { public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); } [/code] вот мой Aspire LaunchSettings.json Файл: [code]{ "$schema": "https://json.schemastore.org/launchsettings.json", "profiles": { "http": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "http://localhost:15004", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "DOTNET_ENVIRONMENT": "Development", "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:19131", "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:20150" } } } } [/code] ps: я не хочу использовать builder.addproject () . Подробнее здесь: [url]https://stackoverflow.com/questions/79744298/add-external-service-in-aspire[/url]