更新时间:2024-05-11 GMT+08:00
分享

APIG监控中心

APIG监控中心仪表盘主要展示APIG日志的访问量PV、访问量UV、流量、访问失败率、延迟、Host请求TOP、Host延迟TOP、Host失败率TOP、URL请求TOP、URL延迟TOP、URL失败率TOP、后端请求TOP、后端延迟TOP、后端失败率TOP等指标。全方位展示网站访问情况。您还可以使用云日志服务的查询分析语句,分析网站的延时情况,及时调优网站。

前提条件

背景信息

APIG(API Gateway)提供高性能、高可用、高安全的API托管服务,能快速将企业服务能力包装成标准API服务,帮助您轻松构建、管理和部署任意规模的API,并上架API云商店进行售卖。借助API网关,可以简单、快速、低成本、低风险地实现内部系统集成、业务能力开放及业务能力变现。API网关帮助您变现服务能力的同时,降低企业研发投入,让您专注于企业核心业务,提升运营效率。

分析APIG监控情况

  1. 登录云日志服务控制台,在左侧导航栏中选择“日志管理”。
  2. 在“日志应用”模块中,单击“APIG日志中心”,选择“进入仪表盘”。
  3. 在仪表盘模板下方,选择“APIG仪表盘模板>APIG监控中心”仪表盘,查看图表详情。

APIG监控中心仪表盘中的过滤器说明如下所示:

  • 获取所有请求域名,所关联的查询分析语句如下所示:
    select distinct(host)
  • 获取所有app_id,所关联的查询分析语句如下所示:
    select distinct(app_id)

重要图表说明

APIG监控中心仪表盘中重要图表说明如下所示:

  • 访问量PV图展示访问量的变化情况,所关联的查询分析语句如下所示:
    SELECT TIME_FORMAT( _time_, 'yyyy-MM-dd HH:mm:ss', '+08:00' ) as _time_,PV FROM ( SELECT TIME_CEIL ( __time, 'PT300S' ) AS _time_, count( 1 ) AS PV FROM log GROUP BY _time_ )  WHERE _time_ <= CURRENT_TIMESTAMP LIMIT 100 OFFSET 1
  • 请求成功率图展示请求成功率的变化情况,所关联的查询分析语句如下所示:
    select ROUND(sum(case when status < 400 then 1 else 0 end) * 100.0 / count(1),2) as cnt
  • 平均延迟图展示平均延迟的变化情况,所关联的查询分析语句如下所示:
    select round(avg(request_time) * 1000, 3) as cnt
  • 4XX请求数图展示4xx的请求状态码的变化情况,所关联的查询分析语句如下所示:
    SELECT COUNT(1) as cnt WHERE "status" >= 400 and "status" < 500
  • 404请求数图展示404请求状态码的变化情况,所关联的查询分析语句如下所示:
    SELECT COUNT(1) as cnt WHERE "status" = 404
  • 499请求数图展示499请求状态码的变化情况,所关联的查询分析语句如下所示:
    SELECT COUNT(1) as cnt WHERE "status" = 499
  • 504请求数图展示504请求状态码的变化情况,所关联的查询分析语句如下所示:
    SELECT COUNT(1) as cnt WHERE "status" = 504
  • 5XX请求数图展示5xx的请求状态码的变化情况,所关联的查询分析语句如下所示:
    select TIME_FORMAT(TIME_CEIL(__time,'PT300S'),'yyyy-MM-dd HH:mm:ss','+08:00') AS _time_ , count(1) as cnt where "status" >= 500 group by _time_
  • 状态码分布图展示请求状态码的变化情况,所关联的查询分析语句如下所示:
    SELECT status, COUNT(1) AS rm GROUP BY status
  • 访问量UV图展示访问量UV的变化情况,所关联的查询分析语句如下所示:
    select  TIME_FORMAT(TIME_CEIL(__time,'PT600S'),'yyyy-MM-dd HH:mm:ss','+08:00') AS _time_ , APPROX_COUNT_DISTINCT(my_remote_addr) as UV  from log group by _time_
  • 流量图展示入流量和出流量的变化情况,所关联的查询分析语句如下所示:
    select _time_,round( CASE WHEN "入流量" > 0 THEN "入流量" ELSE 0 END, 2 ) AS "入流量",round( CASE WHEN "出流量" > 0 THEN "出流量" ELSE 0 END, 2 ) AS "出流量" FROM (SELECT TIME_FORMAT(TIME_CEIL(__time,'PT300S'),'yyyy-MM-dd HH:mm:ss','+08:00') AS _time_,sum(request_length) / 1024.0/1024 AS "入流量",sum(bytes_sent) / 1024.0/1024 AS "出流量" group by  _time_)
  • 访问失败率图展示访问失败率和5xx的变化情况,所关联的查询分析语句如下所示:
    select  TEXTCAT(LEFT(time_format(__time,'yyyy-MM-dd HH:mm','+08:00'), 15),'0:00') as _time_,sum(case when status >= 400 then 1 else 0 end) * 100.0 / count(1) as '失败率' , sum(case when status >=500 THEN 1 ELSE 0 END)*100.0/COUNT(1) as '5XX比例' group by  _time_
  • 延迟图展示访问P50、P90、P99、P9999延迟的变化情况,所关联的查询分析语句如下所示:
    select _time_,round( CASE WHEN "平均" > 0 THEN "平均" ELSE 0 END, 2 ) AS "平均",round( CASE WHEN "P50" > 0 THEN "P50" ELSE 0 END, 2 ) AS "P50",round( CASE WHEN "P90" > 0 THEN "P90" ELSE 0 END, 2 ) AS "P90",round( CASE WHEN "P99" > 0 THEN "P99" ELSE 0 END, 2 ) AS "P99",round( CASE WHEN "P9999" > 0 THEN "P9999" ELSE 0 END, 2 ) AS "P9999" from (select TEXTCAT(LEFT(time_format(__time,'yyyy-MM-dd HH:mm','+08:00'), 15),'0:00') as _time_,avg(request_time) * 1000 as "平均", APPROX_QUANTILE_DS("request_time", 0.50)*1000 as "P50", APPROX_QUANTILE_DS("request_time", 0.90)*1000 as "P90" ,APPROX_QUANTILE_DS("request_time", 0.99)*1000 as 'P99',APPROX_QUANTILE_DS("request_time", 0.9999)*1000 as 'P9999' group by  _time_)
  • Host请求TOP图展示主机请求TOP信息的变化情况,所关联的查询分析语句如下所示:
    SELECT "host", pv, uv, round( CASE WHEN "访问成功率(%)" > 0 THEN "访问成功率(%)" ELSE 0 END, 2 ) AS "访问成功率(%)", round( CASE WHEN "平均延迟(ms)" > 0 THEN "平均延迟(ms)" ELSE 0 END, 3 ) AS "平均延迟(ms)", round( CASE WHEN "入流量(KB)" > 0 THEN "入流量(KB)" ELSE 0 END, 3 ) AS "入流量(KB)", round( CASE WHEN "出流量(KB)" > 0 THEN "出流量(KB)" ELSE 0 END, 3 ) AS "出流量(KB)"  FROM ( SELECT "host", count( 1 ) AS pv, APPROX_COUNT_DISTINCT ( http_x_forwarded_for ) AS uv, sum( CASE WHEN "status" < 400 THEN 1 ELSE 0 END ) * 100.0 / count( 1 ) AS "访问成功率(%)", avg( request_time ) * 1000 AS "平均延迟(ms)", sum( request_length ) / 1024.0 AS "入流量(KB)", sum( body_bytes_sent ) / 1024.0 AS "出流量(KB)"  WHERE "host" != ''  GROUP BY "host" ) ORDER BY pv DESC
  • Host延迟TOP图展示主机延迟TOP信息的变化情况,所关联的查询分析语句如下所示:
    SELECT "host", pv, round( CASE WHEN "访问成功率(%)" > 0 THEN "访问成功率(%)" ELSE 0 END, 2 ) AS "访问成功率(%)", round( CASE WHEN "平均延迟(ms)" > 0 THEN "平均延迟(ms)" ELSE 0 END, 3 ) AS "平均延迟(ms)", round( CASE WHEN "P90延迟(ms)" > 0 THEN "P90延迟(ms)" ELSE 0 END, 3 ) AS "P90延迟(ms)", round( CASE WHEN "P99延迟(ms)" > 0 THEN "P99延迟(ms)" ELSE 0 END, 3 ) AS "P99延迟(ms)" FROM ( SELECT "host", count( 1 ) AS pv, sum( CASE WHEN "status" < 400 THEN 1 ELSE 0 END ) * 100.0 / count( 1 ) AS "访问成功率(%)", avg( request_time ) * 1000 AS "平均延迟(ms)",APPROX_QUANTILE_DS(request_time, 0.9) * 1000 AS "P90延迟(ms)", APPROX_QUANTILE_DS(request_time, 0.99) * 1000 AS "P99延迟(ms)" WHERE "host" != ''  GROUP BY "host" ) ORDER BY "平均延迟(ms)" desc
  • Host失败率TOP图展示主机访问失败率TOP的变化情况,所关联的查询分析语句如下所示:
    SELECT "host", pv,round( CASE WHEN "访问失败率(%)" > 0 THEN "访问失败率(%)" ELSE 0 END, 2 ) AS "访问失败率(%)", round( CASE WHEN "平均延迟(ms)" > 0 THEN "平均延迟(ms)" ELSE 0 END, 3 ) AS "平均延迟(ms)", round( CASE WHEN "P90延迟(ms)" > 0 THEN "P90延迟(ms)" ELSE 0 END, 3 ) AS "P90延迟(ms)", round( CASE WHEN "P99延迟(ms)" > 0 THEN "P99延迟(ms)" ELSE 0 END, 3 ) AS "P99延迟(ms)"  FROM ( SELECT "host", count( 1 ) AS pv, sum( CASE WHEN "status" >= 400 THEN 1 ELSE 0 END ) * 100.0 / count( 1 ) AS "访问失败率(%)", avg( request_time ) * 1000 AS "平均延迟(ms)", APPROX_QUANTILE_DS(request_time, 0.9) * 1000 AS "P90延迟(ms)", APPROX_QUANTILE_DS(request_time, 0.99) * 1000 AS "P99延迟(ms)" WHERE "host" != ''  GROUP BY "host"  ) ORDER BY "访问失败率(%)" desc
  • 后端请求TOP图展示后端请求TOP的变化情况,所关联的查询分析语句如下所示:
    SELECT addr, pv, uv, round( CASE WHEN "访问成功率(%)" > 0 THEN "访问成功率(%)" ELSE 0 END, 2 ) AS "访问成功率(%)", round( CASE WHEN "平均延迟(ms)" > 0 THEN "平均延迟(ms)" ELSE 0 END, 3 ) AS "平均延迟(ms)", round( CASE WHEN "入流量(KB)" > 0 THEN "入流量(KB)" ELSE 0 END, 3 ) AS "入流量(KB)", round( CASE WHEN "出流量(KB)" > 0 THEN "出流量(KB)" ELSE 0 END, 3 ) AS "出流量(KB)"  FROM ( SELECT my_remote_addr as addr, count( 1 ) AS pv, APPROX_COUNT_DISTINCT ( http_x_forwarded_for ) AS uv, sum( CASE WHEN "status" < 400 THEN 1 ELSE 0 END ) * 100.0 / count( 1 ) AS "访问成功率(%)", avg( request_time ) * 1000 AS "平均延迟(ms)", sum( request_length ) / 1024.0 AS "入流量(KB)", sum( body_bytes_sent ) / 1024.0 AS "出流量(KB)"  WHERE "host" != ''  GROUP BY addr  having length(my_remote_addr) > 2) ORDER BY "pv" desc
  • 后端延迟TOP图展示后端延迟TOP的变化情况,所关联的查询分析语句如下所示:
    SELECT addr,pv,round( CASE WHEN "访问成功率(%)" > 0 THEN "访问成功率(%)" ELSE 0 END, 2 ) AS "访问成功率(%)",round( CASE WHEN "平均延迟(ms)" > 0 THEN "平均延迟(ms)" ELSE 0 END, 3 ) AS "平均延迟(ms)",round( CASE WHEN "P90延迟(ms)" > 0 THEN "P90延迟(ms)" ELSE 0 END, 3 ) AS "P90延迟(ms)",round( CASE WHEN "P99延迟(ms)" > 0 THEN "P99延迟(ms)" ELSE 0 END, 3 ) AS "P99延迟(ms)" FROM (SELECT my_remote_addr as addr,count( 1 ) AS pv,sum( CASE WHEN "status" < 400 THEN 1 ELSE 0 END ) * 100.0 / count( 1 ) AS "访问成功率(%)",avg( request_time ) * 1000 AS "平均延迟(ms)",APPROX_QUANTILE_DS(request_time, 0.9) * 1000 AS "P90延迟(ms)",APPROX_QUANTILE_DS(request_time, 0.99) * 1000 AS "P99延迟(ms)" WHERE "host" != '' GROUP BY addr having length(my_remote_addr) > 2) ORDER BY "平均延迟(ms)" desc
  • 后端失败率TOP图展示后端失败率TOP的变化情况,所关联的查询分析语句如下所示:
    SELECT addr, pv, round( CASE WHEN "访问失败率(%)" > 0 THEN "访问失败率(%)" ELSE 0 END, 2 ) AS "访问失败率(%)", round( CASE WHEN "平均延迟(ms)" > 0 THEN "平均延迟(ms)" ELSE 0 END, 3 ) AS "平均延迟(ms)", round( CASE WHEN "P90延迟(ms)" > 0 THEN "P90延迟(ms)" ELSE 0 END, 3 ) AS "P90延迟(ms)", round( CASE WHEN "P99延迟(ms)" > 0 THEN "P99延迟(ms)" ELSE 0 END, 3 ) AS "P99延迟(ms)"  FROM ( SELECT my_remote_addr as addr, count( 1 ) AS pv, sum( CASE WHEN "status" < 400 THEN 1 ELSE 0 END ) * 100.0 / count( 1 ) AS "访问失败率(%)", avg( request_time ) * 1000 AS "平均延迟(ms)", APPROX_QUANTILE_DS(request_time, 0.9) * 1000 AS "P90延迟(ms)", APPROX_QUANTILE_DS(request_time, 0.99) * 1000 AS "P99延迟(ms)" WHERE "host" != ''  GROUP BY addr having length(my_remote_addr) > 2) ORDER BY "访问失败率(%)" desc
分享:

    相关文档

    相关产品