Skip to content

Queries not working in remote setup, documentation not 100% clear #480

Description

@fako1024

When spinning up the stack on a remote server (all host-network as outlined in the example docker-compose.yaml) with the following environment:

    environment:
#     - GQ_BACKEND_HOST= --> use default
#     - GQ_API_BASE_URL= --> use default
      - HOST_RESOLVER_TYPES=string
      - SSE_ON_LOAD=true

all queries fail with "api request failed: status=503" and the following log message (10.0.0.102 is the client where the UI is rendered from the remote target at 10.0.0.2:5137, no additional reverse proxy in place):

frontend      | {"level":"error","ts":1781946389.8208885,"logger":"http.log.error","msg":"no upstreams available","request":{"remote_ip":"10.0.0.102","remote_port":"34304","client_ip":"10.0.0.102","proto":"HTTP/1.1","method":"POST","host":"10.0.0.2:5137","uri":"/_query/validate?_ts=1781946389742","headers":{"Content-Type":["application/json"],"Origin":["http://10.0.0.2:5137"],"Connection":["keep-alive"],"Content-Length":["168"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36"],"Dnt":["1"],"Referer":["http://10.0.0.2:5137/?first=-10m&last=&ifaces=&query=sip%2Cdip&limit=200&sort_by=bytes&sort_ascending=false"],"Cookie":["REDACTED"],"Accept":["*/*"],"Accept-Encoding":["gzip, deflate"],"Accept-Language":["en-US,en;q=0.9,de;q=0.8"],"Pragma":["no-cache"],"Cache-Control":["no-cache"]}},"duration":0.000492015,"status":503,"err_id":"1q45waahh","err_trace":"reverseproxy.(*Handler).proxyLoopIteration (reverseproxy.go:640)"}

No logs seen on global query and / or goprobe nodes.

From the sparse documentation I assume that all requests, including those to global query, should be routed through the caddy proxy, but I'm not fully clear on a) how the exact workings are, b) what actually fails here (logs are a bit sparse as well) and c) if I set it up correctly.

Side note: I could probably set either the GQ_BACKEND_HOST or the backend override in the frontend (also not clear: is that the same variable or yet another one) to directly send queries to the global-query endpoint but I think this should ideally work via this proxy setup so that no manual / two-path flow is required so I'd like to understand what's wrong here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    apiAnything concerning endpoints for goProbe's APIsbugSomething isn't workinghelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions