deepflowio / deepflow

eBPF Observability - Distributed Tracing and Profiling
https://deepflow.io
Apache License 2.0
2.8k stars 308 forks source link

[FR] FR-44: Can ignore http queryParam when parsing path? #3768

Closed DomineCore closed 3 months ago

DomineCore commented 1 year ago

Search before asking

Description

image On this dashboard, there's a lot of the same path, but different parameters, so I'm really just focusing on the path, not the parameters.

Use case

Can ignore http queryParam when parsing path?

Related issues

No response

Are you willing to submit a PR?

Code of Conduct

wenhuwang commented 1 year ago

I have similar problem, i expect to add a new filed that does not parse http parameters, and the original field containing parameters continues to be used for request logs.

sharang commented 8 months ago

@liqian1834 will modify the Dashboard to use endpoint instead of request_resource.

For RPC protocols, the method of extracting the endpoint field is clear (refer to the document: https://deepflow.io/docs/features/universal-map/l7-protocols/#rpc-protocol-family). For HTTP protocols, endpoint is extracted from the URL. To eliminate the uncertainty of the endpoint field in HTTP protocols, we allow users to configure the http-endpoint-extraction rule (this is a new feature in v6.4).

https://github.com/deepflowio/deepflow/blob/main/server/controller/model/agent_group_config_example.yaml#L988

    ## Extract the configuration of http endpoint
    #http-endpoint-extraction:
      ## Disable the switch to extract http endpoint
      ## Default: false, by default, http endpoint is extracted
      #disabled: false

      ## Extract endpoint according to the following rules
      #match-rules:
      ## Find a longest prefix that can match according to the principle of "longest prefix matching"
      #- prefix: ""

        ## Note: Intercept the first few paragraphs in URL (the content between two / is regarded as one paragraph) as endpoint
        ## Default: 2, by default, two segments are extracted from the URL. For example, the URL is /a/b/c?query=xxx", whose segment is 3, extracts "/a/b" as the endpoint
        #keep-segments: 2
liqian1834 commented 3 months ago

The Path in the K8s Ingress Dashboard has been changed to Endpoint, see the details in the PR below.

https://github.com/deepflowio/deepflow-dashboards/pull/167