启动 es: docker run -p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 -e "discovery.type=single-node" -d docker.elastic.co/elasticsearch/elasticsearch:7.17.11
清理 docker 空间: stackoverflow.com/questions/4…
启动 jaeger: SPAN_STORAGE_TYPE=elasticsearch nohup ./jaeger-collector --es.version=7 --es.use-aliases=true > /dev/null 2>&1 & SPAN_STORAGE_TYPE=elasticsearch nohup ./jaeger-query --es.version=7 --es.use-aliases=true > /dev/null 2>&1 & [2] 15553
查看一级子目录大小: du -h --max-depth=1 |sort
rollover:
package main
import (
"bytes"
"log"
"os/exec"
"strings"
"time"
)
func main() {
// remove -it to not tty
// https://stackoverflow.com/questions/43099116/error-the-input-device-is-not-a-tty
cmds := [][]string{
[]string{"docker", "run", "--rm", "--net=host", "-e", `CONDITIONS={"max_age": "2d"}`, "jaegertracing/jaeger-es-rollover:latest", "rollover", "http://localhost:9200"},
}
for _, cmd := range []string{
`docker run --rm --net=host -e UNIT=days -e UNIT_COUNT=7 jaegertracing/jaeger-es-rollover:latest lookback http://localhost:9200`,
`docker run --rm --net=host -e ROLLOVER=true jaegertracing/jaeger-es-index-cleaner:latest 7 http://localhost:9200`,
} {
strs := strings.Fields(cmd)
cmds = append(cmds, strs)
}
for _, cmd := range cmds {
for _, w := range cmd {
log.Println(w)
}
}
for _, cmd := range cmds {
var b bytes.Buffer
execcmd := exec.Command(cmd[0], cmd[1:]...)
execcmd.Stdout = &b
execcmd.Stderr = &b
err := execcmd.Run()
if err != nil {
log.Fatal(err, cmd, b.String())
}
}
t := time.NewTicker(24 * time.Hour)
for {
select {
case <-t.C:
for _, cmd := range cmds {
var b bytes.Buffer
execcmd := exec.Command(cmd[0], cmd[1:]...)
execcmd.Stdout = &b
execcmd.Stderr = &b
err := execcmd.Run()
if err != nil {
log.Fatal(err, cmd, b.String())
}
}
}
}
}