Skip to content

Commit

Permalink
add get /cleaner/option api
Browse files Browse the repository at this point in the history
  • Loading branch information
redHJ committed May 17, 2018
1 parent 2f7d60d commit b9bc3a5
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 14 deletions.
18 changes: 9 additions & 9 deletions cleaner/cleaner.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ type CleanSignal struct {
}

const (
clean_enable = "delete_enable"
clean_interval = "delete_interval"
clean_name = "cleaner_name"
reservefileNumber = "reserve_file_number"
reservefileSize = "reserve_file_size"
KeyCleanEnable = "delete_enable"
KeyCleanInterval = "delete_interval"
KeyReserveFileNumber = "reserve_file_number"
KeyReserveFileSize = "reserve_file_size"
clean_name = "cleaner_name"

default_delete_interval = 300 //5分钟
default_reserve_file_number = 10 //默认保存是个文件
Expand All @@ -45,7 +45,7 @@ const (
// 删除文件时遍历全部
// 删除时生成filedeleted文件
func NewCleaner(conf conf.MapConf, meta *reader.Meta, cleanChan chan<- CleanSignal, logdir string) (c *Cleaner, err error) {
enable, _ := conf.GetBoolOr(clean_enable, false)
enable, _ := conf.GetBoolOr(KeyCleanEnable, false)
if !enable {
return
}
Expand All @@ -54,13 +54,13 @@ func NewCleaner(conf conf.MapConf, meta *reader.Meta, cleanChan chan<- CleanSign
log.Errorf("cleaner only support reader mode dir|file|clocktrail, now mode is %v, cleaner disabled", meta.GetMode())
return
}
interval, _ := conf.GetIntOr(clean_interval, 0) //单位,秒
interval, _ := conf.GetIntOr(KeyCleanInterval, 0) //单位,秒
if interval <= 0 {
interval = default_delete_interval
}
name, _ := conf.GetStringOr(clean_name, "unknow")
reserveNumber, _ := conf.GetInt64Or(reservefileNumber, 0)
reserveSize, _ := conf.GetInt64Or(reservefileSize, 0)
reserveNumber, _ := conf.GetInt64Or(KeyReserveFileNumber, 0)
reserveSize, _ := conf.GetInt64Or(KeyReserveFileSize, 0)
if reserveNumber <= 0 && reserveSize <= 0 {
reserveNumber = default_reserve_file_number
reserveSize = default_reserve_file_size
Expand Down
10 changes: 5 additions & 5 deletions cleaner/cleaner_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func Test_CheckBelong(t *testing.T) {
defer os.RemoveAll(logfiles)
c := conf.MapConf{}
c[reader.KeyMetaPath] = logfiles
c[clean_enable] = "true"
c[KeyCleanEnable] = "true"
c[reader.KeyLogPath] = logfiles
c[reader.KeyMode] = "dir"
meta, err := reader.NewMetaWithConf(c)
Expand Down Expand Up @@ -120,10 +120,10 @@ func Test_clean(t *testing.T) {
c[reader.KeyMetaPath] = donefiles
c[reader.KeyLogPath] = donefiles + "/" + "log"
c[reader.KeyMode] = "dir"
c[clean_enable] = "true"
c[reservefileSize] = "15"
c[reservefileNumber] = "1"
c[clean_interval] = "1"
c[KeyCleanEnable] = "true"
c[KeyReserveFileSize] = "15"
c[KeyReserveFileNumber] = "1"
c[KeyCleanInterval] = "1"
meta, err := reader.NewMetaWithConf(c)
if err != nil {
t.Error(err)
Expand Down
56 changes: 56 additions & 0 deletions cleaner/rest_cleaner_models.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package cleaner

import (
. "github.com/qiniu/logkit/utils/models"
)

var (
OptionDeleteEnable = Option{
KeyName: KeyCleanEnable,
ChooseOnly: true,
ChooseOptions: []interface{}{"true", "false"},
Default: "false",
DefaultNoUse: false,
Description: "开启日志删除功能(delete_enable)",
Advance: false,
ToolTip: `删除控制功能,默认不开启,当为true时开启。开启后,对于已经读取完毕的数据,cleaner会负责通知删除`,
}

OptionCleanInterval = Option{
KeyName: KeyCleanInterval,
ChooseOnly: false,
Default: "300",
DefaultNoUse: false,
Description: "执行周期,单位为秒(s)(delete_interval)",
Advance: true,
ToolTip: `在每个周期检查是否符合删除的条件"`,
ToolTipActive: true,
}

OptionReserveFileNumber = Option{
KeyName: KeyReserveFileNumber,
ChooseOnly: false,
Default: "10",
DefaultNoUse: false,
Description: "最大保留的已读取文件数(reserve_file_number)",
Advance: true,
ToolTip: `解析失败的数据会默认出现在"pandora_stash"字段,该选项可以禁止记录解析失败的数据`,
}

OptionReserveFileSize = Option{
KeyName: KeyReserveFileSize,
ChooseOnly: false,
Default: "2048",
DefaultNoUse: false,
Description: "最大保留已读文件总大小,单位为MB(reserve_file_size)",
Advance: true,
ToolTip: `当已读文件的总大小超过这个值时,会把最老的那部分删掉,默认保留2GB,单位为MB`,
}
)

var ModeKeyOptions = []Option{
OptionDeleteEnable,
OptionCleanInterval,
OptionReserveFileNumber,
OptionReserveFileSize,
}
14 changes: 14 additions & 0 deletions mgr/api_cleaner.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package mgr

import (
"github.com/qiniu/logkit/cleaner"

"github.com/labstack/echo"
)

// get /logkit/cleaner/options 获取解析选项
func (rs *RestService) GetCleanerKeyOptions() echo.HandlerFunc {
return func(c echo.Context) error {
return RespSuccess(c, cleaner.ModeKeyOptions)
}
}

0 comments on commit b9bc3a5

Please sign in to comment.