Example #1
0
 public void EnqueueEvent(MungServerEvent evt)
 {
     if (_events.Count < 100)
     {
         _events.Enqueue(evt);
     }
 }
Example #2
0
        protected override Task OnReceived(IRequest request, string connectionId, string data)
        {
            var evt = new MungServerEvent(data);

            MungState.App.Pipeline.Process(evt);

            return base.OnReceived(request, connectionId, data);
        }
Example #3
0
 public void Process(MungServerEvent evt)
 {
     foreach (var subs in _active.Values) {
         try {
             subs.EnqueueEvent(evt);
         } catch (Exception ex) {
             Debug.WriteLine(ex.Message + "\r\n" + ex.StackTrace);
         }
     }
 }
Example #4
0
        public bool Filter(MungServerEvent evt)
        {
            if (!string.IsNullOrEmpty(Metric.EventType) && Metric.EventType != evt.Type) {
                return false;
            }
            if (string.IsNullOrEmpty(Metric.Filter)) {
                return true;
            }

            return JsonExpression.IsTrue(evt.Token, Metric.Filter);
        }
Example #5
0
 public void Process(MungServerEvent evt)
 {
     foreach (var subs in _active.Values)
     {
         try {
             subs.EnqueueEvent(evt);
         } catch (Exception ex) {
             Debug.WriteLine(ex.Message + "\r\n" + ex.StackTrace);
         }
     }
 }
Example #6
0
 public override double Accumulate(MungServerEvent evt)
 {
     Sum += EvaluateNumeric(evt);
     return Terminate();
 }
Example #7
0
        protected override void ProcessEvent(MungServerEvent evt)
        {
            var json = evt.Token.ToString();
            if (PassesFilter(json)) {
                var updates = new List<JavascriptMetricUpdate>();
                foreach (var filter in FilterBuilder.Filters(evt.Data, _dimensions)) {
                    Console.WriteLine("Filter: {0}", filter);
                    Dictionary<string, double> values = new Dictionary<string, double>();
                    foreach (var period in ReportingPeriods) {

                        var key = PeriodMetric.BaseKey(Name, period, filter);
                        if (!_aggregators.ContainsKey(key)) {
                            var agg = new PeriodMetric(Name, _javascript, filter, period);
                            _aggregators[key] = agg;
                        }

                        _aggregators[key].ProcessEvent(json);

                    }
                    updates.Add(new JavascriptMetricUpdate() {
                        Periods = values,
                        Filter = filter
                    });

                }

                // Do all the callbacks in the background
                Task.Run(() => {
                    foreach (var callback in _updateCallbacks.Values) {
                        callback(updates);
                    }
                });

            }
        }
Example #8
0
 public double EvaluateNumeric(MungServerEvent evt, string expression)
 {
     return JsonExpression.EvalulateNumber(evt.Token, expression);
 }
Example #9
0
 protected abstract void ProcessEvent(MungServerEvent evt);
Example #10
0
 public abstract double Accumulate(MungServerEvent evt);
 protected override void ProcessEvent(MungServerEvent evt)
 {
     _relationizer.Write(evt.Data, evt.Type);
 }
Example #12
0
 public override double Accumulate(MungServerEvent evt)
 {
     Count++;
     return Terminate();
 }
Example #13
0
        protected override void ProcessEvent(MungServerEvent evt)
        {
            try {
                CurrentState.CheckIsCurrent();

                if (CurrentState.ProcessEvent(evt)) {
                    // Let our loop know that we need to send data to the client.
                    _clientNeedData = true;

                    // Let our event loop know that we need to update redis.
                    _stateIsDirty = true;
                }
            } catch (Exception ex) {
                foreach (var callback in _errorCallbacks.Values) {
                    callback(ex.Message + "\r\n" + ex.StackTrace);
                }
            }
        }
Example #14
0
 protected override void ProcessEvent(MungServerEvent evt)
 {
     Send(evt);
 }
Example #15
0
 public double EvaluateNumeric(MungServerEvent evt)
 {
     return EvaluateNumeric(evt, Expression);
 }
Example #16
0
 protected abstract void ProcessEvent(MungServerEvent evt);
Example #17
0
 public void EnqueueEvent(MungServerEvent evt)
 {
     if (_events.Count < 100) {
         _events.Enqueue(evt);
     }
 }