国产凹凸在线-国产拗女一区二区三区-国产白白视-国产白领-国产白拍-国产白丝jk被疯狂输-国产白丝喷-国产白丝在线

金喜正规买球

amCharts應(yīng)用實例:日志分析

轉(zhuǎn)帖|使用教程|編輯:龔雪|2014-08-21 09:31:35.000|閱讀 1015 次

概述:在眾多JavaScript圖表工具中,amcharts以其易操作性受到廣大用戶好評,我們可以使用amcharts結(jié)合ElasticSearch做webserver 日志分析,amcharts強大的數(shù)據(jù)可視化效果,可以讓我們的分析更直觀、更有效。

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

之前有一篇從 ElasticSearch 官網(wǎng)摘下來的博客《【翻譯】用ElasticSearch和Protovis實現(xiàn)數(shù)據(jù)可視化》。不過一來 Protovis 已經(jīng)過時,二來 不管是 Protovis 的進(jìn)化品 D3 還是 Highchart什么的,我覺得在多圖方面都還不如 amcharts 好用。所以在最后依然選擇了老牌的 amcharts 完成。

展示品的大概背景還是 webserver 日志,嗯,這個需求應(yīng)該是最有代表性的了。我們需要對webserver的性能有所了解。之前有一篇文章《Tatsumaki框架的小demo一個》,講的是通過terms_stats 獲取固定時段內(nèi)請求時間的平均值。其實這個demo是可以參照官網(wǎng)博客修改成純js應(yīng)用的。因為 Tatsumaki 在這里除了處理 HTTP 請求參數(shù),什么都沒干。而且這個demo目的是展示 perl 框架的處理,所以amchart方面直接就寫死了各種變量。

但是還有一種需求,比如你需要的是針對某個情況超過某個百分比的分時走勢統(tǒng)計。這時候必須多次請求 ES 來做運算,再讓 js 做,不是說不行,但是多一倍數(shù)據(jù)在網(wǎng)絡(luò)中傳輸,就不如在服務(wù)器端封裝 API 了 —— 其實是我 js 太爛這種事情,我會告訴你們么。。。

先上兩張效果圖,其實這個布局我是從 facetgrapher 項目偷來的,但這個項目只適合比較不同 index 之間同時間段的數(shù)據(jù),我建議作者修改,作者說”我自己js也是半吊子水平”。。。

分地區(qū)錯誤情況統(tǒng)計

實時分運營商錯誤比例統(tǒng)計

利用 bullet 大小來表示 hasErr 的程度

查詢的 ES 庫情況如下:

$ curl "//10.4.16.68:9200/demo-photo/log/_mapping?pretty=1"
    {
      "log" : {
        "properties" : {
          "brower" : {
            "type" : "string"
          },
          "date" : {
            "type" : "date",
            "format" : "dateOptionalTime"
          },
          "fromArea" : {
            "type" : "string",
            "index" : "not_analyzed"
          },
          "hasErr" : {
            "type" : "string"
          },
          "requestUrl" : {
            "type" : "string",
            "index" : "not_analyzed"
          },
          "timeCost" : {
            "type" : "long"
          },
          "userId" : {
            "type" : "string"
          },
          "xnforword" : {
            "type" : "string"
          }
        }
      }
    }
    $ curl "//10.4.16.68:9200/demo-photo/log/_search?pretty=1&size=1" -d '{"query":{"match_all":{}}}'
    {
      "took" : 14,
      "timed_out" : false,
      "_shards" : {
        "total" : 10,
        "successful" : 10,
        "failed" : 0
      },
      "hits" : {
        "total" : 2330679,
        "max_score" : 1.0,
        "hits" : [ {
          "_index" : "demo-photo",
          "_type" : "log",
          "_id" : "iSI5xic7Qg2p9Sqk5yp-pQ",
          "_score" : 1.0, "_source" : {"hasErr":"false","date":"2012-12-06T15:04:21,983","userId":"123456789","requestUrl":"//photo.demo.domain.com/path/to/your/app/test.jpg","brower":"chrome17.0.963.84","timeCost":750,"xnforword":["192.168.1.123","10.10.10.10"],"fromArea":"CN-UNI-OTHER"}
        } ]
      }
    }

然后后臺是我慣用的 Dancer 框架:

package AnalysisDemo;
    use Dancer ':syntax';
    use Dancer::Plugin::Ajax;
    use ElasticSearch;
    use POSIX qw(strftime);
    no  warnings;
    my $elsearch         = ElasticSearch->new( { %{ config->{plugins}->{ElasticSearch} } } );
    my $index_prefix     = 'demo-';
    my $type             = 'log';
    # 這里是對ip庫的歸類。數(shù)據(jù)是需要提前導(dǎo)入ES的,這可以是logstash發(fā)揮作用
    my $default_provider = {
        yidong    => [qw(CN-CRN CN-CMN)],
        jiaoyu    => [qw(CN-CER CN-CST)],
        dianxin   => [qw(CN-CHN)],
        liantong  => [qw(CN-UNI CN-CNC)],
        guangdian => [qw(CN-SCN)],
        haiwai => [qw(OS)],
    };
    get '/' => sub {
        # 通過 state API 獲取 ES 集群現(xiàn)有的所有index列表
        # 因為是一個域名一個index,這樣就有了前段頁面上的域名下拉選擇框
        my $indices = $elsearch->cluster_state->{routing_table}->{indices};
        template 'demo/chart',
          {
            providers => [ sort keys %$default_provider ],
            datasources =>
              [ grep { /^$index_prefix/ && s/$index_prefix// } keys %$indices ],
            inputfrom => strftime("%F\T%T", localtime(time()-864000)),
            inputto => strftime("%F\T%T", localtime()),
          };
    };
    # 這里把 api 拆成服務(wù)商和區(qū)域兩個,沒啥特殊原因,因為是分兩回寫的,汗
    # 其實可以看到最開始的請求參數(shù)類似,最后json的field名字都一樣
    ajax '/api/provider' => sub {
        my $param = from_json(request->body);
        my $index = $index_prefix . $param->{'datasource'};
        my $from  = $param->{'from'} || 'now-10d';
        my $to    = $param->{'to'} || 'now';
        my $providers = $param->{'provider'};
        my ( $pct, $chartData );
        for my $provider ( sort @{$providers} ) {
            my $provider_pct;
            # 這里是比較麻煩的一點,因為一個區(qū)域在ip庫里可能標(biāo)記成多個,比如鐵通和移動,現(xiàn)在都是移動
            for my $area ( @{ $default_provider->{$provider} } ) {
                my $res = pct_count( $index, $area, $from, $to );
                for my $time ( sort keys %{$res} ) {
                    $provider_pct->{$time}->{count} += $res->{$time}->{count};
                    $provider_pct->{$time}->{error} += $res->{$time}->{error};
                    $provider_pct->{$time}->{slow}  += $res->{$time}->{slow};
                }
            }
            # 這里因為可能沒有錯誤,所以前面關(guān)閉了常用的 warnings 警告
            for my $time ( sort keys %{$provider_pct} ) {
                my $right_pct = 100;
                $right_pct =
                  100 -
                  $provider_pct->{$time}->{slow} / $provider_pct->{$time}->{count}
                  * 100;
                $pct->{$time}->{$provider} = sprintf "%.2f", $right_pct;
                $pct->{$time}->{"${provider}Err"} = sprintf "%.2f",
                  $provider_pct->{$time}->{error} / $provider_pct->{$time}->{count}
                  * 100;
                $pct->{$time}->{"${provider}Size"} = sprintf "%.0f",
                  $pct->{$time}->{"${provider}Err"};
            }
        };
        for my $time ( sort keys %$pct ) {
            my $data->{date} = $time;
            for my $provider ( @$providers ) {
                $data->{$provider} = $pct->{$time}->{$provider} || 100;
                $data->{"${provider}Err"} = $pct->{$time}->{"${provider}Err"} || 0;
                # 百分比太低,所以翻 5 倍來作為 bullet 的大小
                $data->{"${provider}Size"} =
                  $pct->{$time}->{"${provider}Size"} * 5 || 0;
            };
            push @$chartData, $data;
        };
        my $res = {
            type => "line",
            categoryField => "date",
            graphList => $providers,
            chartData => $chartData,
        };
        return to_json($res);
    };
    ajax '/api/area' => sub {
        my $param = from_json(request->body);
        my $index = $index_prefix . $param->{'datasource'};
        my $limit = $param->{'limit'} || 50;
        my $from  = $param->{'from'} || 'now-10d';
        my $to    = $param->{'to'} || 'now';
        # 這是后來寫的,盡可能把 sub 拆分了,所以 ajax 這里就很簡略
        # 當(dāng)然因為不考慮多運營商的問題,本身也容易一些
        my $res = pct_terms( $index, $limit, $from, $to );
        return to_json($res);
    };
    sub pct_terms {
        my ( $index, $limit, $from, $to ) = @_;
        my $area_all_count = area_terms( $index, 0,    $limit, $from, $to );
        my $area_err_count = area_terms( $index, 2000, $limit, $from, $to );
        my ( $error, $chartData );
        for ( @{$area_err_count} ) {
            $error->{ $_->{term} } = $_->{count};
        }
        for ( @{$area_all_count} ) {
            push @$chartData, {
                area  => $_->{term},
                error => $error->{ $_->{term} } || 0,
                right => $_->{count} - $error->{ $_->{term} },
            };
        }
        my $res = {
            type => "column",
            categoryField => "area",
            graphList => [qw(right error)],
            chartData => $chartData,
        };
        return $res;
    }
    sub pct_count {
        my ( $index, $area, $from, $to ) = @_;
        my $level = $area eq 'OS' ? 3000 : 2000;
        my $all_count  = histo_count( $index, 0,      $area, $from, $to );
        my $slow_count = histo_count( $index, $level,   $area, $from, $to );
        my $err_count  = histo_count( $index, 'hasErr', $area, $from, $to );
        my $res;
        for ( @{$slow_count} ) {
            $res->{ $_->{time} }->{slow} = $_->{count};
        }
        for ( @{$err_count} ) {
            $res->{ $_->{time} }->{error} = $_->{count};
        }
        for ( @{$all_count} ) {
            $res->{ $_->{time} }->{count} = $_->{count};
        }
        return $res;
    }
    # 下面開始的兩個才是真正發(fā) ES 請求的地方
    sub area_terms {
        my ( $index, $level, $limit, $from, $to ) = @_;
        my $data = $elsearch->search(
            index  => $index,
            type   => $type,
            size   => 0,
            facets => {
                area => {
                    facet_filter => {
                        and => [
                            {
                                range => {
                                    date => {
                                        from => $from,
                                        to   => $to
                                    },
                                },
                            },
                            {
                                numeric_range =>
                                  { timeCost => { gte => $level, }, },
                            },
                        ],
                    },
                    # 使用最簡單的 terms facets API,因為只用計數(shù)就好了
                    terms => {
                        field => "fromArea",
                        size  => $limit,
                    }
                }
            }
        );
        return $data->{facets}->{area}->{terms};
    }
    sub histo_count {
        my ( $index, $level, $area, $from, $to ) = @_;
        # 根據(jù) level 參數(shù)判斷使用 hasErr 還是 timeCost 列數(shù)據(jù)
        my $level_ref =
          $level eq 'hasErr'
          ? { term => { hasErr => 'true' } }
          : { numeric_range => { timeCost => { gt => $level } } };
        my $facets = {
            pct => {
                facet_filter => {
                    # 這里條件比較多,所以要用 bool API,不能用 and 了
                    bool => {
                        # must 可以提供多個條件作為 AND 數(shù)組
                        # 此外還有 must_not 作為 AND NOT 數(shù)組
                        # should 作為 OR 數(shù)組
                        must => [
                            {
                                range => {
                                    date => {
                                        from => $from,
                                        to   => $to
                                    },
                                },
                            },
                            { prefix => { fromArea => $area } },
                            $level_ref,
                        ],
                    },
                },
                # 這里是需要針對專門的時間列做匯總,所以用 date_histogram 了,具體說明之前有博客
                date_histogram => {
                    field    => "date",
                    interval => "1h",
                }
            }
        };
        my $data = $elsearch->search(
            index  => $index,
            type   => $type,
            facets => $facets,
            size   => 0,
        );
        return $data->{facets}->{pct}->{entries};
    }

其實把里面請求的hash拆開來一個個定義,然后根據(jù)情況組合,但是不方便察看作為 demo 的整體情況。

然后看template里怎么寫。這里雖然有兩個效果圖,但是只有一個template喲:

<link rel="stylesheet" href="[% $request.uri_base %]/amcharts/style.css" type="text/css">
<script src="[% $request.uri_base %]/amcharts/amcharts.js" type="text/javascript"></script>
<script type="text/javascript">
  var chart;
  function createAmChart(data) {
    // 清空原有圖形
    $("#chartdiv").empty();
    // 如果是時間軸線圖,需要把date字符轉(zhuǎn)成Date對象
    if ( data.categoryField == "date" ) {
      for ( var j = 0; j < data.chartData.length; j++ ) {
        data.chartData[j].date = new Date(Number(data.chartData[j].date));
      }
    }
    chart = new AmCharts.AmSerialChart();
    // 拖動條等圖片的路徑
    chart.pathToImages = "/amcharts/images/";
    chart.dataProvider = data.chartData;
    chart.categoryField = data.categoryField;
    // 如果是柱狀圖,可以顯示 3D 效果
    if ( data.type == 'column' ) {
//      chart.rotate = true;
      chart.depth3D = 20;
      chart.angle = 30;
    }
    var categoryAxis = chart.categoryAxis;
    categoryAxis.fillAlpha = 1;
    categoryAxis.fillColor = "#FAFAFA";
    categoryAxis.axisAlpha = 0;
    categoryAxis.gridPosition = "start";
    // 時間軸需要解析Date對象
    if ( data.categoryField == "date" ) {
      categoryAxis.parseDates = true;
      categoryAxis.minPeriod = "hh";
    }
    var valueAxis = new AmCharts.ValueAxis();
    valueAxis.dashLength = 5;
    valueAxis.axisAlpha = 0;
    // 指定柱狀圖為疊加模式,這里有多種模式可以看文檔
    if ( data.type == 'column' ) {
      valueAxis.stackType = "regular";
    }
    chart.addValueAxis(valueAxis);
    // 這里有個有趣的事情,如果不把graph當(dāng)數(shù)組直接循環(huán),效果也沒問題
    // 我只能猜測是 addGraph 后數(shù)據(jù)其實已經(jīng)緩存到 chart 了
    var graph = [];
    var colors = ['#FF6600', '#FCD202', '#B0DE09', '#0D8ECF', '#2A0CD0', '#CD0D74', '#CC0000', '#00CC00', '#0000CC', '#DDDDDD', '#999999', '#333333', '#990000'];
    for ( var i = 0; i < data.graphList.length; i++ ) {
      graph[i] = new AmCharts.AmGraph();
      graph[i].title = data.graphList[i];
      graph[i].valueField = data.graphList[i];
      graph[i].type = data.type;
      if ( data.type == 'column' ) {
        graph[i].lineAlpha = 0;
        graph[i].fillAlphas = 1;
      } else {
        graph[i].valueField = data.graphList[i];
        graph[i].descriptionField = data.graphList[i] + "Err";
        graph[i].bulletSizeField = data.graphList[i] + "Size";
        graph[i].bullet = "round";
        // 設(shè)定為空心圓圈
        graph[i].bulletColor = "#ffffff";
        graph[i].bulletBorderAlpha = 1;
        // amchart 本來有默認(rèn)顏色,不過前面因為修改了圓內(nèi)的顏色,所以其他顏色無法繼承默認(rèn)設(shè)定了
        graph[i].bulletBorderColor =  colors[i];
        graph[i].lineColor =  colors[i];
        graph[i].lineAlpha = 1;
        graph[i].lineThickness = 1;
        graph[i].balloonText = "[[value]]% / hasErr:[[description]]%";
      }
      chart.addGraph(graph[i]);
    }
    // 加圖例,這樣可以在圖上隨時勾選察看具體某個數(shù)據(jù),也方便某數(shù)據(jù)異常的時候影響察看其他
    var legend = new AmCharts.AmLegend();
    legend.position = "right";
    legend.horizontalGap = 10;
    legend.switchType = "v";
    chart.addLegend(legend);
    // 加拖拉軸,這樣可以拖動察看細(xì)節(jié),這個功能很贊
    var scrollbar = new AmCharts.ChartScrollbar();
    scrollbar.graph = graph[0];
    scrollbar.graphType = "line";
    scrollbar.height = 30;
    chart.addChartScrollbar(scrollbar);
    var cursor = new AmCharts.ChartCursor();
    chart.addChartCursor(cursor);
    chart.write("chartdiv");
  };
  function drawChart() {
    var provider = [];
    $("#provider :selected").each(function(){
       provider.push( $(this).val() );
    });
    var datasource = $("#datasource :selected").val();
    var apitype = $(":radio:checked").val();
    var from = $("#from").val();
    var to = $("#to").val();
    $.ajax({
      processData: false,
      url: "[% $request.uri_base %]/demo/api/" + apitype,
      data: JSON.stringify({"provider":provider, "datasource":datasource, "from":from, "to":to}),
      type: "POST",
      dataType: "json",
      success : createAmChart
    });
  };
  function showselect() {
    $("#providers").show();
  };
  function hideselect() {
    $("#providers").hide();
  };
</script>
      <div class="well">
        <div class="span8">
          <input type="text" class="input-medium" id="from" name="from" value="[% $inputfrom %]">
          <input type="text" class="input-medium" id="to" name="to" value="[% $inputto %]">
          <select class="input-medium" id="datasource">
%% for $datasources -> $datasource {
            <option value="[% $datasource %]">[% $datasource %]</option>
%% }
          </select>
        </div>
        <div class="span2">
          <label class="radio">
            <input type="radio" name="querytype" value="provider" onclick="showselect()">服務(wù)商趨勢
          </label>
          <label class="radio">
            <input type="radio" name="querytype" value="area" checked onclick="hideselect()">分地區(qū)統(tǒng)計
          </label>
        </div>
        <button type="submit" class="btn btn-primary" onclick="drawChart()">查詢</button>
        <div id ="providers" class="controls hide">
          <select class="input-medium" id="provider" multiple="mulitiple">
%% for $providers -> $provider {
            <option value="[% $provider %]" selected>[% $provider %]</option>
%% }
          </select>
        </div>
      </div><!--/well-->
      <div id="chartdiv" style="width: 100%; height: 400px;">
      </div>


標(biāo)簽:圖表amcharts

本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn


為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產(chǎn)品
  • 推薦文章
  • 慧都慧問
相關(guān)產(chǎn)品
控件
  • 產(chǎn)品功能:圖表
  • 源 碼:非開源
  • 產(chǎn)品編號:11973
  • 當(dāng)前版本:v4.10.15 [銷售以商家最新版為準(zhǔn),如需其他版本,請來電咨詢]
  • 開 發(fā) 商: AMCHARTS 正式授權(quán)
  • ">Javascript Stock Chart

    可將任意給予日期和時間數(shù)據(jù)可視化的Javascript金融圖表工具

    控件
  • 產(chǎn)品功能:圖表
  • 源 碼:非開源
  • 產(chǎn)品編號:11974
  • 當(dāng)前版本:v4.10.15 [銷售以商家最新版為準(zhǔn),如需其他版本,請來電咨詢]
  • 開 發(fā) 商: AMCHARTS 正式授權(quán)
  • ">JavaScript Charts

    擁有良好兼容性的JavaScript、HTML5圖表開發(fā)工具

    控件
  • 產(chǎn)品功能:圖表
  • 源 碼:非開源
  • 產(chǎn)品編號:13191
  • 當(dāng)前版本:v4.10.15 [銷售以商家最新版為準(zhǔn),如需其他版本,請來電咨詢]
  • 開 發(fā) 商: AMCHARTS 正式授權(quán)
  • ">JavaScript Maps

    JavaScript Maps是一個穩(wěn)健的交互式的Javascript/HTML5地圖庫

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    成人免费网站 | 国产很色很黄很大爽的视频 | 中字幕视频在线永久在线 | 欧美日韩一区二区高清不卡 | 欧美在线三级艳情网站 | 国产极品网站在线观看 | 国内精品日本和韩国免费不卡 | 午夜成人精品视频观看 | 91精品国产aⅴ一区二区 | 国产免费又刺激 | 国产激情一区二区三区四区 | 国产.欧美一区二区三区 | 成人亚洲欧美成αⅴ人在线观看 | 日韩亚洲欧美精品性爱 | 国产色系视频在线观看 | 99热国| 欧美日韩不卡高清在线看 | 国产在线看片护士免费视频 | 精品玖玖玖视频在线观看 | 日韩精品色色色色 | 收集最新中文国产中文字幕 | 青青导航| a级韩国乱理论片在线观看 日本三级国产乱伦 | 婷婷激情狠狠综合五月 | 国内自拍视频一区二区 | 国产自偷自拍 | 三级精品 | 欧美亚洲国产精品第 | 国产精品免费一区二区区 | 成人国产亚 | 韩国日本免费高清观看 | 日本成人频道一区二区三区 | 欧美乱码精品乱码一区二区三区 | 国产高清精品一 | 精品国产午夜精华 | 午夜男女刺激爽爽影院 | 国产导航在线柠檬导航 | 亚洲国产综合在线观看不卡 | 米奇欧美777四色影视在线 | 在线欧美日韩亚洲国产一区 | 日本免费在线 | 日韩一区二区三区免费高清 | 91九色精品国产免费 | 区二区网站 | 欧美激情另欧美做真爱 | 国产99视频在线观看免费 | 中文字幕免费在线观看 | 国产无人区卡一卡二扰乱码 | 国产精品亚洲国产在 | 草逼视频网站 | 国产伦精品一区二区三区男技 | 色舞月亚洲综合一区二区 | 91精品专区国产在线观看高清 | 福利片午夜免费观着 | 农村老妇女操穴图片 | 3344视频在 | 欧美一级二级三级在线观看视频 | 亚洲精品自在在线观看 | 77色午夜成人影院综合网 | 日本电影中文字幕 | 日韩精品中文字幕一区二区三区 | 亚洲高清无一区二区三区四区 | 精品国精品国产国产 | 微博网红户外露出在线观看 | 日本一二线不卡在线观看 | 日韩xxxx高清在线观看 | 91青青青青国产在线观看 | 国产肥熟女视频一区二 | 国产精品合集一区二区 | 欧美综合影视自拍 | 亚洲国产网站在线观看 | 中文字幕免 | 韩日精品视频 | 综合另类 | 区四区在线观看 | 日韩一区二区三区在线精品 | 国产乱码精品蜜臀 | h视频在线观看免费 | 男人j进入女人j内部免费网站 | 国产在线精品福利大全 | 国产嘿嘿嘿视频在线观看 | 亚洲欧美国产国产综合一区 | 小说区综合区 | 在线视频观看免费视频18 | 国产精品亚洲综合一区在 | 国产啪在线91 | 国产视频一区二区三区四区 | 亚洲一区二区精品 | 午夜影视在线播放免 | 真实国产精品vr专区 | 国产精品免费精 | 自拍欧美在线综合另类 | 国产大片黄在线观看 | 性感美女网站一区二区三区 | 欧洲精品视频一二三区视频 | 国产免费高清永久在线不卡 | 国产精品永久免费自在线观 | 5566先锋| 欧美日韩在大午夜爽爽影院 | 国产精品一区二区在线看 | 欧美精品国产精品日韩系列 | 国产精品合集一区二区 | 精品欧美在线观看 | 成人性视频免费网站在线 | 一区二区三区亚洲综合 | 精品亚洲制服丝袜高跟 | 国产向日葵视频在线观看 | 91精品福 | 午夜福利精品在线播放 | 国产女优一区二区在线观看 | 日本中文字幕乱码 | 欧美激情片区一区二区三区 | 国产欧美日本综合在线 | 国产精品国产一区日韩一区 | 中文字幕人成人乱码亚洲影 | 青青在线视频 | 欧美亚洲一区电影 | 欧美亚洲范冰冰与中字 | 欧美日韩亚洲国产一 | 日韩欧美一区黑 | 亚洲va天堂va欧美ⅴa | 日韩专区中文字幕在线 | 免费高清手机在线观看 | 费精品国产一区国产精品剧情在线 | 在线视频欧美日韩 | 想要大鸡 | 乱伦日本影视国产 | 男人本色国产在线综合 | 91网站免费观看直播 | 欧美另类吹潮 | 婷婷影视 | 日本h无羞动漫在线观看网站 | 欧美成在线国产更新影片资源 | 国自产拍亚洲免费视频 | 国产性爱自拍视频 | 日本一区二区三区视频在线 | 精品中文字幕女同 | 欧美日韩国产亚洲精品 | 国产中文每日更新在线观看 | 国产嫖妓正在播放 | 女女在线观看舒服 | 精品欧美一区二区精品 | 19禁无遮 | 国产一区二区三区高清视频 | 国产3344视频在线观看 | 国产精品美女一区二区视频 | 国产精品igao | 国产又粗又大视频 | 精品午夜在线视频观看 | 国产精品吹潮在线观看中文 | 日日摸夜夜添欧美一区 | 玖玖精品在线观看 | 日韩欧美国产偷亚洲清高 | 欧美三级极品视频在线观看 | 欧美韩日一区二区图区 | 国产精品一区在线观看第一页 | 日韩欧美综合在线 | 99re66热这里只 | 在线观看亚洲 | 久热爱精| 羞羞影院午夜男女爽爽影视大全 | 欧美va亚洲va国产综合 | 国语在线看免 | 国产在线97免费观 | 欧洲欧美人成视频在线 | 国产一级无 | 成人深夜 | 欧美综合亚洲日韩精品区 | 国产精品大片在线网址 | 一区二区视频在线 | 精品一区二区三区激情 | 国产精品+欧美激情 | 午夜视频在线观看免费 | 精品国产插穴精品网站日本 | 日本69sex护士 | 国产精品日韩欧美一区二区三区 | 91免费福利精品国产 | 国产一区二区三区在线播放无 | 朝鲜女人大白屁股ass孕交 | 日韩成人激情影院 | 男女激情 | 中文字幕精品一区二区日本大胸 | 国产酒店强推在线观看 | 欧美日韩第一区视频在线观看 | 日本三级在线播放线观看视频 | 国产又黄又爽胸又大免费视频 | 卡通欧美制服中文 | 亚洲精品亚洲人成在线播放 | 日韩欧美国产一区精品 | 女女同性女同区二区国产 | 这里只有精品在线观看视频 | 欧美日韩国产中文高清视频 | 亚洲欧美综合视频 | 国产普通话激情对白tube | 日日噜噜夜夜狠狠视频 | 女性一级全黄生活片免费看 | 日韩欧美aⅴ综合网站发布 日韩有码在线视频 | 欧美国产日韩亚洲中文 | 91拍拍在线观看 | 日本xxxx丰满超清hd | 国产高清免费在线观看 | 亚洲国产自 | 国产午夜福利精品一区二区 | 海量正版高清视频在线观看 | 永久免费精品影视网站 | 精品国产亚洲人成在线观看 | 日韩精品中文字幕在线观看 | 国产精成人品日日拍夜夜免费 | 女人扒开屁股让男人桶爽 | 精品www日韩熟女 | 亚洲欧美中文字幕在线播放 | 欧美日韩国产激情一区 | 国产日产欧产综合 | 日本欧美大码aⅴ | 91成人抖音 | 欧美日韩亚洲国产无线码 | 亚洲国产精品一区二区九九 | 日本强乱中文字幕42页在线 | 国产欧美日韩专区 | 中文字幕不卡高 | 中文字幕精品亚洲一区 | 91精品国产高清91久 | 日韩精品视频在线播放 | 手机在线看片 | 色吊丝中文字幕一区二区三区 | 第一福利社区1024 | 中文在线资源官网在线 | 国产xx00在线观看 | 91黑丝国产线观看免费 | 亚洲欧美日韩中文二区 | 日韩免费观看 | 在线视频观看免费视频18 | 亚洲熟女综合色一区二区三区 | 国产日韩欧美一区二区综合 | 在线观看人成视频免费不卡 | 国产一级婬片a免费 | 涩涩www在线观看免费高清 | 经典大片电影免费在线观看 | 中文字幕国产第1页直播在线 | 国产亚洲无日韩乱码观看不卡 | 精品一卡2卡三卡4卡免费视频 | 微拍秒拍福利一 | 亚洲免费精品一二三四 | 精品a视频在线观看 | 免费aⅴ网站 | 精品成人免费一区二区 | 国产精品敌一区二区三区 | 中文字幕精品卡通动漫 | 91精品国产福利尤物 | 中文字幕在线二区 | 成人性生交大片免费看一 | 91国自产精品中文字幕亚洲 | 国产精品视频害羞初高中 | 国产欧美日韩综合视频专区 | 国产亚洲一区二区三区日本 | 国产欧美日韩在线一 | a国产片免费看视频 | 亚洲风情亚aⅴ在线发布 | 日本精品视频一区 | 亚洲国产福利成人一区二区 | 日韩精品合集在线第一页 | 成人看片黄a免费看 | 91精品国产丝袜 | 亚洲不卡在线视 | 日韩欧美第一区二区三区 | 精品国产日韩亚洲一区二区 | 国产欧美大片一区 | 精品一区二区 | 欧美日韩a∨一区二区视频 日本黄本道一区二区在线观看 | 国产波霸爆 | 亚洲国产美国国产综合一区 | 日本免费一区二区五区六区 | 国产在线自在拍91精品 | 国产偷伦视频片免费视频 | 巨胸美女爆免费网站软件 | 日本一区二区在线播放 | 欧美亚日韩精品影视 | 99国产精品尤物精品视频 | 日韩精品亚洲人旧成在线 | 视频一区二区亚洲欧美 | 国产午夜福利精品一区 | 国产精品9| 亚洲色大成网站www永久男同 | 欧美日韩亚洲无线码在线观看 | 亚洲国产精品视频自拍 | 母+子+在线视频 | 日本美女一级视频 | 日韩免费无 | 丰满岳乱妇一区二区三区 | 阿v视频国产免在线手机观看 | 国产自在自线精品午夜视频 | 国产亚洲欧美精品一区二ti | 手机电视剧全集观看 | 老司机午夜视频十八福利 | 国产在线欧 | 国产素人自拍 | 91精品污| 神马影院手机在线观看 | 欧美日韩高清不卡一区二区三区 | 欧美在线人成 | 国产人成视频免费看 | 国产精品日产三级在线观看 | 国产极品一线天在线观看 | 99相伴健康一生 | 欧美日韩人人天天综合小说 | 国产盗摄亚洲中国 | 东北老女人 | 日韩精品国产精品 | 日韩中文字幕a加勒 | 日韩欧美精品一区二区三区 | 精品亚洲精品中文字幕乱码 | 日本强乱中文字幕42页在线 | 国产+成+人+亚洲欧洲自线 | 台湾自拍偷区亚洲综合 | 亚洲人成电影手机在线网站 | 欧美国产日韩另类视频区 | 亚洲精品在线中文字幕 | 9cao在线播放精品日韩 | 日本在线观看 | 日韩欧美精品一区二区在 | 暧暧视频高清免费观看中文 | 日本国产精品二区 | 女女同性女同区二区国产 | 美腿丝袜在线播放 | 精品综合在线日韩 | 日本免费一区二区三 | 国产精品30p | 国产在线观看91精品腿张开 | 国产拍拍亚洲精品 | 亚洲欧美洲成 | 中文字幕日韩wm二在 | 免费永久在线观看污污的网站 | 亚洲男人的天堂在线aⅴ视频 | 精品亚洲欧美无人 | 偷人精品一区二区 | 国产拍揄 | 日本韩一级二级三级 | 欧美在线人成 | 好看的日韩电影 | 人人爱天天做夜夜爽2025 | 国产精品毛 | 欧美国产日韩a欧美视频 | 日韩精品一区二 | 日本一区二 | 国产熟女一 | 国产精品精品自在线拍 | 国产午夜福利电影免费在线观看 | 性欧美精品一区二区三区在线播放 | 国精产品一区二区三区糖心 | 国产精品亚洲综合一区在 | 欧美不卡一区二区 | 日皮免费视频 | 国产网站一区二区三区导航 | 亚洲日韩国产一 | 好看的中文字幕aⅴ在线视频 | 国产精品女人一区 | 91免费精品国自产在线不卡 | 欧美一区二区自偷自拍视频 | 日产乱码一二三区别免费下 | 成人免费大片黄在线播放 | 99九九热只有国产精品 | 久99久热只有精品国产澳门 | 国产超级在线视频观看 | 一区二区三区美女图片 | 播放灌醉水嫩大学生国内精品 | 717午夜福 | 私人影院午夜在线观看 | 亚洲欧美日韩激情在线观 | 日韩中文字幕不卡 | 美女自卫慰出水免费视频 | 最新福利电影在线看 | 妖小槡bbbb槡bbbb槡 | 日本成人精品一区二区三区 | 日韩一级毛一欧美一级毛免费 | 免费国产va在线观看中文字 | 免费精品国偷自产在线青年 | 日韩第一页 | 国产在线地址2025 | 国产日韩视频印度女人性液 | 91啦91pornv | 成人免费电影 | 国产二区三区午夜免费视频 | 日韩女同一区二区三区 | 欧美亚洲日本中文字幕在线 | 女人成年网站在线观看 | 综合亚洲桃色第一影院 | 国产一区二区三区美女 | 免费的电影天堂手机在线观看 | 国色天香社区影院在线观看 | 日韩精品在线看 | 国产偷自一区二区三区在线 | 精品国产第一国产综合精品 | 亚洲精品一品区二品区三区 | 免费阿v网站在线观看g | 欧美肥妇毛多水多b | 无区码一码二码三码 | 成人动漫在线播放一区二区 | 亚洲日韩欧美九 | 欧美xxxx极品bbw | 国产日韩欧美另类重口 | 精品一区二区三区三区 | 国产人碰人摸人爱视频 | 国产亚洲女在线精品 | 国产日韩欧美911 | 精品理伦国产在线播放 | 99精品免费视频在线观看 | 欧美成āⅴ人高清免费观看 | 欧美日韩国产va在线观看免费 | 日韩一区高清在线观看 | 中文字幕一区二区三区精品 | 性欧美video高清 | 尤物在线精品视频 | 国产网站久章草在线视频 | 国产桃色在线成免费视频 | 亚洲欧美日韩二区三区 | 国产在线观看中文字幕 | 精品日本免费一区二区三区 | 99国产视频有精彩视频 | 日韩在线观看不卡 | 国产精品一区二区在线观看 | 日韩亚洲欧美一区二区三区 | 射射影院| 国产伦精品一区二区三区视频 | 中文字幕按摩做爰 | 国产欧美日韩精品高清二区综合区 | 欧美一区二区三区四区国产另类 | 中文字幕在线播放一区二区三区 | 欧美v亚洲v| 自拍三级综合影视 | 精品综合色 | 国产丝袜视频一区二区三区 | 海角社真实xxⅹ人伦 | 欧美亚洲日韩动漫偷自拍页 | 亚洲自怕偷柏图 | 欧美在线精品视频二区 | 日本aⅴ精品一区二区三区 国产精品亚 | 精品日本一区二区三区在线观 | 国产老司精品免费视频菠萝蜜 | 偷拍欧美亚洲第二页 | a级全黄试看30分钟gif动图 | 国产雏女破苞在线播放 | 国产精品毛 | 小sb几天没做又欠ch | 国产永久 | 欧美成妇人吹潮在线播放 | 国产精品视频一区 | 欧美在线观看成人高清视频 | 国产人成网在 | 99精品不卡一区二区三区 | 二区三区99| 911亚洲精品国 | 免费很黄很 | 亚洲日本一线产区和二线产 | 国产欧美精品日韩 | 国产经典三级 | 亚洲偷偷拍一区二 | 欧美精品第1页www | 国产欧美国日产在线播放 | 亚洲午夜理论片在线观看 | 免费无人区一码二码乱码区别在哪 | 日韩经典一区二区 | 亚洲国语中文字幕理论片 | 亚洲一区二区三区国产精华液 | 成人dvd碟片 | 色琪琪原网站亚洲香蕉 | 亚洲欧美综合一区二区三区黄大片 | 日产无线码一区 | 欧美人与动性a欧美精品 | 日韩免费在线观看视频 | 国产精品资源站在线 | 最污网站 | 国产视频99kai| 日本免费在线 | 国产精品有码在线观看播放 | 蜜桃豆www久 | 全集高清免费的影视剧在线观看 | 日本伦理电影在线观看 | 福利免费0948视频 | 亚洲欧美日韩在线综合网 | 国产日韩欧美丝袜另类视频 | 国产精品亚洲综合天堂夜夜 | 中文字幕永久在线第38 | 亚洲熟女综合一区二区三区 | 中文字幕国产在线 | 国产在线一区二区三区四区居文沛 | 国产区日韩精品一区二区三区 | 99视频都是精品热在 | 日本免费国产 | 国产又黄又硬又粗 | 亚洲精品视频一卡二卡三卡 | 高清自在线看 | 热99re6久精品国产首页青柠 | 99精品一区二区三区 | 欧美日韩国产三区二区 | 国产+欧美日韩+一区二区三区 | 成年人在线观看 | 国产午夜亚洲精品不卡福利 | 国内精品一线二线三线黄 | 免费人成在线播放网站 | 99热这里有精品 | 欧美人与动牲 | 丝袜视频| 国产自产拍精品视频免 | 欧美在线网站 | 国产久爱青草视频在线观看 | 国产在线视频色综合 | 欧洲乱码 | 女人体视频1963 | 欧美日韩一卡 | 国产日韩在线视频 | 国产仑乱老女人露脸的 | 日韩国产欧美精品第二区 | 日日噜噜夜夜狠狠视频无 | 国产精品福利午夜在线观看 | 国产亚a | 激情影院内 | 欧美va在线 | 国产欧美在线综合一区 | 亚洲理论片中文 | 亚洲精品欧美日韩一区二区 | 中文字幕日本 | 日韩免费的 | 午夜三级福利在线观看 | 国产精品h | 国产精品乱码一区二区三 | 你懂得视频在线 | 欧美激情都市国产 | 国产香蕉尹人视频在 | 独家高清资源库 | 国产vr精品亚洲欧美咪咕爱 | 日韩精品免费一级视频 | 欧美性一级中文字幕18页 | 日本一区二区更新不卡 | 44极品视频在 | 欧美日韩国产一线天午夜秀场 | 美女人成大片免费视频看看 | 韩国国内精品在线 | 好看的高清电影大全 | 国产精品一卡二卡3卡四卡网站 | 成人午夜天 | 日韩视频无明精品 | 成人夜视频寂寞在线观看 | 国产69精品 | 精品人伦一区二区三区蜜 | 亚洲天堂视频在线免费观看 | 成人免费观看做爰视频胸大 | 麻花传媒68xxx在线观看 | 在线亚洲欧国产精品专区 | 国产精品社区在线观看 | 欧美精品国产一区二区 | 国产美女爽到喷出水来视频 | 欧美第一区 | 欧美午夜成年片在线观看 | 国产亚洲福利在线观看 | 国产又粗又大又黄的视频 | 最近日本中文字幕免费完整 | 欧美一厂区二厂区三厂区 | 蜜桃一区二区三区 | 97国产精品人人 | 欧美日本一91视频国产 | 日本亚洲欧美国产电影在线观看 | 88影视网免费的电视剧 | 一码二码三码 | 中文字幕免| 日韩中文字幕亚洲精品 | 日本强伦姧人 | 国产中文字幕在线免费观看 | 一个人免费观看视频www | 日韩欧美国产电影 | 亚洲欧洲另类春色校园小说 | 国产精品偷伦视频免 | 8090成人 | 国产综合精品一区 | 国产性午夜视频在线观 | 色拍自拍亚洲综合图区 | 国产一区二区三区四区免费观看 | 国语精品视频自产自拍 | 国产在线国偷精品免费看 | 日韩精品一区二区在线看 | 欧美精品一区二区三区在线 | 精品一区二区三区成人精品 | 欧美另类视频在线观看 | 免费大片 | 免费a级伦费影视在线观看 午夜影院网站野外大战 | 亚洲а∨天堂2025在线网站 | 91精品啪在线观看国产线免费 | 天天插一插 | 国产精品一区二区三区四区 | 亚洲欧美在线观看片不卡 | 日韩欧美国产一区精品 | 欧美精品专区高清在线爱美 | 亚洲欧美日韩中文另类不卡 | 国产一级在视频在线观 | 成人国产欧美精品一区二区 | 两性色午夜视频免费播放 | 日韩丰满少 | 国产免费观看激情 | 国产日韩精品一区二 | 性感美女视频韩国 | 成人一区免费观看 | 国产精品视频大陆精大陆 | 亚洲中文欧美日韩在线 | 国产免费爱在线观 | 最近中文字幕免费完整视频1 | 天天影视色 | 亚洲性影院在线看 | 日韩精品最 | 亚洲第一性网 | 亚洲码国 | 国产精品一一在线观看 | 善良的老师中文字 | 末成年ass浓精pics | 91精品aa一区二区三区 | 欧美精品国 | 欧美日韩亚洲中文v | 免费人成视网站在线不卡 | 国产高清在线精品一区二区 | 国产精品一区二区三区免费视频 | 国产干b| 日本一本为道高清视频 | 国产精品日本一区二区在线看 | 一色屋精品视频在线观看 | 精品国产91久 | 成人亚洲性情网站w | 综合在线观看视频国产 | 国产亚洲欧美在线专区 | 亚洲国产精品成人va在线观看 | 国产在线视频专区 | 国产最新电影在线观 | 黑人巨大精品欧美一区二区一 | 国产精品全网免费在线播放 | 蜂鸟影院大全免费观看 | 国产精品对白刺激音频在线观看 | 国产吹潮在线观看中文 | 斑马斑马在线 | 欧美亚洲高清国产一区二区三区 | 国产剧情精品v国产在线观看 | 91成人午夜在线精品 | 大色欧美亚洲 | 午夜免费福利片观看 | 日韩a级片视频 | 国产亚洲欧美日韩综合一区二区 | 国产欧美一区二区三区 | 精品国产一区二区三区不卡在 | 国产精品丝袜在线观看首页 | 日韩欧美国产综合区手机在线 | 国产操穴 | 性欧美xxxxⅹoooo3d画 | 国产一区亚洲一区 | 玖玖玖免费观看视频 | 青青青国产女精品视频 | 国内精品自国内精品自线电影 | 91最新人成在线观看 | 亚洲精品在看在线观看高清 | 亚洲一区二区在线观看黄 | 最新国产网红 | 最好免费观看高清视频大全 | 99热在线精品 | 99亚洲精品一| 97se国产在线 | 日韩午夜影院伦理片 | 自拍欧美在线综合另类 | 欧美日韩国产在线一区二区 | 日韩伦理电影在线免费观看 | 中文字幕在线免费专区 | 国产精彩视频在线观看97网 | 免费高清电影在线观看 | 碰97精品视| 国产成视频在线观看 | 午夜网站在线观看www | 天天咱天咱天干天谢 | 国产色系视频在线观看 | 精品国产蜜桃在线等一页 | 欧美v亚洲v综合 | 欧美综合自拍亚洲综合图区 | 国产欧美一区二区三区 | 日本一区二区三 | 国精产品一区一区三区免费视频 | 欧美日韩高清一区二区在线 | 色色片色色 | 国产午夜福利不卡在线观看 | 免费观看日本污污ww网站 | 日本一区二区三区精品免费 | 国产一区二区xxx | 香蕉香蕉国产片一级一级毛 | 欧美色精品视频在线观看九 | 国产精品卡2卡三卡4卡 | 日本青草视频在线 | 欧美整片sss | 夜夜未满十八勿进的爽爽影院 | 91大神福| 欧美日韩一区二区三 | 国产在线一区二区视频 | 日韩一区二区三区精品 | 好男人好资源神马在线 | 国产女人 | 韩国三级在线观看 | 国产精品va视频一区二区 | 国产一级高| 国产人在线成 | 亚洲综合一区自偷自拍 | 欧美色综合网站 | 大肉大捧一进一出 | 国产一区二区三区四区精华 | 日韩一区二区三区高清中文字幕 | 精品区2区 | 成人āv专区精 | www.五月婷| 亚洲中文字幕姦 | 中文字幕国产在线观看 | 久丁香花高清在线观看完整版 | 欧美精品老牛影 | 全网热播最新电影电视剧 | 日产精品卡二卡三卡四卡乱码视频 | 1024在线观看国产天堂 | 国产一区视频在线免费观看 | 国产乱码一区在线观看免费 | 热门免费电影大片 | 国产在线观看一区二区三区四区 | 成人欧美在线观看 | 国产情侣真实露脸在线最新 | 蜜柚免费视频高清观 | 欧美人与物videos另类 | 韩日午夜在线资源一区二区 | 日韩午夜在线一区二区三区 | 婷婷中文视频在线 | 草莓国产手机在线视频 | 国产欧美一区二区三 | 最新亚洲一区二区在 | 国产欧美日韩精品丝袜高跟鞋 | 91精品国产自在现线91 | 欧美日韩免费在线观看 | 电影排行榜| 污网站免费在线观看 | 国产免费一级高清婬中国片 | 亚洲第一视频在线 | 99re66热这里只有精 | 97国产在线看片免费人成视频 | 学生妹国产在线第一页 | 国产日产免费高清欧美一区 | 国产又黄又大又粗又硬又猛樱花 | 69视频免费在线观看 | 亚洲日本中文字幕乱码在线电影 | 国产丁香婷婷在线亚洲视频 | 国产强奷在线播放免费重 | 精品欧美一区二区vr | 不卡一卡二卡三乱码免费网站 | 国产亚洲一区二区三区日本 | 日产精品一卡2卡三卡4乱码 | 久操免费在线视频 | 国产高清乱伦自拍 | 人人澡人 | 女同另类啪 | 日韩精品一区二区三区免费视频 | 午夜福利不卡片在线播放免费 | 欧美片巜欲性高 | 10000部禁人视频免费网站 | 一区二区三区国产美女在线播放 | 日本xx在线免播放器观看 | 国产午夜网色淫 | 日本伦理| 欧美日本二区 | 国产精品成人aaaa网站女吊丝 | 国产极品在线观看极品 | 国产超刺激玩弄美女在线播放 | 噼里啪啦的视频免费观看 | 囯产免费一区二区三区在线播放 | 伦理、限制级电影手机在线观看 | 欧美日韩精品一区二蜜桃在线观 | 国产资源在线观看 | 在线观看日韩欧美 | 国色一卡2卡二卡4卡乱码 | 国产精品偷伦视频观看免费 | 99精品免费视频 | 国产色片在线观看 | aa精品 | 欧美体内she精视频 日本一本二本三区免费免费高清 | 国产欧美日韩不卡一区二区 | 免费看精品网站视频在线观看 | 精品一区二区三区四区在线 | 最近免费字幕中文大全 | 欧美日韩免费不卡在线观看 | 精品亚洲国产品香蕉在线 | 区四区在线 | 免费国产一级特黄aa大片在线 | 韩国一区二区在线观看免费在线 | 自拍视频 | 国产无你高清在线观看aⅴ 色国产精品妇射 | 福利成人春色在线观看免费网站 | 99精品全国免费观看视频 | 日韩二区三 | 日韩亚洲国产欧美在线看片 | 91探花在线观看 | 国产资源精品一区二区免费 | 国产性爱专区在线 | 又大又粗又黄又硬又爽又免费视 | 电视剧大全 | 贝贝影院 | 国内精品自线一区二区三区 |