Example #1
0
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main()
        {
            while (true)
            {
                try
                {
                    log.Info("Starting Main");
                    MetricsServiceSettings settings = new MetricsServiceSettings();
                    Program.project  = getProject();
                    Program.reader   = makeMetricsReader(project, settings);
                    Program.exporter = makseMetricsExporter(settings);
                    log.Info("Created Dependencies");

                    reader.VariablesUpdated += (object sender, VariablesUpdatedEventArgs args) => exporter.SendMetric(args.variables);

                    var ServiceToRun = new ZenOnMetricsExporterService(reader);
                    log.Info("Created Service");
                    ServiceToRun.OnStart();
                    log.Info("Service Running");
                    log.Info($"Waiting for thread to exit {ServiceToRun.readerThread.ThreadState}");
                    ServiceToRun.readerThread.Join();
                    log.Info($"Thread exited {ServiceToRun.readerThread.ThreadState}");
                }
                catch (Exception ex)
                {
                    log.Error(ex);
                    Thread.Sleep(OneMinute);
                }
            }
        }
Example #2
0
        static WsMetricsExporter makseMetricsExporter(S7ExporterServiceSettings settings, string serviceName, string LinienName)
        {
            WsMetricsExporter exporter = new WsMetricsExporter(
                new WebSocketSharp.WebSocket(settings.MetricsWsEndpoint),
                serviceName,
                LinienName,
                settings.Location,
                Convert.ToInt32(settings.MetricsWsPingIntervalSec)
                );

            return(exporter);
        }