最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Golang語言中的Prometheus的日志模塊使用案例代碼編寫

 更新時(shí)間:2024年08月10日 09:31:06   作者:尹正杰  
這篇文章主要介紹了Golang語言中的Prometheus的日志模塊使用案例,本文給大家分享源代碼編寫方法,感興趣的朋友跟隨小編一起看看吧

一.源代碼編寫

package main
import (
	"fmt"
	"os"
	"path/filepath"
	"time"
	"github.com/alecthomas/kingpin/v2"
	"github.com/go-kit/log"
	"github.com/go-kit/log/level"
	"github.com/prometheus/common/promlog"
	promlogflag "github.com/prometheus/common/promlog/flag"
	"github.com/prometheus/common/version"
)
var (
	videos = "https://space.bilibili.com/600805398/channel/series"
	docs   = "https://www.cnblogs.com/yinzhengjie"
	// 命令行解析
	app = kingpin.New(filepath.Base(os.Args[0]), fmt.Sprintf("yinzhengjie-devops'server Program, docs: %s, videos: %s", docs, videos))
	// 指定配置文件
	configFile = app.Flag("config.file", "configuration file path").Short('c').Default("yinzhengjie-devops-server.yaml").String()
)
// Logger用于設(shè)置prometheus的Logger,
func Logger(config *promlog.Config) log.Logger {
	var (
		l  log.Logger
		le level.Option
	)
	// 設(shè)置日志的輸出格式
	if config.Format.String() == "logfmt" {
		l = log.NewLogfmtLogger(log.NewSyncWriter(os.Stderr))
	} else {
		l = log.NewJSONLogger(log.NewSyncWriter(os.Stderr))
	}
	// 設(shè)置日志級(jí)別
	switch config.Level.String() {
	case "debug":
		le = level.AllowDebug()
	case "info":
		le = level.AllowInfo()
	case "warn":
		le = level.AllowWarn()
	case "error":
		le = level.AllowError()
	}
	l = level.NewFilter(l, le)
	// CST可視為美國、澳大利亞、古巴或中國的標(biāo)準(zhǔn)時(shí)間,CST可以為如下4個(gè)不同的時(shí)區(qū)的縮寫:
	// 		美國中部時(shí)間:Central Standard Time (USA) UT-6:00
	// 		澳大利亞中部時(shí)間:Central Standard Time (Australia) UT+9:30
	// 		中國標(biāo)準(zhǔn)時(shí)間:China Standard Time UT+8:00
	// 		古巴標(biāo)準(zhǔn)時(shí)間:Cuba Standard Time UT-4:00
	//
	// 重新設(shè)置一下時(shí)區(qū),否則是UTC時(shí)間,建議設(shè)置CST時(shí)區(qū),我們以北京的東八區(qū)時(shí)間為準(zhǔn)。
	l = log.With(l, "cts", log.TimestampFormat(
		func() time.Time { return time.Now().Local() },
		"2006-01-02T15:04:05.000Z08:00",
	), "caller", log.DefaultCaller)
	return l
}
func main() {
	// 版本信息
	// app.Version("v1.0")
	app.Version(version.Print("yinzhengjie-devops-server"))
	// 幫助信息
	app.HelpFlag.Short('h')
	promlogConfig := promlog.Config{}
	promlogflag.AddFlags(app, &promlogConfig)
	// 強(qiáng)制解析
	kingpin.MustParse(app.Parse(os.Args[1:]))
	fmt.Printf("configFile: %s\n", *configFile)
	// 設(shè)置prometheus的logger
	var logger log.Logger = Logger(&promlogConfig)
	// 輸出日志事件時(shí)需要指定日志級(jí)別,此處我指定的日志級(jí)別為"info"
	level.Info(logger).Log(
		// 注意,寫入的數(shù)據(jù)成對(duì)出現(xiàn),比如下面的案例我就寫了5對(duì)測試數(shù)據(jù)。
		"Name", "尹正杰",
		"Hobby", "Golang K8S Docker",
		"blog", "https://www.cnblogs.com/yinzhengjie",
		"cfg", *configFile,
		"age", 18,
	)
}

二.編譯

go build -o server -ldflags "-X 'github.com/prometheus/common/version.BuildUser=y1053419035@qq.com' -X 'github.com/prometheus/common/version.BuildDate=`date`' -X 'github.com/prometheus/common/version.Version=v0.2'" src/models/server/server.go

三.測試

1.查看服務(wù)的版本信息
./server --version
	2.指定程序的配置文件
./server -c /etc/nginx/conf.d/games.conf
	3.查看程序的幫助信息
./server -h
	4.不指定任何參數(shù)
./server
	5.指定日志輸出格式
./server --log.format=json
	6.同時(shí)指定多個(gè)參數(shù)
./server --log.format=json -c /etc/nginx/nginx.conf

當(dāng)你的才華還撐不起你的野心的時(shí)候,你就應(yīng)該靜下心來學(xué)習(xí)。當(dāng)你的能力還駕馭不了你的目標(biāo)的時(shí)候,你就應(yīng)該沉下心來歷練。問問自己,想要怎樣的人生。 歡迎交流學(xué)習(xí)技術(shù)交流,個(gè)人微信: "JasonYin2020"(添加時(shí)請(qǐng)備注來源及意圖備注) 作者: 尹正杰, 博客: https://www.cnblogs.com/yinzhengjie/p/18351921

到此這篇關(guān)于Golang語言中的Prometheus的日志模塊使用案例代碼編寫的文章就介紹到這了,更多相關(guān)Golang Prometheus日志模塊使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • go如何優(yōu)雅關(guān)閉Graceful?Shutdown服務(wù)

    go如何優(yōu)雅關(guān)閉Graceful?Shutdown服務(wù)

    這篇文章主要為大家介紹了go優(yōu)雅關(guān)閉Graceful?Shutdown服務(wù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • GO語言基本類型String和Slice,Map操作詳解

    GO語言基本類型String和Slice,Map操作詳解

    這篇文章主要為大家介紹了GO語言基本類型String和Slice,Map操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Golang函數(shù)這些神操作你知道哪些

    Golang函數(shù)這些神操作你知道哪些

    這篇文章主要為大家介紹了一些Golang中函數(shù)的神操作,不知道你都知道哪些呢?文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的可以參考一下
    2023-02-02
  • 一文帶你學(xué)會(huì)使用Go語言實(shí)現(xiàn)自己的MCP服務(wù)端

    一文帶你學(xué)會(huì)使用Go語言實(shí)現(xiàn)自己的MCP服務(wù)端

    這篇文章將帶大家速覽MCP的核心概念,并以Go語言為例,介紹如何開發(fā)MCP服務(wù)端和客戶端,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下
    2025-04-04
  • Golang使用Token來驗(yàn)證

    Golang使用Token來驗(yàn)證

    token指的是一種用于驗(yàn)證用戶身份或授權(quán)訪問的憑證,本文主要介紹了Golang使用Token來驗(yàn)證,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • 解決goland中編輯tpl文件不高亮沒智能補(bǔ)全的問題

    解決goland中編輯tpl文件不高亮沒智能補(bǔ)全的問題

    這篇文章主要介紹了解決goland中編輯tpl文件不高亮沒智能補(bǔ)全的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • golang模板template自定義函數(shù)用法示例

    golang模板template自定義函數(shù)用法示例

    這篇文章主要介紹了golang模板template自定義函數(shù)用法,結(jié)合實(shí)例形式分析了Go語言模板自定義函數(shù)的基本定義與使用方法,需要的朋友可以參考下
    2016-07-07
  • Go語言中的格式化輸出占位符的用法詳解

    Go語言中的格式化輸出占位符的用法詳解

    在 Go 語言中,格式化輸出是一個(gè)非常常用的功能,特別是在處理字符串、數(shù)字和其他數(shù)據(jù)類型時(shí),本文將詳細(xì)介紹 Go 語言中常用的格式化占位符及其用法,希望對(duì)大家有所幫助
    2024-10-10
  • Golang實(shí)現(xiàn)Java虛擬機(jī)之解析class文件詳解

    Golang實(shí)現(xiàn)Java虛擬機(jī)之解析class文件詳解

    這篇文章主要為大家詳細(xì)介紹了Golang實(shí)現(xiàn)Java虛擬機(jī)之解析class文件的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • goland 搭建 gin 框架的步驟詳解

    goland 搭建 gin 框架的步驟詳解

    這篇文章主要介紹了goland 搭建 gin 框架的相關(guān)知識(shí),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評(píng)論

宁城县| 靖江市| 榕江县| 桐梓县| 郎溪县| 彰化县| 竹溪县| 富顺县| 安新县| 拜泉县| 浦江县| 达拉特旗| 罗山县| 石渠县| 吉林市| 兴国县| 濮阳县| 贡觉县| 太白县| 娄烦县| 尚义县| 贺兰县| 牟定县| 云龙县| 周口市| 大城县| 青龙| 乌兰县| 谢通门县| 上栗县| 三都| 玉门市| 玉林市| 嘉鱼县| 睢宁县| 库伦旗| 江津市| 文成县| 许昌县| 普格县| 大港区|