Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat:add vlogs server. #5343

Merged
merged 4 commits into from
Feb 6, 2025
Merged

feat:add vlogs server. #5343

merged 4 commits into from
Feb 6, 2025

Conversation

bearslyricattack
Copy link
Member

No description provided.

@sealos-ci-robot
Copy link
Member

sealos-ci-robot commented Jan 13, 2025

🤖 Generated by lychee action

Summary

Status Count
🔍 Total 2082
✅ Successful 462
⏳ Timeouts 0
🔀 Redirected 0
👻 Excluded 1618
❓ Unknown 0
🚫 Errors 0

Full action output

Full Github Actions output

@@ -0,0 +1,55 @@
IMG ?= ghcr.io/labring/sealos-launchpad-service:latest
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change image name


.PHONY: docker-build
docker-build: build
mv bin/manager bin/service-launchpad-${TARGETARCH}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change binary name

1. Build and push your image to the location specified by `IMG`:

```sh
make docker-build docker-push IMG=<some-registry>/sealos-cloud-database-monitor:tag
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change name

env:
- name: VM_SERVICE_HOST
value: http://vmsingle-victoria-metrics-k8s-stack.vm.svc:8429
image: ghcr.io/labring/sealos-launchpad-service:latest
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change name

kind: Service
metadata:
labels:
app: launchpad-vlogs
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

name

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

already fix it.

if config, err := url.PathUnescape(kubeConfig); err == nil {
kubeConfig = config
} else {
return "", "", "", err
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

return with fmt.Errorf("failed to PathUnescape : %s", err)
For different errors in the same method, please use format to wrap different error messages.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

already fix it.

vlogsReq := &api.VlogsRequest{}
err := json.NewDecoder(req.Body).Decode(&vlogsReq)
if err != nil {
return "", "", "", errors.New("invalid JSON data,decode error")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The original error message is not included, replace with fmt.Errorf and include the original err information.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

already fix it.

return stream + generateCommonQuery(req) + builder.String() + generateDropQuery() + generateNumberQuery(req), nil
}

func generateStreamQuery(req *api.VlogsRequest) (string, error) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is there no error return, but the return parameter needs to contain error?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

already fix it.

return builder.String() + stream + generateCommonQuery(req) + generateDropQuery() + generateNumberQuery(req), nil
}

func generateJsonQuery(req *api.VlogsRequest) (string, error) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no error

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

already fix it.

if err != nil {
return err
}
fmt.Printf("URL: %s\n", req.URL.String())
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use log.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

already fix it.

Comment on lines 31 to 45
func (vl *VLogsServer) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
pathPrefix := ""
switch {
case req.URL.Path == pathPrefix+"/queryLogsByParams":
vl.queryLogsByParams(rw, req)
default:
http.Error(rw, "Not found", http.StatusNotFound)
return
}
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pathPrefix 有啥用?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

already fix it.

// return
//}

fmt.Println("query: " + query)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

用log,别用print

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

already fix it.

if req.JsonMode == "true" {
var builder strings.Builder
builder.WriteString(" | unpack_json")
if len(req.JsonQuery) > 0 {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个if没必要存在

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

already fix it.

Comment on lines 126 to 134
case "=":
item = fmt.Sprintf("| %s:=%s ", jsonQuery.Key, jsonQuery.Value)
case "!=":
item = fmt.Sprintf("| %s:(!=%s) ", jsonQuery.Key, jsonQuery.Value)
case "~":
item = fmt.Sprintf("| %s:%s ", jsonQuery.Key, jsonQuery.Value)
default:
return errors.New("invalid JSON data,jsonMode value err")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这些case在jsonquery定义处写上注释

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

already fix it.

Comment on lines 153 to 175
switch {
case len(req.Pod) == 0 && len(req.Container) == 0:
builder.WriteString(fmt.Sprintf(`{namespace="%s"}`, req.Namespace))
case len(req.Pod) == 0:
addItems(req.Namespace, "container", req.Container)
case len(req.Container) == 0:
addItems(req.Namespace, "pod", req.Pod)
default:
for i, container := range req.Container {
for j, pod := range req.Pod {
builder.WriteString(fmt.Sprintf(`{container="%s",namespace="%s",pod="%s"}`, container, req.Namespace, pod))
if i != len(req.Container)-1 || j != len(req.Pod)-1 {
builder.WriteString(" OR ")
}
}
}
}
v.query += builder.String()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

优化这段,如果是request定义导致这段代码不好写就改request定义

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

already fix it.

- /config/config.yml
command:
- /manager
image: bearslyricattack/vlogs:latest
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change to system image hub

feat:add vlogs server

feat:add vlogs server

feat:add vlogs server

feat:add vlogs server

feat:websocket and auto shutdown server.

feat: devbox websocket.

feat: devbox websocket.

fix vlogs bug.

fix vlogs bug.

fix vlogs bug.

fix vlogs bug.

fix vlogs bug.

fix vlogs bug.

fix vlogs bug.

fix vlogs bug.

fix vlogs bug.

fix vlogs bug.

fix vlogs bug.

fix vlogs bug.

fix vlogs bug.

code fmt.
@bxy4543 bxy4543 merged commit 3f89c54 into labring:main Feb 6, 2025
48 of 50 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants