Comments (5)
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.
@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.
@mathieufortin01 mind sharing the filter you came up with?
from spring-cloud-gateway.
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.
Closed via 972c371
from spring-cloud-gateway.
Related Issues (20)
- Migrate server-webmvc properties to new namespace and deprecate old
- Serve Single Page Applications as static files in Spring Cloud Gateway HOT 5
- Custom GlobalFilter will have undeterministic hehavior when the Order is the same value. HOT 3
- openfeign java.lang.NoClassDefFoundError: feign/Request$Options
- Route pointing to self can be bypassed by direct controller access
- Cors handling with spring cloudgateway mvc HOT 1
- SCG Redis ratelimiter solution has unavailable issues when redis has problems HOT 3
- How can i block"/actuator" endpoint in gateway HOT 3
- can anyone provide a spring-cloud-gateway-mvc sample? HOT 2
- LEAK: ByteBuf.release() error HOT 5
- The cache works differently if the value of local-response-cache.enabled is default false or explicitly false
- Load balance per route read timeout in spring-cloud-gateway-server-mvc HOT 1
- Ratelimiter not working with aws elasticache redis 7.1 HOT 10
- Gateway MVC ServerRequest body broken when created from another
- Required Gobalfilter type interface in Spring Cloud Gateway MVC, and instead of bean creation properties level routes configuration HOT 2
- direct memory always increases when adding custom filter to get request body size
- Spring Cloud Gateway not allowing Encoded URL paths after Update
- Documentation Link on spring.io for 4.1.3 does not work.
- Spring Cloud Gateway MVC, order of before and after functions. HOT 5
- Unable to integrate grpc with spring cloud gateway HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spring-cloud-gateway.