Skip to content

Commit

Permalink
Merge pull request #119 from WeBankPartners/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
zgyzgyhero authored Oct 18, 2019
2 parents e298ddb + 65abc26 commit f9ca20b
Show file tree
Hide file tree
Showing 14 changed files with 167 additions and 109 deletions.
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# Wecube-plugins-prometheus 监控插件
# WeCube-plugins-prometheus 监控插件

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
![](https://img.shields.io/badge/language-go-orange.svg)
![](https://img.shields.io/badge/language-vue-green.svg)

## 试用链接
[点此试用Wecube-plugins-prometheus](http://134.175.254.251)
[点此试用WeCube-plugins-prometheus](http://134.175.254.251)

## 引言
Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。

Prometheus 监控插件包括几个组成部分: Prometheus Server、Consul、Alert Manager、监控应用程序。

Wecube-plugins-prometheus 无侵入式地封装了Prometheus的功能,并提供更好的告警管理和图表展示,以及与其它系统的交互等
WeCube-plugins-prometheus 无侵入式地封装了Prometheus的功能,并提供更好的告警管理和图表展示,以及与其它系统的交互等

## 技术实现
WeCube通过监控插件来对资源以及应用的监控及告警。
Expand All @@ -29,10 +29,10 @@ WeCube通过监控插件来对资源以及应用的监控及告警。
- 视图管理:提供图形配置和自定义视图功能;

## 快速入门
Wecube-plugins-prometheus采用容器化部署。
WeCube-plugins-prometheus采用容器化部署。

如何编译,请查看以下文档
[Wecube-plugins-prometheus编译文档](wiki/compile_guide.md)
[WeCube-plugins-prometheus编译文档](wiki/compile_guide.md)

如何安装, 请查看以下文档
[Wecube-plugins-prometheus部署文档](wiki/install_guide.md)
[WeCube-plugins-prometheus部署文档](wiki/install_guide.md)
32 changes: 23 additions & 9 deletions build/docker-compose.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ services:
container_name: consul
restart: always
volumes:
- ~/data/docker/consul:/consul/data
- /data/docker/consul:/consul/data
ports:
- "8300:8300"
- "8400:8400"
Expand All @@ -17,8 +17,8 @@ services:
container_name: alertmanager
restart: always
volumes:
- ~/data/docker/alertmanager:/alertmanager
- ~/app/docker/alertmanager:/etc/alertmanager
- alertmanager-data:/alertmanager
- /app/docker/alertmanager:/etc/alertmanager
ports:
- "9093:9093"
networks:
Expand All @@ -32,8 +32,8 @@ services:
container_name: prometheus
restart: always
volumes:
- ~/data/docker/prometheus:/prometheus
- ~/app/docker/prometheus:/etc/prometheus
- prometheus-data:/prometheus
- /app/docker/prometheus:/etc/prometheus
ports:
- "9090:9090"
networks:
Expand All @@ -52,7 +52,7 @@ services:
]
volumes:
- /etc/localtime:/etc/localtime
- ~/data/docker/monitor-db:/var/lib/mysql
- /data/docker/monitor-db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD={{MYSQL_ROOT_PASSWORD}}
ports:
Expand All @@ -64,9 +64,9 @@ services:
restart: always
volumes:
- /etc/localtime:/etc/localtime
- ~/app/docker/monitor/conf:/app/monitor/conf
- ~/app/docker/monitor/logs:/app/monitor/logs
- ~/app/docker/prometheus/rules:/app/monitor/conf/rules
- /app/docker/monitor/conf:/app/monitor/conf
- /app/docker/monitor/logs:/app/monitor/logs
- /app/docker/prometheus/rules:/app/monitor/conf/rules
ports:
- {{MONITOR_SERVER_PORT}}:{{MONITOR_SERVER_PORT}}
networks:
Expand All @@ -76,3 +76,17 @@ networks:
monitor:
driver: bridge

volumes:
prometheus-data:
driver: local
driver_opts:
o: bind
type: none
device: /data/docker/prometheus
alertmanager-data:
driver: local
driver_opts:
o: bind
type: none
device: /data/docker/alertmanager

30 changes: 15 additions & 15 deletions build/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,18 @@ then
exit 1
fi

mkdir -p ~/app/docker/prometheus
mkdir -p ~/app/docker/prometheus/rules
mkdir -p ~/app/docker/alertmanager
mkdir -p ~/app/docker/monitor/conf
mkdir -p ~/app/docker/monitor/logs
mkdir -p ~/data/docker/monitor-db
mkdir -p ~/data/docker/prometheus
mkdir -p ~/data/docker/consul
mkdir -p ~/data/docker/alertmanager
cp ../monitor-server/conf/docker/prometheus.yml ~/app/docker/prometheus
cp ../monitor-server/conf/docker/alertmanager.yml ~/app/docker/alertmanager
cp ../monitor-server/conf/docker/monitor.json ~/app/docker/monitor/conf/default.json
mkdir -p /app/docker/prometheus
mkdir -p /app/docker/prometheus/rules
mkdir -p /app/docker/alertmanager
mkdir -p /app/docker/monitor/conf
mkdir -p /app/docker/monitor/logs
mkdir -p /data/docker/monitor-db
mkdir -p /data/docker/prometheus
mkdir -p /data/docker/consul
mkdir -p /data/docker/alertmanager
cp ../monitor-server/conf/docker/prometheus.yml /app/docker/prometheus
cp ../monitor-server/conf/docker/alertmanager.yml /app/docker/alertmanager
cp ../monitor-server/conf/docker/monitor.json /app/docker/monitor/conf/default.json

source monitor.cfg

Expand All @@ -32,10 +32,10 @@ sed -i "s~{{MYSQL_ROOT_PASSWORD}}~$database_init_password~g" docker-compose.yml
sed -i "s~{{MONITOR_IMAGE_NAME}}~$monitor_image_name~g" docker-compose.yml
sed -i "s~{{MONITOR_SERVER_PORT}}~$monitor_server_port~g" docker-compose.yml

sed -i "s~{{MYSQL_ROOT_PASSWORD}}~$database_init_password~g" ~/app/docker/monitor/conf/default.json
sed -i "s~{{MONITOR_SERVER_PORT}}~$monitor_server_port~g" ~/app/docker/monitor/conf/default.json
sed -i "s~{{MYSQL_ROOT_PASSWORD}}~$database_init_password~g" /app/docker/monitor/conf/default.json
sed -i "s~{{MONITOR_SERVER_PORT}}~$monitor_server_port~g" /app/docker/monitor/conf/default.json

sed -i "s~{{MONITOR_SERVER_PORT}}~$monitor_server_port~g" ~/app/docker/alertmanager/alertmanager.yml
sed -i "s~{{MONITOR_SERVER_PORT}}~$monitor_server_port~g" /app/docker/alertmanager/alertmanager.yml

docker-compose -f docker-compose.yml up -d

Expand Down
20 changes: 17 additions & 3 deletions monitor-server/services/db/alarm.go
Original file line number Diff line number Diff line change
Expand Up @@ -553,25 +553,32 @@ func GetEndpointsByGrp(grpId int) (error,[]*m.EndpointTable) {

func GetAlarms(query m.AlarmTable) (error,[]*m.AlarmProblemQuery) {
var result []*m.AlarmProblemQuery
var whereSql,statusSql string
var whereSql,extWhereSql string
var params []interface{}
var extParams []interface{}
if query.Id > 0 {
whereSql += " and t1.id=? "
extWhereSql += " and t1.id=? "
params = append(params, query.Id)
extParams = append(extParams, query.Id)
}
if query.StrategyId > 0 {
whereSql += " and t1.strategy_id=? "
extWhereSql += " and t1.strategy_id=? "
params = append(params, query.StrategyId)
extParams = append(extParams, query.StrategyId)
}
if query.Endpoint != "" {
whereSql += " and t1.endpoint=? "
extWhereSql += " and t1.endpoint=? "
params = append(params, query.Endpoint)
extParams = append(extParams, query.Endpoint)
}
if query.Status != "" {
whereSql += " and t1.status=? "
params = append(params, query.Status)
if query.Status == "firing" {
statusSql = "and status!='closed'"
extWhereSql += "and t1.status!='closed' "
}
}
if query.SMetric != "" {
Expand All @@ -580,20 +587,27 @@ func GetAlarms(query m.AlarmTable) (error,[]*m.AlarmProblemQuery) {
}
if query.SPriority != "" {
whereSql += " and t1.s_priority=? "
extWhereSql += " and t1.s_priority=? "
params = append(params, query.SPriority)
extParams = append(extParams, query.SPriority)
}
if !query.Start.IsZero() {
whereSql += fmt.Sprintf(" and t1.start>='%s' ", query.Start.Format(m.DatetimeFormat))
}
if !query.End.IsZero() {
whereSql += fmt.Sprintf(" and t1.end<='%s' ", query.End.Format(m.DatetimeFormat))
}
for _,v := range extParams {
params = append(params, v)
}
//err := x.SQL("SELECT t1.*,t2.path,t2.keyword FROM alarm t1 LEFT JOIN log_monitor t2 ON t1.strategy_id=t2.strategy_id where 1=1 " + whereSql + " order by t1.id desc", params...).Find(&result)
sql := `SELECT t3.* FROM (
SELECT t1.*,'' path,'' keyword FROM alarm t1 WHERE t1.s_metric<>'log_monitor' `+whereSql+`
UNION
SELECT t1.*,t2.path,t2.keyword FROM alarm t1 LEFT JOIN log_monitor t2 ON t1.strategy_id=t2.strategy_id WHERE t1.s_metric='log_monitor' `+statusSql+`
SELECT t1.*,t2.path,t2.keyword FROM alarm t1 LEFT JOIN log_monitor t2 ON t1.strategy_id=t2.strategy_id WHERE t1.s_metric='log_monitor' `+extWhereSql+`
) t3 ORDER BY t3.id DESC`
fmt.Println(sql)
fmt.Println(params)
err := x.SQL(sql,params...).Find(&result)
if err != nil {
mid.LogError("get alarms fail", err)
Expand Down
4 changes: 2 additions & 2 deletions monitor-ui/public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>Wecube-monitor</title>
<title>WeCube-monitor</title>
</head>
<body>
<noscript>
<strong>We're sorry but Wecube-monitor doesn't work properly without JavaScript enabled.
<strong>We're sorry but WeCube-monitor doesn't work properly without JavaScript enabled.
Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
Expand Down
3 changes: 3 additions & 0 deletions monitor-ui/src/assets/css/common.less
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,9 @@ button{
.fa {
cursor: pointer;
}
.fa-14 {
font-size: 14px;
}
.fa-16 {
font-size: 16px;
}
Expand Down
3 changes: 2 additions & 1 deletion monitor-ui/src/components/components/Search.vue
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ export default {
},
datePick (data) {
this.dateRange = data
this.dateRange[0] = this.dateRange[0] + ' 00:00:01'
this.dateRange[1] = this.dateRange[1] + ' 23:59:59'
this.getChartsConfig()
},
getChartsConfig () {
Expand All @@ -93,7 +95,6 @@ export default {
this.$parent.manageCharts(responseData, params)
},{isNeedloading: false})
})
}
},
components: {
Expand Down
3 changes: 1 addition & 2 deletions monitor-ui/src/components/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,9 @@ export default {
}
.content {
width:1200px;
min-height: 560px;
min-height: 95vh;
height: 100%;
margin: 0 auto;
// padding: 0 10px;
padding: 10px;
background:white;
}
Expand Down
Loading

0 comments on commit f9ca20b

Please sign in to comment.