為什麼GraphQL效能監控很難 - Marc-AndréGiroux
衡量API效能對於實現正確性非常重要,而對於GraphQL也是如此。實際上,有些人可能因為效能問題而使用GraphQL,並用一個GraphQL呼叫替換多個呼叫。但是你的GraphQL查詢實際上更快嗎?這就是監控它們的重要性。
如果您已習慣基於端點的HTTP API,則可能之前已成功完成某些監視。例如,監控API效能的最基本方法之一是測量響應時間。
不幸的是,我們很快發現,測量GraphQL端點的響應時間幾乎不能讓我們深入瞭解GraphQL API的執行狀況。讓我們看一下超簡化的例子。想象一下,您維護一個當前提供簡單查詢的GraphQL API:
query { viewer { name bestFriend { name } } } |
現在,一個新的API客戶端開始使用我們的GraphQL API,但是不同的更大的需求:
query { viewer { friends(first: 1000) { bestFriend { name } } } } |
第二個實際上是請求超過一百個物件,而第一個只查詢一個物件。如果您正在監視GraphQL端點,您會看到響應時間大幅增加。這是因為我們返回的響應確實有點慢,因為我們提供了更復雜的查詢!
如果您正在管理公共API,或者使用大量客戶端和查詢的非常大的內部API,由於查詢的基數較高,監控效能可能並不容易,隱藏在其中。然後我們必須找到其他方法。
一種常見的方法是將我們的思維方式從監控查詢轉變為監控解析器,其中計算單個欄位。然後我們可以快速檢視欄位是否表現緩慢。這種方法存在一個主要問題,這使得使用這種方法很難準確地監控GraphQL API的效能:延遲/批量載入
我們如何確定GraphQL端點的響應時間對於特定查詢來說是否太慢。可以構建類似於慢查詢日誌的東西,以幫助工程師找出哪些查詢執行緩慢。
是否能找到查詢複雜性和查詢執行時間之間的關係。如果我們發現它們以特定方式相關,我們理論上可以檢測到異常。例如,具有高執行時間的低複雜性查詢可能表示我們需要仔細檢視查詢的執行情況。
大規模的GraphQL監控真的很難。現在沒有太多工具可以幫助我們解決這些問題,但我希望我們能夠探索更智慧的方法來深入瞭解GraphQL的執行效能,敬請期待!
相關文章
- 我們為什麼很難堅持下去
- 為什麼許可權授權很難?- osohq
- 為什麼我總和效能指標相差很遠?指標
- 為什麼這麼多人覺得前端開發很難做下去?前端
- [20220421]為什麼說華為監控是垃圾.txt
- 為什麼中國很難有自己的3A遊戲遊戲
- 服裝企業erp體系施行為什麼很難成功?
- 為什麼REST比GraphQL更好? - TomaszJaskuλaREST
- 為什麼前端不能沒有監控系統?前端
- 前端資料監控到底在監控什麼?前端
- 前端效能監控前端
- php效能監控PHP
- 為什麼 GraphQL 是 API 的未來API
- 為什麼我們不使用GraphQL? - Wundergraph
- DNS解析監控是什麼?解析監控有什麼用?(中科三方)DNS
- Python入門很難嗎? 為什麼越來越多的人都學Python?Python
- Java程式設計師須知:分散式微服務為什麼很難?Java程式設計師分散式微服務
- 為什麼很多大學生都會覺得程式設計很難?程式設計
- web前端入門很容易,全棧卻很難,為什麼每個程式設計師都那麼說?Web前端全棧程式設計師
- NER為什麼那麼難
- 為什麼你可能不需要GraphQL?
- 解析:為什麼企業很難招聘到好的Python程式設計師?Python程式設計師
- 磁碟IO效能監控
- Linux 效能監控工具Linux
- Performance --- 前端效能監控ORM前端
- MySQL sys效能監控MySql
- 效能監控調優
- 為什麼很多大學生認為程式設計很難?入門程式設計怎麼學?程式設計
- 為什麼有些公司的IT很亂?
- 為什麼大廠前端監控都在用GIF做埋點?前端
- 做出一款成功遊戲後,為什麼第二款卻很難做成?遊戲
- 被騙的錢為什麼很難追回來?這裡的水到底有多深?
- Python雖然很火,為啥找工作這麼難?Python
- 為什麼Kubernetes這麼難? • Buttondown
- APM效能監控軟體的監控型別服務及監控流程型別
- 011.MongoDB效能監控MongoDB
- mysql效能監控相關MySql
- iOS網路效能監控iOS