Giter VIP home page Giter VIP logo

Comments (5)

mathieufortin01 avatar mathieufortin01 commented on May 15, 2024

As long as a MeterRegistry is available I guess the process of exporting the metrics is delegated to micrometer ?, so no problem there.

Since a filter has access to both request and response, I constructed a simple metrics gateway filter which counts/clocks the requests and exports to Cloudwatch. I dont know if it is the way to go but this works well.

It would be nice to have a configurable metrics filter where different metrics could be added (along with tags/dimensions) mostly from the configuration file only.

One thing I'm struggling with though, is how to handle metrics for "Variable Subsitution" URLs, without duplicating all URLs definitions of the underlying services in the gateway ? I would like 1 metric for GET /users/{id}, not 1 for each user id received (/users/1, /users/2, etc).

from spring-cloud-gateway.

spencergibb avatar spencergibb commented on May 15, 2024

@mathieufortin01 url's are not a good thing to use since routes can be matched by anything in the request, such as headers, host, & parameters, not just path. The only thing I can think of that would be useful is the route id. This use case calls for descriptive route id's. /cc @jkschneider

from spring-cloud-gateway.

spencergibb avatar spencergibb commented on May 15, 2024

@mathieufortin01 mind sharing the filter you came up with?

from spring-cloud-gateway.

spencergibb avatar spencergibb commented on May 15, 2024

By default, we get normal webflux metrics.

For this route I get the following

spencer@:~% http ":8080/actuator/metrics/http.server.requests?tag=uri:/get"
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Content-Type: application/vnd.spring-boot.actuator.v2+json;charset=UTF-8
Expires: 0
Pragma: no-cache
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1 ; mode=block
transfer-encoding: chunked

{
    "availableTags": [
        {
            "tag": "exception",
            "values": [
                "none"
            ]
        },
        {
            "tag": "method",
            "values": [
                "GET"
            ]
        },
        {
            "tag": "status",
            "values": [
                "200"
            ]
        }
    ],
    "measurements": [
        {
            "statistic": "COUNT",
            "value": 2.0
        },
        {
            "statistic": "TOTAL_TIME",
            "value": 5.001693461
        },
        {
            "statistic": "MAX",
            "value": 4.94594301
        }
    ],
    "name": "http.server.requests"
}

If we want more specific metrics, we can address those in a future release.

from spring-cloud-gateway.

ryanjbaxter avatar ryanjbaxter commented on May 15, 2024

Closed via 972c371

from spring-cloud-gateway.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.