亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

用 impeccable 給日志立規(guī)矩:從源頭提升可觀測性與代碼質(zhì)量

用 impeccable 給日志立規(guī)矩:從源頭提升可觀測性與代碼質(zhì)量 1. 為什么日志也需要一把尺子impeccable 的誕生背景與定位日志大概是所有后端項目里最“隨緣”的部分。功能代碼有單元測試、有 Code Review接口有契約測試但日志往往是誰順手就怎么寫。有人用字符串拼接有人塞一堆占位符有人把手機號、token 直接打出來還有人一個方法里連打十幾條 debug。平時看著沒毛病線上出了故障要查鏈路的時候才發(fā)現(xiàn)這些日志根本沒法用。我自己也踩過這種坑。某次線上接口超時排查時翻日志發(fā)現(xiàn)關(guān)鍵路徑上既有l(wèi)og.info(result: JSON.toJSONString(resp))這種寫法也有l(wèi)og.info(requestId:{} userId:{}, requestId, userId)這種寫法。同一個服務(wù)里格式五花八門想要 grep 某個關(guān)鍵字段還得先猜它是用冒號、等號還是橫線拼接的。更糟的是有同事把完整請求體打到了 info 級別日志系統(tǒng)直接爆量那天整個團隊的排查效率低到令人崩潰。后來我們項目組內(nèi)部做了一個叫 impeccable 的輕量級日志規(guī)范檢查工具專門掃描代碼倉庫里的日志語句按照預(yù)置或自定義的規(guī)則自動判斷每條日志是否“得體”。它解決的是那個長期被忽視的問題日志質(zhì)量沒有自動化手段來把關(guān)。無論你用的是哪門語言、哪種日志框架impeccable 都會用同一套標(biāo)準(zhǔn)去約束日志寫法把原先靠人 review 才能發(fā)現(xiàn)的日志問題提前到提交代碼的那一刻就攔住。這篇文章我會從工具定位、環(huán)境配置、規(guī)則體系、CI 接入、真實踩坑排錯這幾個維度把我實際使用和參與維護 impeccable 過程中的經(jīng)驗完整記錄下來。對于正在被日志問題困擾或者想在團隊里推日志規(guī)范但不知道怎么落地的同學(xué)應(yīng)該會有些參考價值。1.1 一團亂麻的日志到底坑了誰很多團隊對日志規(guī)范的第一反應(yīng)是“差不多就行”。但當(dāng)你真正需要依賴日志解決問題的時候混亂日志的代價會立刻暴露出來。首先是檢索困難字段分隔符不統(tǒng)一想用 grep 把某筆訂單的所有日志撈出來幾乎不可能其次是信息缺失關(guān)鍵參數(shù)沒打全出了問題還要去猜當(dāng)時的入?yún)⒃儆芯褪前踩[患敏感信息被打進日志輕則違反內(nèi)部安全要求重則引發(fā)數(shù)據(jù)泄露最后是成本問題無意義的日志鋪太多日志存儲和檢索的開銷會被白白浪費。舉個很簡單的對比。下面兩種寫法表達的是同一個意思// 混亂版本 log.info(user login success, user_id userId , login_time loginTime); // 規(guī)范版本 log.info(user login success, userId{}, loginTime{}, userId, loginTime);表面上看只是風(fēng)格差異但實際差別很大。規(guī)范版本用了占位符既避免了字符串拼接帶來的性能損耗又讓日志字段變成了結(jié)構(gòu)化的鍵值對。配合日志采集端做解析時規(guī)范版本可以直接提取 userId 和 loginTime 作為檢索字段混亂版本則只能靠正則硬摳還容易摳錯。impeccable 想做的事情就是把這些“一眼能看出來不規(guī)范”的問題自動化。它不要求你靠自覺而是在你寫代碼的那一刻就提醒你哪里不合格。這個定位聽起來簡單做起來卻牽扯到不少設(shè)計取舍后面我會詳細展開。1.2 現(xiàn)成工具為什么管不住日志你可能會問代碼風(fēng)格檢查工具不是已經(jīng)能管格式了嗎為什么還要專門做一個日志檢查工具因為我們試過效果很差。普通的風(fēng)格檢查工具主要關(guān)注代碼格式、命名、復(fù)雜度它不會理解“日志語句里出現(xiàn)了字符串拼接”是性能問題還是可讀性問題。更別說判斷“這條日志里有沒有敏感字段”“這個日志級別是否合理”“占位符數(shù)量和參數(shù)數(shù)量是否匹配”這類語義問題了。日志檢查比風(fēng)格檢查難在幾個地方。第一日志語句往往散落在業(yè)務(wù)代碼里不像命名規(guī)范那樣有一個唯一的“名”第二不同語言的日志框架 API 差異很大有的用占位符{}有的用百分號%s還有的直接支持 lambda 延遲計算第三日志本身還涉及級別、上下文、敏感信息等多個維度這些很難用一套固定的語法規(guī)則覆蓋。所以我們早期的方案是寫腳本、寫正則在 CI 里跑一遍哪里有拼接、哪里沒有級別就報哪里。但腳本越寫越多規(guī)則之間互相沖突維護成本很快就失控了。這也是我們決定把 impeccable 獨立出來做成一個真正可配置工具的原因。它想走的路子是像風(fēng)格檢查工具一樣提供規(guī)則框架但規(guī)則的具體定義交給使用者同時把日志場景里常見的檢查邏輯都內(nèi)置好。1.3 從內(nèi)部小工具到可復(fù)用的檢查器impeccable 最開始只是我們倉庫里一個幾十行的檢查腳本后來逐步演變成了一個命令行工具。它的定位非常明確不侵入業(yè)務(wù)代碼、不要求改日志框架、不需要 server 端部署只要在 CI 階段跑起來輸出一份報告就夠了。設(shè)計上我們定了幾個原則第一默認規(guī)則要能直接覆蓋最常見的臟日志問題讓用戶開箱即用第二規(guī)則必須可配置、可關(guān)閉因為不同團隊的日志規(guī)范確實不一樣第三檢查結(jié)果要能做到增量輸出方便大倉庫在 CI 里只做改動文件的檢查。整篇文章后面的內(nèi)容都是圍繞這幾個原則展開的。接下來先從環(huán)境準(zhǔn)備和最小配置說起因為我在給團隊推廣它的過程中發(fā)現(xiàn)很多問題其實在安裝和配置階段就已經(jīng)開始了。2. 運行環(huán)境與最小配置動手前先規(guī)避這些坑2.1 安裝方式和版本選擇impeccable 本身是一個命令行工具不需要額外的守護進程這讓我們在 CI 上接入時省了很多事。安裝方式主要有兩種一種是直接用包管理器安裝發(fā)布版適合大多數(shù)使用者另一種是從源碼構(gòu)建適合需要二次開發(fā)、自定義插件的場景。無論用哪種方式建議都在 CI 配置里鎖定版本號避免新版本發(fā)布后規(guī)則行為變化導(dǎo)致檢查結(jié)果漂移。實際執(zhí)行時工具會讀取配置文件然后掃描代碼目錄最終輸出檢查報告。以我們團隊的實踐經(jīng)驗首次接入時不要一上來就用最嚴格的全量規(guī)則否則存量代碼會產(chǎn)生海量違規(guī)開發(fā)人員一看報告就失去信心了。正確的做法是先跑一遍默認配置看看倉庫里主要有哪些問題類型再根據(jù)實際情況調(diào)整規(guī)則開關(guān)和級別。我曾經(jīng)見過一個其他團隊的同學(xué)把全部規(guī)則都開到 error 級別結(jié)果整個倉庫掃出來上千條違規(guī)CI 徹底沒法跑。后來我們建議他從 warning 級別開始先只把增量代碼納入檢查存量問題放到每周的整改任務(wù)里慢慢消化。這個節(jié)奏很重要后面我還會再提。2.2 一份夠用的初始配置impeccable 的配置文件采用常見的 YAML 格式核心結(jié)構(gòu)分為掃描范圍和規(guī)則列表兩部分。下面這份配置是我們項目里比較典型的一個初始版本可以直接拿來改著用scan: include: - src/**/*.py - src/**/*.java - src/**/*.js exclude: - **/test/** - **/third_party/** follow-symlinks: false incremental: true rules: no-string-concat: enabled: true level: error placeholder-args-matched: enabled: true level: error sensitive-info: enabled: true level: error extra-keywords: - idcard - password - secret log-level-required: enabled: true level: warning allowed-levels: - debug - info - warn - error這些字段的含義很直接include指定掃描哪些文件exclude排除掉測試代碼和第三方目錄follow-symlinks控制是否追蹤符號鏈接incremental表示是否只檢查改動文件。規(guī)則部分每個規(guī)則有獨立的開關(guān)和錯誤級別。no-string-concat就是檢查日志里的字符串拼接問題placeholder-args-matched檢查占位符和參數(shù)數(shù)量是否一致sensitive-info負責(zé)掃描敏感關(guān)鍵字log-level-required檢查日志是否顯式指定了級別。這里我想多說一句為什么incremental要默認打開。大倉庫全量掃描一次可能要好幾分鐘而 CI 里每次提交通常只改了幾十個文件。增量模式通過計算文件哈希只掃描發(fā)生變化的文件讓檢查時間降到秒級。要注意的是增量模式依賴 git 工作區(qū)的狀態(tài)所以它只適合在 git 倉庫內(nèi)使用打包成 tar 的源碼目錄是跑不了增量檢查的。2.3 掃描范圍與排除規(guī)則的正確寫法掃描范圍這塊比很多人想象中更容易出錯。最常見的問題是把構(gòu)建產(chǎn)物目錄也包含進去比如target、dist、node_modules這類目錄里往往有大量生成代碼甚至包含第三方依賴的源碼掃進去只會產(chǎn)生一堆無意義的報錯。另一個問題是 glob 寫法不對導(dǎo)致規(guī)則匹配不到任何文件工具靜默通過給人一種“項目很干凈”的錯覺。我用一個真實案例說明一下。項目組有位同事配置的是scan: include: - src/*.java結(jié)果工具運行了掃描耗時 0 秒報告為空他還以為項目日志質(zhì)量特別好。后來我們排查才發(fā)現(xiàn)src/*.java只匹配 src 目錄下直接存放的 Java 文件并沒有匹配src/main/java/...下的深層文件。正確的寫法應(yīng)該是scan: include: - src/**/*.java在配置掃描范圍時建議寫完配置后先加一條臨時的“全文件匹配”規(guī)則比如用log-level-required去跑一個已知有問題的目錄確認工具真的能發(fā)現(xiàn)違規(guī)再繼續(xù)調(diào)其他規(guī)則。這樣可以避免“配置脫靶”遲遲沒被發(fā)現(xiàn)。3. 規(guī)則體系拆解impeccable 如何判定一條日志是否得體3.1 內(nèi)置規(guī)則的五個維度impeccable 的內(nèi)置規(guī)則雖然看起來數(shù)量不少但歸類下來其實覆蓋五個維度格式類、占位符類、敏感信息類、級別類、上下文類。格式類規(guī)則用于統(tǒng)一日志里的時間格式、字段分隔符、大小寫習(xí)慣。比如時間戳統(tǒng)一用yyyy-MM-dd HH:mm:ss而不是混用yyyy/MM/dd占位符統(tǒng)一用{}而不是%s。這類規(guī)則看起來最“表面”但對日志檢索幫助最大。字段格式一旦統(tǒng)一采集端做解析時規(guī)則就能寫得很簡單。占位符類規(guī)則檢查兩個方面數(shù)量和類型。數(shù)量方面logger.info(a{}, b{}, a)這種參數(shù)缺失是典型的 bug運行時會輸出axxx, b{}排查問題的人看到這個占位符就知道代碼有問題。類型方面{}對應(yīng)的參數(shù)如果是集合日志框架默認會調(diào) toString對于復(fù)雜對象可能輸出一大段無意義內(nèi)容這類問題有時候也值得提示。敏感信息類規(guī)則是我們重點投入的部分。它通過內(nèi)置關(guān)鍵字、正則表達式和自定義擴展來識別可能泄露的數(shù)據(jù)比如身份證、手機號、token、密碼等。最有價值的是它還能識別“變量名暗示敏感信息”的情況比如變量叫userPassword哪怕值是脫敏后的字符串也會被標(biāo)記為可疑讓開發(fā)者確認后再提交。這個思路對有安全合規(guī)要求的服務(wù)特別有用。級別類規(guī)則主要檢查兩件事第一日志有沒有顯式指定級別避免裸調(diào)用第二級別和內(nèi)容是否匹配比如把每次心跳請求都打成一個 error 日志這明顯不合理。上下文類規(guī)則則檢查日志里是否包含了必要的關(guān)聯(lián)字段比如 traceId、requestId、userId沒有這些關(guān)聯(lián)信息分布式排障會非常痛苦。3.2 正則規(guī)則與自定義規(guī)則的落地方式內(nèi)置規(guī)則覆蓋的是通用場景但不同團隊的日志規(guī)范差異很大所以 impeccable 支持通過配置文件新增自定義規(guī)則。自定義規(guī)則本質(zhì)上就是一個作用在日志語句上的正則匹配器命中就報對應(yīng)級別的違規(guī)。比如某個團隊要求所有日志必須包含module前綴否則不予通過。那就可以在配置里加一條rules: module-prefix-required: enabled: true level: error pattern: logger\\.[a-z]\\([^)]*\\bmodule\\b看這條規(guī)則時你需要理解它匹配的是logger.之后的小寫方法名后面括號內(nèi)必須出現(xiàn)module關(guān)鍵字。如果沒匹配到就說明這條日志缺了module。正則規(guī)則的好處是輕量、不依賴語言環(huán)境但壞處也很明顯正則容易匹配錯而且日志語句一旦跨行或者里面有復(fù)雜的引號正則會漏報甚至誤報。因此當(dāng)規(guī)則復(fù)雜到一定程度時我們推薦使用插件方式。impeccable 允許以 Python 文件的形式注冊自定義檢查函數(shù)每個函數(shù)接收日志語句的 AST 節(jié)點返回違規(guī)列表。這比純正則可靠得多代價是要寫代碼。我們內(nèi)部的“占位符數(shù)量和參數(shù)數(shù)量匹配”這條規(guī)則最初就是用正則寫的跨行時總出問題后來改成 AST 分析才徹底解決。3.3 錯誤級別、基線文件與存量違規(guī)處理錯誤級別的設(shè)計直接決定工具在 CI 里是“建議”還是“強制”。impeccable 支持三個級別error表示必須修復(fù)會直接導(dǎo)致構(gòu)建失敗warning表示建議修復(fù)但不會阻塞info表示提示通常用于記錄數(shù)據(jù)或生成報告。存量違規(guī)的處理是推廣過程中最棘手的一環(huán)。如果直接把所有舊日志都修好再上線往往要占用大量排期但直接放開 error 又會讓新代碼繼續(xù)踩坑。我們的解法是引入基線文件機制。第一次全量掃描時把歷史違規(guī)記錄存成 baseline 文件之后每次檢查只報告“新增的”違規(guī)。這樣存量問題不會一直刷屏新人寫的新日志又必須合規(guī)團隊可以按優(yōu)先級慢慢消化舊債。實際使用中基線文件必須提交到版本管理里并且建議在 Code Review 時一起審查。因為基線文件本質(zhì)上是“歷史遺留問題清單”如果某次改動悄悄刪掉了一條歷史違規(guī)記錄那和“文物保護”沒什么區(qū)別反而掩蓋了問題。我們團隊的做法是每個月安排一次“降債”專項把 baseline 里的條目一條條清掉清掉后從基線文件里刪掉CI 里如果再次出現(xiàn)同樣的違規(guī)就會直接報 error。4. 接入CI流水線把檢查變成發(fā)布前置關(guān)卡4.1 本地提交前的預(yù)檢查pre-commit 配置把 impeccable 接進 CI 之前建議先在本地提交前跑一遍。這樣開發(fā)者不用等流水線跑完才知道代碼不合格體驗會好很多。我們用 pre-commit 鉤子做本地檢查配置很簡單- id: impeccable name: impeccable-log-check entry: impeccable scan ./src --config ./impeccable.yml --level error language: system types: [python, java, javascript]這里有兩個細節(jié)值得注意。第一是--level error含義是本地只攔截 error 級別的問題warning 留到 CI 階段再看。如果本地連 warning 都攔開發(fā)節(jié)奏會被打亂鉤子反而容易被跳過。第二是 types 字段它決定哪些文件類型變更時觸發(fā)檢查不要把它設(shè)成空或 all否則每次提交哪怕只改了一個 README 都要跑一次掃描。實際跑下來pre-commit 鉤子最大的價值不是“攔住了多少問題”而是“讓開發(fā)者建立了日志意識”。一個開發(fā)者第一次被鉤子攔住時可能會覺得煩但看到報錯信息里明確指出“這條日志缺了 traceId”之后下次寫日志就會下意識帶上上下文。我經(jīng)常說工具短期是門禁長期是教練就是這個道理。4.2 流水線檢查任務(wù)與阻塞策略CI 里的接入方式建議作為流水線的一個獨立檢查任務(wù)在單元測試前后都可以。我傾向于放在單元測試之前原因很簡單檢查速度快如果日志格式有問題可以盡早失敗避免浪費后面測試的算力。任務(wù)是腳本式的#!/bin/bash set -e impeccable scan ./src \ --config ./impeccable.yml \ --level error \ --baseline ./impeccable-baseline.json \ --output ./reports/impeccable.json這里加了--baseline參數(shù)用于指定存量違規(guī)基線文件。實際跑的時候有兩種模式可以選阻塞模式和非阻塞模式。阻塞模式就是檢查到 error 直接讓流水線失敗非阻塞模式只生成報告所有問題匯總后發(fā)通知由團隊決定何時修復(fù)。我們團隊用了兩個月的非阻塞模式效果并不理想。因為非阻塞模式下開發(fā)者很容易忽視報告最終還是要靠人工去盯。后來我們改成error 級別阻塞warning 級別不阻塞但必須在合并前處理完。這個策略比較平衡既守住了最關(guān)鍵的問題又沒有把開發(fā)流程變得過于僵硬。另一個容易踩的坑是CI 里的工作區(qū)可能是干凈的 checkout沒有 git 歷史上下文這時候增量模式會失效必須用全量掃描。所以 CI 任務(wù)里不要默認開incremental否則可能會漏掉本應(yīng)該被檢查的改動。我們內(nèi)部的處理方式是CI 階段始終全量掃描本地提交預(yù)檢才開啟增量。全量掃描耗時也就多幾十秒換來的確定性是值得的。4.3 報告輸出與違規(guī)定位的完整鏈路impeccable 支持多種報告格式純文本、JSON、HTML 都有。我們在 CI 里主要用 JSON因為后續(xù)可以對接內(nèi)部平臺做趨勢分析和告警。JSON 報告里每條違規(guī)包含文件路徑、行號、規(guī)則名、違規(guī)級別、原始日志片段和修復(fù)建議定位起來非常方便。有一次項目組里有人反饋說“流水線報錯了但我不知道改哪里”。我讓他把 CI 日志展開看其實 impeccable 已經(jīng)把具體行號打在報告里了。問題是默認輸出格式是密密麻麻的一長串 JSON人眼根本看不下去。后來我們在 CI 腳本里加了一步把 JSON 轉(zhuǎn)成人讀的摘要impeccable report --format md --input ./reports/impeccable.json --output ./reports/impeccable.md然后在流水線頁面直接展示 Markdown 摘要每個違規(guī)變成了類似下面這樣的條目文件src/main/java/com/example/OrderService.java 第 42 行 規(guī)則sensitive-info 級別error 說明日志中檢測到疑似敏感字段 userPassword請確認是否需要脫敏這個改動之后開發(fā)者的反饋從“不知道錯在哪”變成“照著改就行”。工具的最終體驗很大程度取決于報告好不好讀這一點常常被忽略。5. 實戰(zhàn)踩坑錄誤報、性能與繞過規(guī)則的真實排查過程5.1 多行日志引發(fā)的誤報與規(guī)則修正用正則做日志檢查最先碰到的就是多行問題。很多人寫日志喜歡格式化一條日志寫成三行l(wèi)og.info(order created, orderId{}, amount{}, userId, amount);如果規(guī)則里的正則非常簡單比如只匹配單行內(nèi)的模式這種寫法會直接被漏掉導(dǎo)致日志里的拼接問題逃過檢查。我們一開始也這樣后來發(fā)現(xiàn)倉庫里大量“貌似規(guī)范”的日志其實都是跨行拼接出來的。處理辦法是讓 impeccable 在掃描時對日志語句做合并后再匹配把括號內(nèi)直到閉合的代碼塊作為一個整體分析。這需要對代碼做輕量級詞法分析不能只靠正則。我們實現(xiàn)了“括號配對”邏輯之后多行誤報基本消失了但新的問題又出現(xiàn)了字符串里包含閉合括號時配對會找錯位置一度把正常的代碼誤報成違規(guī)。那次排查花了不少時間。最后我把所有誤報案例匯總發(fā)現(xiàn)共同點是日志語句里嵌入了 JSON 字符串比如log.info(payload: {}, getPayload())getPayload 返回的內(nèi)容里有大量花括號。如果只做括號配對就會把 getPayload() 內(nèi)部的 JSON 花括號當(dāng)成語句結(jié)束。最終我們調(diào)整了策略合并日志語句時跳過字符串內(nèi)的花括號。從那以后誤報率才真正降到可接受范圍。5.2 大倉庫掃描慢的根因分析與優(yōu)化性能問題是在一個較大規(guī)模倉庫里暴露出來的。那個倉庫代碼量不小加上構(gòu)建產(chǎn)物和緩存文件一次性全量掃描要跑接近四分鐘CI 排隊嚴重時能拖垮整個發(fā)布流程。最開始我以為是正則匹配太慢后來通過 profile 發(fā)現(xiàn)大量時間花在文件讀取和 glob 匹配上。每次掃描都會把配置文件里的 include 模式重新解析一遍然后遍歷整個目錄樹做匹配而目錄里三分之二的文件根本不需要掃描。優(yōu)化思路分三步走。第一步是優(yōu)化 exclude 配置把構(gòu)建目錄、緩存目錄、依賴目錄全部排除掉。這一步就減掉了絕大部分無效文件。第二步是啟用基于 git 的文件過濾只掃描被跟蹤的代碼文件而不是目錄樹里的所有文件。第三步是把 glob 匹配編譯后的結(jié)果緩存起來避免每次都重復(fù)解析。三步做完全量掃描時間從四分鐘降到了五十秒左右。這個優(yōu)化再次說明工具的瓶頸往往不在規(guī)則本身而在文件系統(tǒng)層面的笨重操作。5.3 轉(zhuǎn)義技巧與Unicode繞過怎么見招拆招有意思的是規(guī)則的約束越嚴就越有人試圖繞過它。我們曾經(jīng)遇到過兩個比較典型的繞過手法。第一種是轉(zhuǎn)義拼接比如檢查器不允許日志字符串里出現(xiàn)有人就把加號拼進字符串里寫成log.info(a b)但因為字符串里提前留了空格或引號導(dǎo)致正則沒匹配上第二種是使用 Unicode 全角字符替代半角標(biāo)點比如把:換成全角冒號規(guī)則里只匹配了半角冒號于是一整段“看著像正常日志”的語句就繞過了檢查。不能說這些手法是惡意的更多是因為同事覺得規(guī)則太煩、想快點提交代碼。但從檢查工具的角度看這就是一場持續(xù)的攻防戰(zhàn)。我們的應(yīng)對方式是分層規(guī)則第一層用正則做快速篩查第二層用詞法分析識別字符串拼接語義第三層用信息熵算法識別“可疑的 Unicode 偽裝”把全角標(biāo)點統(tǒng)一降維成半角后再做一次匹配。三層規(guī)則疊加之后繞過難度高了非常多。現(xiàn)在項目里很少再有人為了繞過規(guī)則去搞這些花活因為被發(fā)現(xiàn)后要改回來時間成本遠比老實寫日志高得多。5.4 一次發(fā)布阻塞的完整排錯復(fù)盤有一次版本發(fā)布前CI 突然紅了報錯的規(guī)則叫placeholder-args-matched指向某服務(wù)的一行日志。報錯內(nèi)容是占位符有 3 個但參數(shù)只傳了 2 個。我當(dāng)時第一反應(yīng)是有人在改動里改漏了參數(shù)改回去重試就行。但奇怪的是回滾到上上次通過檢查的提交流水線依然報同樣的錯這就說明問題不在代碼改動而是規(guī)則本身出了問題。我開始手動復(fù)現(xiàn)。在本地跑同樣的命令同樣的文件結(jié)果沒有報錯。這就更蹊蹺了同一個配置文件、同一份代碼為什么本地不報、CI 報最后花了大半個小時排查才確認根因CI 上那臺機器初始化環(huán)境時把 impeccable 升級到了新版本而新版本對占位符規(guī)則的處理邏輯發(fā)生了變化。舊版本只匹配{}形式的占位符新版本把日志框架內(nèi)置的{}、%s、%d全部算作占位符于是原本合法的代碼變成了“參數(shù)數(shù)量不匹配”。這次經(jīng)歷之后我們立刻在 CI 腳本里鎖定了版本號同時把本地環(huán)境、CI 環(huán)境整理了對比確認兩邊跑的是同一個版本。工具版本漂移帶來的問題比規(guī)則本身的問題隱蔽得多。如果你也在 CI 里接類似工具務(wù)必在配置里固定版本并且定期做一次升級評估而不是讓 CI 環(huán)境自動拉到 latest。6. 上線后的效果與進階擴展讓規(guī)范從“工具”變成“共識”6.1 量化數(shù)據(jù)與團隊感受impeccable 在我們內(nèi)部跑了大半年從數(shù)據(jù)上看效果非常明顯。第一次全量掃描時存量日志的違規(guī)數(shù)量是四位數(shù)其中占比最大的是占位符參數(shù)不匹配和字符串拼接。到后來新提交代碼里的 error 級違規(guī)數(shù)量已經(jīng)降到了個位數(shù)緩存下來的基線文件也從最初的幾百條縮減到幾十條。更直觀的改善在排查效率上。以前線上出問題查看日志要來回猜格式、猜字段現(xiàn)在日志格式統(tǒng)一、字段名固定檢索鏈路的時間大幅縮短。這種收益很難用一個數(shù)字精確描述但經(jīng)歷過“日志一查就有”和“日志查了半天”的人都能感受到差異到底有多大。團隊層面的感受變化也很有意思。一開始大家對檢查工具普遍抵觸覺得是“找麻煩”到后來新同事入職第一天Code Review 時被機器人自動提醒“日志缺了 requestId”反而覺得這套機制很專業(yè)。工具帶來的規(guī)范會逐漸沉淀成團隊默認的做事方式。6.2 規(guī)則調(diào)優(yōu)節(jié)奏與團隊協(xié)作機制規(guī)則體系不是一成不變的。我們每季度都會做一次規(guī)則評審收集開發(fā)者的反饋看哪些規(guī)則是誤報重災(zāi)區(qū)、哪些規(guī)則價值不大、哪些場景完全沒有覆蓋。評審后規(guī)則變更先以 warning 級別灰度一兩個迭代確認誤報率和體驗沒問題后再升成 error 級?;叶葯C制非常重要。我們曾經(jīng)跳過灰度直接上線一條新規(guī)則結(jié)果因為適配沒做全大量合法代碼被誤報開發(fā)者的口碑一下子跌到谷底。后來凡是新規(guī)則一律先跑兩周 warning收集報告里的命中情況人工抽檢命中是否合理再決定提升級別。這個流程會讓規(guī)則本身也進入“持續(xù)集成”而不是一次性拍腦袋定死。除了規(guī)則評審我們還建立了兩個配套機制。第一是“日志案例庫”把線上因為日志不規(guī)范導(dǎo)致的真實事故整理成案例發(fā)給團隊學(xué)習(xí)第二是“最佳實踐模板”把 impeccable 推薦的日志寫法做成標(biāo)準(zhǔn)模板放進項目腳手架里。工具管住了底線模板和案例管住了上限。6.3 后續(xù)可以繼續(xù)做的幾個方向impeccable 目前已經(jīng)能覆蓋大多數(shù)日常場景但我們也看到了幾個值得繼續(xù)探索的方向。第一個方向是增強 AST 分析能力?,F(xiàn)在很多規(guī)則已經(jīng)基于 AST但遇到動態(tài)方法調(diào)用、反射等寫法時仍然只能靠正則兜底準(zhǔn)確率有瓶頸。如果能把常見日志框架的 API 調(diào)用鏈建模得更完整就能識別更多隱性問題。第二個方向是增加對日志采集端的聯(lián)動。日志規(guī)范最終是為了讓采集端能解析那不如直接把規(guī)范輸出成采集端的解析配置讓“怎么打日志”和“怎么解析日志”保持同步從源頭消掉對接成本。第三個方向是結(jié)合大模型做更智能的判斷。比如判斷“這條日志的內(nèi)容是否冗余”“級別是否合理”“上下文是否足夠”這些語義性很強的檢查目前靠規(guī)則很難覆蓋。我們已經(jīng)在做一些小范圍的嘗試讓模型對疑似問題做二次排序把最有價值的幾條提醒放到最前面。最后再分享一個小技巧如果你也想在團隊里推日志規(guī)范我建議別急著鋪開所有規(guī)則。先挑兩三條最痛的點比如字符串拼接和敏感信息開成 error跑一段時間讓大家養(yǎng)成習(xí)慣再逐步增加規(guī)則。我見過不少團隊一上來就希望“一步到位”結(jié)果規(guī)則列表越來越長誤報越來越多工具最后被默默卸載。我在實際使用中最后一個心得是把 impeccable 的版本和基線文件都固定好。版本固定保證行為可預(yù)期基線文件保證存量梳理可控。這兩件事做好了工具才能真正在團隊里長期跑下去而不是熱鬧一兩個星期就沉寂。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
9999亚洲电影| 欧美综合第一页| 被体育老师抱着c到高潮| 91这里只有精品| 91色色综合| 国产高清1234区| 久久五月天婷婷丁香中文字幕| 久久熟女精品不卡一区| 男人的天堂.com| 被体育老师抱着c到高潮| 另类亚洲一区二区三区| 91中出在线| 久久超碰免费的| 狠狠五月天| 日韩激情啪啪| 国产福利在线视频网站| 精品人妻一区二区三区四区石在线| 啊啊啊啊啊舒服| 夜夜 中文视频rt| 91色黑人少妇| 日韩超碰精品综合| 67914在线精品观看| 艹我哪美一区无码| 97蜜桃综合| 久久国产视频性吧| 日日狠狠久久偷偷色综合免费| 中文字幕精品日韩中文字幕| 欧美黄色片在线播放| 秋霞一集毛片观看| WWW操逼| 超碰色97| 91亚洲人| 老熟妇乱轮| 日韩精品一二三| 夜夜夜夜久久久久| 精品对白久久不卡| 性饥渴少妇av无码毛片| 成人av在线播放| 豆花视频操逼网址| 中文字幕精品日韩中文字幕| 夜嗨影院| 青青草操逼逼视频| 99久久com免费视频′| 国产白嫩精品久久| 日本一久是| 偷拍色图| 偷拍亚洲熟女视频播放| 亚洲毛片一级带毛片基地| 国产中文精品一区二区在线观看| 亚洲国产欧美中文永久| 日日夜夜噜| 久久久精品中文字幕麻豆| 色亚州人久干视频在线观看免费版| 国产视频大全| 97亚洲色图| 亚洲丝袜综合| 亚洲性爱免费电影| 日韩AC| 4399成人黄A片| 日韩国产中文字幕| 欧美日韩国产传媒在线精品| 亚洲成人精品久久久| 天操老女人| 亚洲熟妇综合久久久久久| 老熟女阿 国产91| 久久产精品一区二区三区电影| 翔田千里AⅤHD无码| 97欧美性爱| 久久亚洲婷婷| 日韩国产十八禁| 熟妇一区,二区,三区。| 成人精品在线免费视频| 91九色首页| 久久熟妇五十路一区| 97精选久久| 久久久久久久唑| av网站在线观看了| 青青草久草AV| 91东北熟女| 无码高清专| 老色69| 欧美亚洲宗合色性图| 精品玖九九久| 五月婷网站| 亚洲男人bt天堂| 影音先锋一区二区在线资源| 亚洲天天操| 欧美性爱十八禁| 天天摸天天插天天日| 欧美第一页| 日韩 国产 欧美自拍| 天天色播亚洲综合网站| 欧美性五月| 黄色人人| 日韩无码嘿咻黑热久| 99re6国产精品99re| 测评在线观看AV| 99热这里只有精品地址| 大香蕉之青青草原| 丁香五六月啪啪| 亚州情色j区| 欧美手机在线综合| 91精品伊人久久久大香线蕉91| 久久久99久9| 色五月av| 99热精品在线| 亚洲丝袜综合| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 可以看的av| 青青操97| 国产精品久久| 亚洲天堂在线怕怕视频| 精品一二三区久久AAA片| 青娱乐亚洲热| 欧美激情专区| 殴美牲| 四季av一区二区凹凸精品小说| 欧美精品日韩久久久九| 91嫩草欧美| 尹人免费观看视频在线| 97人亚洲综合字幕| 一本色道综合久久欧美| 综合av影片| 老熟女乱子伦中文字幕一区二区 | 国产精品麻豆成人av| 日韩精品99999| 东京男人天堂| 草草影院在线视频| 大香蕉中文| 久久久久久久久久久人妻| 亚洲色图欧美| 97国伦国色| 思思视频免费看网站| 午夜欧美神马久久久久| 亚洲成熟国产精品美女| 91日产桃蜜| 亚洲天天艹| 人人干黄色| 欧美aⅴ99久久黑人专区| 在线观看中文av字幕| 少妇蹲下买菜露大唇0| 国产成人www免费人成看片| 国产精选视频| 日产国产精品中文久久婷婷| 日本理论在线| 婷婷色综合欧美日韩| 一区 欧美 日韩 麻豆| 北约熟女超碰| 欧洲亚洲人妻无码久久三区四区| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠 | 亚洲情色综合| 91超碰碰在线| 五月开心网| 人人看人人插| 花花AV导航| 天天弄欧美| 超碰成人最新最好看| 久久久久久久9999| 欧美激情黑人| 亚洲视频小说| 麻豆精品久久久久久久| 久久五月天婷婷丁香中文字幕| 97在线视频观看免费| 91xingse| 欧美视频边做饭边橾| 欧美色亚洲| 黄久在线| 99蜜桃臀久久久欧美精品网站| 99热精品在线播放| 一区操逼日比视频| 亚洲AV无码乱码| 人妻熟女一区二区在线视频| 亚洲 欧美 另类 日韩 人妻一区 | 超碰2017| 亚欧操逼片在线观看 | 日韩精品大香蕉伊人在线| 丁香五月激情综合| 久久99精品视频| 国产精品久久久久久久AV大片 | 天天插天天插| 国产 日韩 另类 视频一区爱| 肏逼视频日本| 免费国产视频| 91色婷婷综合久久中文字幕二区| 国产av色网| 97视频620| 久久久久久亚洲精品中文字幕人妻| 熟女六十路| AAAAAAAAA黄片| 欧美日韩大香蕉| 久久久无码视频| 亚洲丝袜在线观看| 亚洲97精品| 97久久国产精品| 久久一二三四不卡| 欧美亚洲丝袜美女电影| 欧美少妇熟女| 综合国产97| 性站 | 情色五月天就去干| 国产精品动态一区二区三区四四| 久久久99999久网站| 日韩在线视频1234| 神马久久久久眼| 99精品在线| 啪啪一区| 中文字幕视频在线观看一区二区| 天天影视网综合少妇| 久热伊人| 97干日韩| 超碰99热中文字幕| 怡红院成人av| 羞答答AV中文字| 欧美色图小说综合| 亚洲精品 欧美97色色| 青青草华人在线欧美在线| 欧美综合传媒| 国产精品伦理| 永久电影三级在线观看| 高清无码久操视频| 国产Aα| www.大香| 狠狠综合| 男人天堂.AB| 丝袜性亚洲| 久久久久久久久久久久黄色 | 午夜成人爽爽爽爽A片李冰冰| 韩国三级色呦呦| 97亚洲精品| 免费一级精品啪啪视频| 综合欧美日本三级| 国语人妻精彩刺激| 久热大香蕉网站| 精品国产乱码久久久久久久久久毛片 | 欧美精品成人在线播放| 精品婷婷| 色91综合网| 黄色一区三区| 蜜臀在线视频| 强奸乱伦Av网| 亚洲男人的天堂一区二区| 国产十八禁视频| 97在线/亚洲| 日韩啊V| 欧美日本中字另类在线| 95人妻爽爽人人做人人澡| 蜜臀久久99精品久久久久免费观| 91老熟女91老女人| 成人毛片免费| 久久丁香五月婷婷| 蜜桃久久久久久久久久久久| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 亚洲高清男人天堂| 操一操摸一摸| 日韩成人综合网| 日韩99神马视频播放| 午夜久久久| 国内偷拍精品一区二区| 人妻人人操| 大香蕉 222| 男人的天堂VA| 欧美黄片欧美黄片xxx| 97人妻色| 久久久久久人体| 99精品欧美一区二区三区桃色| 丁香久久| 熟女少妇一区二区三区| 久久毛卡| 在线黄色污污网站| 伊人影院日本| 97超碰美国| 天天欧美97| 亚洲最大成人a毛毛片| 色精品极品| 亚洲图片 欧美电影| 亚洲h片在线免费观看| 日韩国语字幕| 青青青青操国内视频在线| 韩国三级理论在线| 97超碰影音| 久久鲁干| 老司机香蕉| 日韩国产中文字幕| 亚洲色欧| 日韩人妻精品久久久久| 丰满少妇一区二区三区免费看| 欧美国产伊人久久久久| 日韩av情韩国爱禁区av一区二区| 成人麻豆av电影网站| 久久九七| 国产Av超碰| 欧美激情 日韩精品| 久久专区| 成人女人国产| 51久久夜色精品国产麻豆| 日本少妇va7777| 99re9| 色呦呦、国产精品| 久久久精品电影| 欧美在线官网| 亚洲午夜福利在线影院| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 狠狠干妹子| 国产网站在线播放| 国产精品不卡少妇白| 婷婷五月天小说| 人妻丝袜日本| 嗯嗯啊啊操死我| 午夜精品久久一区二区| 91日日| 大香蕉乱级| 亚洲第91页 | 国产第11页| 久操视频资源站公开| 色欲久久99精品久久| 欧美成va视频网站| 性夜影院爽黄A爽免费动漫| 欧美精品成人亚洲| 免费人成在线观看网站品爱网| 豆1无夜无码| 国产精品99久久久www| 国产丝袜啪啪| 欧亚不卡| 3p国产欧美99热| 午夜精品久久久久久久久久久久久| 久都青青视频| 久久久精品视频免费观看| 欧美亚洲韩国视频十五区| 日本三级大片| 操逼免费视频无码国产| 久操国产在线| 激情四射五月天| 动漫爆乳3D奶水一区在线观看| 蜜臀久久99精品久久久久久酒店 | 国产麻豆一级精品视频| 亚洲图片欧美| 97草草| 97爱爱爱综合| 手机在线看片免费人成视频| 大香蕉免费3| 九9精品| 青青草视频久久久久| 日韩丝袜二区| 免费国产电影一区二区| 久久精品久| 91男人天堂网| 精品人妻一区二区免费蜜桃| 久久久婷| 中文久久爆乳| 性爱免费视频成人| 韩国一级做a久久久久| 91美女高潮| 亚洲AV无码久久精品蜜桃小说| 狠狠综合网| 国产99精品一区二区三区免费| 亚洲色图A| 热热色色综合| 999综合色| 亚洲瓯美色图| 亚洲瓯美色图| 骚乳在线| 色av中文字| 五月丁香激情综合| 日本三级日本三级99| 精品毛片av一区二区| 97色碰| 九t超碰| 男人天堂网手机版婷婷| 涩涩久久精品| 97精品中文字幕| 精品一久久久| 激情综合av| 成人老鸭窝人人在线视频| 蜜桃久久综合视频| 欧美 亚洲 制服 精品| 五月婷婷综合网| 无码国产精品午夜不卡(| 久久久亚洲欧美综合| 在线亚洲 欧美 日本专区| 中文视频在线观看| 91在线免费精品视频| 男人的天堂va在线| 百度百度日本操逼| 国产美女口爆吞精视频| 中文字幕一区二区三区字幕| 黄片视频,下载| 国产精品熟女九色九色蜜臀| 国产黄片精品在线| 色伊人91| 久久久久久AV无码免费网站| 亚欧韩av| 小少妇| 亚洲欧美激情另类色图| 综精品久久久aaaa| 国产天美传媒精品| 精品一区99999| 久操视频在线| 97aiaiai| 手机在线中文字幕国产| 精品一啪| 久久精品免费| 国产亚洲日本| 亚洲欧美清纯| 久综合国内精品自在自线| 香蕉热人人精品| 国产精品宅男免费| 丁香六月婷婷| 东北女人| 午夜传煤十二区精品| 久久婷婷电影网| 国产精品ⅴ无码大片在线看.| 激情网色| 欧美日韩国产中文超碰| 无码久| 91精品久久久久久| 黑人免费福利视频| 青草青草久热| 欧美亚洲激情小说| 伊人在线大香蕉视频久久| 精品人妻少妇| 色噜噜精品一区二区三| 极品色社| 欧洲亚洲人人爽爽视频| 国产9区| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 大香蕉520| 久偷拍| 亚洲第一页色网| 国产精品无码成人精品| 五月丁香狠狠爱| 日韩精品第3页| 2017,超碰| 岛国视频一二三区| 粉嫩国产精品久久久| 精品女同一区二区三区| 无码免费在线观看黄色片| 国产高清成人传媒影视| 成人精品视频| 亚洲国产成人精品999| 日本岛国黄色网址| 欧美激情亚洲情色| 国产亚洲日韩欧| 99色在线| 欧美色爱综合| 男人的天堂一区三区| 96AV久久久| 亚洲人综合19| 99精品网| 亚洲做性| 色色综合网站| 热G综合热G中文| 东北丰满熟女国产一区| 日韩精品99久久久久久中文字幕 | 日韩三级一区| 亚洲激情在线| 婷婷色综合| 久艹99| av在线一区二区三区| 国产精品亚洲四五区在线观看| 国产白丝网站| 性爱综合网| 无码九九| 一区在线国产播放| 久久有码视频| 91精品久久久久久综合五月天| 人妻少妇久久| 蜜桃无码AV一区二区| av 模特一区了| 一级aaaaa欧美中文字幕录像片| 大香蕉天天看妹子| 人人玩人人添人人澡免费| 免费看污网站| 中文字幕五月婷婷免费| 上床不卡网站| 伊人久久大香线蕉无码| 日日噜噜夜夜久久亚洲一区二区 | 欧美AB在线| 精品久久久无码| 免费操逼91| 极品白嫩福利在线| 久久av无码| 色超碰综合| 黄在线| 久久久久96| 色色色999| 久久久久久久97| av在线人气| 国产一区二区三区免费视频在性观看| 超碰天天操| 婷婷五月天激情网| 亚洲欧美清纯| 亚州综合AⅤ| 亚洲色图亚洲无码强奸乱伦| 国产一线二线三线av| 伊色综合天堂色97| 色狠狠 - 百度| 久久大香蕉97| 成人日本精品九区| www色日本| 天天综合亚洲综合| 青久久| 国产按摩一区二区三区| 成人一级性爱| 久草这里只有精品| 天天天天天天天天综合| 猛交交| 久久免费精品视频免一| 69少妇一区二区| AV久日| 黑丝内射一区二区三区| 懂色中文一区二区三区| 久久噜噜噜精品国产亚洲综合| 婷婷99狠狠躁天天躁| 国产高清亚洲日韩一区| 色老牛| 久久综合激情| 久久成人国产精品| 极品色综合| www.AV有限公司一区| 日韩999| 蜜乳AV.COM| 中国一区二区亚洲人妻| 久 久无码人妻AV| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 久热在线精品免费观看| 国产免费内射视频| 亚洲十八禁止| 91人妻视频| 欧美激情五月天| 女人被男人桶爽视频网站| 亚洲色交| 97ai亚洲| 久久综合久色欧美综合狠狠| 欧美一区二区日韩传媒搭讪精品| 久操大香蕉| 一本一道vs波多野结衣| 囯戸精品高潮呻吟旡码| 国产无码成人无码| 欧美激情区| 97在线欧| 九一国产精品| 久久高清无码夜夜操| 久久中文色图| 亚洲国产综合久久久性感熟妇| 婷婷伊人网| 国产亚州精品美女久久久免费| 超碰97人人cao| 欧美亚洲中文| 少妇一区二区三区| 人妻一区二区三区熟女| 久久久青青草| 骚女天天综合网| 黑人性欧美| 综合熟妇一区二区三区| 殴美色网| 人妻丝袜一区二区三区在线| 国产精品乱码久久久久久久久| 加勒比伊人影院| 久久夜精品一区二区三区| 久久亚洲熟妇在线视频| 亚洲在高跟鞋自慰久久在色线| 中文字幕加勒比海高清无码免费视频 | 日本三级小说中文字幕| 北条麻妃99精品青青久久| 人妻少妇蜜桃视频欧美一区| 国产高清1234区| 少妇蜜汁| 亚洲美女30b| 91五月天| 超碰色美女| 亚洲黄色电影| 97视频网站| 91国产操逼视频| 在线观看不卡一区二区三区| 亚洲色图欧美色图日韩色图| 久久久精品无码亚免费| 婷婷综合五月| 顶级少妇BT天堂| 国产一区二区三三视频| 日韩免费在线视频观看| 免费av大片| 婷婷99| 欧美亚洲丝袜美女电影| 亚洲男人的天堂网| 99re视频在线播放青草| 日韩成人高清一区二区| 激情网色| 欧美九9 9 9| 激情图片伦理国产一区二区日韩| 国产地址二三| 午夜男人的天堂| 91色人妻| 97干在线视频| 2019天天操天天爽天天拍| 欲色啪| 国产精品96| 懂色天天爱天天日天天射天天澡| 久久婷婷五月综合| 精品一区二区三区四区女| 超碰欧美97资源| 97国产人人| 免费伦费视频在线观看| 久久国产精品一级二级三级| 日韩操呦呦影院在线观看| 欧美性高潮在线| 99在线免费公开视频| 爱我干综合| 熟妇艹鸡八| 91N综合网| 天天插夜夜操| 亚洲AV无码天美传媒一区| 欧美第二页午夜| 日本人妻最新在线中| 亚洲国产成人精品无码专区| 久久精彩视频9| 97中文字幕一区| 国产黄色影片在线观看| 亚洲性综合9| 97在线播放 | 午夜理论片在线观看免费| 国产欧美日韩女同性恋ww喷水精品| 天天干天天日天天射黄色片| 99久草| 日韩欧美亚洲一区二区三区影院| 日韩中文字幕熟妇人妻| 特污精品女优骚货黄色视频在线免费观看| 性在久久久久久| 欧美丝袜激情| 亚洲本色精品一区二区久久| 95人妻爽爽人人做人人澡| 福利社区午夜一区二区| 少妇免费视频| 九九九九九精品| 在线播放中文字幕| 影音资源男人日韩| 99精品久久久久久久婷婷| 欧美老妇女内射网址| 测评在线观看AV| 91 手机在线播放 绯色| 午夜一区| 国产少妇与亚洲av| …亚洲黄色厕厕女女在线播…| 国产久久久久久久久一区二区| 人妻熟妇久草在线| 日逼国产| AV男人天堂网| 亚洲四虎熟女精品| 中文字幕精品亚洲熟女| 国产92麻豆天美精品色欲5| 亚洲偷拍欧美激情| 欧美午夜一区二区三区| 蜜臀在线看片| 大香蕉久操| 3P丝袜熟女 色综合| 色婷婷导航| 粉嫩av一区二区三区天美传媒| 婷婷五月av| 日少妇视频| 欧美亚洲第1页| 日韩操逼性鲍| 插入粉嫩少妇视频| 在线国产探花| 色逼综合| 久久国模av| 亚洲砖码砖专无区2023| yazhououmeizongya| 成人婷婷丁香| 日本黄大片在线观看视频| 日韩久久艹| 国产粉嫩出水在线播放| 午夜九九九九九九| 日日干日日操五月天伦理视频| 中文色综合| 九九超碰综合网| 精品久久一区二区三区四区五区| 日韩成人高清一区二区| 欧洲精品久久| 99无码精品| 亚洲男人综合| 精品女同一区| 麻豆av一区二区三区| 色呦呦呦在线观看视频| 久久αⅴ| h色99999| 欧美制服另类丝袜| 精品国产人成在线| 91 丝袜在线播放| 欧美大战久久久伊人| www.99在线| 日韩簧片免费看| 蜜桃传媒视频第一区入口在线看| 熟妇女人妻呻吟久久AV| 在线看免费无码AV天堂的| 白嫩少妇| 国产尤物在线三区| 精品国产72| 激情综合网激情五月天| 久操凹凸视频| 翔田千里AV无码秘 三区| 欧洲小说色图视频另类| 夜夜嗨一区二区| 国产精品一二三在线看| 日韩三级在线观看网站| 99精品九九九九九九| 久久久专区| 欧美日韩理论一区| 日本天天操| 亚洲AV无码黄色强奸| 五月亭亭六月丁香| 精品人妻一区二区三区不卡断| 久久人爽| 精品小视频在线| 久操B网| 久久综合五月天| 日韩av一级黄片| 日韩精品色呦呦| 91人人操| 大香蕉伊人75| 婷婷性网| 蜜臀99久久精品久久久久久| 日本孕妇孕交| 9长久久精品| 伊人网在线观看| 中文字日本乱码| 青青青操| 无码91| 神马视频久久久久久| 黑丝少妇在线观看| 久热伊人| 成人欧美一区二区三区黑人一| 成人日本视频人妻在线| 亚洲一区二区性爱电影| 午夜无码精品免费看性色| 欧美偷拍区| 日韩中文字幕精品一区在线| 国产探花日韩援交| 亚洲av国产av综合av卡| 免费视频在线一区二区不卡| 国产1024在线播放| 亚洲 无码 偷拍| 亚洲无码精品AV久久久| 天堂v无码免费视频| 精品免费视频国产一区| 91AV入口| 中文字幕一区电影在线观看| AV不卡在线| 欧日a| 丁香九月激情| 超碰79人人乐| 色第一页| 欧美亚洲国产日本在线,久久精品国产| 夜草欧美| 久久久一二三四区| 婷婷激情四射| yw尤物av无码点击进入麻豆| 国产Av超碰| 久久久精品视频免费观看| 国产福利精品最新在线 | 91精品人妻一区二区三区蜜桃| 极品肉射| 日日操免费视频| 探花熟女,姿勢到位,體驗感也到位| 亚洲制服欧美另类内射| 丁香激情网| 欧美18禁91| 伊人午夜福利视频| 久久久精品网| 国产日韩手机视频在线| 亚洲无码AV九九九| 丝袜AV一二三区| 久久少妇视频| 中文字幕第7页| 日韩无码极品| 另类 日韩 熟女| 日韩素人无码一区二区三区三州| 日日AV加勒比| 午夜操一视频一区| 免费看黄片现成| 国产尹人在线视频免费| 日韩中字av一区| 老熟女中文字幕高清| 2017天天操天天日| 一区二区三区高清天码| 婷色五月| 天天摸夜夜操视频| 五月天亚洲色图| 国产大学生口爆吞精合集| 95人妻爽爽人人做人人澡 | 成人97人人超碰人人| 国模吧 一区二区三区| 69综合网| 性欧美91| 手机在线人成免费视频| 91美女视屏| 久艹视频在线| 乱伦a片视频| 一区二区你上我| 国产丝袜高跟美女av免费观看| 欧美综合自拍| 亚洲成人综合在线| 97一区二区三区视频| 亚洲欧洲激情卡通另类文学四射小说网站| ..日韩av毛片精品久久久| 久久精品国产精品亚洲艾通辽熟妇 | 人人考人人摸人人干| 天堂精品小草| 又大又大又大又粗爽高潮观看 | 香蕉免费一区二区三区不读 | 国产AV人人 夜夜人人澡| 热热色中文无码| 国产自偷自拍一区| 91高潮喷水美女| 眼镜人妻101.com| 少妇99成人麻豆| 欧美亚洲系列| 91精品大奶人妻| 大香蕉92| 亚洲人妻中文高清| 精品国产乱码久久久兰草影视| 中文操逼字幕| 日韩人妻少妇中文字幕| 97久久超碰日韩精品| 日韩欧美国产高清视频| Aa东京男人的天堂| 脫衣舞一区二区三区| 99RE在线视频精品,这里只有精品| 91老熟女| 熟女啪啪视频| 亚洲97| 91九久| 亚洲无线观看久久| 亚洲 欧美 中文 日韩超碰| 人妻欧美| 乱人伦 国语对白:视频直接看| 91女日逼| 天天爽爽爽爽| 国产精品电影大全| 青青青操| 色欲三区| 男人的亚洲天堂| 艹比视频国产精品| 日日AAvv| 五月激情综合网| 夜夜躁狠狠躁日日躁av| 天综合中文| 欧美人与动性人交a| 色综合加勒比四四季| 眼镜人妻101.com| 久久啊啊啊视频| 国产又大又硬又长又粗| 亚洲色图 91| 2020视频1区2区3区| 国产老太乱伦一区| 日本999精品视频| 精品高清一区二区三区三州| 亚洲系列欧美| 激情小说五月天| 国产精品久久久啊| 91色伦综合| 亚洲AV成人无码一区二区三区在线观看 | 久久午夜神马| 67914在线精品观看| 亚洲h片在线免费观看| 亚洲青青草| 五月激情小说| 久久久国产av美女私房| 日本性一区| 亚洲激情网一二三四区| 国产精品久久久亚洲一区| 色色色日本| 亚洲中文字幕一区| 日韩欧美女优电影| 日韩综合无码色欲vv| 亚洲风情综合网| 熟妇熟女一区二三区| 亚洲国产成人精品久久久国产成人一区二区三.| 天天天操天天天爱| 老鸭窝亚洲毛片| 99久久婷婷丁香| 一起草视频在线| 麻豆精品三区视频| 午夜免费视频1000| 人人摸.人人色| 青青青在线高清视频在线一二三四区 | 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 婷婷五月天色| 国产一区二区三三视频| 这里都是精品| 夜精品久无码| 久久日韩毛| 成人三级片无码| 无遮挡男女激烈动态图| 人妻人久久精品中文字幕| 99爱久久视频频| 精品黑人一区二区| 强奸乱伦AV一天堂网| 欧美96在线|欧| 加勒比五月天| 色天使大香蕉| 国产欧美伊人| 天天色综合天天操| 草草影院最新网址| 国产又黄又粗又猛大片| 欧美激情在线观看视频| 欧美亚州色的图| 色九九九| 亚洲情色电影网| 91丨九色丨43老版熟女| 333kkkk·亚洲com久久| 亚洲 小说 欧美 激情 另类| 精品无吗m| 欧美图片校园春色| 天天干夜夜肏| 亚洲精品一卡二卡三卡福利视频网站| 人妻天天爽夜夜爽爽| www.yw尤物| 插欧洲美女欧美精品| 日韩乱中文| 日本免费中文字幕在线| 手机午夜电影神马久久| 无码国产精品96久久久久孕妇| 天天综合网~91| 免费男人的天堂| 国产成人一级av88| 综合久久久久久久久91| 久久国产成人精品国产成人亚洲| 欧美性性性| BBBBB97COM| 91热| 亚洲欧美97| 日逼97| 91爱| 97在线观看| 免费AV中文网在线观看| 天天综合91| av黄图片在线观看| 立川理惠被中出无码| 黑人免费福利视频| 欧美性爱精品七区| 岛国福利在线精品播放| 国产一区二区在线播放量| 亚洲色欲天天天堂色欲网女| 国产黄色在线播放观看| 亚洲精品性爱片| 狠狠操夜夜| 亚洲日韩国产欧美综合v| 激情啪啪拍91| 欧美色五月| 97视频网站在线观看| 一区,二区,三区网站| 免费网站观看www在线观| 亚州综合AⅤ| 国产欧洲精品亚洲午夜拍精品| 日韩精品国模| 青青草原伊人网| 免费试看60秒| 强奸国产精品视频| 伊欧美综合视频| 欧美国产日韩清纯唯美| 污到发麻的视频 国产| 精品亚州18| 国产精品另类一区大香蕉| 人妻精品一区二区| 你懂的在线观看区国产| 精品久久久久久中文| 中文字幕在线高清男人的天堂| 嗯嗯啊中文字幕| 色天使大香蕉| 国产中午字一暮区| 国产精品香蕉| 少妇3P性爱自拍| www.久久| 91草草草| 天天干夜夜鈤| 免费a级毛片av无码久久精品中文字幕| 综合欧美激情网| 中文字幕在线播放2中文字幕在线观看2| 污到发麻的视频 国产| 另类成人首页一区| 欧美牲| 特级毛片特黄久久免费看| 五月婷婷激情网| 青青草成人视频在线观看二区 | 天天躁日日躁AAAXX| 任我爽视频在线观看| 色一区二区三区综合| 亚洲影院成人| 国产女性无套 免费观看| 中文字幕日产av人| 蜜桃AV天堂| 国产综合在线视频网站| 九九精品热| 97这里只精品| 在线观看中文字幕| 久久久久国产一区二| AV高清一区| 欧美+日产+中文| 国产精品久久成人免费| 观看视频图片一区二区三区| 久久精品一区一起草| 无码免费在线观看黄色片| 色婷婷狠狠| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 婷婷亚洲五月***久久| 欧美色997| 老熟女综合| 91超碰人人操| 蜜桃狠狠色伊人亚洲综合 | 91九色网| 18禁久久| 国产亚洲精品农村妇女| 91色黑人少妇| 色汉综合| www.久久99| 欧美久久人体| 乱伦3P视频| 射丝袜大香蕉| 成人三一级一片aaa| 九九久久国产精品| 亚洲巨爆乳一区二区三区四季网| 开心五月婷婷| 亚洲色图欧美色18直播在线| 国产激情av女片自拍| 婷婷15月天青娱乐| 日本三级A片网站com| 亚熟在线| 奇米四色网| 亚洲另类色图片| 亚洲无码偷拍| 久久伊人在线五区| 插入逼91| 99热精品青草在线| 亚洲 中文字幕 精品| 91丝袜美腿网站| 婷婷久久五月综合激情| 啊啊啊用力在线观看| 国产精品96| 国产视频一区二区在线| 九九九九热| 欧美熟妇乱码在线一区| 国产精品福利资源在线尤物| 欧美老熟另类| 白丝被操91| 淫乱图区| 久久九九国产精品| 日日AAvv| 丝袜 亚洲 偷拍| 国产精品白丝| 欧美 亚洲 大香| 正在播放国产精品一区| 超碰免费欧美7| 国产亚州精品美女久久久免费| 欧洲一区二区三区四区在线观看| 国产激情av女片自拍| av2014 日韩在线中文字幕| 婷婷久久大香蕉| 精品国产乱码久久久久久网站入口| 青青草视频这里只有精品| 熟女探花啪啪| 男人久久精品| 亚洲操逼视频网站| 久久久人妻| 麻豆伊人网| 男人的天堂一区三区| 欧洲综合色| 亚洲AV免费在线观看| 精品国产一区二区三区在线播出| 麻豆天美在线喷水AV| 九月婷婷久久| 国产91精品在线免费| av一区二区三区四区五区久草臀| 在线观看中文av字幕| 亚洲精品欧洲色| 大香蕉欧美伊| 国产a级午夜毛片| 麻豆精品一区二区三区四区免费观看| 超碰 另类 欧美| www欧美性爱| 日韩三级伦理中文字幕| 久久久久久久久久久久九| www.婷婷| 婷婷丁香九月| 九热久| 日本中文字幕一区| 丰满人妻一区二区三区| 国产女同视频在线播放| 十八禁黄色| 一本大道综合伊人精品热热| 日本女人操逼| 国产一区自拍欧美日韩| 欧美激情在线观看视频| 91成人国产综合久久精品蜜月| 色爱国产| 人人摸.人人色| 天天色欧美| 日日碰视频网| 亚洲综合网图| 熟女精品一区二区三区| 国产精品久久久久久照片| 熟妇熟女一区二区三区| 九九九热精品| 蜜奶av| 亚洲老熟妇xxx| 91天堂色男人的天堂| 国产精品点击进入在线影院高清| 综合大香蕉美。| 妇人噜噜| 性色avv| 开心激情站| 日韩中文字幕在线视频观看| 午夜人人操| 嗯嗯啊啊好爽| 嗯嗯啊啊啊好爽| 超碰综合97在线| 97er欧美性| 97色欧州| 800zy一区二区| 亚洲宅男天堂| 综合色啪| 黄色视频特级毛片| 影音先锋视频在线| 岛国在线国产| 国产成年女黄特黄| 天天拍夜夜| 亚洲人久久久久日| 东京热91| 亚欧操逼片在线观看 | 婷婷丁香六月| 激情五月天社区| α√在线| 51一区二区三区| 日韩激情啪啪啪| 国产女人和拘做爰视频| 樱花蜜乳av| se吧提供国产乱老熟视频胖女人| 亚洲在线| 免费A片三p视频| 亚洲欧洲av影音| 欧美精品69性爱| 最新日本中文字幕| 襙一襙| 日韩精品一区二区高清| 亚洲av国产av综合av卡| 婷婷伊人五月| 少妇厨房愉情理伦片bd在线观看| 在线日韩精品一区二区三区| 亚洲图片另类| 秋霞Av理论一级在线| 欧美日韩国产成人高清| 亚洲在线网站| 久久久99免费| 天天色天天干天天射| 家庭乱伦性爱av| 亚洲无码?第一页| 色色色色电影网| 九九九九久久久| 蜜桃精品一区二区三区ww| 欧美激情视频一区二区三区不卡| 久久久久久久78| 亚洲视频二区 |