专栏首页千里行走微服务框架saf-6:saf-http之度量

微服务框架saf-6:saf-http之度量

目录

(1).关于saf

(2).前置准备

(3).saf-http之度量原理

(4).开启访问流量

(5).度量体验

1.SAF Incoming HTTP Dashboard

2.SAF Incoming HTTP Detail Dashboard

3.SAF Outcoming HTTP Dashboard

4.SAF Outcoming HTTP Detail Dashboard

5.其他

(6).相关文章

架构实战交流钉钉群号:23394754

(1).关于saf

项目地址:

https://github.com/saf-group

1.一个微服务框架,完全基于注解的方式开发。

2.适用于云原生(K8S)下的微服务体系搭建,为技术中台提供底层支撑。

3.解放业务,使业务方专注于业务逻辑本身:通过注解以搭积木方式引入各式资源,每个资源都是一行注解,极大提升业务方产出效率。

(2).前置准备

需要完成一个saf-http-demo的容器化部署,要准备很多准备,详情参见:

微服务框架saf-5:saf-http与demo的解析与体验,以及容器化部署

参考下述文章,完成prometheus-saf的部署,这样可以抓取demo的metrics:

grafana&prometheus生产级容器化监控-1:生产级容器化

(3).saf-http之度量原理

如下图所示:

显然分两部分,对于web服务来说一方面会接受http,另一方面会发出http。

http-in:通过HttpMetricFilter拦截http请求,进行度量处理。

http-out:封装httpclient,加入度量处理。

并且对于http-out场景,使用注解与apollo结合的方式做到本地0配置,与0成本使用httpclient。

httpclient使用举例:

一个EnableHttpBioClient对应一个httpclient/httppool实例,这样做到资源隔离,防止某个域名不稳定冲垮整个服务。

beanNamePrefix:指定不同httpclient实例的beanName前缀,这样使用时才可以区分。

instance:apollo配置中心配置前缀中的部分标示,这样才可以针对不同httpclient实例做配置。

project:也是apollo配置中心配置前缀中的部分标示,表示这个配置属于哪个服务,不会造成不同服务之间的混淆。

(4).开启访问流量

开一个任意支持curl的pod,启动访问脚本,给demo服务一定压力好观测数据。

#!/bin/bash

for((i=1;i<=100000000;i++));  
do
    curl http://saf-sample-http-apache-httpcomponents-web-send-prod/shop/getShop?shopId=1
done

(5).度量体验

http度量目前只有4个dashboard,还可拓展出p99同比等。

dashboard

用途

SAF Incoming / HTTP

度量http-in,如qps, lantency, p99等。

SAF Incoming / HTTP / Detail

SAF Incoming / HTTP更细粒度的度量。

SAF Outcoming HTTP

度量http-out,如qps, lantency, p99等。

SAF Outcoming HTTP / Detail

SAF Outcoming / HTTP更细粒度的度量。

1.SAF Incoming HTTP Dashboard

注意上图,大家很容易有一个疑惑,就是并发为什么非0即1,是不是有问题。实际上没有问题,因为访问脚本是单线程的,所以并发不可能超过1,大多数时间为0是因为30秒抓取一次,不一定能抓到的。

点击具体的url可以进入SAF Incoming HTTP Detail Dashboard。

2.SAF Incoming HTTP Detail Dashboard

支持每个http host更细粒度的度量:

注意,支持多个url同时展示的度量,选择多个url:

3.SAF Outcoming HTTP Dashboard

点击具体的url可以进入SAF Outcoming HTTP Detail Dashboard。

4.SAF Outcoming HTTP Detail Dashboard

5.其他

根据现有metrics,还可以定制出p99同比等dashboard;

另外,关于熔断限流(属于sidecar的范畴)的度量,另开文章,本文涉及部分,如httpclient detail中的http容量算是其中的部分;

另外,还有非常关键的APM度量,这个以后有时间另开文章陈述:

(6).相关文章

微服务框架saf-5:saf-http与demo的解析与体验,以及容器化部署

grafana&prometheus生产级容器化监控-1:生产级容器化

K8S&微服务&阿里云生产实践-1:整体架构

本文分享自微信公众号 - 千里行走(a_thousands_of_miles),作者:千里行走

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微服务框架saf-1:saf工程结构拓扑解析

    3.解放业务,使业务方专注于业务逻辑本身:通过注解以搭积木方式引入各式资源,每个资源都是一行注解,极大提升业务方产出效率。

    千里行走
  • 微服务框架saf-1:容器化部署allinone-demo

    3.解放业务,使业务方专注于业务逻辑本身:通过注解以搭积木方式引入各式资源,每个资源都是一行注解,极大提升业务方产出效率。

    千里行走
  • 微服务框架saf-7:saf-http的sentinel流控demo体验和一些深入思考

    本文主要是陈述sentinel如何使用,以及度量展现(grafana/prometheus),原理与机制并不会过多涉及(以后有时间再开)。

    千里行走
  • 微服务框架saf-1:saf工程结构拓扑解析

    3.解放业务,使业务方专注于业务逻辑本身:通过注解以搭积木方式引入各式资源,每个资源都是一行注解,极大提升业务方产出效率。

    千里行走
  • 羊皮书APP(Android版)开发系列(八)用户登录

    热心的程序员
  • 老总让做后台接口监控,我却开发了一个App

    最近投入到了一个新的项目中,是一个新的Android项目,项目涉及到智能聊天相关的功能,所以需要一个很好的接入层,总之肯定不能用通用的http协议来聊天。

    腾讯移动品质中心TMQ
  • 常见hash算法

    hash算法的意义在于提供了一种快速存取数据的方法,它用一种算法建立键值与真实值之间的对应关系,(每一个真实值只能有一个键值,但是一个键值可以对应多个真实值),...

  • 浅入深出Vue:工具准备之PostMan安装配置及Mock服务配置

    由于家中有事,文章没顾得上。在此说声抱歉,这是工具准备的最后一章。 接下来就是开始环境搭建了~尽情期待

    若羽
  • 像设计马桶一样设计接口 No.109

    我发现很多人,包括我自己,在设计接口和流程的时候,都希望接口保持最小职责原则,因为我们是"平台",我们只能提供最小粒度的接口。

    大蕉
  • 云硬盘扩容的三种方式

    在家里呆了有15天了,空闲时间只有看书,不断充实自己。细致研究,发现简单的事,细细品味,也有新的体会,就像喝葡萄酒细细品尝的感觉相同。

    希望的田野

扫码关注云+社区

领取腾讯云代金券