influxdb源码阅读 -- 项目结构

  1. 项目结构
  2. 参考

项目结构

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
├─authorizer   验证信息
├─bolt 与bbolt交互的库
├─chronograf 提供了一个可视化的监控界面
├── cmd
│   ├── chronograf-migrator
│   ├── influx influx 客户端CLI
│   ├── influx_inspect influx探针
│   ├── influxd influx服务CLI
│   └── telemetryd 用户信息征集
├── context 与上下文有关的类
├── docker 与docker有关的类
│   ├── flux
│   └── influxd
├── docs 用于存放文档,目前主要存在升级相关事项文档
├── endpoints TODO 暂时不知道做什么的。是对原有的endpoints服务进行了一次重构,且抽离出来的
├── etc 提供了一些常用脚本
├── flux influx的客户端代码
├── gather 收集器
├── http 对外提供了http接口的目录
│   ├── influxdb
│   ├── metric
│   └── mock
├── inmem 服务内部的内存数据管理
│   └── kvdata
├── internal 内部服务
│   ├── fs 文件相关
│   ├── gogoproto
│   ├── testutil
│   └── yaml2json
├── jsonweb jwt相关服务
├── kit 工具集
│   ├── check
│   ├── cli
│   ├── errors
│   ├── grpc
│   ├── metric
│   ├── prom
│   ├── signals
│   ├── tracing
│   └── transport
├── kv TODO 看上去像是K/V存储,用于缓存内部的一些信息。
├── logger 日志相关
├── mock mock数据,用于测试
├── models 定义了一些数据模型
│   └── testdata
├── nats NATS队列中间件相关
├── notification TODO 暂时看不出是做什么的
│   ├── check
│   ├── endpoint
│   ├── flux
│   └── rule
├── pkg 一些内部常用的包
│   ├── binaryutil
│   ├── bloom
│   ├── bytesutil
│   ├── data
│   ├── encoding
│   ├── escape
│   ├── estimator
│   ├── fs
│   ├── httpc
│   ├── jsonnet
│   ├── jsonparser
│   ├── lifecycle
│   ├── limiter
│   ├── metrics
│   ├── mmap
│   ├── pointer
│   ├── pool
│   ├── rhh
│   ├── slices
│   ├── snowflake
│   ├── testing
│   └── testttp
├── pkger TODO 暂时看不出是做什么的
│   └── testdata
├── predicate TODO 暂时看不出是做什么的
├── prometheus WTF ?? TODO 暂时看不出是做什么的
├── query TODO 又是一个船新的HTTP服务,用于 Flux 查询的,但是不知道和http之间的关联
│   ├── benchmarks
│   ├── builtin
│   ├── control
│   ├── influxql
│   ├── mock
│   ├── promql
│   ├── querytest
│   └── stdlib
├── rand 随机生成器,包含ID/Token
├── resource 定义了资源的实体,资源实体包含了organization/task/bucket/user
│   └── noop
├── scripts 包含了一些协议相关的shell文件,这个文件为什么不会合并在etc里?
├── snowflake 雪花算法ID生成器
├── source 与版本兼容相关的类,包含了UI/v1/v2
├── storage TODO 字面意思是存储,但是实际作用还不清楚
│   ├── compat
│   ├── reads
│   ├── readservice
│   └── wal
├── task 任务相关
│   ├── backend
│   ├── mock
│   ├── options
│   └── servicetest
├── telegraf TODO 不知道做啥的
│   └── plugins
├── telemetry 用于从普罗米修斯接收数据的数据收集器
├── testing 测试相关
├── toml toml解析类。(所以这个为什么不放在pkg目录里)
├── tools TODO 工具类,但是具体也不知道做什么的
│   └── tmpl
├── tsdb TODO 暂时不知道是做什么的
│   ├── cursors
│   ├── internal
│   ├── testdata
│   ├── tsi1
│   ├── tsm1
│   └── value
├── ui 后台管理界面
│   ├── __mocks__
│   ├── assets
│   ├── build
│   ├── cypress
│   ├── mocks
│   ├── scripts
│   └── src
├── uuid 用于生成UUID。所以,这个为什么不放在pkg里
├── vault 与valut相关的文件
├── write 写入
└── zap 与zap日志相关的文件

参考

https://github.com/yinggaozhen/GoLearn/issues/43


转载无需注明来源,放弃所有权利