觀察 .NET Core Container 的 Exec Mode 和 Shell Mode 差異

上篇 得知 .NET Core 應用程式可以接收 SIGINT/SIGTERM訊號,來完成 graceful shutdown;在處理批次流程中,當應用程式接收到 SIGINT/SIGTERM 訊號後,就要進入狀態的保存,避免服務被強制中斷,導致狀態混亂。預設 Container 預設等待 10 sec,也就是這個時間範圍內就要完成狀態保存,如果超過時間就可以考慮送出 Timeout 參數,延長工作關閉流程。Linux 執行應用程式的時候有區分 shell model 以及 exec mode,若使用不當,會導致接收不到 SIGINT/SIGTERM 訊號,無法 graceful shutdown。

...繼續閱讀 »

監視 Docker Container 資源 (cAdvisor + node-exporter + prometheus + grafana)

cAdvisor 是一個開源的容器資源使用情況和效能分析工具,主要由 Google 開發。它專門用於收集、聚合、處理和匯出有關執行中容器的資訊。
Node-Exporter 收集主機層級的各種指標,包括:CPU 使用率、記憶體使用情況、磁碟 I/O 統計、網路流量、檔案系統使用率、系統負載

  • Node Exporter:關注整個主機/節點層級的指標
  • cAdvisor:專注於容器層級的指標

再搭配上 Prometheus 收集指標,用 Grafana 呈現資訊

圖片

出自 https://blog.techbridge.cc/2019/08/26/how-to-use-prometheus-grafana-in-flask-app/

...繼續閱讀 »

簡單配置 Nginx 的範例

Nginx (讀作 engine x),是一個免費的開源軟體,具有非同步框架的 Web Server,更多的用途是作為反向代理、Http Cache、負載平衡器。久仰它許久,但對它的配置一無所知,趁假日的時候練習一波。

下圖出自網路

...繼續閱讀 »

使用 Docusaurus 整合 OpenAPI/Swagger 文檔

Docusaurus (Document(文件)+ saurus(恐龍)),是由 Facebook 推出的開源靜態網站生成工具,以 React 技術構建,提供快速建置以文檔內容為核心的網站。我在 Survey 有哪些框架可以快速的把一堆 OpenAPI 文檔,轉成靜態頁面並且搜尋頁面內容,Claude 推薦我使用 Docusaurus

...繼續閱讀 »

通過 SonarQube 進行 C# 程式碼品質分析

SonarQube 是一套程式碼品質分析工具,分析程式是否存在 Bug、漏洞或不好的寫法,第一關品質分析就交給它了,它的運作方式很簡單,透過 SonarQube Scanner 把報告提交到 SonarQube Server,這篇我會用 .NET Core 的專案實驗。
下圖出自官網 https://docs.sonarsource.com/sonarqube-server/latest/setup-and-upgrade/install-the-server/introduction/


 

...繼續閱讀 »