Пример #1
0
        /// <summary>
        /// Starts a new MetricsPipe instance.
        /// </summary>
        /// <returns></returns>
        public MetricsPipe Start()
        {
            var result = new MetricsPipe(GraphiteConfigurationProvider.Get(), this, StopwatchWrapper.StartNew);

            Current = result;

            return(result);
        }
Пример #2
0
        public static void Main(params string[] parameter)
        {
            if (Environment.UserInteractive)
            {
                // Start as console...
                Func <string, bool> isParamater  = (s) => s != null && (s.StartsWith("-") || s.StartsWith("/"));
                Func <string, bool> isEParamater = (s) => s == "-e" || s == "/e";
                Func <string, bool> isHParamater = (s) => s == "-h" || s == "/h" || s == "-?" || s == "/?" || s == "--help" || s == "/help";
                Func <string, bool> isIParamater = (s) => s == "-i" || s == "/i";

                if (parameter != null && parameter.Any(isHParamater))
                {
                    Console.WriteLine("Usage:");
                    Console.WriteLine();
                    Console.WriteLine("[no parameters] -> Start listening on configured PerformanceCounters (App.config)");
                    Console.WriteLine("-e [category] [instance] -> Explore PerformanceCounters (all or by category or by category and instance)");
                    Console.WriteLine("-i -> Inspect and print the current configuration");
                    Console.WriteLine();
                }
                else if (parameter != null && parameter.Any(isEParamater))
                {
                    string[] path = parameter
                                    .SkipWhile(s => !isEParamater(s))
                                    .Skip(1)
                                    .TakeWhile(s => !isParamater(s))
                                    .ToArray();

                    Explorer.Print(path);
                }
                else if (parameter != null && parameter.Any(isIParamater))
                {
                    Inspector.Print(GraphiteSystemConfiguration.Instance.CounterListeners.OfType <CounterListenerElement>());
                }
                else
                {
                    using (new Kernel(GraphiteConfigurationProvider.Get(), GraphiteSystemConfiguration.Instance))
                    {
                        Console.WriteLine("Listening on configured performance counters...");
                        Console.WriteLine("Press [enter] to exit.");

                        Console.ReadLine();
                    }
                }
            }
            else
            {
                // Start as windows service...

                ServiceBase.Run(
                    new WindowsService());
            }
        }
Пример #3
0
        /// <summary>
        /// Starts a new MetricsPipe instance.
        /// </summary>
        /// <returns></returns>
        public MetricsPipe Start()
        {
            var context = OperationContext.Current;

            if (context == null)
            {
                return(null);
            }

            var result = new MetricsPipe(GraphiteConfigurationProvider.Get(), this, StopwatchWrapper.StartNew);

            Current = result;

            return(result);
        }
Пример #4
0
        /// <summary>
        /// Called when [start].
        /// </summary>
        /// <param name="args">The args.</param>
        protected override void OnStart(string[] args)
        {
#if DEBUGGER
            Debugger.Launch();
#endif

            try
            {
                this.kernel = new Kernel(GraphiteConfigurationProvider.Get(), GraphiteSystemConfiguration.Instance);
            }
            catch (Exception exception)
            {
                this.applicationEventLog.WriteEntry(exception.ToString(), EventLogEntryType.Error);

                // Don't start, if initialization wasn't successfull.
                throw;
            }
        }
Пример #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="LogAssertion" /> class.
        /// </summary>
        public LogAssertion()
        {
            IConfigurationContainer config = GraphiteConfigurationProvider.Get();

            this.factory = new ChannelFactory(config.Graphite, config.StatsD);

            var configuration = GraphiteElmahConfiguration.Instance;

            if (configuration == null)
            {
                throw new InvalidOperationException("No configuration section 'graphite.elmah' found.");
            }

            this.metricKey = configuration.Key ?? "admin.elmah_errors";

            this.channel = this.factory.CreateChannel(
                configuration.Type ?? "counter",
                configuration.Target ?? "statsd");
        }
Пример #6
0
        /// <summary>
        /// Starts a new MetricsPipe instance.
        /// </summary>
        /// <returns></returns>
        public MetricsPipe Start()
        {
            IConfigurationContainer configurationContainer = GraphiteConfigurationProvider.Get();

            return(this.Start(configurationContainer));
        }