两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

異構應用數(shù)據(jù)采集方法及裝置與流程

文檔序號:12477718閱讀:693來源:國知局
異構應用數(shù)據(jù)采集方法及裝置與流程

本發(fā)明涉及數(shù)據(jù)處理領域,具體地,涉及一種異構應用數(shù)據(jù)采集方法及裝置。



背景技術:

為了了解終端或應用的性能,服務商通常需要使用應用監(jiān)控探針對不同終端或服務器上的應用數(shù)據(jù)進行采集。

隨著技術的發(fā)展,語言不同的應用、系統(tǒng)越來越多。這就導致要采集的數(shù)據(jù)可能來源于異構的應用或系統(tǒng)。例如,要采集的數(shù)據(jù)來源可能是語言為JAVA、PHP等的應用,要采集的數(shù)據(jù)可能為CPU使用率、Java非堆內存使用率等。因此,需要使用不同語言編譯而成的不同的應用監(jiān)控探針來探取數(shù)據(jù)。例如,java編寫的應用監(jiān)控探針、C編寫的應用監(jiān)控探針、PHP編寫的應用監(jiān)控探針、C#編寫的應用監(jiān)控探針等。

然而,使用不同語言編譯而成的應用監(jiān)控探針所探取到的數(shù)據(jù)的數(shù)據(jù)格式各不相同,并且與采集端能夠接受的數(shù)據(jù)格式也不同,導致采集端無法獲得這些不同的應用監(jiān)控探針探取到的數(shù)據(jù)。



技術實現(xiàn)要素:

有鑒于此,本發(fā)明的目的是提供一種異構應用數(shù)據(jù)采集方法及裝置,以實現(xiàn)從不同的應用監(jiān)控探針得到采集端能夠接受的數(shù)據(jù)的目的。

在本發(fā)明實施例的第一個方面中,提供了一種異構應用數(shù)據(jù)采集方法。該方法可以應用于服務器側,所述服務器側預置有不同應用監(jiān)控探針分別對應的配置文件,以及,預置有不同數(shù)據(jù)格式分別對應的數(shù)據(jù)解析器,其中,所述配置文件中至少包含采集指標名稱。該方法可以包括:接收應用監(jiān)控探針探取到的第一格式數(shù)據(jù);從所述應用監(jiān)控探針對應的配置文件中,讀取出采集指標名稱;根據(jù)所述第一格式數(shù)據(jù)對應的數(shù)據(jù)格式,采取所述數(shù)據(jù)格式對應的數(shù)據(jù)解析器,從所述第一格式數(shù)據(jù)中解析出所述采集指標名稱對應的監(jiān)控數(shù)據(jù);將所述監(jiān)控數(shù)據(jù)處理為采集端所需的格式,得到第二格式數(shù)據(jù)。

可選地,所述配置文件中還包含所述采集指標名稱對應的數(shù)據(jù)類型。該方法還包括:根據(jù)所述采集指標名稱對應的數(shù)據(jù)類型,對所述采集指標名稱對應的監(jiān)控數(shù)據(jù)的數(shù)據(jù)類型是否正確進行檢驗。

可選地,該方法還包括:判斷所述監(jiān)控數(shù)據(jù)中是否存在滿足預設異常條件的異常數(shù)據(jù);在存在的情況下,將所述監(jiān)控數(shù)據(jù)中滿足預設異常條件的異常數(shù)據(jù)清除,或者,重置為預設正常數(shù)據(jù)。

可選地,所述將所述監(jiān)控數(shù)據(jù)處理為所述采集端所需的格式,得到第二格式數(shù)據(jù)包括:利用預置的聚合算法,對多個采集指標名稱對應的監(jiān)控數(shù)據(jù)進行聚合,得到所述多個采集指標名稱對應的一個聚合指標;將所述聚合指標封裝為所述采集端所需的格式,得到第二格式數(shù)據(jù)。

可選地,該方法還包括:將所述第二格式數(shù)據(jù)發(fā)送給所述采集端,以便所述采集端將所述第二格式數(shù)據(jù)存入數(shù)據(jù)庫。

在本發(fā)明實施例的第二個方面中,提供了一種異構應用數(shù)據(jù)采集裝置。該裝置配置于服務器側,所述服務器側預置有不同應用監(jiān)控探針分別對應的配置文件,以及,預置有不同數(shù)據(jù)格式分別對應的數(shù)據(jù)解析器,其中,所述配置文件中至少包含采集指標名稱。該裝置包括:數(shù)據(jù)接收模塊,被配置為接收應用監(jiān)控探針探取到的第一格式數(shù)據(jù)。指標名稱讀取模塊,被配置為從所述應用監(jiān)控探針對應的配置文件中,讀取出采集指標名稱。解析模塊,被配置為根據(jù)所述數(shù)據(jù)接收模塊接收的第一格式數(shù)據(jù)對應的數(shù)據(jù)格式,采取所述數(shù)據(jù)格式對應的數(shù)據(jù)解析器,從所述第一格式數(shù)據(jù)中解析出所述指標名稱讀取模塊讀取出的采集指標名稱對應的監(jiān)控數(shù)據(jù)。數(shù)據(jù)處理模塊,被配置為將所述解析模塊解析出的監(jiān)控數(shù)據(jù)處理為采集端所需的格式,得到第二格式數(shù)據(jù)。

可選地,所述配置文件中還包含所述采集指標名稱對應的數(shù)據(jù)類型。該裝置還包括:檢驗模塊,被配置為根據(jù)所述指標名稱讀取模塊讀取出的采集指標名稱對應的數(shù)據(jù)類型,對所述解析模塊解析出的所述采集指標名稱對應的監(jiān)控數(shù)據(jù)的數(shù)據(jù)類型是否正確進行檢驗。

可選地,該裝置還包括:異常判斷模塊,被配置為判斷所述解析模塊解析出的監(jiān)控數(shù)據(jù)中是否存在滿足預設異常條件的異常數(shù)據(jù)。重置模塊,被配置為在所述異常判斷模塊判定存在的情況下,將所述監(jiān)控數(shù)據(jù)中滿足預設異常條件的異常數(shù)據(jù)清除,或者,重置為預設正常數(shù)據(jù)。

可選地,所述數(shù)據(jù)處理模塊包括:聚合子模塊,被配置為利用預置的聚合算法,對所述解析模塊解析出的、多個采集指標名稱對應的監(jiān)控數(shù)據(jù)進行聚合,得到所述多個采集指標名稱對應的一個聚合指標。封裝子模塊,被配置為將所述聚合指標封裝為所述采集端所需的格式,得到第二格式數(shù)據(jù)。

可選地,該裝置還包括:發(fā)送模塊,被配置為將所述數(shù)據(jù)處理模塊得到的第二格式數(shù)據(jù)發(fā)送給所述采集端,以便所述采集端將所述第二格式數(shù)據(jù)存入數(shù)據(jù)庫。

由于本發(fā)明實施例提供的方法在服務器側預置有不同應用監(jiān)控探針分別對應的配置文件,以及,預置有不同數(shù)據(jù)格式分別對應的數(shù)據(jù)解析器,接收應用監(jiān)控探針探取到的第一格式數(shù)據(jù),從應用監(jiān)控探針對應的配置文件中,讀取出采集指標名稱,根據(jù)第一格式數(shù)據(jù)對應的數(shù)據(jù)格式,采取對應的數(shù)據(jù)解析器,從第一格式數(shù)據(jù)中解析出采集指標名稱對應的監(jiān)控數(shù)據(jù),將監(jiān)控數(shù)據(jù)封裝為采集端所需的格式,得到第二格式數(shù)據(jù),因此,針對不同語言的應用監(jiān)控探針實現(xiàn)不同的接口,跨不同語言的應用監(jiān)控探針通信,從而能夠從不同應用監(jiān)控探針得到采集端能夠接受的數(shù)據(jù)。

本發(fā)明的其他特征和優(yōu)點將在隨后的具體實施方式部分予以詳細說明。

附圖說明

附圖是用來提供對本發(fā)明的進一步理解,并且構成說明書的一部分,與下面的具體實施方式一起用于解釋本發(fā)明,但并不構成對本發(fā)明的限制。在附圖中:

圖1是根據(jù)一示例性實施例示出的實施環(huán)境示意圖。

圖2是根據(jù)本發(fā)明的一示例性實施例示出的一種異構應用數(shù)據(jù)采集方法的流程圖。

圖3是根據(jù)本發(fā)明另一示例性實施例示出的一種異構應用數(shù)據(jù)采集方法的流程圖。

圖4是根據(jù)本發(fā)明的一示例性實施例示出的一種異構應用數(shù)據(jù)采集裝置的框圖。

圖5是根據(jù)本發(fā)明的另一示例性實施例示出的一種異構應用數(shù)據(jù)采集裝置的框圖。

具體實施方式

以下結合附圖對本發(fā)明的具體實施方式進行詳細說明。應當理解的是,此處所描述的具體實施方式僅用于說明和解釋本發(fā)明,并不用于限制本發(fā)明。

圖1是根據(jù)一示例性實施例示出的實施環(huán)境示意圖。該實施環(huán)境包括:多個不同的應用監(jiān)控探針101、根據(jù)本發(fā)明實施例提供的異構應用數(shù)據(jù)采集方法實現(xiàn)的適配器102、采集端103、數(shù)據(jù)庫104、以及數(shù)據(jù)展現(xiàn)平臺105。其中,適配器102、采集端103、數(shù)據(jù)庫104、以及數(shù)據(jù)展現(xiàn)平臺105可以布置在服務器側,多個不同的應用監(jiān)控探針101可以布置在需要被監(jiān)控的終端側或服務器側,其中,至少兩個應用監(jiān)控探針不在同一設備上。其中,適配器102,接收應用監(jiān)控探針探取到的數(shù)據(jù),將從各個應用監(jiān)控探針101數(shù)據(jù)進行提取等處理后,得到符合采集端103所需格式的數(shù)據(jù),并將符合采集端103所需格式的數(shù)據(jù)發(fā)送給采集端103。采集端103,將該數(shù)據(jù)存入數(shù)據(jù)庫104,以便在需要時數(shù)據(jù)展現(xiàn)平臺105可以從數(shù)據(jù)庫104取出該數(shù)據(jù)并進行展示。

可以理解的是,圖1所示實施環(huán)境僅用于示意本發(fā)明實施例提供的方法,并不構成對本發(fā)明實施例的限制。

圖2是根據(jù)本發(fā)明的一示例性實施例示出的一種異構應用數(shù)據(jù)采集方法的流程圖。該方法可以應用于服務器側。例如,根據(jù)本發(fā)明實施例提供的方法實現(xiàn)的適配器可以預置有不同應用監(jiān)控探針分別對應的配置文件,以及,預置有不同數(shù)據(jù)格式分別對應的數(shù)據(jù)解析器,其中,所述配置文件中至少包含采集指標名稱。該方法可以包括:

在步驟210中,接收應用監(jiān)控探針探取到的第一格式數(shù)據(jù)。

例如,所述應用監(jiān)控探針可以為配置于不同終端或服務器上的MULL探針、JVM探針、消息中間件探針、數(shù)據(jù)庫探針、應用服務器探針、網絡嗅探器探針、.NET應用探針、PHP應用探針、JAVA應用探針、WINDOWS主機探針、Linux主機探針、等等。所述第一格式數(shù)據(jù)例如可以為,json格式的數(shù)據(jù)、xml格式的數(shù)據(jù)、文本格式的數(shù)據(jù)等等。

在步驟220中,從所述應用監(jiān)控探針對應的配置文件中,讀取出采集指標名稱。

例如,可以在所述適配器啟動的過程中,加載所有的配置文件。以JAVA應用監(jiān)控探針為例,該應用監(jiān)控探針對應的對應配置文件中的采集指標名稱可以包括:在線用戶、吞吐量、平均響應時間、健康度、工作負荷、用戶體驗、活躍線程、可用性、物理內存使用率、java內存使用率、cpu使用率、等等。

在步驟230中,根據(jù)所述第一格式數(shù)據(jù)對應的數(shù)據(jù)格式,采取所述數(shù)據(jù)格式對應的數(shù)據(jù)解析器,從所述第一格式數(shù)據(jù)中解析出所述采集指標名稱對應的監(jiān)控數(shù)據(jù)。

一種可能的實施方式中,可以根據(jù)用于傳輸該第一格式數(shù)據(jù)的響應頭文件,獲知該第一格式數(shù)據(jù)對應的數(shù)據(jù)格式。該響應頭文件中可以包含對數(shù)據(jù)格式的定義。例如,所述第一格式數(shù)據(jù)的數(shù)據(jù)格式可以為json、xml、文本、等等,進而選擇相應的xml數(shù)據(jù)解析器、json解析器、文本解析器、等等來完成監(jiān)控數(shù)據(jù)的解析。

在步驟240中,將所述監(jiān)控數(shù)據(jù)處理為采集端所需的格式,得到第二格式數(shù)據(jù)。

一種可能的實施方式中,可以將所述第二格式數(shù)據(jù)發(fā)送給所述采集端,以便所述采集端將所述第二格式數(shù)據(jù)存入數(shù)據(jù)庫?;蛘?,也可以將所述第二格式數(shù)據(jù)緩存在指定存儲區(qū)域,由采集端自行到該指定存儲區(qū)域進行讀取。

一種可能的實施方式中,可以直接將監(jiān)控數(shù)據(jù)封裝為采集端所需的格式,得到第二格式數(shù)據(jù)。另一種可能的實施方式中,為了減少發(fā)往采集端的數(shù)據(jù)量,減輕運維人員閱讀大量監(jiān)控數(shù)據(jù)的壓力,本發(fā)明實施例的方法可以利用預置的聚合算法,對多個采集指標名稱對應的監(jiān)控數(shù)據(jù)進行聚合,得到所述多個采集指標名稱對應的一個聚合指標,將所述聚合指標封裝為所述采集端所需的格式,得到第二格式數(shù)據(jù)。

例如,可以將CPU使用率,物理內存使用率,java堆內存使用率、Java非堆內存使用率,交換空間,吞吐量等等聚合成為一個影響應用工作負荷的聚合指標。將該影響應用工作負荷的聚合指標封裝為采集端所需的格式,得到第二格式數(shù)據(jù)。例如,可以將一封裝為JSON格式。

其中,所述聚合算法可以根據(jù)實際需要設置,本發(fā)明對此并不進行限制。例如,可以為待聚合的每一類監(jiān)控數(shù)據(jù)設置對應的權重,將每一類監(jiān)控數(shù)據(jù)對應的數(shù)值(如,在線用戶數(shù)量、吞吐量、平均響應時間、等等)與其對應的權重相乘,得到每一類監(jiān)控數(shù)據(jù)對應的指標分量,將待聚合的多個監(jiān)控數(shù)據(jù)對應的指標分量相加,得到聚合指標。

可見,本發(fā)明實施例提供的方法能夠針對不同語言的應用監(jiān)控探針實現(xiàn)不同的接口,跨不同語言的應用監(jiān)控探針通信,使采集端能夠獲得不同應用監(jiān)控探針探取到的數(shù)據(jù)。

為了避免由于錯誤數(shù)據(jù)導致系統(tǒng)崩潰,本發(fā)明實施例還可以對監(jiān)控數(shù)據(jù)進行校驗、清洗。下面,結合圖3所示的另一示例性實施例示出的一種異構應用數(shù)據(jù)采集方法的流程圖,對該實施方式進行詳細說明。

在步驟310中,接收應用監(jiān)控探針探取到的第一格式數(shù)據(jù)。

在步驟320中,從所述應用監(jiān)控探針對應的配置文件中,讀取出采集指標名稱。

在步驟330中,根據(jù)所述第一格式數(shù)據(jù)對應的數(shù)據(jù)格式,采取所述數(shù)據(jù)格式對應的數(shù)據(jù)解析器,從所述第一格式數(shù)據(jù)中解析出所述采集指標名稱對應的監(jiān)控數(shù)據(jù)。

在步驟331中,根據(jù)采集指標名稱對應的數(shù)據(jù)類型,對所述監(jiān)控數(shù)據(jù)的數(shù)據(jù)類型是否正確進行檢驗。在該實施方式中,所述配置文件中還可以包含所述采集指標名稱對應的數(shù)據(jù)類型。

例如,可以判斷所述監(jiān)控數(shù)據(jù)的數(shù)據(jù)類型是否符合對應的采集指標名稱對應的數(shù)據(jù)類型,在不符合的情況下,將所述監(jiān)控數(shù)據(jù)的數(shù)據(jù)類型轉換為對應的采集指標名稱對應的數(shù)據(jù)類型,或者,反饋數(shù)據(jù)錯誤。

例如,配置文件中,某個采集指標名稱對應的數(shù)據(jù)類型可以為String(字符型)、boolean(布爾型),long(長整型)等。假設配置文件中對“主機連通性”這一采集指標名稱定義的數(shù)據(jù)類型為boolean型,在該采集指標名稱“主機連通性”對應的監(jiān)控數(shù)據(jù)中出現(xiàn)其他值,例如,“others”、“null”等,則可以將“others”、“null”替換為布爾型的“false”。再假設配置文件中對某些采集指標名稱(如“磁盤使用率”等)定義的數(shù)據(jù)類型為百分比,在該采集指標名稱對應的監(jiān)控數(shù)據(jù)中出現(xiàn)其他值,則將這些值轉換為百分比數(shù)據(jù)類型來表示,在該采集指標名稱對應的監(jiān)控數(shù)據(jù)超過百分比或者是復數(shù),則代表監(jiān)控數(shù)據(jù)存在問題,可以進一步向反饋錯誤。

在步驟332中,判斷所述監(jiān)控數(shù)據(jù)中是否存在滿足預設異常條件的異常數(shù)據(jù)。

其中,所述預設異常條件,可以根據(jù)實際情況進行設置,本發(fā)明對此并不進行限制。例如,對于某些監(jiān)控數(shù)據(jù),其值小于零時是異常的,則可以將預設異常條件設置為“監(jiān)控數(shù)據(jù)小于零”。

在步驟333中,在存在的情況下,將所述監(jiān)控數(shù)據(jù)中滿足預設異常條件的異常數(shù)據(jù)清除,或者,重置為預設正常數(shù)據(jù)。

在清除或者重置之后,可以進入步驟340。另外,在步驟332判定監(jiān)控數(shù)據(jù)中不存在滿足預設異常條件的異常數(shù)據(jù)的情況下,也進入步驟340。

例如,對于某些監(jiān)控數(shù)據(jù),例如,其值小于零時,滿足預設異常條件,則可以將該監(jiān)控數(shù)據(jù)清除,或者,將其值重置為預設正常數(shù)據(jù)。其中預設正常數(shù)據(jù),可以根據(jù)實際情況進行設置,本發(fā)明對此并不進行限制。例如,對于某些監(jiān)控數(shù)據(jù)異常時,可以重置為預設正常數(shù)據(jù)“0”。

在步驟340中,將所述監(jiān)控數(shù)據(jù)處理為采集端所需的格式,得到第二格式數(shù)據(jù)。

可見,本發(fā)明實施例提供的方法在服務器側將各個應用監(jiān)控探針探取到的數(shù)據(jù)進行提取、格式轉換,從而能夠跨不同語言的應用監(jiān)控探針通信,使采集端獲得不同應用監(jiān)控探針探取到的數(shù)據(jù),而且通過校驗,避免了錯誤數(shù)據(jù)所導致的程序崩潰,通過聚合指標,能夠幫助運維人員快速定位應用性能問題。

圖4是根據(jù)本發(fā)明的一示例性實施例示出的一種異構應用數(shù)據(jù)采集裝置400的框圖。該裝置可以配置于服務器側。其中,服務器側可以預置有不同應用監(jiān)控探針分別對應的配置文件,以及,預置有不同數(shù)據(jù)格式分別對應的數(shù)據(jù)解析器,其中,所述配置文件中至少包含采集指標名稱。該裝置可以包括:數(shù)據(jù)接收模塊410、指標名稱讀取模塊420、解析模塊430、以及數(shù)據(jù)處理模塊440。

該數(shù)據(jù)接收模塊410,可以被配置為接收應用監(jiān)控探針探取到的第一格式數(shù)據(jù)。

該指標名稱讀取模塊420,可以被配置為從所述應用監(jiān)控探針對應的配置文件中,讀取出采集指標名稱。

該解析模塊430,可以被配置為根據(jù)所述數(shù)據(jù)接收模塊410接收的第一格式數(shù)據(jù)對應的數(shù)據(jù)格式,采取所述數(shù)據(jù)格式對應的數(shù)據(jù)解析器,從所述第一格式數(shù)據(jù)中解析出所述指標名稱讀取模塊420讀取出的采集指標名稱對應的監(jiān)控數(shù)據(jù)。

該數(shù)據(jù)處理模塊440,可以被配置為將所述解析模塊430解析出的監(jiān)控數(shù)據(jù)處理為采集端所需的格式,得到第二格式數(shù)據(jù)。

可見,本發(fā)明實施例提供的裝置能夠針對不同語言的應用監(jiān)控探針實現(xiàn)不同的接口,跨不同語言的應用監(jiān)控探針通信,使采集端能夠獲得不同應用監(jiān)控探針探取到的數(shù)據(jù)。

為了避免由于錯誤數(shù)據(jù)導致系統(tǒng)崩潰,本發(fā)明實施例還可以對監(jiān)控數(shù)據(jù)進行校驗、清洗。下面,結合圖5所示的另一示例性實施例示出的一種異構應用數(shù)據(jù)采集裝置的框圖,對該實施方式進行詳細說明。

如圖5所示,該裝置還包括:檢驗模塊450,可以被配置為根據(jù)所述指標名稱讀取模塊420讀取出的采集指標名稱對應的數(shù)據(jù)類型,對所述解析模塊430解析出的所述采集指標名稱對應的監(jiān)控數(shù)據(jù)的數(shù)據(jù)類型是否正確進行檢驗。該實施方式中,所述配置文件中還可以包含所述采集指標名稱對應的數(shù)據(jù)類型。

另一種可能的實施方式中,該裝置還可以包括:異常判斷模塊460,被配置為判斷所述解析模塊430解析出的監(jiān)控數(shù)據(jù)中是否存在滿足預設異常條件的異常數(shù)據(jù)。重置模塊461,被配置為在所述異常判斷模塊460判定存在的情況下,將所述監(jiān)控數(shù)據(jù)中滿足預設異常條件的異常數(shù)據(jù)清除,或者,重置為預設正常數(shù)據(jù)。

一種可能的實施方式中,為了減少發(fā)往采集端的數(shù)據(jù)量,減輕運維人員閱讀大量監(jiān)控數(shù)據(jù)的壓力,本發(fā)明實施例裝置的數(shù)據(jù)處理模塊440可以包括:聚合子模塊441,可以被配置為利用預置的聚合算法,對所述解析模塊430解析出的、多個采集指標名稱對應的監(jiān)控數(shù)據(jù)進行聚合,得到所述多個采集指標名稱對應的一個聚合指標。封裝子模塊442,可以被配置為將所述聚合指標封裝為所述采集端所需的格式,得到第二格式數(shù)據(jù)。

一種可能的實施方式中,該裝置還可以包括:發(fā)送模塊470,可以被配置為將所述數(shù)據(jù)處理模塊440得到的第二格式數(shù)據(jù)發(fā)送給所述采集端,以便所述采集端將所述第二格式數(shù)據(jù)存入數(shù)據(jù)庫。

以上結合附圖詳細描述了本發(fā)明的優(yōu)選實施方式,但是,本發(fā)明并不限于上述實施方式中的具體細節(jié),在本發(fā)明的技術構思范圍內,可以對本發(fā)明的技術方案進行多種簡單變型,這些簡單變型均屬于本發(fā)明的保護范圍。

另外需要說明的是,在上述具體實施方式中所描述的各個具體技術特征,在不矛盾的情況下,可以通過任何合適的方式進行組合。為了避免不必要的重復,本發(fā)明對各種可能的組合方式不再另行說明。

此外,本發(fā)明的各種不同的實施方式之間也可以進行任意組合,只要其不違背本發(fā)明的思想,其同樣應當視為本發(fā)明所公開的內容。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
抚宁县| 西藏| 阜宁县| 霍州市| 绥宁县| 新巴尔虎右旗| 米林县| 延边| 视频| 静乐县| 赤峰市| 扶余县| 湖口县| 尉氏县| 汪清县| 永昌县| 井研县| 绥芬河市| 大庆市| 本溪市| 襄垣县| 通渭县| 浮山县| 茂名市| 莒南县| 双辽市| 昌平区| 专栏| 泰州市| 都兰县| 威海市| 秀山| 汝南县| 买车| 阿城市| 内江市| 稷山县| 晋宁县| 临西县| 虹口区| 米泉市|