This commit is contained in:
Zheng Kai
2023-06-12 18:25:43 +08:00
parent 3b6af69d84
commit f0c0db8e94
4 changed files with 99 additions and 1 deletions

51
server/src/es/index.go Normal file
View File

@@ -0,0 +1,51 @@
package es
import (
"fmt"
"project/config"
"project/zj"
"strings"
"time"
_ "embed" //
"github.com/zhengkai/zu"
)
//go:embed tpl/mapping.json
var indexMapping string
func indexName(ts uint32) string {
index := `orca-metrics`
if !config.Prod {
index = `dev-` + index
}
index = fmt.Sprintf(`%s-%s`, index, time.Unix(int64(ts), 0).Format(`2006-01-02`))
return index
}
func createIndex() {
ts := zu.TS()
zj.J(`index name:`, indexName(ts))
mapping(ts)
mapping(ts + 86400)
go func() {
for {
time.Sleep(time.Hour * 3)
mapping(zu.TS() + 86400)
}
}()
}
func mapping(ts uint32) {
theClient.Indices.Create(
indexName(ts),
theClient.Indices.Create.WithBody(strings.NewReader(indexMapping)),
)
}

View File

@@ -28,5 +28,7 @@ func Init() (err error) {
zj.J(`elasticsearch`, res.String()) zj.J(`elasticsearch`, res.String())
createIndex()
return return
} }

View File

@@ -22,7 +22,9 @@ func Insert(d *pb.EsMetrics) {
// theClient.Create(`orca-metrics`, d.ID, bytes.NewReader(ab)) // theClient.Create(`orca-metrics`, d.ID, bytes.NewReader(ab))
re, err := theClient.Index(`orca-metrics`, bytes.NewReader(ab)) index := indexName(uint32(d.Ts / 1000))
re, err := theClient.Index(index, bytes.NewReader(ab))
if err != nil { if err != nil {
return return
} }

View File

@@ -0,0 +1,43 @@
{
"mappings": {
"properties": {
"ID": {
"type": "keyword"
},
"token": {
"properties": {
"total": {
"type": "long"
},
"completion": {
"type": "long"
},
"prompt": {
"type": "long"
}
}
},
"cached": {
"type": "boolean"
},
"ip": {
"type": "ip"
},
"model": {
"type": "keyword"
},
"key": {
"type": "keyword"
},
"reqBytes": {
"type": "long"
},
"rspBytes": {
"type": "long"
},
"ts": {
"type": "date"
}
}
}
}