原创 Unit Test In Go With Docker

本篇文章主要講解如何在 Docker 中進行 Go 單元測試,依賴 Docker 和 Go Modules。 爲什麼是 Docker 在 Docker 之前我們往往需要在 Jenkins 服務器上配置不同的 Go 版本以及針對每個項目配置

原创 無監控不運維——Prometheus 快速入門

Prometheus 是由 SoundCloud 開發的開源監控報警系統和時序列數據庫(TSDB),自 2012 年起,許多公司及組織已經採用 Prometheus,並且該項目有着非常活躍的開發者和用戶社區,現在已經成爲一個獨立的開源項目,

原创 IPFS 二維碼添加的問題

jenkins Pipline 庖丁解牛分享資料 文檔加視頻 鏈接: https://pan.baidu.com/s/19Xjm50AyKh9beP8bdS74tA提取碼: q3u4 前段時間在知乎上看到「飛向未來」大大早期文章 什麼是

原创 jenkins Pipline 庖丁解牛

本次《jenkins Pipline 庖丁解牛》分享是結合實際工作實例講解。 主要內容如下: Pipline 語法講解 Pipline 項目實戰-Maven JAVA 項目構建 Pipline 項目實戰-NodeJS 項目構建 分享一個

原创 關於 relabel_configs 中 hashmod 的用法

今天有朋友在羣裏問了一段關於 Prometheus hashmod 配置的問題,如圖: 此配置出自 Brian 的博客 scaling-and-federating-prometheus。 那這段配置到底是什麼意思?因爲以前沒用過這個配置

原创 如何定製微信告警模版

AlertManger 從 v0.12 已經默認支持企業微信發送告警信息了,具體步驟可以參見 alertmanger-with-wechat。 最近不少朋友在羣裏問到:“如何定製微信告警消息?”,下面來講解下具體步驟。 添加自定義模版在

原创 深入瞭解 Go 語言的方法

方法主要源於 OOP 語言,在傳統面嚮對象語言中 (例如 C++), 我們會用一個“類”來封裝屬於自己的數據和函數,這些類的函數就叫做方法。 雖然 Go 不是經典意義上的面嚮對象語言,但是我們可以在一些接收者(自定義類型,結構體)上定義函數

原创 .gitignore 瘦身祕訣

我們在使用 git 的時候經常會遇到這樣一個問題,團隊成員使用的編輯器很多,比如 vscode, vim, idea ,而它們產生的臨時文件又各不相同,這時我們該怎麼處理? 常見方法 將用到的編輯器產生的臨時文件格式都添加到 .gitign

原创 如何在 Go 中優雅關閉子進程

有時我們會遇到這樣的需求,在一個主進程中啓動另外一個進程,而在 Go 中可以使用 exec 包的 Cmd 來輕鬆實現這類需求,例如代碼: package main import ( "fmt" "log" "os"

原创 流程控制之分支循環

在編寫 Go 程序的時候,我們不僅會用前面學到的數據結構來存儲數據,還會用到 if、switch、for 來進行條件判斷和流程控制,今天我們就來一起學習下它們。 if if 主要用於條件判斷,語法爲: if 條件 { # 業務代碼 }

原创 Golang 入門 : 理解併發與並行

Golang 的語法和運行時直接內置了對併發的支持。Golang 裏的併發指的是能讓某個函數獨立於其他函數運行的能力。當一個函數創建爲 goroutine 時,Golang 會將其視爲一個獨立的工作單元。這個單元會被調度到可用的邏輯處理器上

原创 如何在 Go 中使用 CGroup 實現進程內存控制

背景 從 Linux 內核 2.6.25 開始,CGroup 支持對進程內存的隔離和限制,這也是 Docker 等容器技術的底層支撐。 使用 CGroup 有如下好處: 在共享的機器上,進程相互隔離,互不影響,對其它進程是種保護。對於存在內

原创 Golang 入門 : goroutine(協程)

在操作系統中,執行體是個抽象的概念。與之對應的實體有進程、線程以及協程(coroutine)。協程也叫輕量級的線程,與傳統的進程和線程相比,協程的最大特點是 "輕"!可以輕鬆創建上百萬個協程而不會導致系統資源衰竭。多數編程語言在語法層面並不

原创 一鍵解決 go get golang.org/x 包失敗

問題描述 當我們使用 go get、go install、go mod 等命令時,會自動下載相應的包或依賴包。但由於衆所周知的原因,類似於 golang.org/x/... 的包會出現下載失敗的情況。如下所示: $ go get -u go

原创 容器監控之 cadvisor (一)

現如今大大小小的公司在生產環境中已或多或少的使用到了容器,那對於容器的監控(CPU, 內存,網絡請求)是如何處理的呢?接下來我們帶大家來學習一下: docker stats 對 cadvisor 衆所周知 dokcer stats 可以查看