Пример #1
0
        static void CreateConnection(SplunkApi splunk, int numberOfEventsPerThread)
        {
            string url = string.Format("{0}/services/data/inputs", splunk.BaseUrl);

            for (int i = 0; i < numberOfEventsPerThread; i++)
            {
                var request = WebRequest.Create(url) as HttpWebRequest;
                request.Method      = "GET";
                request.ContentType = "application/x-www-form-urlencoded";
                request.Headers.Add("Authorization", "Splunk " + splunk.SessionKey);
                // Pick up the response:

                using (var response = request.GetResponse() as HttpWebResponse)
                {
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        if (!reader.EndOfStream)
                        {
                            string result = reader.ReadToEnd();
                        }
                    }
                }
                Thread.Sleep(9000);
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            if (args.Length < 4)
            {
                ShowUsage();
                return;
            }

            // Parse the arguments
            string serverName              = args[0];
            int    portNumber              = Convert.ToInt32(args[1]);
            int    numberOfThreads         = Convert.ToInt32(args[2]);
            int    numberOfEventsPerThread = Convert.ToInt32(args[3]);

            SplunkApi[] api = new SplunkApi[numberOfThreads];
            // Launch X concurrent threads
            Thread[] threads = new Thread[numberOfThreads];
            for (int i = 0; i < numberOfThreads; i++)
            {
                SplunkApi splunk = new SplunkApi(serverName, "admin", "changeme", portNumber);
                splunk.Connect();
                api[i] = splunk;
                ThreadStart start = delegate { CreateConnection(splunk, numberOfEventsPerThread); };
                Thread      t     = new Thread(start);
                t.Name = string.Format("Thread {0}", i);
                t.Start();
                threads[i] = t;
            }
            Console.WriteLine("{0} Started all threads", DateTime.Now);
            DateTime tStart = DateTime.Now;

            for (int i = 0; i < numberOfThreads; i++)
            {
                threads[i].Join();
            }
            DateTime tEnd = DateTime.Now;

            Console.WriteLine("It took {0:F2} seconds to send {1} events", (tEnd - tStart).TotalSeconds, numberOfThreads * numberOfEventsPerThread);
        }