Go语言中文网 为您找到相关结果 166

2019年最火热的Golang项目

整理目的 记录用的人较多或者出镜率比较高的Golang项目。 如果我漏了你觉得重要的项目,麻烦帮我指出,我尽快补上,谢谢! 下面列表中的每一个项目都配上了Star增长趋势的图片,可以看出该项目的热度。 特别是与区块链相关的两个项目fabric和go-ethereum,能够明显看出区块链行业的起伏。 整理过程中收获: 1、了解到docker项目已经改名为moby,当前仓库为:https://github.com/moby/moby。 2、了解到时间序列数据库,库中每一个数据都有时间属性。 项目列表 Gin 仓库地址:https://github.com/gin-gonic/gin Gin是用Go语言实现的一款web框架。 它的特点和Martini类似,但是API的性能更好,大概快40倍。如果你...阅读全文

博文 2019-06-07 23:04:16 大漠胡萝卜

使用 plot 绘制图表

作为一个程序员,很多时候虽然我喜欢盯着 console 输出的一堆数字看一些系统变化指标,但俗话说,一图胜千言,如果能自动的将很多数据生成图表展示,会更加清晰明了,而且能直接从变化的曲线上面得知更多的信息。这也就是我特别喜欢 Prometheus + Grafana 的原因。 但很多项目,尤其是临时的一些测试项目,我不可能为了看一个数据图表就搭建一套 Prometheus + Grafana 系统,那样效率太低,更多时候,我还是希望能有一个更简单的工具将一些数据展示出来。 幸运的是,我们可以通过 plot 非常方便的做到。plot 是一个用 Go 语言实现的绘图库,我们可以通过它绘制非常丰富的图表,并且可以输出成多种格式。另外,plot 还提供了非常方便的 interface,我们可以通过它...阅读全文

博文 2017-06-21 02:14:10 siddontang

调试一个邪恶的 Go 运行时 bug

## 序言 我是 `Prometheus` 和 `Grafana` 的忠实粉丝。作为一个前 `Google` 公司 SRE, 我一直以来都知道良好的监控的重要性, `Prometheus` 和 `Grafana` 的组合是我多年的最爱。我用他们来监控我的个人服务器(黑盒和白盒都有), `Euskal Encounter` 内外部事件以及我服务的专业客户。`Prometheusa` 让编写定制的数据导出器变得非常简单, 而且你能够找到很多现成的满足你要求的导出器。比如说,我们使用 `sql_exporter` 来为 `Encounter` 会议的与会者数据做了一个监控面板。 ![Event dashboard for Euskal Encounter (fake staging data)](...阅读全文

博文 2018-02-01 20:54:58 polaris

[深圳][大疆创新][15K-40K]招聘高级/中级Golang研发工程师

## 高级Golang研发工程师 ### 岗位职责: 1. 参与公司微服务架构的整体设计和开发,进行相关技术调研、选型和实践; 2. 负责编制、修改项目相关的技术文档和规范; 3. 负责新人指导和code review,技术难题研究,提升团队技术水平; 4. 参与公司开源项目的设计与开发,提高公司在业界的影响力。 ### 任职要求: 1. 熟练掌握Golang,4年以上工作经验,2年以上Golang开发经验,有完整项目经验,同时熟练掌握Java/Ruby/Python/C#等任意一门语言者优先; 2. 熟练掌握Golang相关技术,熟悉Golang协程,熟悉channel和锁,对高并发、高可用架构系统有正确、深刻的理解,有分布式服务设计或开发经验者优先; 3. 熟悉M...阅读全文

使用 Prometheus 对 Go 应用程序进行监测

监测服务级别的指标能让团队成员更清晰的看到你的程序表现如何,你的程序如何被使用,并且可以帮助定位潜在的性能瓶颈。 [Prometheus](https://prometheus.io/) 是一个开源的监测解决方案,原生的服务发现支持让它成为动态环境下进行服务监测的一个完美选择。Prometheus 支持从 [AWS, Kubernetes, Consul 等](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#configuration-file) 拉取服务 ! 当使用 Prometheus 生成服务级别的指标时,有两个典型的方法:内嵌地运行在一个服务里并在 HTTP 服务器上暴露一个 `/me...阅读全文

博文 2019-01-27 13:12:39 krystollia

腾讯云招聘云计算后台工程师(深圳、成都两地项目组直招)

1 ) 有丰富的多进程、多线程服务器开发经验(必需) 2 ) 熟悉 c/c++/go/java/python/ruby/scala 等至少二种编程语言(必需) 3 ) coding,debug 能力强(必须) 4 ) 有开源项目实践经验优先 5 ) 熟悉 docker/kubernetes/openstack 等框架优先 6 ) 熟悉 git,jenkins,travis,ELK,prometheus 等技术优先 7 ) 熟悉 aws/google cloud 等云计算厂商产品优先 8 ) 热爱学习,做事积极主动者优先 简历请发送到 qq:18413696...阅读全文

饿了么 Influxdb 实践之路

前言 Influxdb是一个基于golang编写,没有额外依赖的开源时序数据库,用于记录metrics、events,进行数据分析。这篇文章谈论的influxdb版本在1.2.0以上。这篇文章只谈论influxdb在监控中的数据存储应用,不会谈论influxdb提供的整套监控方案。本文主要谈论五个方面:时序数据库选型、influxdb基本概念、存储引擎、实践、数据聚合。 选型 Influxdb vs Prometheus influxdb集成已有的概念,比如查询语法类似sql,引擎从LSM优化而来,学习成本相对低。 influxdb支持的类型有float,integers,strings,booleans,prometheus目前只支持float。 influxdb的时间精度是纳秒,prom...阅读全文

博文 2017-06-24 09:49:24 刘平

Prometheus 系统监控方案 一

最近一直在折腾时序类型的数据库,经过一段时间项目应用,觉得十分不错。而Prometheus又是刚刚推出不久的开源方案,中文资料较少,所以打算写一系列应用的实践过程分享一下。 Prometheus 是什么? Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作。google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。 Prometheus 的优点 非常少的外部依赖,安装使用超简单 已经有非常多的系统集...阅读全文

产品级 Go 语言微服务框架Go Chassis

Go Chassis 是华为云 CSE 开源的一个用 Go 语言编写的微服务快速开发框架。借助 CSE Go Chassis 进行微服务开发可最大化地降低开发门槛,提升产品上线速度,同时可以获得微服务运行时高可靠性保证、运行时动态治理等一系列开箱即用的能力。 作为业界首款商用级别的Go语言微服务框架,Go Chassis 已具备支持企业级应用的核心特性: **可定制的通信协议**:除了现有支持的 HTTP/ Highway RPC 协议外,用户可自行扩展协议。支持 Go Chassis 开发的应用与使用 Java Chassis 开发的应用互相通信,企业在进行微服务架构选择有更大的自由。 **使微服务更加健壮**:完善的服务治理(负载均衡、限流、熔断、降级等等),保障 Go 微...阅读全文

Prometheus实战--存储篇

前言 Prometheus之于kubernetes(监控领域),如kubernetes之于容器编排。随着heapster不再开发和维护以及influxdb 集群方案不再开源,heapster+influxdb的监控方案,只适合一些规模比较小的k8s集群。而prometheus整个社区非常活跃,除了官方社区提供了一系列高质量的exporter,例如node_exporter等。Telegraf(集中采集metrics) + prometheus的方案,也是一种减少部署和管理各种exporter工作量的很好的方案。今天主要讲讲我司在使用prometheus过程中,存储方面的一些实战经验。 Prometheus 储存瓶颈 通过prometheus的架构图可以看出,prometheus提供了本地存储...阅读全文

博文 2018-07-20 18:34:44 iyacontrol

Prometheus 系统监控方案 二 安装与配置

下载Prometheus 下载最新安装包,本文说的都是在Linux x64下面内容,其它平台没尝试过,请选择合适的下载。 Prometheus 主程序,主要是负责存储、抓取、聚合、查询方面。 Alertmanager 程序,主要是负责实现报警功能。 Pushgateway 程序,主要是实现接收由Client push过来的指标数据,在指定的时间间隔,由主程序来抓取。 *_exporter 这类是不同系统已经实现了的集成。 下载解压,一般默认的配置就可以运行。 tar xvfz prometheus-*.tar.gz cd prometheus-* go写的东西,直接打包成二进制包了,其本上没有别的依赖。 下面我们主要来了解一下他的配置文件,这是一个非常重要的步聚。 配置Prometheus监...阅读全文

开放分布式追踪(OpenTracing)入门与 Jaeger 实现

http://click.aliyun.com/m/1000005975/应用架构开始从单体系统逐步转变为微服务,其中的业务逻辑随之而来就会变成微服务之间的调用与请求。资源角度来看,传统服务器这个物理单位也逐渐淡化,变成了看不见摸不到的虚拟资源模式。从以上两个变化可以看到这种弹性、标准化的架构背后,原先运维与诊断的需求也变得越来越复杂。为了应对这种变化趋势,诞生一系列面向 DevOps 的诊断与分析系统,包括集中式日志系统(Logging),集中式度量系统(Metrics)和分布式追踪系统(Tracing)。Logging,Metrics 和 TracingLogging,Metrics 和 Tracing 有各自专注的部分。Logging - 用于记录离散的事件。例如,应用程序的调试信息或...阅读全文

博文 2018-07-12 15:34:54 rewq123

k8s与监控--prometheus的远端存储

prometheus的远端存储 前言 prometheus在容器云的领域实力毋庸置疑,越来越多的云原生组件直接提供prometheus的metrics接口,无需额外的exporter。所以采用prometheus作为整个集群的监控方案是合适的。但是metrics的存储这块,prometheus提供了本地存储,即tsdb时序数据库。本地存储的优势就是运维简单,启动prometheus只需一个命令,下面两个启动参数指定了数据路径和保存时间。 storage.tsdb.path: tsdb数据库路径,默认 data/ storage.tsdb.retention: 数据保留时间,默认15天 缺点就是无法大量的metrics持久化。当然prometheus2.0以后压缩数据能力得到了很大的提升。为了...阅读全文

博文 2018-07-09 17:34:52 iyacontrol

prometheus监控初体验

一、部署环境 mac 二、下载prometheus的mac版 进入下载页,操作系统选择darwin https://prometheus.io/download/ download.png 三、解压,进入目录运行 ./prometheus --config.file=prometheus.yml 四、浏览监控页面,查看对自身监控的一些信息 图表页: http://localhost:9090/graph metrics页面: http://localhost:9090/metrics 1)查看控制台日志输出 切换到Console尝试输入表达式,并点击execute,查看结果 prometheus_target_interval_length_seconds image.png count(p...阅读全文

博文 2018-09-12 18:34:40 2远

开源游戏玩家配对项目Open Match

Google Cloud 和 Unity 联合宣布了一项名为 Open Match 的开源玩家配对项目,该项目允许游戏开发者专注于玩家配对逻辑,而无需从头开始为每个游戏构建完整的配对系统。 Open Match 项目包括三个核心组件,一个用于游戏客户端的前端 API,一个用于游戏服务器的后端 API,以及一个运行自定义配对逻辑的游戏编排器。 Open Match 使用了 OpenCensus 和 Prometheus。 除了度量标准收集和默认配置设置之外,Open Match 还提供了高度可扩展性,可自定义的配对逻辑范例,允许基于延迟,等待时间和技能级别,进行简单的游戏玩家配对。 由于 Open Match 在 Kubernetes 上运行,因此可以部署在任何公共云、本地数据中心或工...阅读全文

非官方中文文档Promethues监控系统

## Prometheus 非官方中文手册 --- ### 目录 - 介绍 [总览](introduction/overview.md) [安装](introduction/install.md) [启动](introduction/get_started.md) [对比](introduction/comparison.md) [常见问题](introduction/questions.md) [路线图](introduction/roadmap.md) [学习媒介](introduction/media.md) [词汇](introduction/glossary.md) - ...阅读全文

Golang 使用 Prometheus 监控 Gin 服务性能

📡 ginpromPrometheus metrics exporter for Gin.Inspired by Depado/ginprom.🔰 Installation$ go get -u github.com/chenjiandongx/ginprom📝 UsageIt's easy to get started with ginprom, only a few lines of code needed.import ( "github.com/chenjiandongx/ginprom" "github.com/gin-gonic/gin" "github.com/prometheus/client_golang/prometheus/promhttp" ) func main()...阅读全文

博文 2019-08-20 10:31:25 chenjiandongx

2020年带你飞

2020 年了,你还在立 flag 吗? 我发现人们从来就不缺立 flag 的精神,只是缺乏坚持行动的毅力,2020年别光立 flag 了,行动起来,你的的这周下周下下周都被 51Reboot 承包了!所有分享免费参与(录屏回放没有,错过就是错过了)。 51Reboot 近期分享安排 2020.1.07——Go 内存详解 2020.1.09——Go-监控系统设计与源码解析 2020.1.16——大佬教你如何从 ES 初学者到 ES 专家 《Go 内存详解》 1、内存分区 image 1.1 代码区(text) 1.2 全局初始化数据区/静态数据区(data) 1.3 未初始化数据区(bss) 1.4 栈区(stack) 1.5 堆区(heap) image 2、Go Runtime 内存分配...阅读全文

博文 2020-01-07 11:32:52 51reboot

TiDB 集群的入门与实战

本文耗时较长,包括实战演练以及经验总结。我很早就接触了 TiDB ,但一直都是单机版,最近对大数据存储、性能、可扩展性有所要求,所以对 TiDB 需要更深的了解,首先就是搭建一个测试集群环境,只有真正用了才知道适不适合。本文是我对搭建 TiDB 集群的入门和实践过程的纪要,希望对大家有所帮助,在这里也要特别感谢 PingCAP 团队给以的鼎力帮助,?。本文分为以下几个方面来进行介绍:准备工作安装、配置调试监控总结参考资料准备工作服务器配置官方建议的 TiDB 集群最低配置为 6 台机器。2 个 TiDB 实例,第一台 TiDB 机器同时用作监控机;(与 PD 实例公用)3 个 PD 实例;(公用)3 个 TiKV 实例;(单独使用)所需服务器的配置要求:NameCPU内存磁盘数量总价tikv...阅读全文

博文 2017-09-18 01:23:26 杨文

360基于Prometheus的在线服务监控实践

女主宣言本文源自8月9日『DBAplus社群』的直播间分享,分享人是360HULK私有云平台addops团队赵鹏,本文为『DBAplus社群』公众号首发,已授权转载。PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦!主题简介:Prometheus基础介绍Prometheus打点及查询技巧Prometheus高可用和服务发现经验初衷最近参与的几个项目,无一例外对监控都有极强的要求,需要对项目中各组件进行详细监控,如服务端API的请求次数、响应时间、到达率、接口错误率、分布式存储中的集群IOPS、节点在线情况、偏移量等。比较常见的方式是写日志,将日志采集到远端进行分析和绘图,或写好本地监控脚本进行数据采集后,通过监控系统客户端push到监控系统中进行打点。基本上我们...阅读全文

博文 2017-08-31 03:22:49 赵鹏

一次Golang 内存占用偏高的调查

最近发现生产上某Golang服务内存稳步飙升,通过监控完全看不到有内存降低时候。而奇怪的是,同样的版本放到其他环境上则没有这个问题。 在内部弄了个环境开启pprof,反复压测,一直无法重现问题。于是回过头去检查监控的数据是否有误差。经检查发现prometheus上抽取的数据达930M,而通过docker 以及其他系统方式查到的数据不到20M。经反复对比发现,prometheus上抽取的数据是包含缓存的数据,单独查询此服务的缓存,则数据为900M+,差额部分数据与docker查询出来接近,如此判断问题在于缓存。 最后,发现,日志文件没有配置log rotation,大小已经达到了12G。清空日志后惊喜的发现,内存瞬间暴降至20M...阅读全文

博文 2018-12-26 19:34:42 getsu

Prometheus+Grafana实现监控系统

任务背景某某某公司是一家电商网站,由于公司的业务快速发展,公司要求对现有机器进行业务监控,责成运维部门来实施这个项目。任务要求1)部署监控服务器,实现7x24实时监控2)针对公司的业务及研发部门设计监控系统,对监控项和触发器拿出合理意见3)做好问题预警机制,对可能出现的问题要及时告警并形成严格的处理机制4)做好监控告警系统,要求可以实现告警分级 一级报警 电话通知 二级报警 微信通知三级报警 邮件通知5)处理好公司服务器异地集中监控问题,K8S内部使用的监控系统就是普罗米修斯任务分析为什么要监控?答: 实时收集数据,通过报警及时发现问题,及时处理。数据为优化也可以提供依据。监控四要素:监控对象 [主机状态 服务 资源 页面,url]用什么监控 [zabbix-server zabbix-ag...阅读全文

Prometheus + Clickhouse + Grafana 架构安装

1. 安装 PrometheusPrometheus 生态 由于原生 tsdb 性能的限制,经过性能测试选用 Clickhouse 作为第三方数据库,提升其大数据读写性能1)下载并解压 wget https://github.com/prometheus/prometheus/releases/download/v2.3.2/prometheus-2.3.2.linux-amd64.tar.gz tar -xvf prometheus-2.3.2.linux-amd64.tar.gz 2)进入并执行 cd prometheus-2.3.2.linux-amd64 ./ prometheus (调试时使用) nohup ./prometheus --config.file=prometheus...阅读全文

博文 2019-01-10 11:34:42 pigness

Prometheus 编写自己的 exporter

保证Go语言安装环境(1.7以上) 1) 下载对应的prometheus包 go get github.com/prometheus/client_golang/prometheus/promhttp 2)程序主函数: package main import ( "log" "net/http" "github.com/prometheus/client_golang/prometheus/promhttp" ) func main() { http.Handle("/metrics", promhttp.Handler()) log.Fatal(http.ListenAndServe(":8080", nil)) } 指标类别 Prometheus中主要使用的四类指标类型,如下所示 Cou...阅读全文

博文 2019-02-26 15:34:49 pigness

统计收集和分布式追踪框架OpenCensus

OpenCensus 是 Google 开源的一个用来收集和追踪应用程序指标中立厂商的第三方库,能够减少应用的部署与构建成本,尤其适合微服务架构。 OpenCensus 有各种不同的编程语言编写的版本,包括 Go、Java、PHP、C++、Python 等等。它旨在帮助开发者更容易收集和提交跟踪应用程序指标。这是一个中立的单一库发行,可自动收集和跟踪应用指标,可在本地显示,也可将其发送到分析工具。 OpenCensus 目前支持 [Prometheus](https://prometheus.io/)、[SignalFX](https://signalfx.com/)、[Stackdriver](https://cloud.google.com/stackdriver/) 和 [...阅读全文

通过vsphere golang webservice sdk 获取vmware主机、虚拟机的监控数据【一】

目前正在使用prometheus对我们的openstack云环境进行监控,但过了半年测试环境的主机资源迟迟未到位,因此和基架沟通是否有传统环境的需求可以做,提到了cmdb和商业监控的替换。但基架又不想我们再到每台虚拟机上去安装agent,因此需要通过vSphere Web Service API抓取测试环境34台主机、1600台虚拟机的监控数据。 经过两个星期的研究,第一稿监控vmware vcenter的prometheus exporter开发完成,一次抓取1600多台主机、虚拟机的cpu mhz、mem mb、disk io、net io大概耗时在1分钟左右。 exporter使用go语言编写,使用vsphere的govmomi sdk。 sdk地址:https://github.co...阅读全文

博文 2017-09-15 04:03:21 一路向北的兔斯基

Golang <-time.After()在计时器过期前不会被垃圾回收

最近我在调查 Go 应用程序中内存泄漏的问题,这个问题主要因为我没有正确的阅读文档。这是一段导致消耗了多个 Gbs 内存的代码: ```go func ProcessChannelMessages(ctx context.Context, in <-chan string, idleCounter prometheus.Counter) { for { start := time.Now() select { case s, ok := <-in: if !ok { return } // handle `s` case <-time.After(5 * time.Minute): idleCounter.Inc() case <-ctx.Done(): return } } } ``` 以...阅读全文

k8s与log--利用fluent bit收集k8s日志

前言 收集日志的组件多不胜数,有ELK久负盛名组合中的logstash, 也有EFK组合中的filebeat,更有cncf新贵fluentd,另外还有大数据领域使用比较多的flume。本次主要说另外一种,和fluentd一脉相承的fluent bit。 Fluent Bit是一个开源和多平台的Log Processor and Forwarder,它允许您从不同的来源收集数据/日志,统一并将它们发送到多个目的地。它与Docker和Kubernetes环境完全兼容。Fluent Bit用C语言编写,具有可插拔的架构,支持大约30个扩展。它快速轻便,通过TLS为网络运营提供所需的安全性。 之所以选择fluent bit,看重了它的高性能。下面是官方贴出的一张与fluentd对比图: Fluent...阅读全文

博文 2018-12-26 19:34:41 iyacontrol

K8s -- 通过自定义prometheus数据实现k8s hpa

:https://blog.csdn.net/yevvzi/article/details/79561150 核心指标管道 从 Kubernetes 1.8 开始,资源使用指标(如容器 CPU 和内存使用率)通过 Metrics API 在 Kubernetes 中获取。 这些指标可以直接被用户访问(例如通过使用 kubectl top 命令),或由集群中的控制器使用(例如,Horizontal Pod Autoscale 可以使用这些指标作出决策)。 Resource Metrics API 通过 Metrics API,您可以获取指定 node 或 pod 当前使用的资源量。这个 API 不存储指标值, 因此想要获取某个指定 node 10 分钟前的资源使用量是不可能的。 Metrics...阅读全文

博文 2018-11-27 23:34:40 沉沦2014

容器监控之 cadvisor

现如今大大小小的公司在生产环境中已或多或少的使用到了容器,那对于容器的监控(CPU, 内存,网络请求)是如何处理的呢?接下来我们带大家来学习一下: docker stats 对 cadvisor 众所周知 dokcer stats 可以查看运行的 Docker 镜像的运行状态,例如: image 这种方式比较原始,因为你无法通过 http 的方式来获取数据,而且没有界面,数据可视化还需要做大量的工作。 由于 dokcer stats 有这些问题,所以 cadvisor 诞生了。 cadvisor 不仅可以搜集一台机器上所有运行的容器信息还提供基础查询界面和 http 接口,方便 Prometheus 进行数据抓取。 正是因为 cadvisor 与 Prometheus 的完美结合,所以它成为...阅读全文

博文 2019-05-27 17:34:50 51reboot

Prometheus实战--Uber背书的存储解决方案M3

前言 前面我们一直在做prometheus的远程存储的工作,一直缺乏一种大厂背书的解决方案。具体可能有下面的几点: 大厂背书且开源 可承接大规模海量metrics 非weave cortex这种对prometheus原有方案改动特别大,即可以单独升级prometheus。 可喜可贺,Uber开源了他们针对prometheus存储解决方案M3,包括诸多组件。 M3 摘要 为了促进优步全球运营的发展,我们需要能够在任何特定时间快速存储和访问我们后端系统上的数十亿个指标。作为我们强大且可扩展的指标基础架构的一部分,我们构建了M3,这是一个已在优步使用多年的指标平台。 M3可以在较长的保留时间内可靠地存储大规模指标。为了向更广泛的社区中的其他人提供这些好处,我们决定开放M3平台作为Prometheu...阅读全文

博文 2018-08-09 15:34:58 iyacontrol

golang dep 依赖管理 使用

dep golang 包管理使用记录 dep 是 golang 项目依赖管理之一,是官方的实验项目,目前更新很频繁处于高速发展期,所以选 dep 作为 golang 的依赖管理器是比较靠谱的。(已知 glide 仅支持不再开发新功能) 目前 dep v0.5.0 release 已经发布,最新的 changelog 显示只支持 golang 1.9+ 以上的版本 golang 最原始的依赖管理是 go get ,执行命令后会拉取代码放入 src 下面,但是它是作为 GOPATH 下全局的依赖,并且 go get 还不能版本控制,以及隔离项目的包依赖在没有依赖管理工具的时候,golang 项目有一种目录结构比较流行如下: . └── src ├── demo │ └── main.go ├──...阅读全文

博文 2018-08-05 11:34:49 一颗老柠檬丶

Prometheus vs Zabbix

公司要上监控,Prometheus 是最热门的监控解决方案,作为喜新厌旧的程序员,我当然是选择跟风了,但上级更倾向于 Zabbix,那没办法,只能好好对比一番,给出几个靠谱的理由了。 Monitoring system 但稍稍深入一点,我就体会到,我之前其实并没有真的理解口口相传的 Prometheus 的优点,这次对比虽然是始于无奈,但还是蛮有意义的,正好总结一下自己粗浅的体会。 1. 对比 先对两者的各自特点进行一下对比: Zabbix Prometheus 后端用 C 开发,界面用 PHP 开发,定制化难度很高。 后端用 golang 开发,前端是 Grafana,JSON 编辑即可解决。定制化难度较低。 集群规模上限为 10000 个节点。 支持更大的集群规模,速度也更快。 更适合监...阅读全文

博文 2018-11-04 15:34:39 blackpiglet

Prometheus 客户端库(golang)

本文为Prometheus Go client libraryREADME的翻译 库分为两个独立的部分: 用于检测应用程序代码 用于建立与 Prometheus HTTP API 通讯的客户端 要求Go1.9或以上版本 重要说明 存储库(repository)一般会遵从语义化版本规范。但是 prometheus/client_golang_api/... 中的 API 客户端仍被认为是实验性的,所以在 API 客户端的更改不会产生新的主版本号。这一情况同样适用于在 CHANGELOG.md 中标记为 EXPERIMENTAL 的其他新功能。 该存储库的稳定部分如果有功能发生重大更改,将在v2版本中进行批处理和跟踪。v2版本暂时单独在一个 dev-v2 上开发。当达到足够的稳定性,v2版本才会...阅读全文

博文 2019-08-28 15:32:59 埃尔温薛定谔不养猫

Prometheus+Grafana打造Mysql监控平台

prometheus/node_exporter/mysqld_exporter都是由go语言编写,需要先安装GoLang环境 下载node_exporter(监控服务器的CPU、内存、存储使用情况)和mysqld_exporter放到Mysql服务器(被监控端) 需要为mysqld_exporter在Mysql数据库新建一个用户,并赋予相应权限 CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3; GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost'; 配置mysql_ex...阅读全文

博文 2018-10-17 15:34:41 单行线的旋律

第3章 Prometheus告警处理

本章我们将带领读者探索Prometheus的告警处理机制,在前面的部分中已经介绍了告警能力在Prometheus的架构中被划分为两个部分,在Prometheus Server中定义告警规则以及产生告警,Alertmanager组件则用于处理这些由Prometheus产生的告警。Alertmanager即Prometheus体系中告警的统一处理中心。Alertmanager提供了多种内置第三方告警通知方式,同时还提供了对Webhook通知的支持,通过Webhook用户可以完成对告警更多个性化的扩展。 3.1 Prometheus告警简介 告警能力在Prometheus的架构中被划分成两个独立的部分。如下所示,通过在Prometheus中定义AlertRule(告警规则),Prometheus会...阅读全文

博文 2019-10-21 18:33:03 aside section._1OhGeD

基于Go技术栈的微服务构建-微服务

编辑推荐: 本文来自于技术网站,本文的素材来源于我们在开发中的一些最佳实践案例,从开发、监控、日志这三个角度介绍了一些我们基于Go技术栈的微服务构建经验。 在大型系统的微服务化构建中,一个系统会被拆分成许多模块。这些模块负责不同的功能,组合成系统,最终可以提供丰富的功能。在这种构建形式中,开发者一般会聚焦于最大程度解耦模块的功能以减少模块间耦合带来的额外开发成本。同时,微服务面临着如何部署这些大量的服务系统、如何运维这些系统等新问题。 本文的素材来源于我们在开发中的一些最佳实践案例,从开发、监控、日志这三个角度介绍了一些我们基于Go技术栈的微服务构建经验。 开发 微服务的开发过程中,不同模块由不同的开发者负责,明确定义的接口有助于确定开发者的工作任务。最终的系统中,一个业务请求可能会涉及到多...阅读全文

博文 2017-12-15 03:03:55 火龙果软件

SRE: 调试 Go 中简单的内存泄漏

[内存泄漏](https://en.wikipedia.org/wiki/Memory_leak) 是一种即使当某块内存不再使用之后仍然没有被释放而产生的 bug。通常来说,它们是非常明显的,高度可见的,这使得它们成为学习程序调试的最佳选择。Go 是一门特别适合识别定位内存泄漏的语言,因为它有一套强大的工具链,这套工具链配备了非常强大的工具(*pprof*),它可以非常轻松地查明内存的使用情况。 我希望这篇文章能够演示如何直观地识别内存,并将其使用范围缩小至特定的进程内,将进程的泄漏与我们的工作关联起来,最后使用 *pprof* 工具找到内存泄漏的根源。设计这篇博客文章的初衷是为了简单地识别产生内存泄漏的根本原因。我们对 *pprof* 工具只做简单的功能介绍,不会对其做详细功能的描述。 [...阅读全文

博文 2019-01-17 22:29:54 barryz

go mod 依赖管理的心路历程

在用kubebuilder写一个k8s operator defaultvm,主要是串起ovn网络和虚机的创建,为用户提供默认可用的虚机。 Kubebuilder 是一个基于 CRD 来构建 Kubernetes API 的框架,可以使用 CRD 来构建 API、Controller 和 Admission Webhook。 代码里面调用了 kubevirt.io/client-go 定义的 virtualmachine,使用go mod进行依赖管理,默认引用了 kubevirt.io/client-go v0.23.0,但在编译时就报错了,适中拉不到prometheus的包 go: github.com/prometheus/prometheus@v2.9.2+incompatible: ...阅读全文

博文 2019-11-21 16:32:43 manshu

容器监控实践—kube-state-metrics

概述 已经有了cadvisor、heapster、metric-server,几乎容器运行的所有指标都能拿到,但是下面这种情况却无能为力: 我调度了多少个replicas?现在可用的有几个? 多少个Pod是running/stopped/terminated状态? Pod重启了多少次? 我有多少job在运行中 而这些则是kube-state-metrics提供的内容,它基于client-go开发,轮询Kubernetes API,并将Kubernetes的结构化信息转换为metrics。 功能 kube-state-metrics提供的指标,按照阶段分为三种类别: 1.实验性质的:k8s api中alpha阶段的或者spec的字段。 2.稳定版本的:k8s中不向后兼容的主要版本的更新 3.被...阅读全文

博文 2019-01-13 23:34:39 二二向箔

小团队从0搭建devOPS平台-Alertmanager报警平台

上一篇(https://www.jianshu.com/p/b15217e8f24f )文章简单介绍了监控神器prometheus的安装、配置、可视化等的使用。这篇我们来讲讲报警。 我们先简单回顾下prometheus的功能和原理。 prometheus总体架构图.png 从上图可以看出通过各种exporter采集数据后,prometheus把各种metrics(指标)统一pull到时间序列数据库中后,我们可以在可视化平台比如grafana显示后,如果有某些指标有异常可以把异常信息push推送给 alertmanager报警平台,报警平台进行处理后notify通知给指定的通道和指定的人。 这时候该Alertmanager报警平台登场了。 一、 Prometheus Alertmanager报...阅读全文

博文 2019-08-21 20:02:40 jerry区块链技术与思维

盘点 | 2019年度抢读书单,10项热门技能抢先Get

来源 | 异步每到年末,就很容易陷入焦虑的状态。一方面是年底的事情会比较多,另一方面,自己一年的忙碌似乎没有达到预期,年初立的flag清单,能打勾的并不多。但新的一年即将来临,依旧要调整状态,对自己设定新的目标——无论对2019年的自己是否满意,新一年里,我们依然未来可期。 为此,异步君给大家精心挑选了10本精品好书,都是当下热门的技能。您还可以在图书正式出版前2~3个月就可以抢先阅读图书的原创稿件。这10本书涉猎广泛,从代码规范到算法精进,从Python入门到人工智能核心算法,总有一项技能值得一学!独家好书,抢先阅读No.1代码精进之路:从码农到工匠 这是一本为专业程序员而写的书,写好代码、追求卓越和工匠精神是每个程序员都应该具备的优秀品质。本书共有13章内容,主要分为技艺部分、思想部分和...阅读全文

博文 2019-12-29 14:32:43 人邮异步社区

每周阅读(4/8/2019)

人到中年,工作和生活上各种事情压过来,感觉有点忙不过来了,希望老妈能走过这道坎,好好的活着。 工作可以适当放弃,996 是一种幸福实在不认同,家庭永远比工作来的重要。自己还是缺少对于生活的智慧,要呵护好家人和自己,其他都是浮云。 最近几周 leetcode 都拉下了(目标每周做个 1~2 道 easy - medium 难度的题目,联系 golang 编程),接下来要找时间补上。 istio 庖丁解牛(三) galley 最近在尝试通过 MCP 集成 Istio 和 Dubbo,本文解释了 Galley 这个组件。(钟华的博客不错,他的文章都可以看看。) 这个代码库:https://github.com/costinm/istio-consul 是一种示例,把 Consul service ...阅读全文

一款炫技的监控系统-Prometheus+Grafana安装记

一、前言:   之前部门用的zabbix 2.0版本的监控系统年事已高,看着那古老又单调的界面真是一点兴趣都没有。正好最近在学习k8s,偶然间看到一篇文章介绍了使用(Prometheus+Grafana)搭建的监控系统,页面很炫,本着喜新厌旧,颜值即正义,特地搭建了个研究研究,毕竟学习使我快乐! 二、Prometheus(普罗米修斯)的特点简介:   用过zabbix的朋友应该知道,它是用C(agent/server端)+PHP(前端)+Mysql(存储)的架构。本司1800+主机,8W+的监控项,每月近80G的监控数据(history,history_unit等表),虽然做了按月分区分表,但是数据库压力还是很大。而且前端页面单调,二次开发难度高(其实是小破厂本部门没有专门的PHP开发人员,...阅读全文

博文 2019-08-23 04:32:49 左舷的风

prometheus自定义metrics

项目地址 个人博客 日常项目开发过程中为了观察项目的线上运行指标通常需要项目提供一系列指标信息,我们目前用的prometheus,而项目当然要提供一系列prometheus metrics指标信息,但是默认官方golang的仓库不是很好用。 所有指标全部保存在内存重启后会全部清零 如果指标labels数量变更,无法重新注册,unregister貌似无效 无法定时清除数据,比如我想观察某些指标每一天的数据 web服务很多通用的http接口指标需要重复定义并自己定义中间件收集 于是乎找到github上一个很好的项目,可以满足上面所有需求可以大多数一般项目开发过程中的metrics需求,使用起来也比较简单。下面来自项目READEME: lib-metrics image.png GoDoc Dep...阅读全文

博文 2019-10-01 00:32:46 aside section ._1OhGeD

Prometheus神器之监控K8s集群

Prometheus 简介 Prometheus是SoundCloud开源的一款开源软件。它的实现参考了Google内部的监控实现,与源自Google的Kubernetes结合起来非常合适。另外相比influxdb的方案,性能更加突出,而且还内置了报警功能。它针对大规模的集群环境设计了拉取式的数据采集方式,你只需要在你的应用里面实现一个metrics接口,然后把这个接口告诉Prometheus就可以完成数据采集了。 安装Prometheus 首先我们使用ConfigMap的形式来设置Prometheus的配置文件,如下 apiVersion: v1kind: ConfigMapmetadata: name: prometheus-configuration labels: app.kuber...阅读全文

博文 2019-05-10 19:35:07 程序员同行者

监控系统:Prometheus源码分析

第一次接触Prometheus就被深深吸引,决定阅读源码,了解它的设计方式。首先分析的是pull metrics部分,讨论Prometheus是如何从目标点采集数据的。 Prometheus 的主要优势有: * 由指标名称和和键/值对标签标识的时间序列数据组成的多维数据模型。 * 强大的查询语言 PromQL。 * 不依赖分布式存储;单个服务节点具有自治能力。 * 时间序列数据是服务端通过 HTTP 协议主动拉取获得的。 * 也可以通过中间网关来推送时间序列数据。 * 可以通过静态配置文件或服务发现来获取监控目标。 * 支持多种类型的图表和仪表盘。 目前总结了两篇,欢迎交流: * [一、Prometheus源码分析之:数据采集](http://ldaysjun.com/2019/11/13/...阅读全文