public override async Task PublishAsync(HealthReport report, CancellationToken cancellationToken) { var alert = this.HasToPublishAlert(report); var entry = report .Entries .FirstOrDefault(x => x.Key == this._healthCheck.Name); if (alert) { var msg = new SlackMessage { Channel = _slackTransportSettings.Channel, Text = $"Alert Triggered : {_healthCheck.Name} {Environment.NewLine}" + $"Triggered On : {DateTime.Now} {Environment.NewLine}" + $"Service Type : {_healthCheck.ServiceType} {Environment.NewLine}" + $"Alert Endpoint : {_healthCheck.EndpointOrHost} {Environment.NewLine}" + $"Alert Status : {entry.Value.Status} {Environment.NewLine}" + $"Alert Details : {entry.Value.Status} {Environment.NewLine}" + $"Alert Details : {entry.Value.Description} {Environment.NewLine}" + $"Alert Details : {entry.Value.Exception} {Environment.NewLine}", As_user = false, Username = _slackTransportSettings.Username }; foreach (var extraData in entry.Value.Data) { msg.Text += $"Alert Tags : {extraData.Key} - {extraData.Value} {Environment.NewLine}"; } await SlackMessageSender.SendMessageAsync(_slackTransportSettings.Token, msg); } }
public SlackLogger(string prefix, string channelId, string slackToken) { _prefix = prefix; _channelId = channelId; _slackSender = new SlackMessageSender(slackToken); }