首頁 Tags
"Knowledge-Card" 2026-10-19
pytest fixture(測試夾具)
讀到測試函式的參數沒有任何呼叫端傳入、或要讓多個測試共用準備與清理步驟時:pytest 用參數名稱找出 fixture、在測試前後執行準備與清理 2026-10-19
Single Responsibility Principle(單一職責原則)
要判斷一個模組、類別或文件該不該拆,或讀到「一個類別只做一件事」這種說法時:單一職責的定義是改變的理由,理由以改動的種類計數,提出變更的人用來辨認種類 2026-08-31
Relation(關係)
看到 SQL 教材說「組成一個關係」而不確定它指的是不是資料表時 2026-07-06
Beacon
瀏覽器在頁面事件發生時主動送出、送出後不等回應的一則事件回報請求,用於靜態站把資料回傳給接收端 2026-06-19
Funnel Analysis
說明追蹤使用者在多步驟流程中每一步的轉換率和流失率的分析方法 2026-06-19
Screen State Matrix(畫面狀態矩陣)
說明用四欄表格(顯示/可用操作/進入條件/退出路徑)系統性地暴露畫面導航缺口的設計工具 2026-05-06
CI Pipeline
說明持續整合如何在合併前自動驗證變更品質與相容性 2026-10-19
Divergent Change(發散式變更)
同一個模組總是因為不相干的需求被修改、或並行開發的人一直在同一個檔案上等待彼此時:這是違反單一職責原則在修改紀錄上的樣子 2026-10-19
monkeypatch(測試期間的替換)
用 monkeypatch 或 unittest.mock.patch 替換了函式卻沒有生效、或把模組拆成套件之後原本的替換失效時:替換要對準程式執行時查找的那個名字 2026-08-31
Query Plan(執行計畫)
想知道一段查詢實際會怎麼被執行、或被要求「先看計畫」時 2026-07-06
Web App Deployment(Web App 部署)
把 Apps Script 專案掛成一個有公開網址、可被任何 HTTP 請求呼叫的端點時的部署模型與存取設定 2026-06-19
Gate(UX)
說明使用者操作流程中「必須通過才能繼續」的關卡,以及成功/失敗/不確定三條路徑的設計責任 2026-06-19
Redaction
說明在事件資料離開 client 之前把敏感欄位的值替換成遮罩或移除的機制 2026-05-06
CD Pipeline
說明持續交付如何把已驗證產物推進到目標環境 2026-10-19
Shotgun Surgery(散彈式修改)
每做一個小變更都要同時改好幾個檔案、漏改一處就出錯,或依行數拆完檔之後同一個主題的修改散到好幾份時:這是同一個改變理由被拆散到多個模組的壞味道 2026-08-31
Query Optimizer(查詢最佳化器)
想知道是誰決定了執行順序、或為什麼同一段查詢換個時間變慢時 2026-07-06
doGet / doPost
Apps Script web app 的兩個進入點函式,分別接住 GET 與 POST 請求,決定端點收到請求時執行什麼 2026-06-19
Cohort Analysis
說明把使用者按共同特徵分群、比較不同群組行為差異的分析方法 2026-06-19
Fallback(UX)
說明 gate 未通過時使用者的替代路徑,和 backend fallback(server-side 降級)的語意區別 2026-05-06
Required Checks
說明 pull request 的必要檢查如何作為合併 gate 2026-10-19
Open-Closed Principle(開放封閉原則)
要在新增一種格式、一種類型或一種規則時不必改動既有程式碼,或要判斷一個擴充點值不值得先做時:模組對選定的那一類變更封閉,靠的是使用端只依賴一個固定的抽象 2026-08-31
Outer Join(外連接)
想確認 LEFT / RIGHT / FULL 各自保護哪一側、或連接之後有些人從名單上消失時 2026-07-13
Debounce(防連點)
說明合併短時間內重複觸發的技巧,以及 leading-edge 與 trailing-edge 兩種執行語意在按鈕防連點上的差別 2026-07-06
Execution Quota(執行配額)
Apps Script 個人帳號的執行時間、同時併發與觸發器每日總時間上限,決定免費膠水層能承受多大的量 2026-06-19
RFM
說明用 Recency / Frequency / Monetary 三個維度把使用者分成可操作群組的分群方法 2026-05-06
Artifact
說明 CI/CD 中可被驗證、保存與發布的交付產物 2026-05-06
Artifact Handoff
說明測試與部署如何共用同一份可追溯產物 2026-10-19
DRY(Don't Repeat Yourself)
看到兩段長得一樣的程式碼想合併、或同一條規則改了一處而另一處忘了改時:DRY 管的是知識的重複,判斷兩段程式碼該不該合併要看它們是不是因為同一個理由改變 2026-08-31
Index(索引)
看到執行計畫寫著走索引或建索引、想知道那是什麼時 2026-07-13
Doherty Threshold(400ms 門檻)
說明 400ms 回應時間門檻的出身(IBM 生產力研究)、現代設計慣例的轉譯過程,以及它跟 Nielsen 感知門檻的量測差異 2026-07-06
Time-Driven Trigger(時間觸發器)
讓 Apps Script 在固定時間自動執行的排程機制,把被動等呼叫的膠水層變成主動定時跑的任務 2026-06-24
Error Fingerprint
從 error 事件的 type、normalized message、stack trace 計算 hash,把相同根因的 error 歸為同一 error group 2026-05-06
Environment Protection
說明目標環境的審核、權限與放行條件如何保護發布 2026-10-19
Cohesion(內聚)
要判斷一個模組裡的元素放在一起的理由夠不夠強、或讀到「高內聚、低耦合」想知道內聚量的是什麼時:內聚是模組內部元素彼此相關的程度,依放在一起的理由分成由弱到強的幾種 2026-08-31
NULL(空值)
查 NULL 在比較、計數與分組裡各自怎麼表現時 2026-08-03
Browser Fingerprint(瀏覽器指紋)
由多個單獨無害的瀏覽器環境屬性組合而成的裝置特徵集合,決定自建統計蒐集判別訊號時的能力上限 2026-07-16
Touch Target(觸控目標)
實機測試點列表行文字卻無反應、或可用性測試觀察到使用者重複點擊同一行時使用。觸控目標有兩層要求:尺寸不小於平台底線、範圍涵蓋視覺暗示的可點區域——後者在列表行展開/收合場景最常被忽略。 2026-06-24
Backpressure
下游處理能力不足時向上游回傳「慢下來」訊號的流量控制機制 — 監控系統中 collector 用 HTTP 429 向 SDK 傳遞背壓 2026-05-06
Preview Environment
說明 pull request 變更如何在隔離部署環境中被驗證 2026-10-19
Coupling(耦合)
改一個模組總是連帶要改另一個、或要判斷兩個模組之間的依賴可不可以接受時:耦合是模組之間互相依賴的程度,依兩個模組共享什麼分成由強到弱的幾種 2026-08-31
Aggregate Function(聚合函數)
想知道為什麼聚合只能寫在某幾個位置、或連接之後的總和算出來不對時 2026-08-03
Executions(執行項目)
Apps Script 平台記錄每一次函式執行的時間、耗時與狀態的頁面,用來判斷請求究竟有沒有抵達接收端 2026-07-16
Modal(模態)
UI 元素阻斷背景互動、要求使用者回應後才能繼續 — 區分 Dialog 與 non-modal Bottom Sheet 的關鍵行為屬性 2026-06-24
Sampling
在事件產生階段按比例丟棄部分事件降低管線負載 — 分靜態取樣(config 固定比例)和動態取樣(背壓觸發自動降低) 2026-05-06
Rollout Strategy
說明新版本如何以可控節奏推進到全部流量 2026-08-31
Subquery(子查詢)
看到括號裡還有一個 SELECT、想知道它什麼時候算、算幾次時 2026-07-17
Affordance(操作暗示)
說明介面元素透過外觀傳達「可以對它做什麼」的訊號 — 可點、可捲、可拖的暗示與實際行為對齊時介面才可預測 2026-06-24
Rate Limiting
限制每個 client 在單位時間內可送出的事件數量 — 防止單一 SDK bug 或偽造流量消耗整個 collector 的處理能力 2026-05-06
Rollback Strategy
說明發布異常時如何快速回到已知可用狀態 2026-10-23
First-party Cookie(第一方 cookie)
盤點網站寫下的識別碼 cookie、比對追蹤碼的 cookie 期限,或判斷某個 cookie 受不受瀏覽器的第三方 cookie 限制時 2026-08-31
Schema(命名空間義)
看到 permission denied for schema、或想確認這個字指的是表結構還是命名空間時 2026-07-17
Fail-Safe Default(安全預設)
說明保護機制本身故障時系統倒向哪個方向的設計決策 — 預設倒向不可逆性低的那邊,確認 UI 壞掉不該讓破壞性操作靜默通過 2026-05-06
Deployment Dry Run
說明發布前如何用預演檢查部署條件與風險 2026-10-23
Headless Browser(無頭瀏覽器)
用 Playwright 或 Puppeteer 測追蹤碼、分析報表裡的機器流量,或自建統計與商業追蹤碼的訪問數對不上時 2026-10-19
Progressive Disclosure(漸進式揭露)
畫面、設定頁或規則文件放了太多選項與細節、使用者每次都要先跳過用不到的部分時:把常用的內容留在初始層、少用的移到需要時才展開的次要層 2026-09-01
Query Statistics(統計資訊)
看到「先跑 ANALYZE」、或同一段查詢沒改而某天變慢時,查這一份資料是什麼、誰在用它 2026-05-06
Migration
說明資料或結構變更如何在服務不中斷前提下受控推進 2026-10-23
Autocapture(自動事件收集)
盤點網站實際送出哪些事件與內容、報表裡出現網站沒有呼叫過的事件,或在手動埋點與自動收集之間取捨時 2026-09-01
DDL 與 DML(定義結構與動資料)
看到「這個帳號只需要 DML 權限」或遷移文件把兩者分開講時,查這條界線切在哪裡 2026-05-06
Branch Protection
說明主線分支如何以規則保護合併與發布前置條件 2026-09-01
DataFrame(資料框)
SQL 教材拿 pandas 或資料框當對照時,查 DataFrame 是什麼、它與資料表差在哪 2026-05-06
Readiness / Health Check
說明服務存活與可接流量判斷在部署中的不同責任 2026-09-01
Relational Algebra(關聯代數)
看到「子句其實是某個運算」或想知道 SQL 的規則從哪裡來時,查這一層在底下的是什麼 2026-05-06
Container Registry
說明容器產物儲存、權限與推進流程在 CD 中的責任 2026-09-01
Constraint(約束)
看到「這個保證要來自約束而不是來自習慣」,或想確認某一欄會不會出現 NULL 時,查這一層由誰擋 2026-05-06
App Signing
說明行動與桌面應用的簽章憑證如何影響發布能力 2026-09-01
Sargable(可走索引的條件形狀)
索引存在而計畫仍走全表掃描時,查條件的寫法有沒有擋住那個索引 2026-05-06
Flaky Test
說明非決定性測試如何降低 CI gate 信任度與治理方式 2026-09-01
Cartesian Product(笛卡兒積)
看到 CROSS JOIN、或結果的列數遠多於預期時,查這個運算什麼時候會被展開 2026-05-21
Backfill
說明資料處理與 migration 中如何受控補算歷史資料 2026-09-02
Database Engine(資料庫引擎)
文章說「引擎決定」「換一家引擎就不同」時,查那是哪一個層次的決定 2026-05-21
Checkpoint
說明長時間任務如何記錄進度以支援接續、重跑與事故修復 2026-09-02
Semantic Model(語意模型)
文章說「模型定死」「符合語意模型」時,查那套規則是什麼、由誰保證 2026-05-21
Rerun
說明 CI/CD 與 data pipeline 中重跑任務前需要判斷的輸出語意與副作用 2026-09-02
Cardinality 與 Selectivity(基數與選擇率)
看到「這一欄基數太低、索引沒用」,或想知道最佳化器憑什麼決定要不要走索引時,查這兩個數各自量什麼 2026-05-21
Image Digest
說明 container image digest 如何作為不可變產物身分,支撐掃描、推進與 runtime 追溯 2026-09-02
Semi-join 與 Anti-join(半連接與反連接)
看到 EXISTS 或 NOT EXISTS 時,查它在代數裡對應哪個運算、以及列數上限為什麼是左邊那張表的列數 2026-05-21
SBOM
說明 Software Bill of Materials 如何揭露 artifact 內含元件,支撐供應鏈掃描與例外治理 2026-05-21
Release Channel
說明 stable、beta、internal 等發行通道如何控制 artifact 接觸到的使用者範圍 2026-05-21
Update Feed
說明桌面與客戶端應用如何透過更新來源取得已簽章版本與回復路徑 2026-05-21
Infrastructure Drift
說明真實基礎設施狀態與 IaC 宣告分叉時的偵測、判讀與修復責任 2026-05-21
State Lock
說明 IaC apply 如何用狀態鎖避免併發變更覆寫基礎設施狀態 2026-05-21
Function Alias
說明 serverless function alias 如何把穩定入口指向特定版本並支援流量切換與回復 2026-05-21
Event Source
說明 serverless 與事件驅動流程中觸發來源如何影響 retry、dead-letter 與回復策略 2026-10-22
Reproducible Build(可重現建置)
要確認一個建置產物沒有在建置過程中被改過、或建置主機被入侵之後要判斷入侵期間的產物能不能保留時,查同一份原始碼能否建出逐位元相同的產物 2026-04-23
TLS / mTLS
說明傳輸加密與雙向數位憑證驗證如何保護跨邊界資料流 2026-07-04
Correlated Failure
以為獨立的多個元件共享一個隱藏的失效觸發器、在同一時刻一起壞;冗餘副本、觀測系統、跨區部署都可能共命運 2026-07-04
Hyrum's Law
使用者夠多時、介面的一切可觀察行為都會被依賴 — 不管你承諾了什麼;契約設計要主動給機器可讀欄位、否則人類可讀欄位會被迫變成契約 2026-05-11
Validation Query
說明遷移、回填與修復期間如何用查詢證明資料語意是否一致 2026-05-11
Read Compatibility
說明資料或服務演進期間讀取路徑如何同時支援新舊語意 2026-05-11
Fallback Read
說明讀取路徑切換失敗時如何暫時回到舊資料語意或舊讀取來源 2026-05-11
Cutover Window
說明正式切換發生的觀察窗口、停止條件與回退判讀範圍 2026-05-11
Mapping Table
說明遷移或轉換期間如何把舊語意明確對應到新語意 2026-05-11
Rollback Window
說明變更進入 production 後還能用哪種方式回退或改路線的時間與條件 2026-05-11
Fail-forward
說明無法回到舊狀態時如何用受控前進完成修復 2026-05-11
Stop Condition
說明變更、實驗或事故處理何時必須暫停、回退或改路線 2026-05-11
Gate Decision
說明 release gate 如何把證據轉成放行、暫停、回退或補證據的決策 2026-05-11
Rollback Condition
說明決策執行後出現哪些訊號時要撤回、回退或改路線 2026-05-11
Time Range
說明證據、查詢與事故判讀如何用時間窗保留可回放上下文 2026-05-11
Query Link
說明證據包如何保存可重跑查詢入口,而不是只保留截圖或口頭結論 2026-05-11
Data Quality
說明證據欄位如何標示 completeness、freshness、sampling 與資料限制 2026-05-11
Confidence
要在證據包、事故候選紀錄或決策紀錄上標示證據可信到什麼程度,或遇到 needs follow-up 與 external-only 兩種值不知道怎麼對應時,查各等級的意思與兩套值域的關係 2026-05-11
Known Gap
說明證據包如何明確保存已知缺口,避免下游高估證據完整性 2026-06-18
Outbound Tunnel
反向隧道把出站連線轉成可達入口、與傳統 port-forward 的責任倒轉 2026-07-20
Data Repair
對帳抓到差異之後、要把錯誤資料改回正式狀態時——dry-run、稽核與可逆設計決定這次修復是收斂還是擴大污染 2026-07-20
Freshness Window
每類資料能容忍多久的不新鮮?依欄位風險分級定義過時窗口、取代單一全域 TTL 2026-07-20
Origin Protection
快取失效或冷啟動時、miss 流量集中打回正式來源會不會壓垮它——回源保護的手段組合與監控面 2026-07-20
Cache Key Versioning
說明快取 key 結構本身版本化如何讓新舊值格式共存,用漸進收斂取代一次性替換 2026-07-20
Cache Serialization Migration
說明快取 value 編碼格式演進時如何用雙軌解碼避免舊資料變成無法讀取的錯誤 2026-07-31
Same-Origin Policy
前端送得出請求卻拿不到回應、或要判斷跨站防護的前提還在不在時,用來定位瀏覽器隔離的是讀取而非送出 2026-07-31
Cross-Site Request Forgery
存取憑證靠瀏覽器自動附上時,用來判斷攻擊者不必讀到憑證就能做到什麼、以及各層防護的缺口分別落在哪 2026-07-31
Cross-Site Scripting
要判斷存取憑證放在 JavaScript 讀得到的位置有多大代價、或哪些防護以「攻擊者讀不到」為前提時,用來定位這個攻擊面取得的是整個來源的能力 2026-07-31
Passkey
要用金鑰對取代密碼、或判斷已導入的 passkey 實際擋掉了什麼時,用來定位它的保護落在哪一段、上限由哪條路徑決定 2026-07-31
Registrable Domain
判斷兩個主機名算不算同一方、或某個跨站防護的信任邊界實際涵蓋誰時,用來定位「站」的切點在哪一層 2026-07-31
Identity Provider
登入要交給外部系統時,用來定位對方承擔了什麼、沒承擔什麼,以及這邊還剩下哪些責任 2026-07-31
Pepper
威脅模型含「資料庫被拿走而伺服器沒有」時,用來判斷這一層值不值得加、以及它的輪替成本由什麼決定 2026-07-31
Memory-Hard Function
要解釋為什麼某個密碼雜湊比另一個抗硬體、或判斷沒見過的構造落在哪裡時,用來定位它向攻擊者收的是哪一種費 2026-07-31
Content Security Policy
要限制注入成立之後那段程式碼能做什麼、或判斷既有政策實際擋住了誰時,用來定位它承擔哪一層而不承擔哪一層 2026-08-11
Go/No-Go
說明在不可逆變更前的固定時點,由各職能分持一票宣告放行或停止的決策制度 2026-08-17
Threat Model
說明系統如何被攤成資產、邊界與攻擊者能力,讓風險的位置可以逐項列舉 2026-08-17
Coverage vs Completion Rate(覆蓋率與完成率)
說明同一個百分比的分母由誰列舉,決定它衡量的是全體的覆蓋率還是管理範圍內的完成率 2026-08-18
Security Control Domain(資安控制面)
說明一條資安風險的防守責任歸給哪一類控制,以及這個「控制面」與基礎設施的 control plane 同名不同義 2026-09-01
ORM(Object-Relational Mapping)
看到程式用類別與方法描述查詢時,查它交出去的是什麼、以及哪些行為在程式碼上讀不出來 2026-10-02
Cache-Control(快取控制標頭)
看到回應帶 Cache-Control、或要決定某個回應能被誰保存、保存多久、使用前要不要先問 origin 時,查這個標頭各指令的分工 2026-10-02
Vary(快取鍵變體標頭)
同一個網址會依請求標頭回不同內容、或快取命中率異常低時,查這個回應標頭怎麼把請求標頭加進快取鍵 2026-10-02
Heuristic Freshness(啟發式新鮮度期限)
回應沒寫任何快取期限卻仍被瀏覽器或 CDN 保存、改了內容使用者卻還拿到舊版時,查快取自己估期限的規則 2026-10-02
Admission Control(准入控制)
要決定湧入的使用者誰能進入、什麼時候進入時,例如開賣的虛擬等候室、waitlist、事前註冊與抽籤;和負載卸除、限流的分工,以及和 Kubernetes admission controller 的區分 2026-10-05
Minimum Supported Version(最低支援版本)
要讓舊版行動 App 停止使用時:服務方保存的版本下限、客戶端啟動檢查與伺服器端拒絕兩層各自涵蓋哪些版本,以及提高它之前要查的使用者數與作業系統下限 2026-10-05
Remote Config(遠端設定)
要讓已安裝的行動 App 不經更新就改變行為時:設定值由裝置向服務方讀取、有讀取間隔與快取、讀不到時用內建預設值、同一個值會被多個 App 版本讀到 2026-10-05
Pod
在 Kubernetes 的輸出或設定裡看到 Pod,要知道它和容器的關係、為什麼它的 IP 與名稱會變、以及誰負責替補它時 2026-10-05
Kubernetes Service
在 Kubernetes 裡要讓其他服務連到一組會換 IP 的 Pod、或排查請求為什麼沒有送到 Pod 時:Service 如何用標籤選 Pod、ClusterIP 與 DNS 名稱、EndpointSlice 與 ready 狀態 2026-10-05
Ingress
要讓叢集外的 HTTP 請求依網域與路徑進到 Kubernetes 裡不同的服務、Ingress 建立了卻連不進去、或 ingress-nginx 結束維護後要換 controller 時:Ingress 物件與 Ingress controller 的分工、IngressClass,以及 Gateway API 的關係 2026-10-05
Control Loop(控制迴圈)
讀到「期望狀態」「reconcile」,或 Kubernetes 的 apply 成功了服務卻沒起來時:控制迴圈如何持續比對期望狀態與實際狀態並修正落差,以及它和只在下指令時比對一次的宣告式工具差在哪 2026-10-05
Namespace(命名空間)
看到 kubectl 的 -n、kube-system、default,或跨 namespace 的 Service 名稱連不到時:namespace 劃分物件名稱的範圍、預設用哪一個、對 DNS 名稱與權限的影響 2026-10-05
Taint 與 Toleration
節點故障後 Pod 等了幾分鐘才搬走、Pod 排不上某些節點、或看到 node.kubernetes.io/not-ready 這類鍵名時:taint 如何把 Pod 擋在節點外或趕出節點、toleration 如何讓 Pod 容忍它 2026-10-23
Kubernetes RBAC(角色型存取控制)
要決定誰能對叢集裡的哪些物件做什麼、或查某個帳號為什麼被拒絕或為什麼權限過大時,查 Kubernetes RBAC 的 Role、ClusterRole、binding 與動詞資源的組成 2026-10-06
Cursor(游標、查詢結果的讀取物件、接續標記)
在程式碼、API 或文件裡看到 cursor 這個字,要分辨它指的是畫面上的游標、資料庫逐筆讀取查詢結果的物件,還是分頁回應裡記錄從哪裡接續的標記時 2026-10-23
Pod Security Admission(Pod 安全准入)
Pod 因為安全設定被拒絕建立、要限制某個 namespace 不能跑 privileged 或掛載主機目錄的 Pod,或評估 kubectl debug 這類需要高權限的工具在叢集裡能不能用時,查 Pod Security Admission 的三個等級與 namespace label 2026-10-06
SQL Injection(SQL 注入)
看到程式把變數拼進 SQL 字串、或在審查資料存取的程式碼時,查它的值是用佔位符傳給資料庫,還是成了 SQL 文字的一部分 2026-10-23
Privileged Container(特權容器)
在 Pod 設定裡看到 securityContext.privileged=true、要判斷某個除錯或系統元件為什麼需要它,或評估誰能建這種 Pod 等於持有節點 root 權限時,查特權容器能做什麼與它的權限邊界 2026-10-06
Prepared Statement(預先解析的查詢)
在資料庫的語句記錄裡看到 stmtcache_、pdo_stmt_ 這類具名的查詢被重複執行,或應用程式接上 PgBouncer 交易模式後出現 prepared statement already exists、does not exist 的錯誤時,查它在哪一條連線上建立、存在多久 2026-10-06
Soft Delete(軟刪除)
資料表有 deleted_at 欄位、ORM 的刪除改成 UPDATE,或刪掉的資料再建一次卻撞唯一約束、報表數字和頁面對不上時,查軟刪除的過濾條件由誰加、哪些路徑沒有加 2026-10-06
Connection Leak(連線洩漏)
請求越來越慢、最後在等連線時逾時,而資料庫本身負載不高,或連線池使用中的數量一直停在上限時,查哪一段程式借了連線沒有還 2026-10-06
Transaction Propagation(交易傳遞)
多個 repository 的寫入要在同一個交易裡完成,或一段程式在交易失敗後仍留下部分寫入、交易裡的某個查詢卡住直到逾時時,查交易物件怎麼傳到每一個資料存取呼叫 2026-10-06
Query Log(SQL 語句記錄)
要確認 ORM 或資料存取函式庫實際送出了哪些 SQL、交易的 begin 與 commit 有沒有送出,或在正式環境追查慢查詢與某一筆資料被誰改過時,查應用程式端與資料庫端的語句記錄各記了什麼 2026-10-06
Advisory Lock(建議鎖)
多個服務實例的排程要確保同一時間只有一份在跑,或排程每一輪都跳過、PostgreSQL 的伺服器日誌出現 you don't own a lock 時,查建議鎖持有在哪一條連線、哪一個交易上,以及 session 層級與交易層級(pg_try_advisory_xact_lock)的差別 2026-10-06
Lambda Architecture(批次層與即時層)
統計數字要即時看得到、又要能依原始事件重算成正確值時,查兩份計算各自負責哪一段時間、即時數字與報表對不上時以哪一份為準,以及即時層遺失資料的影響範圍 2026-10-06
Partial Index(部分索引)
列表或查詢只看表裡的一小類列、而其餘大宗資料讓索引又大又讀得慢時,查部分索引的寫法、查詢要帶什麼條件規劃器才會用它,以及排除條件要放在哪張表 2026-10-06
Table Bloat(表膨脹與 VACUUM)
大量更新或刪除之後表的檔案沒有變小、autovacuum 越跑越久、或查詢讀的頁數比資料量該有的多時,查舊版本的列怎麼累積、VACUUM 與 VACUUM FULL 各拿回什麼,以及大表要量的清理指標 2026-10-12
Prometheus Exporter(指標轉接程式)
要監控一個不會自己輸出 Prometheus 指標的系統(主機、容器、資料庫、快取、Nginx)時,查 exporter 做什麼、它和應用程式自己開的 /metrics 差在哪,以及 exporter 讀得到資料卻缺標籤、或者讀不到它所在層以外的機器時怎麼發現 2026-10-12
Noisy Neighbor(共用資源的鄰居干擾)
服務沒有改動、自己的用量也不高卻整體變慢,或者同一台主機、同一台實體機上的其他工作負載一忙就跟著慢時,查共用資源的競爭從哪裡來、為什麼服務自己的監控看不到,以及隔離由淺到深有哪些做法 2026-10-12
Load Average(負載平均)
看到 uptime 或 node_load1 的數字、要判斷主機是不是在排隊時,查 load average 算的是什麼、除以核心數怎麼讀、Linux 為什麼把等磁碟的行程也算進去,以及在虛擬機與容器裡量到的值代表誰 2026-10-12
CPU Steal Time(被虛擬化層拿走的 CPU 時間)
雲端虛擬機的服務沒有改動、CPU 用量也不高卻變慢時,查 steal time 記的是什麼、怎麼從 node_exporter 算出比例、什麼環境量不到它,以及升高時的處置 2026-10-12
cgroup(控制群組)
設定容器的 CPU 與記憶體上限、讀 cAdvisor 的指標、或查容器為什麼被暫停與結束時,查 cgroup 是什麼、v1 與 v2 的差別,以及 Docker 與 Kubernetes 的參數各自對應到它的哪個控制檔 2026-10-13
Alert Inhibition(告警抑制)
同一個原因觸發一串症狀告警、值班人員被淹沒,或要在 Alertmanager 寫 inhibit_rules 時,查抑制做什麼、它和分組與靜音的差別、哪些症狀適合被抑制,以及它安靜失效的幾種條件 2026-10-13
Relabeling(標籤改寫)
Prometheus 的讀取對象少了、多了、帶錯標籤,或想在寫入前丟掉某些指標時,查 relabel 規則在哪幾個時間點執行、各自讀得到哪些標籤,以及規則沒有生效時怎麼逐條看出是哪一條規則丟掉或改寫了它 2026-10-27
Open and Closed Workload Model(開放與封閉負載模型)
設計壓測的注入方式、要在固定到達率與固定同時在線人數之間選一種,或壓測量到的延遲低於 production、懷疑負載工具少送了請求時讀 2026-10-27
Load Generator Saturation(施壓端飽和)
壓測的吞吐量停在某個值、延遲上升,要確認瓶頸在受測服務還是在執行負載工具的那幾台機器時讀 2026-10-28
TLS Handshake(TLS 握手)的成本與連線重用
壓測量到的上限落在負載平衡器或反向代理的 CPU、Connect Time 隨負載上升,或要判斷負載工具該不該在每一輪重建連線時讀 2026-10-28
Gevent Monkey Patching(gevent 的猴子補丁)
Locust 的吞吐量從加壓一開始就不隨使用者數增加而 worker 的 CPU 很低、一個 worker 程序的 CPU 到頂,或要判斷某個 Python 函式庫是否會卡住 Locust 的 worker 時讀 Tarragon (CC BY 4.0) | 使用 hugo 製作