Inheritance: TrackerBase
Ejemplo n.º 1
0
        public static void ReportNodeInfo(Tracker tracker)
        {
            tracker.Log("Info_UserId", PluginSettings.Instance.UserId);
            tracker.Log("Info_NodeName", PluginSettings.Instance.NodeName);
            var curAssembly = typeof(Program).Assembly;
            tracker.Log("Info_ProcessVersion", curAssembly.FullName);

            var res = string.Format("v{0}", typeof(CIAPI.Rpc.Client).Assembly.GetName().Version);
            tracker.Log("Info_CiapiVersion", res);
        }
        private void ThreadEntry()
        {
            try
            {
                while (!_terminated)
                {
                    LastExecution = DateTime.UtcNow;
                    try
                    {
                        lock (_sync)
                        {
                            if (!string.IsNullOrEmpty(LogEventUrl))
                            {
                                _tracker = Tracker.Create(LogEventUrl, ApplicationKey, "{APPMETRICS_ACCESS_KEY}");
                            }
                        }

                        if (!WebUtil.IsConnectionAvailable())
                        {
                            Tracker.Log("Event", GetType().Name + ": no internet connection");
                        }
                        else
                        {
                            Execute();
                        }
                    }
                    catch (ThreadInterruptedException)
                    {
                        break;
                    }
                    catch (Exception exc)
                    {
                        Tracker.Log(exc);
                    }

                    var executionTime = DateTime.UtcNow - LastExecution;
                    var period = Period - executionTime;
                    if (period.TotalSeconds > 0)
                        Thread.Sleep(period);
                }

                Thread.Sleep(0); // avoid interrupting thread later
            }
            catch (ThreadInterruptedException)
            {
            }
            catch (Exception exc)
            {
                Tracker.Log(exc);
            }

            try
            {
                Cleanup();
            }
            catch (Exception exc)
            {
                Tracker.Log(exc);
            }

            lock (_sync)
            {
                _thread = null;
            }
        }
Ejemplo n.º 3
0
        private void Init()
        {
            if (!Directory.Exists(Const.WorkingAreaBinPath))
                Directory.CreateDirectory(Const.WorkingAreaBinPath);
            if (!Directory.Exists(Const.WorkingAreaTempPath))
                Directory.CreateDirectory(Const.WorkingAreaTempPath);

            try
            {
                lock (TrackerSync)
                {
                    var settings = AppSettings.Load();

                    var tracker = Tracker.Create(settings.MetricsServerUrl, Const.AppName, "{APPMETRICS_ACCESS_KEY}");
                    _tracker = tracker;

                    _tracker.Log("Info_UserId", settings.UserId);
                    _tracker.Log("Info_NodeName", settings.NodeName);
                    var curAssembly = typeof(AgentServiceClass).Assembly;
                    _tracker.Log("Info_ProcessVersion", curAssembly.FullName);
                }
            }
            catch (Exception exc)
            {
                Report(exc);
            }
        }
Ejemplo n.º 4
0
        public static Tracker Create(string url, string applicationKey, string accessKey)
        {
            lock (Sync)
            {
                if (_terminated)
                    throw new InvalidOperationException();

                var found = Sessions.Where(
                    session => !session._disposed && session.Url == url && session.ApplicationKey == applicationKey);
                if (found.FirstOrDefault() != null)
                    return found.First();
                var res = new Tracker(url, applicationKey, accessKey);
                return res;
            }
        }
Ejemplo n.º 5
0
        private static void InitTracker(string url, string appKey)
        {
            try
            {
                lock (TrackerSync)
                {
                    if (_tracker != null && (_tracker.Url != url || _tracker.ApplicationKey != appKey))
                    {
                        _tracker.Dispose();
                        _tracker = null;
                    }

                    if (_tracker == null)
                    {
                        _tracker = Tracker.Create(url, appKey, "{APPMETRICS_ACCESS_KEY}");
                        MetricsUtil.ReportNodeInfo(_tracker);
                    }
                }
            }
            catch (Exception exc)
            {
                Report(exc);
            }
        }
 public CiapiLatencyRecorder(ClientBase client, Tracker tracker)
     : base(client)
 {
     _tracker = tracker;
 }