예제 #1
0
        public void TestDynamicType()
        {
            var spec = new CSVInputAdapterSpec(
                new AdapterInputSource(_container, CSV_FILENAME_ONELINE_TRADE), "TypeB");

            var config = new Configuration(_container);

            config.Runtime.Threading.IsInternalTimerEnabled = false;
            _runtime = EPRuntimeProvider.GetDefaultRuntime(config);
            _runtime.Initialize();

            CompileDeploy(_runtime, "@public @buseventtype create schema TypeB(symbol string, price string, volume string)");

            InputAdapter feed = new CSVInputAdapter(_runtime, spec);

            var stmt     = CompileDeploy(_runtime, "select symbol, price, volume from TypeB#length(100)").Statements[0];
            var listener = new SupportUpdateListener();

            stmt.Events += listener.Update;

            Assert.AreEqual(typeof(string), stmt.EventType.GetPropertyType("symbol"));
            Assert.AreEqual(typeof(string), stmt.EventType.GetPropertyType("price"));
            Assert.AreEqual(typeof(string), stmt.EventType.GetPropertyType("volume"));

            feed.Start();
            Assert.AreEqual(1, listener.GetNewDataList().Count);
        }
 public void SetUp()
 {
     DynaLatencySpikeMonitor.Start();
     _runtime = EPRuntimeProvider.GetDefaultRuntime();
     _senderOperationalMeasurement = _runtime.EventService.GetEventSender(typeof(OperationMeasurement).FullName);
     _senderLatencyLimit           = _runtime.EventService.GetEventSender(typeof(LatencyLimit).FullName);
 }
예제 #3
0
        public void TestIt()
        {
            var stmtText =
                "insert into ThroughputPerFeed " +
                " select feed, count(*) as cnt " +
                "from " + typeof(FeedEvent).FullName + ".win:time_batch(1 sec) " +
                "group by feed";

            var container = ContainerExtensions.CreateDefaultContainer()
                            .InitializeDefaultServices()
                            .InitializeDatabaseDrivers();

            var configuration = new Configuration(container);

            configuration.Common.EventMeta.ClassPropertyResolutionStyle = PropertyResolutionStyle.CASE_INSENSITIVE;

            var runtime = EPRuntimeProvider.GetDefaultRuntime(configuration);
            var stmt    = runtime.DeployStatement(stmtText);

            stmt.Events += DisplayEvents;

            /*
             * while(true)
             * {
             *  FeedEvent event;
             *  event = new FeedEvent(FeedEnum.FEED_A, "IBM", 70);
             *  engine.GetEPRuntime().SendEvent(event);
             *  event = new FeedEvent(FeedEnum.FEED_B, "IBM", 70);
             *  engine.GetEPRuntime().SendEvent(event);
             * }
             */
        }
예제 #4
0
        public static void Start()
        {
            var runtime      = EPRuntimeProvider.GetDefaultRuntime();
            var latencyAlert = runtime.DeployStatement(
                "every alert=" + typeof(OperationMeasurement).FullName + "(latency > 20000)");

            latencyAlert.Events += LogLatencyEvent;
        }
예제 #5
0
        public static void Start()
        {
            _runtime = EPRuntimeProvider.GetDefaultRuntime();

            var eventName    = typeof(LatencyLimit).FullName;
            var latencyAlert = _runtime.DeployStatement("every newlimit=" + eventName);

            latencyAlert.Events +=
                (sender, e) => { new DynaLatencySpikeMonitor((LatencyLimit)e.NewEvents[0]["newlimit"]); };
        }
예제 #6
0
        public void SetUp()
        {
            var configuration = new Configuration(SupportContainer.Reset());

            configuration.Runtime.Threading.IsInternalTimerEnabled = false;
            configuration.Common.AddImportNamespace(typeof(FileSinkFactory));
            configuration.Common.AddImportNamespace(typeof(DefaultSupportSourceOpForge));
            DefaultSupportGraphEventUtil.AddTypeConfiguration(configuration);
            runtime = EPRuntimeProvider.GetDefaultRuntime(configuration);
            runtime.Initialize();
        }
예제 #7
0
 public void SetUp()
 {
     var configuration = new Configuration();
     configuration.Runtime.Threading.IsInternalTimerEnabled = false;
     configuration.Common.AddImportType(typeof(FileSourceForge));
     configuration.Common.AddImportType(typeof(DefaultSupportCaptureOpForge));
     configuration.Common.AddEventType("MyLineEvent", typeof(MyLineEvent));
     configuration.Common.AddEventType("MyInvalidEvent", typeof(MyInvalidEvent));
     runtime = EPRuntimeProvider.GetDefaultRuntime(configuration);
     runtime.Initialize();
 }
예제 #8
0
        public AverageLatencyMonitor()
        {
            var runtime = EPRuntimeProvider.GetDefaultRuntime();

            var statView = runtime.DeployStatement(
                "select * from " + typeof(OperationMeasurement).FullName +
                "#groupwin(CustomerId)" +
                "#groupwin(OperationName)" +
                "#length(100)" +
                "#uni(Latency)");

            statView.Events += (sender, e) => MonitorLatency(e, 10000);
        }
예제 #9
0
        /// <summary>
        /// Setup the esper.
        /// </summary>
        static void SetupEsper()
        {
            _container = ContainerExtensions.CreateDefaultContainer();

            var configuration = new Configuration(_container);

            configuration.Common.AddEventType(typeof(BidData));
            configuration.Compiler.Expression.IsUdfCache                    = true;
            configuration.Runtime.Logging.IsEnableExecutionDebug            = false;
            configuration.Runtime.Logging.IsEnableTimerDebug                = false;
            configuration.Runtime.MetricsReporting.IsEnableMetricsReporting = false;
            configuration.Runtime.MetricsReporting.IsThreading              = false;

            _runtime = EPRuntimeProvider.GetDefaultRuntime(configuration);
        }
예제 #10
0
        public void SetUp()
        {
            var container = ContainerExtensions.CreateDefaultContainer()
                            .InitializeDefaultServices()
                            .InitializeDatabaseDrivers();

            var configuration = new Configuration(container);

            configuration.Common.EventMeta.ClassPropertyResolutionStyle = PropertyResolutionStyle.CASE_INSENSITIVE;

            _runtime = EPRuntimeProvider.GetDefaultRuntime(configuration);
            _sender  = _runtime.EventService.GetEventSender(typeof(OperationMeasurement).FullName);

            new ErrorRateMonitor();
        }
예제 #11
0
        public ErrorRateMonitor()
        {
            var runtime = EPRuntimeProvider.GetDefaultRuntime();

            var pattern = runtime.DeployStatement("every timer:at(*, *, *, *, *, */10)");
            var view    = runtime.DeployStatement(
                "select count(*) as size from " + typeof(OperationMeasurement).FullName +
                "(success=false)#time(10 min)#size()");

            pattern.Events +=
                delegate {
                var count = (long)view.First()["size"];
                Log.Info(".update Info, error rate in the last 10 minutes is " + count);
            };
        }
예제 #12
0
        public ServiceHealthMonitor()
        {
            var runtime = EPRuntimeProvider.GetDefaultRuntime();

            var eventBean = typeof(OperationMeasurement).FullName;

            var statView = runtime.DeployStatement(
                "every (" + eventBean +
                "(success=false)->" + eventBean +
                "(success=false)->" + eventBean +
                "(success=false))");

            statView.Events += (newEvents, oldEvents) =>
                               Log.Debug(".update Alert, detected 3 erros in a row");
        }
예제 #13
0
        private static void RunInternal(
            RegressionSession session,
            RegressionExecution execution)
        {
                if (session.Runtime == null) {
                    var exists = EPRuntimeProvider.HasRuntime(EPRuntimeProvider.DEFAULT_RUNTIME_URI);
                    var runtime = EPRuntimeProvider.GetDefaultRuntime(session.Configuration);
                    if (exists) {
                        runtime.Initialize();
                    }

                    session.Runtime = runtime;
                }

                LOG.Info("Running test " + execution.Name());
                execution.Run(new RegressionEnvironmentEsper(session.Configuration, session.Runtime));
        }
예제 #14
0
        static void Main()
        {
            _random = new Random();

            var container = ContainerExtensions.CreateDefaultContainer();

            // Creates a statement that looks for market data events.
            var configuration = new Configuration(container);

            configuration.Common.AddEventType <MarketDataTrade>();
            configuration.Common.AddEventType <EndOfTest>();
            // set to true to decouple event processing from msmq latency
            configuration.Runtime.Threading.IsThreadPoolOutbound = false;

            _runtime = EPRuntimeProvider.GetDefaultRuntime(configuration);
            CompileDeploy("select * from MarketDataTrade").
            Events += (sender, eventArgs) => _publisher.SendEvent(eventArgs);
            CompileDeploy("select * from EndOfTest")
            .Events += (sender, eventArgs) => _publisher.SendEvent(eventArgs);

            // create a publisher
            _publisher = new MsmqPublisher(MqPath);
            // create a consumer
            _consumer      = new MsmqConsumer(MqPath, ConsumeEvent);
            _consumerEvent = new ManualResetEvent(false);

            // mark the starting time
            var milliTime = PerformanceObserver.TimeMillis(
                delegate
            {
                // send some events
                SendEvents();

                // wait for events
                _consumerEvent.WaitOne();
            });

            Console.WriteLine("Recv: {0} events in {1} ms", _eventsConsumed, milliTime);
            Console.ReadLine();
        }
예제 #15
0
        public SpikeAndErrorMonitor()
        {
            var runtime   = EPRuntimeProvider.GetDefaultRuntime();
            var eventName = typeof(OperationMeasurement).FullName;
            var myPattern = runtime.DeployStatement(
                "every (spike=" + eventName + "(latency>20000) or error=" + eventName + "(success=false))");

            myPattern.Events +=
                delegate(Object sender, UpdateEventArgs e) {
                var spike = (OperationMeasurement)e.NewEvents[0]["spike"];
                var error = (OperationMeasurement)e.NewEvents[0]["error"];

                if (spike != null)
                {
                    Log.Debug(".update spike={0}", spike);
                }
                if (error != null)
                {
                    Log.Debug(".update error={0}", error);
                }
            };
        }
예제 #16
0
        public void SetUp()
        {
            var container = ContainerExtensions.CreateDefaultContainer()
                            .InitializeDefaultServices()
                            .InitializeDatabaseDrivers();

            var configuration = new Configuration(container);

            configuration.Common.EventMeta.ClassPropertyResolutionStyle =
                PropertyResolutionStyle.CASE_INSENSITIVE;

            _listener = new MatchAlertListener();
            EPRuntimeProvider
            .GetDefaultRuntime()
            .DeploymentService
            .UndeployAll();

            _runtime = EPRuntimeProvider.GetDefaultRuntime(configuration);
            _runtime.Initialize();

            new MatchMakingMonitor(_runtime, _listener);
        }
예제 #17
0
        public void SetUp()
        {
            var configuration = new Configuration();

            configuration.Runtime.Threading.IsInternalTimerEnabled = false;
            configuration.Common.AddImportType(typeof(FileSourceForge));
            configuration.Common.AddImportType(typeof(DefaultSupportCaptureOpForge));

            var propertyTypes = new Dictionary <string, object>();

            propertyTypes.Put("MyInt", typeof(int?));
            propertyTypes.Put("MyDouble", typeof(double?));
            propertyTypes.Put("MyString", typeof(string));
            configuration.Common.AddEventType("MyMapEvent", propertyTypes);

            configuration.Common.AddEventType(
                "MyOAType",
                "P0,P1".SplitCsv(),
                new object[] { typeof(DateTime), typeof(DateTimeEx) });

            runtime = EPRuntimeProvider.GetDefaultRuntime(configuration);
            runtime.Initialize();
        }