CloudInsightAgent源码分析

之前模仿sysdig做了个容器性能监控平台,链接在此,虽然有一些基础的功能,但是还不完善,

恰好看到cloud insight开源了他的agent,看过之后,和我的思路差不多,就简单记录一下,避免遗忘。

代码

https://github.com/cloudinsight/cloudinsight-agent

据说之前是python,后来切换到go

整体结构

1
2
3
4
5
6
7
8
├── agent
├── collector
│   ├── conf.d # plugins的配置文件,比如MySQL的连接串
│   └── plugins # plugin的代码,有docker,MySQL等
├── common # 公共包
├── forwarder # 发到cloud insight服务器
├── statsd
└── vendor # 三方包

整体流程

init的时候会加载cloudinsight-agent/collector/plugins的插件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
+------------------------------------------+
| main |
| |
| |
| |
| +-------------------+ |
| |config.NewConfig | |
| | | |
| +-------------------+ |
| |
| |
| +-------------------+ |
| |startAgent | |
| | | |
| +-------------------+ |
| |
| |
| +-------------------+ |
| |startForwarder | |
| | | |
| +-------------------+ |
| |
| |
| +-------------------+ |
| |startStatsd | |
| | | |
| +-------------------+ |
| |
| |
| |
| |
+------------------------------------------+

agent

collector

plugins

config

以docker为例

Check接口,调用docker daemon的rest api采集


本博客欢迎转发,但请保留原作者信息
github:codejuan
博客地址:http://blog.decbug.com/