软件开发规范之语义化版本

语义化版本 2.0.0 摘要 版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号:当你做了不兼容的 API 修改, 次版本号:当你做了向下兼容的功能性新增, 修订号:当你做了向下兼容的问题修正。 先行版本号及版本编译元数据可以加到“主版本号.次版本号.修订号”的后面,作为延伸。 简介 在软件管理……

阅读全文

Go Web框架Gin学习

Go Web框架Gin学习 一、Gin入门 1. 介绍 Gin号称是运行速度最快,特性最全的Goweb框架。 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 对于golang而言,web框架的依赖要远比Python,Java之类的要小。自……

阅读全文

Go运维开发之日志收集(8)将应用程序日志写入到文件中

Go运维开发之日志收集(8)将应用程序日志写入到文件中 Go运维开发之日志收集(1)收集应用程序日志到kafka中 Go运维开发之日志收集(2)从etcd中获取配置信息 Go运维开发之日志收集(3)根据etcd配置项创建多个tailTask Go运维开发之日志收集(4)监视etcd配置项……

阅读全文

Go语言第三方日志库logrus使用

Go语言第三方日志库logrus使用 简介 结构化、插件化的Go日志库,与标准库log的API完全兼容。目前处于维护模式,不再开发新的特性,后期专注于安全和性能提升这块。 安装 1go get github.com/sirupsen/logrus 基本使用 1package main 2 3import ( 4 log "github.com/sirupsen/logrus" 5) 6 7func main() { 8 log.WithFields(log.Fields{ 9 "animal": "walrus", 10 }).Info("A walrus appears") 11} 输出结果 1INFO[0000] A walrus appears animal=walrus 进阶用法 1package main 2 3import ( 4 "os" 5 log "github.com/sirupsen/logrus" 6) 7……

阅读全文

Go语言高性能日志库zap使用

Go语言高性能日志库zap使用 Zap简介 zap是一个非常快的、结构化的,分日志级别的Go日志库。 Github仓库地址:https://github.com/uber-go/zap Zap性能 记录一条含有10个字段的日志 Package Time Time % to zap Objects Allocated ⚡️ zap 862 ns/op +0% 5 allocs/op ⚡️ zap (sugared) 1250 ns/op +45% 11 allocs/op zerolog 4021 ns/op +366% 76 allocs/op go-kit……

阅读全文

Go语言中使用gopsutil进行系统信息采集

gopsutil包介绍 psutil是一个跨平台进程和系统监控的Python库,而gopsutil是其Go语言版本的实现。 安装go get github.com/shirou/gopsutil gopsutil包的使用 采集CPU相关信息 1package main 2 3import ( 4 "fmt" 5 "github.com/shirou/gopsutil/cpu" 6) 7 8func main() { 9 c, _ := cpu.Info() 10 fmt.Println("cpu信息:",c) 11 /……

阅读全文

Prometheus与Grafana入门

Prometheus入门 Prometheus简介 Prometheus 是一套开源的系统监控报警框架。它启发于 Google 的 borgmon 监控系统,由工作在 SoundCloud 的 google 前员工在 2012 年创建,作为社区开源项目进行开发,并于 2015 年正式发布。2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,成为受欢迎度仅次于 Kubernetes 的项目。 作为……

阅读全文

Go运维开发之日志收集(6)从kafka中获取日志信息

Go运维开发之日志收集(6)从kafka中获取日志信息 Go运维开发之日志收集(1)收集应用程序日志到kafka中 Go运维开发之日志收集(2)从etcd中获取配置信息 Go运维开发之日志收集(3)根据etcd配置项创建多个tailTask Go运维开发之日志收集(4)监视etcd配置项……

阅读全文