Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"alert.go",
"http.go",
"monitor.go",
],
importpath = "go-common/app/interface/openplatform/monitor-end/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/interface/openplatform/monitor-end/conf:go_default_library",
"//app/interface/openplatform/monitor-end/model:go_default_library",
"//app/interface/openplatform/monitor-end/model/monitor:go_default_library",
"//app/interface/openplatform/monitor-end/service:go_default_library",
"//library/ecode:go_default_library",
"//library/log:go_default_library",
"//library/net/http/blademaster:go_default_library",
"//library/net/http/blademaster/middleware/auth:go_default_library",
"//library/net/metadata:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,218 @@
package http
import (
"go-common/app/interface/openplatform/monitor-end/model"
"go-common/app/interface/openplatform/monitor-end/model/monitor"
"go-common/library/ecode"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/metadata"
"strconv"
)
func groupList(c *bm.Context) {
var params = &model.GroupListParams{}
if err := c.Bind(params); err != nil {
c.JSON(nil, err)
return
}
c.JSON(mfSvc.GroupList(c, params))
}
func groupAdd(c *bm.Context) {
var params = &model.Group{}
if err := c.Bind(params); err != nil {
c.JSON(nil, err)
return
}
c.JSON(mfSvc.AddGroup(c, params))
}
func groupUpdate(c *bm.Context) {
var (
params = &model.Group{}
err error
)
if err = c.Bind(params); err != nil {
c.JSON(nil, err)
return
}
err = mfSvc.UpdateGroup(c, params)
c.JSON(nil, err)
}
func groupDelete(c *bm.Context) {
var (
params = &model.Target{}
err error
)
if err = c.Bind(params); err != nil {
c.JSON(nil, err)
return
}
err = mfSvc.DeleteGroup(c, params.ID)
c.JSON(nil, err)
}
func targetList(c *bm.Context) {
var (
params = &model.Target{}
pn, ps int
err error
form = c.Request.Form
sort string
draw int
res *model.Targets
)
if err = c.Bind(params); err != nil {
c.JSON(nil, err)
return
}
pnStr := form.Get("page")
psStr := form.Get("pagesize")
drawStr := form.Get("draw")
sort = form.Get("sort")
if sort == "" {
sort = "ctime,0"
}
if drawStr != "" {
if draw, err = strconv.Atoi(drawStr); err != nil {
err = ecode.RequestErr
c.JSON(nil, err)
return
}
pnStr = form.Get("start")
psStr = form.Get("length")
}
if pn, err = strconv.Atoi(pnStr); err != nil || pn < 0 {
err = ecode.RequestErr
c.JSON(nil, err)
return
}
if ps, err = strconv.Atoi(psStr); err != nil || ps < 0 {
err = ecode.RequestErr
c.JSON(nil, err)
return
}
if ps == 0 {
ps = 20
}
if draw > 0 {
pn = (pn + ps) / ps
}
if pn == 0 {
pn = 1
}
res, err = mfSvc.TargetList(c, params, pn, ps, sort)
if draw > 0 {
res.Draw = draw
}
c.JSON(res, err)
}
func targetAdd(c *bm.Context) {
var params = &model.Target{}
if err := c.Bind(params); err != nil {
c.JSON(nil, err)
return
}
c.JSON(mfSvc.AddTarget(c, params))
}
func targetUpdate(c *bm.Context) {
var (
params = &model.Target{}
err error
)
if err = c.Bind(params); err != nil {
c.JSON(nil, err)
return
}
err = mfSvc.UpdateTarget(c, params)
c.JSON(nil, err)
}
func targetSync(c *bm.Context) {
var (
params = &model.Target{}
err error
)
if err = c.Bind(params); err != nil {
c.JSON(nil, err)
return
}
if params.ID == 0 {
err = ecode.RequestErr
c.JSON(nil, err)
return
}
err = mfSvc.TargetSync(c, params.ID, params.State)
c.JSON(nil, err)
}
func productAdd(c *bm.Context) {
var (
params = &model.Product{}
err error
)
if err = c.Bind(params); err != nil {
c.JSON(nil, err)
return
}
c.JSON(mfSvc.AddProduct(c, params))
}
func productUpdate(c *bm.Context) {
var (
params = &model.Product{}
err error
)
if err = c.Bind(params); err != nil {
c.JSON(nil, err)
return
}
err = mfSvc.UpdateProduct(c, params)
c.JSON(nil, err)
}
func productDelete(c *bm.Context) {
var (
params = &model.Product{}
err error
)
if err = c.Bind(params); err != nil {
c.JSON(nil, err)
return
}
if params.ID == 0 {
err = ecode.RequestErr
c.JSON(nil, err)
return
}
err = mfSvc.DeleteProduct(c, params.ID)
c.JSON(nil, err)
}
func productList(c *bm.Context) {
c.JSON(mfSvc.AllProducts(c))
}
func collect(c *bm.Context) {
var (
params = &monitor.Log{}
err error
)
if err = c.Bind(params); err != nil {
c.JSON(nil, err)
return
}
midInter, _ := c.Get("mid")
if midInter != nil {
params.Mid = strconv.FormatInt(midInter.(int64), 10)
}
params.IP = metadata.String(c, metadata.RemoteIP)
params.Buvid = c.Request.Header.Get("Buvid")
params.UserAgent = c.Request.Header.Get("User-Agent")
mfSvc.Collect(c, params)
c.JSON(nil, nil)
}

View File

@@ -0,0 +1,84 @@
package http
import (
"go-common/app/interface/openplatform/monitor-end/conf"
"go-common/app/interface/openplatform/monitor-end/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/auth"
"net/http"
)
var (
mfSvc *service.Service
authSvr *auth.Auth
)
// Init init account service.
func Init(c *conf.Config, s *service.Service) {
authSvr = auth.New(nil)
mfSvc = s
// engine
engine := bm.DefaultServer(c.BM)
innerRouter(engine)
// init inner server
if err := engine.Start(); err != nil {
log.Error("engine.Start() error(%v)", err)
panic(err)
}
}
// innerRouter init inner router.
func innerRouter(e *bm.Engine) {
e.Ping(ping)
e.Register(register)
group := e.Group("/open/monitor", authSvr.Guest)
{
group.GET("/report", report)
group.GET("/err/collect", collect)
}
group = e.Group("open/internal/monitor", authSvr.Guest)
{
group.GET("/report", report)
group.GET("/consume/start", startConsume)
group.GET("/consume/stop", stopConsume)
group.GET("/consume/pause", pauseConsume)
r := group.Group("/alert")
{
cr := r.Group("/group")
{
cr.GET("/list", groupList)
cr.POST("/update", groupUpdate)
cr.POST("/add", groupAdd)
cr.POST("/delete", groupDelete)
}
cr = r.Group("/target")
{
cr.GET("/list", targetList)
cr.POST("/update", targetUpdate)
cr.POST("/add", targetAdd)
cr.POST("/sync", targetSync)
}
cr = r.Group("/product")
{
cr.POST("/add", productAdd)
cr.POST("/update", productUpdate)
cr.POST("/delete", productDelete)
cr.GET("/list", productList)
}
}
}
}
// ping check server ok.
func ping(c *bm.Context) {
if err := mfSvc.Ping(c); err != nil {
log.Error("ping error(%v)", err)
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}
// register support discovery.
func register(c *bm.Context) {
c.JSON(map[string]struct{}{}, nil)
}

View File

@@ -0,0 +1,69 @@
package http
import (
"strconv"
"go-common/app/interface/openplatform/monitor-end/model"
"go-common/library/ecode"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/metadata"
)
func report(c *bm.Context) {
var (
params = &model.LogParams{}
mid int64
ip = metadata.String(c, metadata.RemoteIP)
err error
buvid, userAgent string
)
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
if err := c.Bind(params); err != nil {
c.JSON(nil, err)
return
}
if cookie, _ := c.Request.Cookie("buvid3"); cookie != nil {
buvid = cookie.Value
}
if buvid == "" {
buvid = c.Request.Header.Get("Buvid")
}
userAgent = c.Request.Header.Get("User-Agent")
if err = mfSvc.Report(c, params, mid, ip, buvid, userAgent); err != nil {
err = ecode.RequestErr
}
c.JSON(nil, err)
}
func startConsume(c *bm.Context) {
var err error
if err = mfSvc.StartConsume(); err != nil {
c.JSON(err.Error(), nil)
}
c.JSON("success", nil)
}
func stopConsume(c *bm.Context) {
var err error
if err = mfSvc.StopConsume(); err != nil {
c.JSON(err.Error(), nil)
}
c.JSON("success", nil)
}
func pauseConsume(c *bm.Context) {
var (
t int64
err error
)
duration := c.Request.Form.Get("duration")
if t, err = strconv.ParseInt(duration, 10, 64); err != nil {
c.JSON(nil, ecode.RequestErr)
}
if err = mfSvc.PauseConsume(t); err != nil {
c.JSON(err.Error(), nil)
}
c.JSON("success", nil)
}