/// <summary> /// Add a health check for Kafka cluster. /// </summary> /// <param name="builder">The <see cref="IHealthChecksBuilder"/>.</param> /// <param name="configuration">The <see cref="IConfiguration"/>.</param> /// <param name="topic">The topic name to produce kafka messages on. Optional.</param> /// <param name="name">The health check name. Optional. If <c>null</c> the type name 'KafkaOrleansStreams' will be used for the name.</param> /// <param name="failureStatus"> /// The <see cref="HealthStatus"/> that should be reported when the health check fails. Optional. If <c>null</c> then /// the default status of <see cref="HealthStatus.Unhealthy"/> will be reported. /// </param> /// <param name="tags">A list of tags that can be used to filter sets of health checks. Optional.</param> /// <returns>The <see cref="IHealthChecksBuilder"/>.</returns> public static IHealthChecksBuilder AddKafkaOrleansStreams([NotNull] this IHealthChecksBuilder builder, [NotNull] IConfiguration configuration, string topic = null, string name = Constants.DefaultHealthCheckName, HealthStatus?failureStatus = default, IEnumerable <string> tags = default) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } return(builder.AddKafkaOrleansStreams(configuration.GetSection(KafkaOptions.DefaultSectionName), topic, name, failureStatus, tags)); }