首页>资讯 > 图片资讯 > 正文

Spring Cloud Gateway监控配置示例

来源:腾讯云    2023-04-11 20:41:55

下面是一个简单的Spring Cloud Gateway应用,包括路由配置、过滤器、监控等功能。该应用将请求转发到http://httpbin.org目标地址,并添加了Hystrix和RateLimiter过滤器,使用Prometheus和Grafana进行监控。

@SpringBootApplicationpublic class GatewayApplication {    public static void main(String[] args) {        SpringApplication.run(GatewayApplication.class, args);    }    @Bean    public RouteLocator routeLocator(RouteLocatorBuilder builder) {        return builder.routes()                .route(r -> r.path("/get")                        .filters(f -> f.hystrix(config -> config.setName("hystrixFilter")))                        .uri("http://httpbin.org"))                .route(r -> r.path("/delay/**")                        .filters(f -> f.requestRateLimiter(config -> config.setKeyResolver(new RemoteAddrKeyResolver()))                                .hystrix(config -> config.setName("hystrixFilter")))                        .uri("http://httpbin.org"))                .build();    }}

在上面的代码中,使用@Bean注解定义了一个RouteLocator类型的bean,用于配置路由信息。使用RouteLocatorBuilder的routes()方法来定义路由规则,使用path()方法定义匹配规则,使用filters()方法添加过滤器,使用uri()方法定义目标地址。

在上面的代码中,第一个路由规则将请求路径为/get的请求转发到http://httpbin.org目标地址,并添加了名为"hystrixFilter"的Hystrix过滤器。第二个路由规则将请求路径为/delay/**的请求转发到http://httpbin.org目标地址,并添加了名为"hystrixFilter"和"rateLimiterFilter"的Hystrix和RateLimiter过滤器,其中RateLimiter过滤器使用RemoteAddrKeyResolver作为KeyResolver,用于限制相同IP地址的请求频率。


【资料图】

下面是Hystrix和RateLimiter过滤器的配置:

@Configurationpublic class FilterConfig {    @Bean    public HystrixGatewayFilterFactory hystrixGatewayFilterFactory() {        return new HystrixGatewayFilterFactory();    }    @Bean    public RequestRateLimiterGatewayFilterFactory rateLimiterGatewayFilterFactory() {        return new RequestRateLimiterGatewayFilterFactory();    }}

在上面的代码中,使用@Configuration注解定义了一个配置类,用于配置Hystrix和RateLimiter过滤器。使用@Bean注解定义了hystrixGatewayFilterFactory()和rateLimiterGatewayFilterFactory()方法,分别返回HystrixGatewayFilterFactory和RequestRateLimiterGatewayFilterFactory类型的bean,用于创建Hystrix和RateLimiter过滤器。

下面是Prometheus和Grafana的监控配置:

@Configurationpublic class MonitoringConfig {    @Bean    MeterRegistryCustomizer commonTags() {        return registry -> registry.config()                .commonTags("application", "gateway");    }    @Bean    PrometheusMeterRegistry prometheusMeterRegistry() {        return new PrometheusMeterRegistry(PrometheusConfig.DEFAULT);    }    @Bean    public MeterFilter renameStatusCodeTag() {        return MeterFilter.renameTag("status", "http_status");    }    @Bean    public MeterFilter renameUriTag() {        return MeterFilter.renameTag("uri", "request_uri");    }    @Bean    public GatewayMetrics gatewayMetrics(RouteLocator routeLocator,                                         PrometheusMeterRegistry meterRegistry) {        return new GatewayMetrics(routeLocator, meterRegistry, Arrays.asList(                new DefaultRouteIdProvider(),                new StaticRouteIdProvider("get_route", "/get"),                new StaticRouteIdProvider("delay_route", "/delay/**")        ));    }}

在上面的代码中,使用@Configuration注解定义了一个配置类,用于配置Prometheus和Grafana的监控。使用@Bean注解定义了commonTags()方法,用于设置公共标签,application为gateway。使用@Bean注解定义了prometheusMeterRegistry()方法,返回PrometheusMeterRegistry类型的bean,用于创建PrometheusMeterRegistry实例。使用@Bean注解定义了renameStatusCodeTag()和renameUriTag()方法,分别返回MeterFilter类型的bean,用于重命名标签。使用@Bean注解定义了gatewayMetrics()方法,返回GatewayMetrics类型的bean,用于创建GatewayMetrics实例,并设置路由规则和MeterRegistry。

下面是GatewayMetrics的代码:

public class GatewayMetrics extends RouteMatchingMeterFilter {    public GatewayMetrics(RouteLocator routeLocator, MeterRegistry meterRegistry,                          List routeIdProviders) {        super(routeLocator, "gateway.requests", meterRegistry, routeIdProviders);    }    @Override    protected Iterable tags(Route route, URI uri) {        return Tags.of(super.tags(route, uri),                Tag.of("method", "unknown"),                Tag.of("status", "unknown"),                Tag.of("request_uri", uri.getPath()));    }    @Override    protected Iterable extraTags(HttpServletRequest request) {        return Tags.of("method", request.getMethod());    }    @Override    protected String tagValue(HttpServletRequest request, String key) {        if (key.equals("status")) {            Object status = request.getAttribute(ServerWebExchangeUtils.STATUS_CODE_ATTRIBUTE);            if (status != null) {                return status.toString();            }        }        return super.tagValue(request, key);    }}

在上面的代码中,使用GatewayMetrics继承了RouteMatchingMeterFilter类,用于创建路由规则和MeterRegistry之间的映射关系。在tags()方法中,添加了method、status和request_uri标签。在extraTags()方法中,添加了method标签。在tagValue()方法中,根据ServerWebExchangeUtils.STATUS_CODE_ATTRIBUTE获取status标签的值。

最后,使用Prometheus和Grafana进行监控时,需要添加以下依赖:

    io.micrometer    micrometer-core    io.micrometer    micrometer-registry-prometheus

在使用Prometheus和Grafana进行监控之前,需要启动Prometheus服务器,并将Spring Cloud Gateway的监控数据暴露给Prometheus服务器。可以在application.yml文件中添加以下配置:

management:  endpoints:    web:      exposure:        include: prometheus  endpoint:    prometheus:      enabled: true

这里,使用management.endpoints.web.exposure.include属性设置将/prometheus端点暴露给外部访问,使用management.endpoint.prometheus.enabled属性设置Prometheus监控启用。当应用程序启动时,Prometheus服务器将开始收集和显示应用程序的监控数据。可以使用Grafana可视化监控数据,例如显示请求响应时间、请求数量等。具体的操作可以参考Grafana的官方文档。

关键词:

Spring Cloud Gateway监控配置示例

下面是一个简单的SpringCloudGateway应用,包括路由配置、过滤器、监控等功能。该应用将请求转发到http: httpbin org目标地址,

linux安装Apache

Apache是一个常用的免费、开源的Web服务器,可以在Linux系统中安装和配置。在本文中,我们将介绍如何在Linux中安装Apache,并提供一些示例以帮助

微速讯:花样促销激发市场活力 江苏小作坊加速“触网”“出圈”

小作坊美食现场搭上电商“快车”。 江苏省市场监管局供图中新网南京4月11日电(徐珊珊)南京盐水鸭、盐城藕粉圆、如皋肉渣、蒋坝鱼圆……4月10

全球快报:亿联网络:一季度净利预降11%-16%

证券时报e公司讯,亿联网络4月11日晚间发布业绩预告,预计2023年一季度归母净利4 09亿元-4 33亿元,同比下降11%-16%。2023年第一季度,海外经

世界微动态丨总投资达54.8亿元 沈阳市苏家屯区28个春季重点项目集中开工

新华网沈阳4月11日电(夏铭阳)4月10日上午,2023年苏家屯区春季重点项目集中开工活动暨中国航发黎明苏家屯厂区奠基仪式举行。本次春季集中开

智能六云多剪仪软件这样做影视剪辑不容易侵权

刷抖音的时候,还是有很多电视、电影的剪辑作品,这一点足以证明,这一板块,不能不棍子打死 ,毕竟还有这么多新剧电影等需要广大网友们的

司马昭之心_司马昭之心路人皆知的来历

今天小编肥嘟来为大家解答以上的问题。司马昭之心,司马昭之心路人皆知的来历相信很多小伙伴还不知道,现在让我们一起来看看吧!1、三国后期,

天天观天下!骑马与砍杀游戏秘籍_骑马与砍杀秘籍攻略

今天小编肥嘟来为大家解答以上的问题。骑马与砍杀游戏秘籍,骑马与砍杀秘籍攻略相信很多小伙伴还不知道,现在让我们一起来看看吧!1、朋友,本

骑马与砍杀秘籍商店_骑马与砍杀秘籍

今天小编肥嘟来为大家解答以上的问题。骑马与砍杀秘籍商店,骑马与砍杀秘籍相信很多小伙伴还不知道,现在让我们一起来看看吧!1、朋友,本人十

最新资讯:清明上河图创作背景和创作内容_清明上河图创作背景

1、共分三个场景。2、人物大概有三四百人。本文分享完毕,希望对大家有所帮助。

新动态:两兄弟同腐受贿800万,案发前还陪老母亲挖红薯,悲剧教训警示家风建设的重要性

据廉洁四川报道,资中县农民工服务中心原副主任郑强和资中县教体局原局长郑忠辉因涉嫌受贿近900万元,最终双双入狱。原来,郑

今日热搜:央行:3月份M2增速12.7%,M1增速5.1%

【大河财立方消息】4月11日,中国人民银行发布2023年一季度金融统计数据报告。一、广义货币增长12 7%,狭义货币增长

环球动态:广元割双眼皮哪家医院好

现在很多人都去做割双眼皮,但是割双眼皮的注意事项还是要很多的,要选择合适的医院,只有选择合适的医院和去合适的专家做的双眼皮的效果才会

今日热议:深圳铂雅医疗美容医院口碑怎么样

深圳现在有很多的整形医院,因为深圳是一个很发达的城市,算是我国的一线城市,有很多的整形医院在深圳绝地,而且其中有连锁的,还有深圳本土

超“吉”有意思丨通化,有菜有酒

统筹策划:常海军编辑:方雪婷查新宇部分资料来源:通化发布悠游吉林通化文旅

环球快讯:首次发现!白头鹤迁徙停歇长春双阳

相关部门近日在双阳区双阳湖上游浅水区观测到正在迁徙的国家一级保护鸟类白头鹤数十只,这也是首次发现白头鹤在双阳区停歇。在观测现场,数十

海尔智家:海创智增持约277万股 增持均价22.73元/股

海尔智家(SH600690,收盘价:22 72元)4月11日晚间发布公告称,股东海创智,于2023年4月11日,增持约277万股,增持均价22 73元 股,占总股本比

郑州树人中学2020喜报_郑州树人中学怎么样

1、郑州市树人中学还不错的树人中学不错啊。本文就讲到这里,希望大家会喜欢。

沈阳市城区动静态交通融合停车场开工建设

近日,由中铁七局二公司承建的沈阳市城区动静态交通融合提升项目金山停车场首桩开钻,为项目百日攻坚按下“加速键”。据悉,项目建成后,将以

环球热门:长城汽车(02333)拟回购注销17.44万股限制性股票

智通财经APP讯,长城汽车(02333)发布公告,2023年2月17日,公司召开第七届董事会第五十八次会议,审议通过了《关于公司2020年限制性股票与股票期权激

扬农化工:子公司拟42.3亿元投资农药产品项目

扬农化工:子公司拟42 3亿元投资农药产品项目:扬农化工(600486)公告,子公司计划投资年产15650吨农药原药、7000吨农药中间体及66,133吨副产品

沈阳:对生育三孩的本地户籍家庭每月发放500元育儿补贴直至

沈阳:对生育三孩的本地户籍家庭每月发放500元育儿补贴直至:沈阳市印发《沈阳市发放三孩育儿补贴实施方案(试行)》。方案提出,夫妻双方均为

明朝最后的大儒,国家败亡后,他直接绝食而死

明朝最后的大儒,国家败亡后,他直接绝食而死,天启七年(1627年),年仅十七岁的朱由检在哥哥天启皇帝朱由校的嘱托下登基称帝,成为了大明王朝

世界快播:丁坝垂钓?危险又违法!

无人机空巡作为一种新型的巡航执法手段,有效弥补了传统海事监管手段的不足,是“陆海空天”一体化水上交通运输安全保障体系建设中的重要一环

经济日报:道路执法不妨多点温度

沈阳市公安局日前透露,沈阳公安道路执法将推出“六不罚、五便利”举措。其中,交通违法“六不罚”包括:在夜经济区、早夜市开市时间,利用周

天天热头条丨辽宁多地出现伴扬沙和浮尘天气

图为沈阳市民在扬沙浮尘天气出行。于海洋摄图为沈阳出现扬沙浮尘天气。于海洋摄图为沈阳出现扬沙浮尘天气。于海洋摄图为沈阳出现扬沙浮尘天气

最大发行总额380亿元!今年首期储蓄国债(电子式)开始发售

记者自人民银行青岛市中心支行获悉,根据有关规定,2023年第一期、第二期储蓄国债(电子式)将于4月10日至4月19日发售。届时个人投资者可以携

【环球播资讯】2023投资泰国推介会在沈阳举办

4月10日,2023投资泰国推介会在沈阳举办。辽宁省贸促会摄中新网沈阳4月11日电(李晛)4月10日,由泰国投资促进委员会北京办事处、中国贸促会商事法律

3月CPI同比上涨0.7%:猪肉涨9.6%,鲜菜降11.1%

国家统计局11日公布数据显示,2023年3月份,全国居民消费价格同比上涨0.7%。其中,城市上涨0.7%,农村上涨0.6%;食品价格上涨2.4%,非

游客下江堤观潮被劝说上岸 三分钟后逗留位置被淹没

大象新闻记者刘宜昕视频报道4月10日,浙江绍兴,钱塘潮水即将汹涌而至,好心男子劝说游客上岸。当事人吴先生称,‍自己是一名观潮爱好者,经常

综合资讯

+更多

热点资讯

+更多
股票恢复上市的条件有哪些?股票终止上市是不是钱就没了?
股票恢复上市的条件有哪些?根据股票上市相关规定,股票恢复上市需要符合以下条件:1、法定期限内披露了最近一年年度报告;2、最近一个会计年 [详细]

Copyright @ 2008-2020  www.43710.com   All Right Reserved Powered by 财经情报网 版权所有

财经情报网   联系邮箱:562 66 29@qq.com

网站备案:沪ICP备2020036824号-12