Files
vigilcare-clinical/VigilCareClinicalAPI/Infrastructure/KafkaHealthCheck.cs
T
voltsrage 2a3ef62a7d
CI / frontend (push) Failing after 57s
CI / backend (push) Failing after 6m27s
Add deployment
2026-08-05 00:26:20 +08:00

26 lines
909 B
C#

using Confluent.Kafka;
using Microsoft.Extensions.Diagnostics.HealthChecks;
using Microsoft.Extensions.Options;
public sealed class KafkaHealthCheck : IHealthCheck
{
private readonly KafkaOptions _options;
public KafkaHealthCheck(IOptions<KafkaOptions> options) => _options = options.Value;
public async Task<HealthCheckResult> CheckHealthAsync(
HealthCheckContext context, CancellationToken cancellationToken = default)
{
using var admin = new AdminClientBuilder(new AdminClientConfig
{
BootstrapServers = _options.BootstrapServers
}.ApplySecurity(_options)).Build();
var metadata = await Task.Run(
() => admin.GetMetadata(TimeSpan.FromSeconds(5)), cancellationToken);
var data = new Dictionary<string, object> { ["brokers"] = metadata.Brokers.Count };
return HealthCheckResult.Healthy(data: data);
}
}