/// <summary> /// Crée une instance de CounterDefinition en la conservant en cache. /// </summary> /// <param name="counterDefinition">Définition du compteur.</param> void IMonitoringStore.CreateCounter(ICounterDefinition counterDefinition) { lock (_counterList) { _counterList.Add(counterDefinition); _counterChangeList.Add(counterDefinition); } }
/// <summary> /// Crée une instance de CounterDefinition en la conservant en cache. /// </summary> /// <param name="counterDefinition">Définition du compteur.</param> void IMonitoringStore.CreateCounter(ICounterDefinition counterDefinition) { if (counterDefinition == null) { throw new ArgumentNullException("counterDefinition"); } throw new NotImplementedException(); }
/// <summary> /// Ajoute la définition d'un compteur. /// </summary> /// <param name="counter">Définition.</param> public void AddCounterDefinition(ICounterDefinition counter) { if (counter == null) { throw new ArgumentNullException("counter"); } if (!this.CounterDefinition.ContainsKey(counter.Code)) { this.CounterDefinition.Add(counter.Code, counter); } }
private static void ExceptionSafeCreateCounter(IMonitoringStore store, ICounterDefinition counter) { try { store.CreateCounter(counter); } catch (Exception e) { ILog log = LogManager.GetLogger("Kinetix.Monitoring"); if (log.IsErrorEnabled) { log.Error("Erreur de persistance du monitoring.", e); } } }
/// <summary> /// Lit la définition d'un compteur. /// </summary> /// <param name="writer">Writer binaire.</param> /// <param name="counterDefinition">Définition du compteur.</param> void IMonitoringProtocolWriter.WriteCounterDefinition(BinaryWriter writer, ICounterDefinition counterDefinition) { if (writer == null) { throw new ArgumentNullException("writer"); } if (counterDefinition == null) { throw new ArgumentNullException("counterDefinition"); } writer.Write(counterDefinition.Label); writer.Write(counterDefinition.Code); writer.Write(counterDefinition.WarningThreshold); writer.Write(counterDefinition.CriticalThreshold); writer.Write(counterDefinition.Priority); }
/// <summary> /// Ajoute la définition d'un compteur. /// </summary> /// <param name="counterDefinition">Définition du compteur.</param> /// <param name="protocolReader">Interface de lecture.</param> public void AddCounterDefinition(ICounterDefinition counterDefinition, IMonitoringProtocolReader protocolReader) { if (protocolReader == null) { throw new ArgumentNullException("protocolReader"); } if (counterDefinition == null) { throw new ArgumentNullException("counterDefinition"); } if (string.IsNullOrEmpty(counterDefinition.Code)) { throw new NotSupportedException("counterDefinition.Code"); } string keyBase = protocolReader.HostName + "&" + protocolReader.EndPoint + "&" + protocolReader.ModuleName + "&"; _counters[keyBase + counterDefinition.Code] = counterDefinition; }
/// <summary> /// Rend une statistique au format HTML. /// </summary> /// <param name="hyperCube">Hypercube contenant les données.</param> /// <param name="writer">Writer HTML.</param> /// <param name="counter">Compteur.</param> /// <param name="counterDefinition">Définition du compteur.</param> /// <param name="link">Indique si un lien doit être créé pour la selection des graphiques.</param> /// <param name="context">Contexte courant de la requête.</param> /// <param name="counterStatType">Type de statistique du compteur à rendre.</param> private static void StatToHtml(IHyperCube hyperCube, HtmlTextWriter writer, ICounter counter, ICounterDefinition counterDefinition, bool link, Context context, CounterStatType counterStatType) { writer.Write(HtmlPageRenderer.Indent2); writer.Write("<td class=\"monitoring\" align=\"right\" " + GetHtmlStyle(counterDefinition, counter.GetValue(counterStatType)) + '>'); writer.Write(string.Format(CultureInfo.CurrentCulture, "{0:0.##}", counter.GetValue(counterStatType))); writer.WriteLine("</td>"); if (counter.HasInfo(counterStatType)) { writer.Write(HtmlPageRenderer.Indent2); writer.Write("<td class=\"monitoring\">"); writer.Write(HtmlPageRenderer.GetLink(context.Zoom(hyperCube.Name, counter.GetInfo(counterStatType)), counter.GetInfo(counterStatType), link)); writer.WriteLine("</td>"); } }
/// <summary> /// Rend un compteur sous forme HTML. /// </summary> /// <param name="hyperCube">Hypercube contenant les données.</param> /// <param name="writer">Writer HTML.</param> /// <param name="counter">Compteur.</param> /// <param name="counterDefinition">Définition du compteur.</param> /// <param name="link">Indique si un lien doit être créé pour la selection des graphiques.</param> /// <param name="context">Context courant de la requête.</param> private static void ToHtml(IHyperCube hyperCube, HtmlTextWriter writer, ICounter counter, ICounterDefinition counterDefinition, bool link, Context context) { StatToHtml(hyperCube, writer, counter, counterDefinition, link, context, CounterStatType.Last); StatToHtml(hyperCube, writer, counter, counterDefinition, link, context, CounterStatType.Avg); StatToHtml(hyperCube, writer, counter, counterDefinition, link, context, CounterStatType.Min); StatToHtml(hyperCube, writer, counter, counterDefinition, link, context, CounterStatType.Max); }
/// <summary> /// Retourne un style html ou chaîne vide selon le niveau de criticité de /// la valeur en entrée. /// </summary> /// <param name="counter">Définition du compteur.</param> /// <param name="value">Valeur.</param> /// <returns>Style.</returns> private static string GetHtmlStyle(ICounterDefinition counter, double value) { return(GetHtmlStyle(counter.WarningThreshold, counter.CriticalThreshold, value)); }