首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >spring云网关中API的响应时间等指标

spring云网关中API的响应时间等指标
EN

Stack Overflow用户
提问于 2020-02-29 07:12:58
回答 3查看 1.4K关注 0票数 1

我正在使用Spring Cloud Gateway,希望捕获所有API命中的指标。指标包括响应时间、错误代码等。我使用的是Spring cloud的Hoxton.RELEASE版本。我试着按照他们的文档中的建议使用/actuator/metrics/gateway.requests,但不起作用。而且,如果这些指标可以通过jmx指标获得,那就更好了。我也尝试使用jmx,并在jconsole上将其可视化,但它没有显示API的响应时间等。

有人能建议一下怎么做吗?我们必须在生产中使用它,这对我们来说是一个重要的因素。

EN

回答 3

Stack Overflow用户

发布于 2021-10-27 01:25:30

在检查'/actuator/ metrics‘之后,它的指标现在是“'/actuator/metrics/spring.cloud.gateway.requests’-cloud-starter-gateway”上的spring。

票数 1
EN

Stack Overflow用户

发布于 2020-04-14 14:08:20

您可以通过编写自定义的filter工厂来捕获所有API命中到spring云网关的响应时间,如下所示:

代码语言:javascript
运行
AI代码解释
复制
    ResponseFilterFactory extends AbstractGatewayFilterFactory<ResponseFilterFactory.Config> {

    public ResponseFilterFactory() {
            super(Config.class);
        }

       @Override
public GatewayFilter apply(Config config) {
return new OrderedGatewayFilter((exchange, chain) -> {
// Pre-processing
startTime = System.currentTimeMillis();

    return chain.filter(exchange)
      .then(Mono.fromRunnable(() -> {
          // Post-processing
             String serviceResponseStatus= exchange.getResponse().getStatusCode().toString();

                if(serviceResponseStatus.startsWith("2")){
                    serviceResponseStatus="Success";
                }
                else{
                    serviceResponseStatus="Failure";
                }
            long execTime = System.currentTimeMillis() - startTime;
            LOGGER.info("caller={}, serviceName={}, serviceResponseStatus={}, serviceResponseTime(ms)={}", Objects.isNull(caller) ? "default" : caller,
                    serviceName, serviceResponseStatus, execTime);

      }));
},1);
}


        public static class Config {
                private String headerName;

                public String getHeaderName() {
    // add some thing to config if you want to log along with resp time, ex. headers etc
                       return null;
                }
        }

在此之后,您可以将其作为默认过滤器添加到路由配置文件中:

代码语言:javascript
运行
AI代码解释
复制
  cloud:
    gateway:
      default-filters:
      - name: ResponseFilterFactory
票数 0
EN

Stack Overflow用户

发布于 2021-07-13 09:29:44

我也面临着同样令人头疼的问题。终结点不工作:

代码语言:javascript
运行
AI代码解释
复制
/actuator/metrics/gateway.requests

我最终发现,如果你没有数据(requests, responses),端点将无法工作,当你用浏览器检查它时,它会显示error (这真的不可取,而且会让每个人都感到困惑,就像你和我一样)

我必须编写脚本来卷曲网关,以便生成请求,这样端点就可以有数据工作了

也在应用程序中。属性,您必须确保配置了这些属性

代码语言:javascript
运行
AI代码解释
复制
management.endpoint.gateway.enabled=true # default value

management.endpoints.web.exposure.include=gateway

参考链接:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.0.RC1/reference/html/#actuator-api

另一个有趣的事情是关于Spring支持Grafana的图形化仪表板,您可以使用Spring中的这个json定义并将其导入到Grafana中。

https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/gateway-grafana-dashboard.json

控制面板将如下所示:

https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/images/gateway-grafana-dashboard.jpeg

参考链接:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/#the-gateway-metrics-filter

顺便说一句,上面的GatewayFilter也可以工作,但这会给你的过滤器链增加另一层,并且可能对你的网关造成很小的开销,如果你有高负载,你需要考虑这一点,因为它可能会降级你的应用程序

关于JMX,你可以在这里参考Spring官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.endpoints.exposing

大多数端点都支持JMX,包括Spring Gateway

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60462831

复制
相关文章
flutter - 如何在 ListView 构建器中显示特定索引中的项目 原文 标签 flutter dart
我想开始显示索引5中的列表项 ListView.builder( itemCount: items.length, itemBuilder: (context, index) { return ListTile( title: Text('${items[index]}'), ); }, ); 最佳答案 看一下这个 ListView.builder( itemCount: items.length, itemBuilder: (context, index) { if(index < 5
徐建国
2021/08/30
6.7K0
如何在AI Studio数据可视化图像中显示汉字
AI Studio是一个非常好用的数据科学在线实验平台,不论是教学、学习还是开发,都可以使用。但是,下面的缺憾未免成为了珍珠上的一点瑕疵。
老齐
2020/05/15
3.5K0
如何在AI Studio数据可视化图像中显示汉字
图像相似度比较和检测图像中的特定物
对普通人而言,识别任意两张图片是否相似是件很容易的事儿。但是从计算机的角度来识别的话,需要先识别出图像的特征,然后才能进行比对。在图像识别中,颜色特征是最为常见的。每张图像都可以转化成颜色分布直方图,如果两张图片的直方图很接近,就可以认为它们很相似。这有点类似于判断文本的相似程度。
fengzhizi715
2018/08/24
2.9K0
图像相似度比较和检测图像中的特定物
如何在VimVi中显示行号
Vim/Vi是许多软件开发人员和Linux系统管理员首选的文本编辑器。 默认情况下,Vim不显示行号,但可以轻松打开它们。Vim支持三种行编号模式,可帮助你浏览文件。除了标准的绝对行编号之外,Vim还支持相对行和混合行编号模式。 绝对行号 绝对行号是标准行号,它在每行文本旁边显示适当的行号。 要激活行编号,请设置数字标志: 按Esc键切换到命令模式。 按:(冒号),光标将移动到屏幕的左下角。输入set number或set nu,然后按Enter。 :set number 行号将显示在屏幕的左侧: 要禁用
入门笔记
2022/06/02
3.8K0
Unity WebView 插件⭐️(十五)特定模块 WebGL网页视图—WebGLWebView
上一篇文章对3D WebView 插件的 UwpWebView 做了一个详细的介绍说明
呆呆敲代码的小Y
2021/09/26
9390
jq 控制显示隐藏div
之前一直使用attr("style","display:none;")来隐藏div
用户1215037
2021/09/22
12.5K0
[1097]DIV的显示与隐藏
*********************div的显示和隐藏************************************
周小董
2022/04/13
5.4K0
WebView显示图片适配屏幕宽度
图片直接就是标签出来的,还是一张巨大的图片,直接导致webview加载只有截取了屏幕大小的宽度,看不到整张图片,测试要求适配屏幕宽度。于是有了这篇博客记录一下,在Webview的setWebViewClient()方法中WebViewClient中在加载完网页后执行一个JavaScript方法,这个JavaScript方法将所有网页中图片的宽度设置为屏幕显示宽度。
1025645
2018/08/23
1.7K0
高斯反向投影实现检测图像中的特定物
在图像处理中,我们通常需要设置感兴趣的区域(ROI,region of interest),来简化我们的工作。也就是从图像中选择的一个图像区域,这个区域是我们图像分析所关注的重点。
fengzhizi715
2018/08/24
4670
高斯反向投影实现检测图像中的特定物
如何使特定的数据高亮显示?
当表格里数据比较多时,很多时候我们为了便于观察数据,会特意把符合某些特征的数据行高亮显示出来。这不,公司的HR小姐姐就有这个需求,说她手头上有一份招聘数据,她想把“薪水”超过20000的行突出显示出来,应该怎么操作呢?
猴子聊数据分析
2020/02/26
5.9K0
Confluence 如何在页面中显示目录
在默认情况下,Confluence 是不能在页面中显示目录和当前页面中的内容导航的。
HoneyMoose
2021/12/14
2.1K0
Confluence 如何在页面中显示目录
在默认情况下,Confluence 是不能在页面中显示目录和当前页面中的内容导航的。
HoneyMoose
2022/01/11
2.6K0
Confluence 如何在页面中显示目录
OpenCV中图像的读取,显示与保存
相关函数:cv2.imread()、cv2.imshow()、cv2.imwrite()
py3study
2020/01/19
3.1K0
opencv显示图像
如果说我们在些项目的过程中会频繁的查看我们的图片,我们就可以直接给它封装一个方法:
淼学派对
2023/10/14
2740
opencv显示图像
如何使用几何画板画函数图像,如极坐标函数图像?
1、点击[绘图] 2、点击[网格样式] 3、点击[极坐标网格] 4、点击[绘图] 5、点击[绘制新函数] 6、点击[3] 7、点击[函数] 8、点击[cos] 9、点击[θ] 10、点击[确定] 11、点击[是]
裴来凡
2022/05/28
1.4K0
如何使用几何画板画函数图像,如极坐标函数图像?
Linux小技巧:如何在 Vim 中显示行号?
Vim 是一款出色的编辑器,大多数 Linux/UNIX 系统管理员每天都喜欢并使用它。
网络技术联盟站
2022/03/02
11.7K0
Linux小技巧:如何在 Vim 中显示行号?
如何用Python提取指定文档中的特定字符并加粗显示?
想把从网络上找来的文章(另存为new.docx或者new.html)与高考词汇表(另存为vocabulary.docx或者vocabulary.html)进行比对后,网络文章里的词汇为高考考纲词汇的,则加粗显示。
9135621
2020/04/23
8.7K1
如何用Python提取指定文档中的特定字符并加粗显示?
点击加载更多

相似问题

Cocoa Webview -仅显示特定的<div>

12

如何在webview特定页面上添加粘性页脚,如可点击的图像

10

如何在android webview中显示图像

17

在android Webview的Html中显示特定div内容

10

显示div中特定图像的数量

34
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档