Solo.Beacon 1.0.0-pre-doc4847-03
Solo.Beacon
Solo.Beacon — это переиспользуемый ASP.NET Core пакет для сервисов ft-soft. Он предоставляет:
- endpoint
/beacon/discovery, который публикует реальные путиhealthиstatsдля сервиса - endpoint
/beacon/health, который отвечает200 OKна любой HTTP-метод - endpoint
/beacon/statsдля состояния текущего сервиса - возможность включать или отключать логирование запросов к
/discovery,/healthи/statsодним общим флагом - опциональный фоновый опрос зависимых сервисов с обработкой результатов через delegate
Использование
using Solo.Beacon;
var builder = WebApplication.CreateBuilder(args);
builder.Services
.AddBeacon()
.AddBeaconHealthMonitoring(
static async (serviceProvider, responses, cancellationToken) =>
{
var cache = serviceProvider.GetRequiredService<IMonitoringCache>();
await cache.StoreAsync(responses, cancellationToken);
});
var app = builder.Build();
app.MapBeacon()
.MapHealth()
.MapStats();
Если нужен собственный payload /stats, можно передать один async-handler в MapStats(...). В нем доступны HttpContext и CancellationToken, так что состав статистики можно настраивать в зависимости от пользователя, заголовков и других деталей запроса.
app.MapBeacon()
.MapHealth()
.MapStats(async (httpContext, cancellationToken) =>
{
var statsProvider = httpContext.RequestServices.GetRequiredService<StatsProvider>();
var stats = await statsProvider.GetStatsAsync();
var userName = httpContext.User.Identity?.Name;
return Task.FromResult<IResult>(TypedResults.Ok(new
{
stats,
userName,
}));
});
По умолчанию endpoint вернет только timestamp генерации ответа текущего сервиса.
Конфигурация
{
"Beacon": {
"LoggingEnabled": false,
"HealthUrl": "/beacon/health",
"StatsUrl": "/beacon/stats",
"Monitoring": {
"Enabled": true,
"ProbeInterval": "00:00:30",
"RequestTimeout": "00:00:05",
"Services": [
"https://solo-butler.ru",
"https://solo.ru/solo",
"https://solo.ru/org"
]
}
}
}
Примечания
/statsвсегда закрыт авторизацией и использует стандартное поведение ASP.NET Core, настроенное в хост-приложении.- Чтобы в
HttpContext.Userбыли данные пользователя, хост-приложение должно само настроить аутентификацию обычным для себя способом. /beacon/discoveryвсегда захардкожен и не настраивается через конфиг.- Пути endpoint-ов и общий флаг логгирования можно полностью задать через
SoloBeaconв конфиге, без обязательных lambda-настроек вProgram.cs.
No packages depend on Solo.Beacon.
.NET 8.0
- No dependencies.
| Version | Downloads | Last updated |
|---|---|---|
| 1.0.0 | 3 | 05/28/2026 |
| 1.0.0-pre-doc4847-07 | 2 | 05/19/2026 |
| 1.0.0-pre-doc4847-06 | 2 | 05/19/2026 |
| 1.0.0-pre-doc4847-05 | 2 | 05/19/2026 |
| 1.0.0-pre-doc4847-04 | 2 | 05/19/2026 |
| 1.0.0-pre-doc4847-03 | 2 | 05/18/2026 |
| 1.0.0-pre-doc4847-02 | 2 | 05/18/2026 |
| 1.0.0-pre-doc4847-01 | 2 | 05/18/2026 |