Beispiel #1
0
        public List <ASYSEXCUTEQUALITY> loadSysexcutequalities(DateTime start_time, DateTime end_time, string cstID = null)
        {
            Nest.DateRangeQuery dq = new Nest.DateRangeQuery()
            {
                Field       = "@timestamp",
                GreaterThan = start_time,
                LessThan    = end_time
            };

            List <Nest.TermsQuery> tsqs = new List <Nest.TermsQuery>();

            if (cstID != null)
            {
                tsqs.Add(new Nest.TermsQuery()
                {
                    Field = new Nest.Field("VH_ID.keyword"),
                    Terms = new List <string> {
                        cstID.Trim()
                    }
                });
            }

            var queryList = app.GetElasticSearchManager().Search <ASYSEXCUTEQUALITY>
                                (ElasticSearchManager.ELASTIC_URL,
                                ElasticSearchManager.ELASTIC_TABLE_INDEX_SYSEXCUTEQUALITY,
                                dq,
                                tsqs.Count > 0 ? tsqs.ToArray() : null,
                                0,
                                10000);

            return(queryList);
        }
Beispiel #2
0
        public void CalculationSysEfficiency_60min_ago()
        {
            if (!isComparisonBaseTableReady)
            {
                return;
            }
            DateTime query_dateTime = DateTime.Now;

            string[] include_column = new string[]
            {
                "@timestamp", "SOURCE_ADR", "DESTINATION_ADR", "CMD_TOTAL_EXCUTION_TIME"
            };
            Nest.DateRangeQuery dq = new Nest.DateRangeQuery()
            {
                Field       = "@timestamp",
                GreaterThan = query_dateTime.AddHours(-1),
                LessThan    = query_dateTime
            };
            var queryList = app.GetElasticSearchManager().Search <sysexcutequality>
                                (ElasticSearchManager.ELASTIC_URL,
                                ElasticSearchManager.ELASTIC_TABLE_INDEX_SYSEXCUTEQUALITY,
                                dq,
                                null,
                                include_column,
                                0,
                                10000);

            int    total_cmp_cmd     = 0;
            double excute_efficiency = 0;

            foreach (var sys_excute_info in queryList)
            {
                Port2Port_TransferInfo transferInfo_Base = port2Port_ComparisonBaseTable.
                                                           Where(info => info.SOURCE_ADR.Trim() == sys_excute_info.SOURCE_ADR.Trim() &&
                                                                 info.DESTINATION_ADR.Trim() == sys_excute_info.DESTINATION_ADR.Trim()).SingleOrDefault();

                excute_efficiency += transferInfo_Base.CMD_TOTAL_EXCUTION_TIME_MinTime / sys_excute_info.CMD_TOTAL_EXCUTION_TIME;
            }
            total_cmp_cmd = queryList.Count;


            OhxCExcuteEffectiveness_TotalCompleteCmd = total_cmp_cmd;
            OhxCExcuteEffectiveness_Percentage       = (excute_efficiency / total_cmp_cmd) * 100;
            OhxCExcuteEffectivenessChanged?.Invoke(this, new[] { OhxCExcuteEffectiveness_TotalCompleteCmd, (int)OhxCExcuteEffectiveness_Percentage });
        }
Beispiel #3
0
        public List <RecordReportInfo> loadRecodeReportInfo(DateTime start_time, DateTime end_time, string vh_id, string cmd_id)
        {
            Nest.DateRangeQuery dq = new Nest.DateRangeQuery()
            {
                Field       = "@timestamp",
                GreaterThan = start_time,
                LessThan    = end_time
            };
            Nest.TermsQuery tsq  = null;
            Nest.TermsQuery tsq1 = null;
            if (vh_id != null)
            {
                tsq = new Nest.TermsQuery()
                {
                    Field = new Nest.Field("VH_ID.keyword"),
                    Terms = new List <string> {
                        vh_id.Trim()
                    }
                };
            }
            if (cmd_id != null)
            {
                tsq1 = new Nest.TermsQuery()
                {
                    Field = new Nest.Field("MCS_CMD_ID.keyword"),
                    Terms = new List <string> {
                        cmd_id.Trim()
                    }
                };
            }
            var queryList = app.GetElasticSearchManager().Search <RecordReportInfo>
                                (ElasticSearchManager.ELASTIC_URL,
                                ElasticSearchManager.ELASTIC_TABLE_INDEX_RECODEREPORTINFO,
                                dq,
                                new[] { tsq, tsq1 },
                                0,
                                9999);

            return(queryList);
        }
Beispiel #4
0
        public void UpdateSysEfficiencyComparisonBaseTable_parallel()
        {
            var           port_station_list = app.ObjCacheManager.GetPortStations();
            List <string> from_ports        = port_station_list.Select(port_st => port_st.PORT_ID).ToList();
            List <string> to_ports          = port_station_list.Select(port_st => port_st.PORT_ID).ToList();
            DateTime      query_dateTime    = DateTime.Now;
            BlockingCollection <Port2Port_TransferInfo> listTemp = new BlockingCollection <Port2Port_TransferInfo>();

            Parallel.For(0, from_ports.Count(), from_port_index =>
            {
                Parallel.For(0, to_ports.Count(), to_port_index =>
                {
                    string from_port = from_ports[from_port_index];
                    string to_port   = from_ports[to_port_index];
                    if (sc.Common.SCUtility.isMatche(from_port, to_port))
                    {
                        return;
                    }

                    Nest.DateRangeQuery dq = new Nest.DateRangeQuery()
                    {
                        Field       = "@timestamp",
                        GreaterThan = query_dateTime.AddDays(-7),
                        LessThan    = query_dateTime
                    };
                    Nest.TermsQuery tsq = new Nest.TermsQuery()
                    {
                        Field = new Nest.Field("SOURCE_ADR.keyword"),
                        Terms = new List <string> {
                            from_port.Trim()
                        }
                    };
                    Nest.TermsQuery tsq1 = new Nest.TermsQuery()
                    {
                        Field = new Nest.Field("DESTINATION_ADR.keyword"),
                        Terms = new List <string> {
                            to_port.Trim()
                        }
                    };
                    string[] include_column = new string[]
                    {
                        "@timestamp", "SOURCE_ADR", "DESTINATION_ADR", "CMD_TOTAL_EXCUTION_TIME"
                    };

                    var queryList = app.GetElasticSearchManager().Search <sysexcutequality>
                                        (ElasticSearchManager.ELASTIC_URL,
                                        ElasticSearchManager.ELASTIC_TABLE_INDEX_SYSEXCUTEQUALITY,
                                        dq,
                                        new[] { tsq, tsq1 },
                                        include_column,
                                        0,
                                        500);
                    if (queryList.Count == 0)
                    {
                        return;
                    }
                    queryList         = queryList.OrderBy(sys_excute => sys_excute.CMD_TOTAL_EXCUTION_TIME).ToList();
                    int total_count   = queryList.Count;
                    double middle_num = total_count / 2;
                    int middle_index  = Convert.ToInt16(Math.Ceiling(middle_num)) - 1;

                    //double min_excute_time_sec = queryList.Min(p => p.CMD_TOTAL_EXCUTION_TIME);
                    double middle_excute_time_sec = queryList[middle_index].CMD_TOTAL_EXCUTION_TIME;

                    listTemp.Add(new Port2Port_TransferInfo()
                    {
                        SOURCE_ADR      = from_port,
                        DESTINATION_ADR = to_port,
                        //CMD_TOTAL_EXCUTION_TIME_MinTime = min_excute_time_sec
                        CMD_TOTAL_EXCUTION_TIME_MinTime = middle_excute_time_sec
                    });
                });
            });
            port2Port_ComparisonBaseTable = listTemp.ToList();
            isComparisonBaseTableReady    = true;
        }
Beispiel #5
0
        public void UpdateSysEfficiencyComparisonBaseTable()
        {
            List <Port2Port_TransferInfo> port2Ports = new List <Port2Port_TransferInfo>();
            var           port_station_list          = app.ObjCacheManager.GetPortStations();
            List <string> from_ports     = port_station_list.Select(port_st => port_st.PORT_ID).ToList();
            List <string> to_ports       = port_station_list.Select(port_st => port_st.PORT_ID).ToList();
            DateTime      query_dateTime = DateTime.Now;

            foreach (string from_port in from_ports)
            {
                foreach (string to_port in to_ports)
                {
                    if (sc.Common.SCUtility.isMatche(from_port, to_port))
                    {
                        continue;
                    }

                    Nest.DateRangeQuery dq = new Nest.DateRangeQuery()
                    {
                        Field       = "@timestamp",
                        GreaterThan = query_dateTime.AddDays(-7),
                        LessThan    = query_dateTime
                    };
                    Nest.TermsQuery tsq = new Nest.TermsQuery()
                    {
                        Field = new Nest.Field("SOURCE_ADR.keyword"),
                        Terms = new List <string> {
                            from_port.Trim()
                        }
                    };
                    Nest.TermsQuery tsq1 = new Nest.TermsQuery()
                    {
                        Field = new Nest.Field("DESTINATION_ADR.keyword"),
                        Terms = new List <string> {
                            to_port.Trim()
                        }
                    };
                    string[] include_column = new string[]
                    {
                        "@timestamp", "SOURCE_ADR", "DESTINATION_ADR", "CMD_TOTAL_EXCUTION_TIME"
                    };

                    var queryList = app.GetElasticSearchManager().Search <sysexcutequality>
                                        (ElasticSearchManager.ELASTIC_URL,
                                        ElasticSearchManager.ELASTIC_TABLE_INDEX_SYSEXCUTEQUALITY,
                                        dq,
                                        new[] { tsq, tsq1 },
                                        include_column,
                                        0,
                                        10000);
                    if (queryList.Count == 0)
                    {
                        continue;
                    }
                    double min_excute_time_sec = queryList.Min(p => p.CMD_TOTAL_EXCUTION_TIME);

                    port2Ports.Add(new Port2Port_TransferInfo()
                    {
                        SOURCE_ADR      = from_port,
                        DESTINATION_ADR = to_port,
                        CMD_TOTAL_EXCUTION_TIME_MinTime = min_excute_time_sec
                    });
                }
            }
        }