Esempio n. 1
0
        public void Request(int i)
        {
            var multiContextMetrics = new MultiContextMetrics(_metrics);
            multiContextMetrics.Run();

            for (var j = 0; j < 5; j++)
            {
                var multiContextInstanceMetrics = new MultiContextInstanceMetrics(_metrics);
                multiContextInstanceMetrics.Run();
            }

            using (_timer.NewContext(i.ToString())) // measure until disposed
            {
                _someValue *= i + 1; // will be reflected in the gauge

                _concurrentRequestsCounter.Increment(); // increment concurrent requests counter

                _totalRequestsCounter.Increment(); // increment total requests counter

                _meter.Mark(); // signal a new request to the meter

                _histogramOfData.Update(new Random().Next(5000), "user-value-" + i); // update the histogram with the input data

                var item = "Item " + new Random().Next(5);
                _setCounter.Increment(item);

                _setMeter.Mark(item);

                // simulate doing some work
                var ms = Math.Abs(new Random().Next(3000));
                Thread.Sleep(ms);

                _concurrentRequestsCounter.Decrement(); // decrement number of concurrent requests
            }
        }
 /// <summary>
 /// Converts the message to an array of bytes
 /// </summary>
 /// <typeparam name="T">the message type</typeparam>
 /// <param name="message">The message.</param>
 /// <returns>
 /// byte array
 /// </returns>
 public byte[] ConvertMessageToBytes <T>(T message) where T : class
 {
     using (_messageToBytesTimer.NewContext())
     {
         var result = _handler.ConvertMessageToBytes(message);
         _resultSizeHistogram.Update(result.Length, result.Length.ToString(CultureInfo.InvariantCulture));
         return(result);
     }
 }
 /// <summary>
 /// Converts the action method to bytes.
 /// </summary>
 /// <param name="method">The method.</param>
 /// <returns></returns>
 public byte[] ConvertMethodToBytes(Expression <Action <IReceivedMessage <MessageExpression>, IWorkerNotification> > method)
 {
     using (_methodToBytesTimer.NewContext())
     {
         var result = _handler.ConvertMethodToBytes(method);
         _resultMethodSizeHistogram.Update(result.Length, result.Length.ToString(CultureInfo.InvariantCulture));
         return(result);
     }
 }
 /// <summary>
 /// Converts an input class to a string
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="data">The data to serialize</param>
 /// <returns></returns>
 public string ConvertToString <T>(T data) where T : class
 {
     using (_messageToStringTimer.NewContext())
     {
         var result = _handler.ConvertToString(data);
         _resultSizeStringHistogram.Update(result.Length, result.Length.ToString(CultureInfo.InvariantCulture));
         return(result);
     }
 }
 /// <summary>
 /// Converts the message to an array of bytes
 /// </summary>
 /// <typeparam name="T">the message type</typeparam>
 /// <param name="message">The message.</param>
 /// <param name="headers">the message headers</param>
 /// <returns>
 /// byte array
 /// </returns>
 public byte[] ConvertMessageToBytes <T>(T message, IReadOnlyDictionary <string, object> headers) where T : class
 {
     using (_messageToBytesTimer.NewContext())
     {
         var result = _handler.ConvertMessageToBytes(message, headers);
         _resultSizeHistogram.Update(result.Length, result.Length.ToString(CultureInfo.InvariantCulture));
         return(result);
     }
 }
        /// <summary>
        /// Runs the interceptor on the input and returns the output as a byte array. Used to serialize a message stream.
        /// </summary>
        /// <param name="input">The input.</param>
        /// <param name="headers">the message headers</param>
        /// <returns></returns>
        public MessageInterceptorResult MessageToBytes(byte[] input, IReadOnlyDictionary <string, object> headers)
        {
            using (_metricTimerMessage.NewContext())
            {
                var temp = _handler.MessageToBytes(input, headers);
                if (!temp.AddToGraph)
                {
                    _metricHistogramOptOut.Update(input.Length, input.Length.ToString(CultureInfo.InvariantCulture));
                    return(temp);
                }

                //metrics.net no longer accepts negative values - which makes sense...  Ensure that the delta is always positive
                var delta = Math.Abs(input.Length - temp.Output.Length);
                _metricHistogramDelta.Update(delta, delta.ToString(CultureInfo.InvariantCulture));
                _metricHistogram.Update(input.Length, input.Length.ToString(CultureInfo.InvariantCulture));
                return(temp);
            }
        }
        public void Process(string documentId)
        {
            var results = GetResultsForDocument(documentId);

            _histogram.Update(results.Length, documentId);
        }