private IActionResult Get(MediaServicesAccountConfig accountConfig, string id) { var chid = string.Format("nb:chid:UUID:{0}", id); AventusTelemetry telemetry = null; var context = accountConfig.GetContext(); var channel = context.Channels.Where(ch => ch.Id == chid).FirstOrDefault(); if (channel == null) { return(NotFound()); } if (channel.EncodingType != ChannelEncodingType.None) { var aventusHelper = new AventusHelper(accountConfig); telemetry = aventusHelper.GetTelemetryInfo(channel); } return(Ok(telemetry)); }
private AventusTelemetry Get(MediaServicesAccountConfig accountConfig, string id) { var chid = string.Format("nb:chid:UUID:{0}", id); AventusTelemetry telemetry = null; var context = accountConfig.GetContext(); var channel = context.Channels.Where(ch => ch.Id == chid).FirstOrDefault(); if (channel == null) { throw new HttpResponseException(System.Net.HttpStatusCode.NotFound); } if (channel.EncodingType != ChannelEncodingType.None) { var aventusHelper = new AventusHelper(accountConfig); telemetry = aventusHelper.GetTelemetryInfo(channel); } return(telemetry); }
private List <Alert> GetEncodingAlerts(MediaChannel channel, AventusTelemetry telemetry) { var alerts = new List <Alert>(); var ticks = DateTime.UtcNow.Ticks; if (telemetry != null) { channel.EncodingHealth = telemetry.ChannelHealth.HealthLevel.GetHealthStatus(); var receivers = telemetry.Inputs.Receivers; // Add all the alerts from receivers. alerts.AddRange(receivers.SelectMany((receiver, index) => { string source = string.Format( "Receivers[{0}], TaskIndex:{1} TaskGroupId:{2}", index, receiver.TaskIndex, receiver.TaskGroupId); return(GetAlertsFromHealth(receiver.Health, source, ref ticks)); })); // Add all the alerts from decoders. var transcoders = telemetry.Transcoders; var decoders = transcoders.VideoDecoders; alerts.AddRange(decoders.SelectMany((decoder, index) => { var source = string.Format( "Decoders[{0}], TaskIndex: {1}, TaskGroupId:{2}", index, decoder.TaskIndex, decoder.TaskGroupId); var decoderAlerts = GetAlertsFromHealth(decoder.Health, source, ref ticks); var encoderAlerts = decoder.VideoEncoders.SelectMany((encoder, encoderIndex) => { source = string.Format( "Decoders[{0}]/Encoders[{1}], TaskIndex:{2}, TaskGroupId:{3}", index, encoderIndex, decoder.TaskIndex, decoder.TaskGroupId); return(GetAlertsFromHealth(decoder.Health, source, ref ticks)); }); return(decoderAlerts.Concat(encoderAlerts)); })); // Add all the alerts from packagers and the publishers. var packagers = telemetry.Outputs.Packagers; alerts.AddRange(packagers.SelectMany((packager, index) => { var source = string.Format("Packagers[{0}]", index); var packagerAlerts = GetAlertsFromHealth(packager.Health, source, ref ticks); var publishinerAlerts = packager.Publishers.SelectMany((publisher, pindex) => { source = string.Format("Packager[{0}]/Publisher[{1}]", index, pindex); return(GetAlertsFromHealth(publisher.Health, source, ref ticks)); }); return(packagerAlerts.Concat(publishinerAlerts)); })); } alerts.ForEach(alert => alert.ChannelID = channel.Id); return(alerts); }