监控系统 push 和 pull 模型

监控系统 push 和 pull 模型

Push 模型

var fooCount = 0

func foo() {
    // ... do stuff ...

    fooCount += 1
    metricsChan <- Metrics{"foo.count", fooCount, CounterType} …

阅读全文

sync.Once 实现 golang 中的单例模式

sync.Once 实现 golang 中的单例模式

sync.once可以控制函数只能被调用一次,不能多次重复调用。因此,可以利用这个特性实现一个线程安全的单例模式。

import (
    "sync"
)
 
type singleton struct {
}
 
var instance *singleton
var …

阅读全文

golang 应用日志实践

golang 应用日志实践

这里可以分为命令行应用和服务端应用两类情况

命令行客户端应用

典型就是 kubectl 这种客户端应用,下面是一个使用 op/go-logging 库配置多端输出的例子,应用将会同时输出到标准输出和写入日志文件

var formatStdout = logging.MustStringFormatter( …

阅读全文

图数据库 Neo4j 笔记

图数据库 Neo4j 笔记

图数据库

图数据库是一种非关系型数据库,它应用图形理论存储实体之间的关系信息。最常见的一个例子,就是社会网络中人与人之间的关系。

  • 当前有流行图形数据库:Neo4j、FlockDB、AllegroGraph、GraphDB、InfiniteGraph、OrientDB、InfoGrid和HypergraphDB等
  • 另有自称 …

阅读全文

CentOS 上搭建 grafana 开发环境

CentOS 上搭建 grafana 开发环境

主要过程参考grafana/grafana 的github主页

环境要求

设置代理(必须,多个包依赖的源需要FQ才能访问)

预先安装依赖

yum install -y git bison gcc

需要预先安装 go1.7(官方要求,go 1.6 编译存在问题)

这里通过 gvm 这个go语言多版 …

阅读全文

git 通过代理加速

git 通过代理加速

github 在国内访问一直不是很稳定,clone/push 等操作速度很慢。以下提供 https 和 ssh 这两种的访问方式的加速方法的配置,以及优缺点比较。

https

github 允许用户通过 https 端口使用 ssh,可以通过下面的指令测试

ssh -T -p 443 git@ssh.github.com
Hi …

阅读全文

git 多账号处理

git 多账号处理

主要分两种场景

1. 不同网站的2个git账号使用相同的邮箱

对于不同网站,可以使用同一个邮箱,比如,github,coding的账号可以都是 xxxx#gmail.com,这个时候由于唯一性的认证是邮箱,所以 ssh config 的配置如下

host github
  hostname github.com
host …

阅读全文