Beispiel #1
0
        public static void InsertData(object param)
        {
            string threadId    = param.ToString().Split(',')[0];
            int    batchSize   = Convert.ToInt32(param.ToString().Split(',')[1]);
            int    insertTimes = Convert.ToInt32(param.ToString().Split(',')[2]);
            //Influxdb写入地址
            string influxUrl = "http://114.55.6.199:30001/";

            string message = string.Empty;

            message = string.Format("System.Web.HttpRequestValidationException (0x80004005): 从客户端(ajaxEserviceId=\" <? xml version = \"1.0\"...\")中检测到有潜在危险的 Request.QueryString 值。在 System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection)在 System.Web.HttpValueCollection.Get(String name)在 Kedao.QianNiuAngular.Controllers.BaseController.OnActionExecuting(ActionExecutingContext filterContext)");

            Random   randomIndex = new Random();
            DateTime start       = DateTime.Now;

            for (int i = 0; i < insertTimes; i++)
            {
                StringBuilder log = new StringBuilder();


                List <InfluxData.Net.InfluxDb.Models.Point> points = new List <InfluxData.Net.InfluxDb.Models.Point>();
                for (int j = 0; j < batchSize; j++)
                {
                    var pointToWrite = new InfluxData.Net.InfluxDb.Models.Point()
                    {
                        Name = "log", // serie/measurement/table to write into
                        Tags = new Dictionary <string, object>()
                        {
                            { "level", levels[randomIndex.Next(0, 3)] },
                            { "sellerNick", sellerNicks[randomIndex.Next(0, 58)] },
                            { "className", className[randomIndex.Next(0, 85)] }
                        },
                        Fields = new Dictionary <string, object>()
                        {
                            { "createTime", DateTime.Now },
                            { "message", message },
                            { "serverIp", "192.168.1.125" }
                        },
                        Timestamp = DateTime.UtcNow // optional (can be set to any DateTime moment)
                    };

                    points.Add(pointToWrite);

                    // log.AppendFormat("clx_test,level='{0}',sellerNick='{1}',className='{2}' createTime='{3}',message='{4}',serverIp='{5}'", levels[randomIndex.Next(0, 3)], sellerNicks[randomIndex.Next(0, 58)], className[randomIndex.Next(0, 85)], DateTime.Now, message, "192.168.1.125");
                    // log.AppendFormat("clx_test,level=ERROR,sellerNick=wdcs,className=contributors createTime='{0}',message=error,serverIp={1} {2}", DateTime.Now, "192.168.1.125", DateTime.Now.Millisecond);
                    // log.Append(System.Environment.NewLine);
                }

                InfluxDbClient influxDbClient = new InfluxDbClient(influxUrl, "log", "AsDf123654", InfluxDbVersion.v_1_3);
                var            response       = influxDbClient.Client.WriteAsync(points, "clx_test");
#if DEBUG
                Debug.WriteLine(String.Format("[Error] {0} {1}", 1, 3));
#endif

                Stopwatch inWatch = new Stopwatch();
                inWatch.Start();


                //influxUrl = "http://114.55.6.199:30001/query?q=show databases";write?db=clx_test
                log.Clear();


                // string result = httpClient.DoPost(influxUrl, log.ToString());
                inWatch.Stop();
                long milSeconds = inWatch.ElapsedMilliseconds;

                DateTime pause = DateTime.Now;
                double   time  = (pause - start).TotalMilliseconds;

                string status = string.Format("进程【{0}】:batch = 【{1}】;current speed = 【{2}】/s;total speed = 【{3}】/s", threadId, batchSize, batchSize * 1000 / milSeconds, batchSize * 1000 * i / time);

                Console.WriteLine(status);
                Console.ReadKey();
            }
        }
Beispiel #2
0
        internal override async Task <RGBWColor[]> GetValueForDates(DateTime start, DateTime end)
        {
            var days   = (end - start).Days;
            var result = new RGBWColor[days];
            var user   = await GetProgressStats(days);

            lastRefresh = DateTime.UtcNow;

            int i = days - 1;

            foreach (var day in user.ProgressStats)
            {
                var       timeStudiedToday = TimeSpan.FromSeconds((double)day.timeStudied.day);
                RGBWColor color            = mapTimeStudiedToColor(timeStudiedToday);

                result[i] = color;
                i--;
            }

            if (enable_logging && logThis)
            {
                // TODO: Iterate through stats objects to find today. This is naive and will break.
                var today = user.ProgressStats[days - 1];

                var pt = new InfluxData.Net.InfluxDb.Models.Point()
                {
                    Name   = "skritter",
                    Fields = new Dictionary <string, object>()
                    {
                        { "timeStudiedToday", today.timeStudied.day },

                        { "word.rune.remembered", today.word.rune.remembered.day },
                        { "word.rune.learned", today.word.rune.learned.day },
                        { "word.rune.studied", today.word.rune.studied.day },
                        { "word.rune.learning", today.word.rune.learning.day },

                        { "word.rdng.remembered", today.word.rdng.remembered.day },
                        { "word.rdng.learned", today.word.rdng.learned.day },
                        { "word.rdng.studied", today.word.rdng.studied.day },
                        { "word.rdng.learning", today.word.rdng.learning.day },

                        { "word.tone.remembered", today.word.tone.remembered.day },
                        { "word.tone.learned", today.word.tone.learned.day },
                        { "word.tone.studied", today.word.tone.studied.day },
                        { "word.tone.learning", today.word.tone.learning.day },

                        { "word.defn.remembered", today.word.defn.remembered.day },
                        { "word.defn.learned", today.word.defn.learned.day },
                        { "word.defn.studied", today.word.defn.studied.day },
                        { "word.defn.learning", today.word.defn.learning.day },

                        { "char.rune.remembered", today["char"].rune.remembered.day },
                        { "char.rune.learned", today["char"].rune.learned.day },
                        { "char.rune.studied", today["char"].rune.studied.day },
                        { "char.rune.learning", today["char"].rune.learning.day },
                        { "char.rdng.remembered", today["char"].rdng.remembered.day },
                        { "char.rdng.learned", today["char"].rdng.learned.day },
                        { "char.rdng.studied", today["char"].rdng.studied.day },
                        { "char.rdng.learning", today["char"].rdng.learning.day },
                        { "char.tone.remembered", today["char"].tone.remembered.day },
                        { "char.tone.learned", today["char"].tone.learned.day },
                        { "char.tone.studied", today["char"].tone.studied.day },
                        { "char.tone.learning", today["char"].tone.learning.day },
                        { "char.defn.remembered", today["char"].defn.remembered.day },
                        { "char.defn.learned", today["char"].defn.learned.day },
                        { "char.defn.studied", today["char"].defn.studied.day },
                        { "char.defn.learning", today["char"].defn.learning.day },
                    },
                    Timestamp = lastRefresh
                };

                await Services.InfluxDB.WriteAsync(pt);
            }

            return(result);
        }