99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

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 都會用同一套標準去約束日志寫法把原先靠人 review 才能發(fā)現(xiàn)的日志問題提前到提交代碼的那一刻就攔住。這篇文章我會從工具定位、環(huán)境配置、規(guī)則體系、CI 接入、真實踩坑排錯這幾個維度把我實際使用和參與維護 impeccable 過程中的經(jīng)驗完整記錄下來。對于正在被日志問題困擾或者想在團隊里推日志規(guī)范但不知道怎么落地的同學(xué)應(yīng)該會有些參考價值。1.1 一團亂麻的日志到底坑了誰很多團隊對日志規(guī)范的第一反應(yīng)是“差不多就行”。但當你真正需要依賴日志解決問題的時候混亂日志的代價會立刻暴露出來。首先是檢索困難字段分隔符不統(tǒng)一想用 grep 把某筆訂單的所有日志撈出來幾乎不可能其次是信息缺失關(guān)鍵參數(shù)沒打全出了問題還要去猜當時的入?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);表面上看只是風格差異但實際差別很大。規(guī)范版本用了占位符既避免了字符串拼接帶來的性能損耗又讓日志字段變成了結(jié)構(gòu)化的鍵值對。配合日志采集端做解析時規(guī)范版本可以直接提取 userId 和 loginTime 作為檢索字段混亂版本則只能靠正則硬摳還容易摳錯。impeccable 想做的事情就是把這些“一眼能看出來不規(guī)范”的問題自動化。它不要求你靠自覺而是在你寫代碼的那一刻就提醒你哪里不合格。這個定位聽起來簡單做起來卻牽扯到不少設(shè)計取舍后面我會詳細展開。1.2 現(xiàn)成工具為什么管不住日志你可能會問代碼風格檢查工具不是已經(jīng)能管格式了嗎為什么還要專門做一個日志檢查工具因為我們試過效果很差。普通的風格檢查工具主要關(guān)注代碼格式、命名、復(fù)雜度它不會理解“日志語句里出現(xiàn)了字符串拼接”是性能問題還是可讀性問題。更別說判斷“這條日志里有沒有敏感字段”“這個日志級別是否合理”“占位符數(shù)量和參數(shù)數(shù)量是否匹配”這類語義問題了。日志檢查比風格檢查難在幾個地方。第一日志語句往往散落在業(yè)務(wù)代碼里不像命名規(guī)范那樣有一個唯一的“名”第二不同語言的日志框架 API 差異很大有的用占位符{}有的用百分號%s還有的直接支持 lambda 延遲計算第三日志本身還涉及級別、上下文、敏感信息等多個維度這些很難用一套固定的語法規(guī)則覆蓋。所以我們早期的方案是寫腳本、寫正則在 CI 里跑一遍哪里有拼接、哪里沒有級別就報哪里。但腳本越寫越多規(guī)則之間互相沖突維護成本很快就失控了。這也是我們決定把 impeccable 獨立出來做成一個真正可配置工具的原因。它想走的路子是像風格檢查工具一樣提供規(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)境準備和最小配置說起因為我在給團隊推廣它的過程中發(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負責掃描敏感關(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哪怕值是脫敏后的字符串也會被標記為可疑讓開發(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ù)雜的引號正則會漏報甚至誤報。因此當規(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 花括號當成語句結(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 全角字符替代半角標點比如把:換成全角冒號規(guī)則里只匹配了半角冒號于是一整段“看著像正常日志”的語句就繞過了檢查。不能說這些手法是惡意的更多是因為同事覺得規(guī)則太煩、想快點提交代碼。但從檢查工具的角度看這就是一場持續(xù)的攻防戰(zhàn)。我們的應(yīng)對方式是分層規(guī)則第一層用正則做快速篩查第二層用詞法分析識別字符串拼接語義第三層用信息熵算法識別“可疑的 Unicode 偽裝”把全角標點統(tǒng)一降維成半角后再做一次匹配。三層規(guī)則疊加之后繞過難度高了非常多?,F(xiàn)在項目里很少再有人為了繞過規(guī)則去搞這些花活因為被發(fā)現(xiàn)后要改回來時間成本遠比老實寫日志高得多。5.4 一次發(fā)布阻塞的完整排錯復(fù)盤有一次版本發(fā)布前CI 突然紅了報錯的規(guī)則叫placeholder-args-matched指向某服務(wù)的一行日志。報錯內(nèi)容是占位符有 3 個但參數(shù)只傳了 2 個。我當時第一反應(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 推薦的日志寫法做成標準模板放進項目腳手架里。工具管住了底線模板和案例管住了上限。6.3 后續(xù)可以繼續(xù)做的幾個方向impeccable 目前已經(jīng)能覆蓋大多數(shù)日常場景但我們也看到了幾個值得繼續(xù)探索的方向。第一個方向是增強 AST 分析能力?,F(xiàn)在很多規(guī)則已經(jīng)基于 AST但遇到動態(tài)方法調(diào)用、反射等寫法時仍然只能靠正則兜底準確率有瓶頸。如果能把常見日志框架的 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
返回資訊列表
亚洲成片在线观看| 婷婷久久综合| 久久女人天堂| 免费成人网在线观看| 99亚州综合精品成人网| 色丁香五月| 美女亚洲五月丁香| 激情婷婷在线中文字幕| 婷婷五月超碰| 大色鬼综合| 亚洲五月婷婷| 久久亚洲激情五码| 成人丁香婷婷五月天| 色色激情五月| 中文字幕丰满人妻无码专区| 色婷婷影视99| 欧美婷婷色五月网| 婷婷色综合网日韩国产| 日本天堂网站99| 天天操天天操天天操天天操天天操| 婷婷六月五月| 婷婷综合五月色播| 五月天自拍视频| 站长推荐无码播放| www.97碰碰com| 九九色婷婷Av| 亭亭丁香97| 大香蕉 婷婷| 色999亚洲人成色| 成人超碰Av| 噜噜综合网| 久久九九@| 99福利视频导航| 欧美在线视频99| 99精品自拍视频| 五月天久久网站| 黄色99网| 色情五月停停丁香| 丁香六月综合| 色爱综合网| 无码橾| 欧美成人精品老美女噜噜噜| 五月天色婷婷网| 一本道综合网| 色情综合网| 六月丁香婷婷天堂| 五月深爱激情网| 五月天另类综合网| 欧美性爱5月天天天看| 热久久77777| 视频这里只有精品| 天天久久综合| 亚洲国产99| 日本激情综合| 性生活视频98791| 亚洲熟妇无码乱子AV电影| 操熟女成人网| 婷婷娌伦网| 狠狠搞狠狠操| 99久久性爱| 99热最新网址| 久久婷综| 91色噜噜狠狠狠狠色综合| 欧美啪啪五月天| 伊人大香蕉综合在线| 婷婷成人av| 久久99免费视频网站| 欧美日韩中国| 婷婷五月激情的图片| 狠狠艹狠狠艹| 夜夜夜夜夜骑撸| 婷婷色操| 亚洲乱码日产精品BD| 色狠狠色噜噜AV天堂五区| A短视频免费在线观看| 国产成人精品一区二三区熟女在线| 色噜噜狠狠色综无码久久合欧美| 五月婷婷激情日本| 天天日夜夜夜操操操操| 99热1| 99爱在线视频| 狠狠久综合| 色色色区| 狠狠干思思热| 久青草影院| AA片在线观看视频在线播放 | 激情网站综合五月天| 深爱激情五月天色婷婷| 99九九视频| 色情成人五月天| 99久久偷拍视频| 99综合一区| www.国产亚洲69ty.久久久久久久久久久久 | 婷婷五月综合网| 97人凄人人操人人爽| 婷婷亚洲综合| 色婷婷久久综| 色激情五月| 久9视频| 婷婷五月天 丁香五月天 裸体| 欧美三级级99久久| 婷婷丁香五月,狠狠综合| 一丁香五月天月AV| 中文字幕人妻一区二区| 五月丁香婷色| 五月天色区| 婷婷五月日本| 五月丁香婷庭在线| 亚洲日本韩国| 99久久丝| 99re思思久久| 免费观看亚洲AV片| 中文在线成人| 91亚洲免费片| 丁香五月激情视频| 秋霞少妇AV网站| 五月天婷婷社区久久综合| 极品 少妇 内射| 五月综合激情网| 丁香五月影| 久久er免费视频| 五月天天天色| 99热九九九九| 丁香五月六月婷婷怡红院| 婷婷五月天堂| 五月天丁香六月综合| 五月花综合视频| 中文字幕成人| AV天堂淫乩| 中文字幕精品在线观看| 丁香婷婷色色| 丁香婷婷网| 国产色网站| 四月婷婷丁香| 亚洲综合欧美色丁香婷婷888月图片| 欧美99热| 亚洲字幕AV一区二区三区四区| 欧美日综合| 成年人丁香五月| 丁香五月天AV在线 | 免费91久久精品| 五月天婷婷三级黄| 777米奇影视第四色| 色999亚洲人成色| 玖玖99免费视频| 色欲久久久久久综合网综合网| 都市激情五月婷婷亚洲| 9久热在线精品| 久久婷婷色五月| 午夜成人综合| 五月丁香婷婷爱| 七七色综合| 成人婷婷五月| 奇米色大香蕉| 久久婷婷久久| 久久欧洲久久| 9热成人在线视频| 99激| 丁香花五月天社区| 伊人久久大香网| 色色色婷| 丁香五月影院| 激情六月婷| 色天使久久综合| 五月网网站| 日本婷婷色| 五月婷婷激情视频| 亚洲成人AV在线播放| 日日操夜夜撸| 五月丁香啪啪啪免费看| 91碰免费视频| 超碰人人99| 五月丁香婷草| 久久久国产精品黄毛片| 色综合天天综合成人网| 五月天丁香六月综合| 五月天婷婷综合网| 战争与艾拉电影免费观看| 五月丁香婷婷伊人日韩| 色啪网| 性色欲情 网站| www.婷婷| 五月丁香婷婷视频| 欧美色骚婷婷五月天| 色婷婷六月| 六月丁AV| 久久这里只有精品热在99| 色婷婷导航| 人妻人人操| 人妻久久久久久久久妻久久久久| 99九九视频精彩在线| 久婷| 午夜色丁香| 日本色99| 狠狠狠狠青草| 无码少妇高潮喷水A片免费| 丁香婷婷中文字幕| 26UUU| 无码碰碰| 亚洲亚洲人成综合网络| 综合激情在线| 五月婷导航| 91vip在线观看| 免费无码毛片一区二区A片| 思思热99在线视频| 久久亚洲色导航| www.夜夜爱.com| caop在线| 可以免费观看的AV| 午夜色丁香| 超碰在线看| 婷婷情色五月| 96自拍视频九色在线观看| 亚洲激情综| 狠狠人人| 色色色精品无码区| 婷婷伊人綜合中文字幕小说| 日本专区久久| 九九九九成人| 99久| 婷婷狠狠干| 狠狠做深爱婷婷久久综合一区| 亚洲狠狠狠| 久久五月视频| 激情五月天小说网| 色五月激情婷婷| av在线超清中文| 五月婷婷九九热| 精品少妇人妻AV无码专区偷人| www久久艹| 婷婷五月天首页| 五月总合激情网| 超碰伊人碰婷婷五月| 三十熟女| 久久小说网| 成人短视频在线观看| 天天综合影院| 激情五月,激情综合网| 99久久国产宗和精品1上映| 91无码高清| 色约约视频一区二区三区四区五区 | 天天天天天日| 五月激情偷拍| 色综合伊人网| 色婷五月天| 色婷久久| 五月丁香人妻| 熟女人妻一区二区三区免费看| 中文字幕在线观看视频www| 五月丁香六月激情| 婷婷丁香熟妇综合网| 俺去也综合| 色99在线视频| 亚洲视频操| 丁香 亚洲 久久| 丁香六月久久| 99精品一二三四视频| 色色色色色网| 综合网狠狠| 婷婷99狠| 婷婷五月色影视先锋| 91精产一区三区免费观看| 91人人看| 婷婷九月激情| 梁铮版蜘蛛女在线观看| 五月天激情综合10p| 丁香五月98| 丁香婷婷五月天色播| 俺五月| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 五月丁香激情婷婷| 激情丁香六月| AV美美午夜| 丁香五月综合福利视频导航| 天天婷婷色六月| 天天爽夜夜爽夜夜爽精品视频| 玖玖精品视频| 99久久6| 亚洲乱码日产精品BD在线观看| 天堂无码人妻精品AV一区| 最近中文字幕在线中文视频| txt五月激情四射网综合俺也来了| 最熟少妇乱码| 看婷婷五月天网| 狠狠做六月爱婷婷综合aⅴ| 日日鲁鲁夜夜爽爽| 久久人人九| 任你草| 婷婷六月色| 激情五月天婷婷播播久久综合91| 激情六月天婷婷| 丁香五月婷婷深爱综合激情| 99综合激情久久精品久久| www.成人婷婷综合| 九九色影院| 丁香五月停停av| 亚洲无码www| 亚洲中文字幕AV| 五月婷婷 六月丁香| 99er精品视频| 亚洲1区| 丁香五月伊人| 丁香五月综合久久八| 欧美色色色| 色综合丁香婷婷| 色婷婷丁香A片区毛片区女人区| 五月色亭丁香| 五月丁香六月激情综合啪啪| 免费黄色片子| 九九十99视频| 开心婷婷五月中文字幕组| 五月丁香性爱| 91精品国产色猫| 2015好吊操| 天天婷婷色六月| 激情AV| 一级性爱大片| 六月婷婷国产| 无码人妻AV久久久一区二区三区| 激情综合亚洲| 色偷偷色婷婷| 五月丁香啪。| 免费看欧美成人A片无码| 丁香六月婷婷久久亚洲天堂| 九九久久综合网站| 六月丁香网| 五月婷婷成人| 五月天婷婷激情在线色图| 天天插综合| 久热丁香| 天天爽天天日| 日本在线视频看se99| 久久国产精品乱子伦_靑青草…| 在线观看免费狠狠色丁香香综合| 99视频在线看| 丁香五月天堂| 综合久久久婷| 婷婷亚洲综合| 亭亭五月基地在线| www.天天干| 色域五月丁香| 毛片色五月| 白人荫道BBWBBB大荫道| 最新激情五月天| 天天激情站| 99操无码视频观看| 五月婷婷啪啪啪| 亚洲午夜一区二区| 欧美色宗和激情| 九月大香蕉| 综合网五月天123| 亚洲婷婷五月天| 婷婷五月天综合激情| 五月婷婷六月丁香在线视频免费在线观看| 日韩精品一区二区刘| 深爱五月最新网址| 婷婷终合色图| 九九碰九九爱97超| 丁香五月综合久久八| 天天操夜夜操| 五月婷婷,六月激情| 五月婷婷激情综合| 丁香五月婷婷色五月| 少妇大叫太大太粗太爽了A片| 亚洲色婷婷色| 色婷婷色综合久久精品V| 婷激情五月| 国产高清视频91九九九久久久| 激情五月天小说视频| 日日噜噜夜夜狠狠久久丁香五月| 99激情视频| 久久视这里只有精品| 久久久免费精彩视频| 亚洲中文丁香| 久久久91精品| 国产精品爽爽久久久久久| 99超级碰碰| 亚洲天堂爱爱| 天天摸夜夜爽天天做| 五月激情四射网站| www.日本91| 啪啪激情综合| 色吧婷婷五月亚洲| 天天操中文字幕| 91无码视频| 欧美精品18| 五月婷婷香蕉| 色色色婷婷| 六月婷婷色综合| 激情网站综合五月天| 热99玖玖99玖玖99九九| 91精品久久久久久久| www。五月天激情| 国产精品第一国产精品| 国产精品国产| 色丁香在线视频| 大香蕉娱乐| 九色自拍| 激情五月综合网最新| 五月天婷婷网站888| 欧美在线| www.91九色| 这里只有精品热| 色综合99色| 玖玖婷婷五月天| 九九热这里只有精品一| 亚洲av网站| www.超碰97| 色老久久| 激情五月丁香六月婷婷| 亚洲美女婷婷五月天| 羞羞嫩草视频| 日韩操人| 97干在线看| 人妻中文在线| 丁香五月天狠狠| 天天天久久久| 亚洲激情综| 欧美午夜乱妇午夜福利| 99亚洲精品视频| 丁香 婷婷 亚洲 熟女| 丁香六月综合激情| 婷婷五月天AV在线| 激情五月天婷婷丁香| 天天做天天爱天天爽| 五月激情六月综合| 激情综合网激情五月欧美| 九九人人自拍| 天堂亚洲 在线| 欧美搡BBBBB摔BBBBB| 操逼三区| 激情五月综合| 欧美色爱五月天| 九九热这里有精品23| 91久久色| 91传媒无码人妻精| 97久久综合网| 亚洲成人在线在线| 色色五月婷| 色情五月丁香| 色婷五月天| 国产激情综合五月久久| 婷婷亚洲综合| 丁香婷婷激情五月天无毒不卡蜜桃| 我爱婷婷五月天综合88| 国产色婷婷亚洲| 五月丁香亚洲校园欧美| 超碰国产在线| 国产日批视频免费播放| 五月丁香激情片| 91色九| 九九99在线| 久久五月天丁香| 日本www免费九九| BBWCUCKOLD精品熟妇| 五月婷婷av| 色婷婷综合亚洲| 久草婷妨| 久久婷婷东京热大香樵| 99爱爱网| 99久热在线精品| 亚洲成人在线综合| 伊人网碰碰| 六月色激情| 亚洲精品成人片在线播| 色婷婷情片| 十区AV| 91丁香婷婷综合资源| 午夜九九九九九九| 人人操人人爽成人AV| 亚洲精品网址| 国产脫衣舞一区二区三区| 婷婷va| 日本久久超碰| wwwss在线观看| www.yw尤物| 亚洲性受XXXX五月丁香| 色丁香综合影院| 久久婷婷五月综合色播| 国产成人99久久亚洲综合精品| 丁香五月婷婷俺也要去| 色色国产| 国产 码在线成人网站| 色婷婷在线视频| 亚洲网在线观看| 久久五月天影院| 亚洲色图啪啪| 九九久久精品| 影音先锋人妻出差| 欧美色97| 久久久久久人妻| 成人亚洲精品久久久久 | 色欲一区二区三区精品A片| 欧美五月停| 9 1大香蕉| 全高清无码视頻| 日本a片网址| 五月人妻婷婷| 天天综合网站| 久操婷婷| 婷五月天丁香婷五月| 91九色视频| 婷婷亚洲激情在线观看视频 | 日日天天天| 激情网五月婷婷| 久久hd| 人妻少妇色综合| 婷婷激情五月天激情小说| 伊人久久大香蕉网| 深爱激情五月天婷婷网| 色噜噜五月天| 97碰碰九九视频| www.maotanji.com| 丁香五月天BBw| 99九九在线视频| 成人做爰黄A片免费看直播室男男| 狠狠色婷婷丁香五月| 六月婷婷天天操夜夜爽视频| 岛国AV网| 丰满老熟妇BBBBB搡BBB| 午夜成人网站在线观看| 久久久久久久久久人妻| 久久久免费精彩视频| 在线中文字幕免费视频| 丁香五月婷婷亚洲色图| 色婷婷操逼| 91高潮喷水久久久久久久久| 99热在线里有精品| 天天久久狠狠色综合| 日韩啪啪视品| 狠狠色综合777| 婷婷午夜综合| 五月天婷婷色色首页| 五月婷婷色播网| 中文字幕在线不卡| 97干在线看| 天天干天天操天天干天天操天天干天天操 | 久久久com| 日韩AV大全| 成人做爰高潮A片免费视频| 无码髙清| 超碰人人在线观看| 2050人人操免费工开爱| 99黄色性生活| 九九九九综合| 久99视频在线观看| 综合色影院| 啪啪六月婷婷| www久久久久久久| 美女主播野战视步页| 丁香五月天之婷婷影院| 亚洲人妻av| 另类 在线| 欧美激情 日韩无码 婷婷 五月天| 日韩黄黄| 丰满少妇猛烈A片免费看观看 | 五月婷丁香| 在线观看av网站| 成人短视频免费| 激情综合五月色丁香婷婷| 色丁香五月婷婷| 自拍偷窥99热| 99热超碰在线| 久久最新色色色| 日本色色网| 99九九久久| 丁香激情久久| 国产xxxxx在线观看| 久久六月综合| 婷婷丁香五月天色播网站| 婷婷九月| 国产伊人五月天| 久久久人妻| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 欧美综合在线五月天色婷婷| 成人免费黄色短视频| 五六月丁香激情视频| 国产精品久久久久久久久久免费| 深爱五月亚洲| 久久九九一區| 原琪琪色影院| 亚洲色婷婷色| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 激情五月六月| 色婷精品91| 九九热AV| RenRenSe在线视频网站| 拍色综合| 五月丁香久久久久| 97丁香五月天| 精品视频网| 色激情五月天| 99丁香五月婷| av人人操| 爱射综合| 99热99这里有免费的精品| 殴美97色| 婷婷伊人綜合中文字幕| 五月婷在线色视频| 九九偷拍网| 久久免片| 色婷婷五月天视频在线| www99热| 婷婷99狠狠躁天天久久久九九九| 婷婷色五月天在线| 六月婷婷色综合| 激情人妻蜜夜系列区| 99re这里只有| 亚洲综合网激情五月天| 色婷婷综合影院| 思思热在线| 亚洲成人黄色网| 99网址在线看| 99热综合在线观看| 久久综合丁香激情五月| 丁香婷在线| 日韩性视频| 婷婷五月天99综合网站| AA丁香综合激情| 黄色笑话深爱激情网丁香五月婷婷啪啪啪啪啪| 丁香五月综合婷婷| 国产一级黄色影片,| 久久与婷婷| 狠狠干在线视频| 日韩久热| 97久久超级| 超碰99在线观看| 激情六月丁| 99re久热只有精品6在线直播| 激情五月天情色| 五月婷婷六月丁香| 色久女| 丁香五月综合在线视频| 99热久久这里只有精品| 国产午夜精品一区二区| 色婷婷五月婷婷五月婷婷五月| 亚洲超级碰| 大色鬼综合| 久久99久久99久久99人受| 色J香五月天| 婷婷丁香人妻| 99re思思| 九九热av| 26uuu精品一区二区| 99综合97| 日韩黄在免| 99综合视频| 超碰人人干| 色情五月综合婷婷| 99re热视频这里只精品5| 夜夜www| 色婷婷五月天中文字幕| 国产免费AV在线| 五月天丁香综合在线| 婷婷五月久久| 成人无码髙潮喷水A片| 五月丁香六月在线| 九月丁香婷婷| 丁香五月在线| 女人天堂AV| www.久久99| 五月婷六月| 可以看的av网站| WWW,五月| 草五月| 思思久久精品| 99久久极情精品一区| www,av好吊操| 天天爽天天爽视频| 亚洲va欧美va天堂v国产综合| 色播丁香婷婷五月激情| 狠狠色丁香久久婷婷综合五月| 亚洲综合五月天综合| 丁香五月aV| 六月丁香深深爱| 国产va在线视频| 97久久香草精品视频| 少妇久久诱惑视频| 17.c黄色| 狠狠摸狠狠摸| 99久久久免费| 日日爽夜夜爽| 日韩一区二区A片免费观看| 国精产品一区一区三区免费视频| 婷婷中文字幕欧美| 色播五月丁香综合| BT综合在线视频观看| 少妇搡BBBB搡BBB搡毛茸茸 | 婷婷五月花| 综合久久综合| 五月丁香| 91主播在线| 五月婷婷丁香啪啪| 就要爱综合| 开心四月婷婷在线色播播| 色五月丁香婷婷综合| 色噜噜在线| 婷婷六月丁香五月| 97色婷婷成人综合在线观看| 丁香六月婷婷| 亚洲视频码| 在线另类视频| 夜夜做天天爽| www.色五月| 日本丁香五月| www.1024久久| 九九av| 五月伊人视频在线看| va亚洲中文在线| www.99热视频| 91夫妻视频| 五月丁香激情综合啪啪| 26UUU欧美激情一区二区| 九色1区视频在线| 超碰无码318604| 五月开心婷婷中文字幕| 人人摸人人干人人做| 五月激情网站| 久久精品A片777777| 都市激情亚洲| 6月丁香婷婷激情| 五月婷婷片| 人妻精品一区二区三区| 色五月天 丁香| 九九精品在线视频观看| 色五XX| 97人人草| 婷婷五月天丁香成人社区| 婷婷色五月婷婷姐妹| 五月天婷婷视频| 五月丁香综合| 久久婷婷综合基地| 久久人妻伊人| 四川BBB搡BBB爽爽视频| 97久久人人| 亚州性爱99| 激情综合五月丁香| 综合超碰熟| 欧洲亚洲欧洲99久久| 9久久精品| 热婷婷av| 婷婷日日天天| 亚洲欧美成人在线| 丁香婷婷色色| 久久久久人妻网址| 九九色婷| 99久久a线观| 欧洲毛片基地c区| 激情婷婷丁香色五月| 五月天婷爱综合| 亚洲精品亚洲人成人网| 大香蕉五月丁香| 天天干电影| 97在线天堂| 五月亭亭激情综合| 99无码视频| 丁香五月天社区| 丁香花大香蕉婷婷综合| 五月天婷婷在线啪啪视频| 99re热视频这里只精品| 亚洲免费av在线| 舔色婷婷| 丁香婷婷午夜| 欧州色色| 91九色在线观看免费| 五月婷婷欲色| 久久人人做人人妻人人玩精品va| 插插插丁香五月婷婷| 久久久免费精彩视频| WWW久久久| 色婷婷97| 婷婷激情综合网| 97碰| 大香蕉综合在线| 超碰成人电影| 色婷视频| 美女五月天| 婷婷丁香五月天综合AV| 丁香五月天社区| 人妻狠狠操| 五月丁香综合啪啪| 婷婷5月开心6月| XX色综合| www.激情五月天| 婷婷不卡基地| 亚洲精品永久久久久久| 九九大香蕉黄色影院| 六月丁香色色| 色综合网上班开心婷婷久久| 99九九久久| 能看的av片| 91色综合网站在线| 亚洲成人婷婷| 五月婷婷色影院| 色五月婷婷丁香五月| 人妻性爱av网站| 无码色| 色五月视频无码播放| 色色五月婷婷狠狠| 另类激情综合| 操操啪| 国产真人做爰视频免费| 五月婷婷在线观看| 欧美婷婷九月| 激情AV| 五月天色综合服务平台| 婷婷五月天天激情| 91超碰在线播放| 日韩三级片一区二区| 超碰在线观看三级片| 激情综合网五月激情网| 成人丁香五月| 国产AV熟妇人震精品一品二区| 天天碰天天插天天操| 大香蕉人人网| 色婷婷视频在线| 精品福利911| 97碰在线免费观看| 九热视频| 天天爽天天日| 丁香五月AV在线| 日韩av高清| 伊人五月天在线| 亚洲婷婷激情888精品久| 日韩高清久久| 五月香婷婷| 色日本五月天| 国产99精品免费视频| 99久高清视频| 激情五月天婷婷| 五月天激情久久| 成片免费观看视频大全| 996热re视频精品视频这里| 成年人夜夜喷水| 日韩性爱AV| 婷婷色丁香五月| 99人人操人人摸| 亲子乱AV一区二区三区下载| 99热综合在线观看| 狠狠操狠狠插| 六月婷婷激情| 思思精品久久艹| 97在线视频观看| 伊人久久大香线蕉亚洲五月天,| 五月丁香啪啪综合| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 99精品久久久久久久婷婷| 五月丁香花成人社区| 97操操| 五月婷婷在线免费观看| 五月天婷婷色播在线网| 91丨九色丨大屁股| 色综合香蕉| 婷婷五月天免费99| 五月激情天| 婷婷五月天激情电影| 天天舔天天摸视频| 丁六月激情| 777色婷婷爱五月| 国产avapp 网| 婷婷五月a| 97碰碰叉| 六月婷婷毛片| 亚洲精品久久久久久久久久吃药| 99ri国产| 久久最新色| 天天爽天天爽视频| 亚洲色综合性| 中文字幕簧片| 色婷婷色五月另类综合| 最新色色五月天| 日本乱论99| 激情五月瑟瑟| 一区=区操屄高清大全av| 久久性爱网| 国产成人精品一区二区三区视频 | 超碰在线免费9| 大香蕉天堂色| 91操女| 亚洲精品成人片在线播| 免费一区二区三区| 婷婷五月丁香图片人人操| 色色色综合网| 五月开心网| 精品久久99| 婷婷舔| 国产在线6| 日日干日日色| 激情五月六月婷婷综合啪啪| 国内婷婷丁香社区在线播放| 人人色婷婷五月天| 欧美欧盟性爱网| 激情五月天婷婷直播| 99热九九这里只有精品| 久热99| 久久66er久久| 99热这里只有精品亚洲| 色婷婷视频| 99精品在| www.夜夜.com| 亚洲欧美一区二区三区爱爱动图 | 色播播五月天| A片一曲| 99精色| 激情综合婷婷| 色日本颜射| 九九无毛| 激情五月婷婷视频一区二区三区| 婷婷七月丁香色色| 亚洲欧美婷婷五月色综合| 久久er视频6| 五月婷人妻| 婷婷五月天成人网站| 天天日,天天干,天天操| 91丁香五月| 99re久久| 91色五月在线观看| 九九人人看| 婷婷黄色| 五月人妻婷婷| 丁香五月播播| 亚洲五月婷婷| 99热在线观看| 综合五月丁香97| 亚洲色久| 丁香五月天激情综合网| 亚洲无码猫咪| 丁香五月天婷婷91| 中文激情网| 我爱婷婷五月天综合88| 伊人啪啪网| 天天干狠狠| 国产婷伊人| 五月婷婷|欧美| 天天做天天爱天天日| 另类视频丁香五月| 亚洲成人影视在线观看| 欧美性猛交99久久久久99按摩| www色哟哟| 亚洲综合激情五月久久| 日韩乱玛久久| 啊V视频在线观看| 久久一级AV| 日本精品九九九| 婷婷五月天国产手机在线视频观看| 激情五月天激情综合网| 开心五月婷婷激情| 67194线路二在线观看| 亚州操操| 人人人操B超碰| 97人妻碰碰中文无码久热丝袜| 成人在线观看国产| 色综合色五月| 婷婷激情五月色综合| 大香网伊人久久综合| 天天射天天操天天干| 香蕉综合在线| 婷婷日日夜夜| 免费无码毛片一区二区A片 | 99rewww| 狠狠操狠狠| 激情五月丁香五月色| 六月丁香大香蕉| 天天舔天天摸天天透| 五月丁香婷婷综合网| ai97re99一本| 久久五月天婷婷视频| 久久九精品| 婷婷五月综合基地| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 深爱激情AV| 丁香六月婷婷综合激情欧美| 97偷拍对白视频| 日韩欧美四五区| 亚洲超碰在线| 日本99视频精品免费播放| 九九色99| 97碰碰碰免费公开在线视频| 激情综合国产| 久久久久久久久人妻| 人与禽A片啪啪| www.婷婷五月天,com| 9l视频自拍9l九色9l成人| 色约约视频一区二区三区四区五区| 五月婷婷综合网在线播放| 九月丁香婷婷| 天天操B| 久久99热这里只频精品6学生| 伊人九九68| 久热这里只有精品66| 国产精品美女久久久久AV超清| 99在线热| 91在线日| 啪啪婷婷五月天激情| 亚洲色婷婷五月天| www.99久久久久99| 99热精品中文字幕| 人妻六月天| 色色网站免费| 五月天堂六月丁香亚州中文字幕久久| 日韩av大全| 成人国产欧美大片一区| 久热九九| 丁香五月天堂| www久久99| 婷婷色中文字幕| 91Chinese在线| 丁香五月天堂网| 99久久婷婷| 99啪啪| 天天干天天操天天拍| 91操熟女| 五月丁香六月综合激情 | www.av骚货| 四色五月婷婷| 99这里只有| 五月天基地| 色99视频| 噜噜干日本| 青草五月天| 99热这里有精品6| 极品人妻VIDEOSSS人妻| 五月丁香婷婷中文网| 精品热青草| 99热这里只有精彩| 五月天婷婷丁香花| 日韩久久视频| 99色在线观看免费| 俺去也五月| 人妻VideOssS人妻高清| 中文av在线观看| 五月婷婷成人| 婷婷激情肏屄网| ..真实国产乱子伦对白在线_欧 | 激情婷婷五月社区| 久久免费丁香| 婷婷五月天色| 26uu| 中文字幕av久久爽| 激情九色| 婷婷欧美色| 五月婷婷综合激情小说| 几激情五月婷婷色五月色天堂| 久久与婷婷| 国产看真人毛片爱做A片| 久久66精品| 六月丁香婷婷色狠狠久久| 婷婷免费视频| 色五月亚洲开心网| 人妻久久婷婷| 欧美成人AAA片一区国产精品| 久久A V无码视频| 99黄色在线视频精品熟女| 五月天另类激情在线| 99r这里| www.99久久久| 开心色色五月天综合| 五月天激情网站| 琪琪秋霞| 丁香六月婷婷社区| 人人摸人人| 狠色色狠网| 99九九在线精品热动漫| 亚洲V国产V欧美V久久久久久 | 久久大香蕉| 一本综合丁香日日狠狠色| 99精品久久久久| 欧美日韩中文国产一区发布| 五月天激情视频| 我要色综合五月婷婷| 日熟女| 国产成人精品一区二三区熟女在线| 五月花在线观看视频| ,99视频久久| 日韩精品超碰在线观看| 国产乱妇乱子在线播视频播放网站| 日本婷色| 丁香五月天婷婷久久综合| 玖玖婷婷五月| 日韩三十六页| 99热只有| 日本色色网站| www夜夜操wwwcon| 噜噜色天天开心| 91av视频在线观看最新网址| 国产乱妇无乱码大黄AA片| 91视频五月丁香| 婷婷五月丁香综合人妻| 天天日天天干天天爱| 日本WWW九九九| 亚洲欧美成人在线观看| 99热这里只有精品8| 亚洲秘 无码一区二区三区妃光/1| 九九热短视频在线观看| 激情网战码亚洲A| 国产免费一区二区三区三州老师F1F1.CC| 九九99九九精品免费| 激情五月婷婷五月| 玖玖99免费视频| 这里只有精品免费视频| 久久这里只有国产精品视频| 丁香六月婷婷久久综合八月| 激情综合网激情五月天| 色五月丁香网| 亚洲无码99| 人妻aV在线| 99热免费精品| 色久综合天天做视频| 深爱五月激情网| 9色视频在线| 非洲一级AV| 月色色综合婷婷网| 色情网综合| WWW色五月| 9色91视频| 最近中文字幕2019视频1| 九九av| 欧美激情综合色综合啪啪五月| 日日夜夜天天综合| 天天爽天天日天天舔| 六月丁香婷婷在线波多| 亚洲色情激情丁香五月| 天天噜天天爱| 天天爱天天做天天舔| 婷婷六月丁香在线| 九九这里只有精品在线视频| 久久视频婷婷视频| 亚洲午夜视频| 亚洲天堂爱爱| 五月婷婷av| 五月婷婷色色色| 9久视频| 久久久久久综合88| 五月丁香六月婷| 狠狠干狠狠色| 婷婷五月天播| 午夜 外网 精品 在线| 日韩黄黄| 国产熟女日日骚五月丁香爱| 五月婷婷欲色| 热99AV网站| 五月丁香六月欧美综合网站| 久久99热免费最新版| 婷婷五月,偷窥偷拍网| 中文字幕激情综合| 九九综合九九| 九九热精品| 狠狠CAO日日穞夜夜穞AV| 中日韩美欧成人一区二区精品在线| 国产69久久久欧美黑人A片| 黄网在线免费观| av超碰在线| 色欧美影院| 丁香六月婷婷| 狠狠干总合| 激情五月狠狠| 久久婷婷五月综合啪| 五月天精品视频| 99色视频| www日本熟妇99在线视频| 久久女人九九| 丁香狠狠色婷婷| 六月婷婷网| 丁香五月天视频在线播放| 久久人妻久久| 亚洲视频五区| 26uuu国产| 午夜微拍福利| 亚洲综合草草| 亚洲天堂AV免费片| 五月婷婷开心亚州在线| 天堂网啪啪| 婷婷久久久| yw国产AV| 國語久久婷| 天天噪夜夜爽| 狠狠色综合网| 91热爆在线| 亚洲天堂制| 色综合综合色| 六月色五月天天婷婷| 色五月激情网| 337p大胆噜噜噜噜噜91Av| 亚洲精级| 色噜噜狠狠色综合无码久久欧美| renrencaoav| 精品网站:999WWW| 99色视频| 九九综舍久久| 婷婷五月AA五月在线| 欧美色性色好| 伊人婷婷五月天| 丁香六月综合激| 亚洲人人96@| 99这里只有精品视频| 色色色网站| 久七香蕉| 色五月婷婷大| 日本精品99网站| 伊人喵咪a V| 五月天无码| 婷婷色综合| 婷婷99狠狠躁天天久久久九九九| AV动漫不卡无码免费| 婷婷色五月天综合网| 亚洲天堂久久| 日撸夜撸日操| 久久婷婷五月综合激情国产| 伊人在线视频| 嫩模aV在线| 丁香五月婷综合网| 日本精品人妻无码77777| 超碰9| 婷婷五月六月| 国产精品第一国产精品| 啪啪啪大香蕉| 丁香五月开心亚洲| 精品AV无码超碰| 情婷婷五月天在线| 婷婷五月天激情四射| 伊人五月综合网| 快色t v在线入口| 久久亚洲婷婷| 丁香五月婷婷色情综合| 第四色首页| 精品欧美性爱超级爽| 四色综合网| 婷婷五月花| 久久免费丁香| 99这里只有| 玖久久网站| 99亚洲大片精品永久在线观看| 亚洲日日操| 美女网黄| 九九 激情 网| 日日噜噜久久婷婷五月天| 六月天无码网址| 久久五月视频| 久热久色| 深爱激情六月天| 五月丁香久久网| 香焦网五月天| 五月婷婷婷| 婷婷网五月天| 色原狠狠综合| 五月丁香婷婷综合视频| 另类亚洲电影| 婷婷丁香五月综合激情视频| 在线成人va| 热热久久久久久久久| 欧洲MV日韩MV国产| 色综合色综合色综合高潮| www久| 激情五月天综合图片小说网站| 丁香五月综合| 国产伊人五月天| 婷婷五月天av| 五月丁综合在线观看| 精品香蕉99久久久久网站| 五月激情精品视频| 亚洲精品一区中文字幕乱码| 婷婷综合成人五月天| 久久婷婷五月天大香蕉| 色丁香五月婷婷在线| 五月丁香综合网| 成功精品影院|