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

Go语言程序的状态监控

Go是很实在的编程语言,从一开始就提供了很详细的运行状态信息。产品上线后的调优和排查疑难杂症都得靠这些状态信息。这边总结一些我们项目里用到的状态监控手段。 pprof Go自带了一个pprof工具,这个工具可以做CPU和内存的profiling,官方的博客有一篇文章介绍用法:《Profiling Go Programs》 官方的文章讲了怎么用自带的pprof工具分析数据,但是获得分析数据的部分比较单一,我在很长一段时间一直误以为cpuprof和memprof必须在程序启动时打开,其实cpuprof和memprof是可以在线打开和关闭的。 并且pprof模块其实不只是cpuprof和memprof这两个功能,其中还提供了Lookup功能用于获取堆状态信息、线程状态信息、 goroutine状态...阅读全文

博文 2014-10-13 14:54:27 达达

服务发现:Zookeeper vs etcd vs Consul

【编者的话】本文对比了Zookeeper、etcd和Consul三种服务发现工具,探讨了最佳的服务发现解决方案,仅供参考。 如果使用预定义的端口,服务越多,发生冲突的可能性越大,毕竟,不可能有两个服务监听同一个端口。管理一个拥挤的比方说被几百个服务所使用的所有端口的列表,本身就是一个挑战,添加到该列表后,这些服务需要的数据库和数量会日益增多。因此我们应该部署无需指定端口的服务,并且让Docker为我们分配一个随机的端口。唯一的问题是我们需要发现端口号,并且让别人知道。 当我们开始在一个分布式系统上部署服务到其中一台服务器上时,事情会变得更加复杂,我们可以选择预先定义哪台服务器运行哪个服务的方式,但这会导致很多问题。我们应该尽我们所能尽量利用服务器资源,但是如果预先定义每个服务的部署位置,那么...阅读全文

博文 2015-09-20 10:39:43 国会山上的猫TuxHu

跨平台系统监控bosun

专业的跨平台开源系统监控项目,go语言编写,灵活的模板和表达式配合上各种collector可以监控任何应用或系统级的运行数据,比 zabbix更轻量级、更易入手和更适合定制。 ## 使用 ## bosun [-c=dev.conf] [-t] -c specifies the config file to use, defaults to dev.conf. -t parses the config file, validates it, and exits. ## 截图 ## ![截图](http://bosun.org/public/ss_host.png) 更多截图:http://bosun.org/screenshots.htm...阅读全文

开源项目 2014-11-15 12:26:58 mjibson

Prometheus 系统监控方案 一

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

Golang-too_many_open_files-解决方法

这是系统资源限制,通常单进程不能超过 1024,我使用cgo来设置,代码如下: package main /* #include #include #include int rlimit_init() { printf("setting rlimit\n"); struct rlimit limit; if (getrlimit(RLIMIT_NOFILE, &limit) == -1) { printf("getrlimit error\n"); return 1; } limit.rlim_cur = limit.rlim_max = 50000; if (setrlimit(RLIMIT_NOFILE, &...阅读全文

博文 2015-03-03 21:46:55 nulijiabei

Go语言监控文件变化小程序.

package main import ( "log" "github.com/go-fsnotify/fsnotify" ) func main() { watcher, err := fsnotify.NewWatcher() if err != nil { log.Fatal(err) } defer watcher.Close() done := make(chan bool) go func() { for { select { case event := <-watcher.Events: log.Println("event:", event) if event.Op&fsnotify.Write == fsnotify.Write { log.Println("modifie...阅读全文

博文 2015-10-23 12:00:06 fyxichen

世界上最简单的监控服务 pingd

pingd 是世界上最简单的监控服务,使用 golang 编写。软件支持 IPv6,但是服务器不支持。 pingd 允许同时 ping 上千个 IPs,在此期间还可以管理监控的主机。 用户提供主机名或者 IP,还有用户邮箱地址,就可以使用 3 个生成 URLs 来开启,停止或者删除你的追踪。每当你的服务器停机或者后台在线都会发送通知,还包含控制 URLs。

~$# start monitoring your server with a single curl command.
~$curl ping.gg/me@example.org/104.28.13.51
[ ok...阅读全文

可视化系统监控工具 Cloudinsight Agent

![image](http://static.oschina.net/uploads/img/201610/18113759_OZtU.jpg) 很高兴地宣布 Cloudinsight  Agent 在 BSD 开源协议下正式开源了。我们的工程师在开源前已将代码用 Golang 重写,更加清晰简洁,欢迎大家参与到  Cloudinsight Agent 的开发和迭代中来。 **为什么要用 Golang 重写和开源** [**Cloudinsight**](http://cloudinsight.oneapm.com/)**是一个可视化系统监控工具,能够对数据指标进行聚合、分组、过滤、 管理、计算;并提供团队协作功能,共同管理数据和报警事件。而这些的关键,正是 Cloudinsigh...阅读全文

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

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

Linux 资源监控sysmon - 功能强大的图形化 linux 系统资源监控

sysmon 是一个前后端分离的 linux 资源监控应用, 可以监控 CPU/内存/磁盘/网络 等状态, 还有极其详细的进程/线程信息 服务端只支持 Linux, 包括 x86/amd64/armv6l/arm64/mips/mips64 架构 客户端则支持 web/windows/linux/android, 具体每个平台上支持的架构, 参考: https://github.com/Lt0/sysmon/releases 服务端使用 Golang + beego 实现 客户端使用 vue + vuetify 实现 桌面客户端主要是 electron 封装的 web app 移动客户端主要使用 hbuilder 封装的 web app 觉得有用的记得给个星啊!!!...阅读全文

欢迎大家来使用在线 Golang IDE: https://wide.b3log.org

### 特性 * 代码高亮、折叠(Go/HTML/JS/Markdown 等) * 自动补全(基于 gocode) * 格式化(gofmt/goimports, HTML/JSON) * 代码导航(快速打开文件、跳转使用/声明、搜索、大纲视图等) * go get/vet/test * 文件导入/导出 * 多主题 跑一些 _简单的_ 项目已经完全足够了,欢迎大家在体验后[反馈](https://github.com/b3log/wide/issues/new)建议、bug。 ### 使用 * **推荐**直接使用我们搭建的 [Wide 在线服务](https://wide.b3log.org)(“服务器资源这么空闲我都不忍心看了!”) * 我们也提供了...阅读全文

Go监控目录变化小程序.

package main import ( "flag" "log" "os/exec" "strings" "sync" "time" "github.com/go-fsnotify/fsnotify" ) var ( sleeptime int path string cmd string args []string ) func init() { flag.IntVar(&sleeptime, "t", 30, "-t=30") flag.StringVar(&path, "p", "./", "-p=filepath or dirpath") flag.StringVar(&cmd, "c", "", "-c=command") str := flag.String("a", "",...阅读全文

博文 2015-10-25 02:00:05 fyxichen

可视化系统监控工具 Cloudinsight Agent 正式开源

![](http://o8g4uutrr.bkt.clouddn.com/cloudinsight%20agent%201.jpg) 很高兴地宣布 Cloudinsight Agent 在 BSD 开源协议下正式开源了。我们的工程师在开源前已将代码用 Golang 重写,更加清晰简洁,欢迎大家参与到 Cloudinsight Agent 的开发和迭代中来。 ##为什么要用 Golang 重写和开源 [Cloudinsight](http://cloudinsight.oneapm.com?utm_source=studygolang&utm_medium=Article&utm_term=agentos&utm_campaign=CiTech&from=jscwgye...阅读全文

非官方中文文档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内存释放

一、前言 一般在golang运行完成初始化时,会创建专门的goroutine用于后台监控、定期任务,这其中也涉及到了强制垃圾回收、内存释放等任务。 // 主goroutine. func main() { // ... // m0: 系统主线程 // g0:主goroutine // m0、g0是比较特殊的 仅用于main goroutine的父goroutine g.m.g0.racectx = 0 if sys.PtrSize == 8 { // 64bits 系统 maxstacksize = 1000000000 } else { // 32bits系统 maxstacksize = 250000000 } // 新建M(物理线程) mainStarted = true if GOA...阅读全文

博文 2019-01-09 22:34:43 神奇的考拉

六大下一代Docker监测工具

![alt 文本](http://blog.tenxcloud.com/wp-content/uploads/2015/09/docker%E7%9B%91%E6%B5%8B%E5%B7%A5%E5%85%B7-300x227.jpg ) 容器:这里面什么才是最重要的?container monitoring,一项可以帮助你了解容器内发生什么以及让你获得某种支持的技术,随着Docker自身的monitoring 和 introspection技术API的成熟,已经有最新一波的容器监测技术利用到它们。 以下列举6个Docker相关的监测App和服务,从简单的开源工具到复杂的企业整体解决方案。 ## cAdvisor 谷歌的container introspection...阅读全文

TOPGAME诚聘Golang开发工程师

岗位职责: 1.您将参与游戏开发团队的整个创意、讨论、设计、开发、调整等游戏开发过程; 2.负责手机游戏的服务器端设计、开发和维护工作; 3.贡献你的知识,分享你的点子,发挥你的创意,融入这个团队! 任职要求: 1.大学本科以上学历,开发经验丰富,熟悉golang语言,基础扎实,2年以上golang开发工作经验,有完整的项目经验 ;熟悉php/c/c++/java,至少一年使用经验; 2.精通Golang协程,精通channel和锁,对高并发、高可用架构系统有正确、深刻的理解,要求有分布式服务器开发经验; 3.有Web开发经验,对RESTful概念有清晰的理解,并至少有一次API Server开发项目中运用到; 4.熟悉xml/json/pro...阅读全文

适合Go语言初学者的资料

适合Go语言初学者的资料 本页是为那些对Go语言学习感兴趣的开发者列举的一些学习资料。(注:部分网站无法访问,请自备翻墙工具) 安装GO语言和配置工作空间 从这里开始学习如何创建一个工作空间来写Go代码 How to Write Go Code Writing, building, installing, and testing Go code 在线资源 一旦你配置完Go语言的环境后,这里有一些学习Go的优秀资源。 The Go programming language tour Go by example Effective Go The Go language FAQ Going Go Programming by WIlliam Kennedy 教程 Writing table dri...阅读全文

博文 2014-10-11 12:00:01 wuwenxiang91322

基于 Kubernetes 的游戏服务器Agones

Agones 是谷歌和游戏厂商育碧联合开发的游戏服务器。它是一个用于在 Kubernetes 上托管、运行和扩展专用游戏服务器的库。 谷歌在开发文档中表示未来谷歌将会使用 Kubernetes 实现服务器的集群管理和游戏扩展。而育碧方面也表示,通过 Agones 服务器,可以更好地安排服务器资源,为玩家们提供最出色的多人游戏服务。 **主要特性** - 能够在 Kubernetes 中定义一个 GameServer - 通过 yaml 或 API - 管理 GameServer 生命周期 - 包括健康检查和连接信息 - 客户端 SDK 与专用游戏服务器集成 **工作原理** ![image](https://static.oschina.net/uploads/spac...阅读全文

[go语言]一种自适应资源分配器的实现

在上一篇博文《利用缓冲信道来实现网游帐号验证消息的分发和等待》中提到提到利用缓冲信道来实现数据包的分发和等待,并给出了一个原型实现。但是其中的缓冲信道有一个不足,即只能允许一定数量的goroutine在同时使用SendAndReceive函数等待消息的分发;如果有更多的goroutine需要等待消息,则必须等其他goroutine获得消息并释放信道以后自己才能发送数据包并等待回应。这个不足在高并发时限制了系统的吞吐量。 为了解决这个问题,本文提供一种自适应的信道分配器的实现作为一种解决方案。因为信道也可以换成别的资源,所以认为它本质上是一种资源分配器。这个自适应资源分配器的原理是: 1.预先分配一定数量的资源放到缓冲信道(缓冲池)里,以便在申请资源时能够快速获得资源 2.如果申请资源时缓冲池...阅读全文

博文 2014-11-02 15:03:54 stevewang

基于 Docker 的云资源管理与调度平台OpenDCP

OpenDCP是一个基于Docker的云资源管理与调度平台,集镜像仓库、多云支持、服务编排、服务发现等功能与一身,支持服务池的扩缩容,其技术体系源于微博用于支持节假日及热点峰值流量的弹性调度DCP系统。OpenDCP允许利用公有云服务器搭建起适应互联网应用的IT基础设置,并且将运维的工作量降到最低。 特性 基于Docker容器技术进行封装,不要求使用者掌握Docker。 支持阿里云公有云平台,可根据需要随时申请和释放服务器,显著降低运营成本 涵盖虚拟机创建、镜像打包、镜像部署、服务发现各个环节,简单易用,易于组织内推...阅读全文

文件变更监听通知系统fileboy

fileboy,文件变更监听通知系统,使用 GO 编写。 适用于 Hot Reload (典型的如开发go项目,无需每次手动执行 go build;又比如前端 node 打包) 或者 系统监控的场景。 go version >=1.10 [正式版 v1.0](https://github.com/dengsgo/fileboy/releases) 直接下载已经编译好的对应平台二进制文件,加入系统 Path 中即可。 clone 该项目,进入主目录,运行命令: fileboy 的正常运行依赖于 `filegirl.yaml` 配置,所以首次在项目中使用需要初始化 `filegirl.yaml`。 进入你想要 hot reload 的项目主目录下; 运行 `fileboy ...阅读全文

监控服务器数据的进程信息处理

查看地址 https://wide.b3log.org/playground/f015ec4406b217788a6b020629e2d88e.go