/// <summary>
        /// Initialize performance counter for new calculations.
        /// Some counters returns zero on first value because they need two values in order to be calculated.
        /// </summary>
        public void Initialize()
        {
            // Take one values
            _performanceCounter.NextValue();
            // Set performance counter as initialized
            _initialized = true;
            // Initialize samples counter to zero
            _samplesCount = 0;
            // Initialize total result to zero
            _result = 0;
            // Set counter status equal to OK (0)
            CounterStatus.Initialize();

            // Write verbose counter has been initialized
            WriteVerbose($"Initialized performance counter on counter {_performanceCounterString}");
        }
 /// <summary>
 /// Change performance counter status according to Nagios / Icinga format.
 /// Saves error in ResultString
 /// </summary>
 /// <param name="nagiosStatusEnum"></param>
 private void RegisterStatusOnCounter(NagiosStatusEnum nagiosStatusEnum)
 {
     // Set status warning
     if (nagiosStatusEnum == NagiosStatusEnum.Warning)
     {
         CounterStatus.SetWarning();
         WriteVerbose($"Performance counter on counter {_performanceCounterString} = {_result} >= {_warning} -> status warning");
     }
     // Set status critical
     else
     {
         CounterStatus.SetCritical();
         WriteVerbose($"Performance counter on counter {_performanceCounterString} = {_result} >= {_critical} -> status critical");
     }
     // Store result and message in ResultString
     ResultString = $"{_friendlyName} = {Math.Round(_result, 4, MidpointRounding.AwayFromZero).ToString(FormatFloat)} {nagiosStatusEnum.ToString().ToLower()}.";
 }
Example #3
0
 public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
 {
     if (value != null)
     {
         CounterStatus conStatus = (CounterStatus)value;
         if (conStatus.Equals(CounterStatus.Free))
         {
             return("/Images/CounterFree.png");
         }
         else
         {
             return("/Images/CopunterBusy.png");
         }
     }
     else
     {
         return("/Images/CounterFree.png");;
     }
 }