背景
阿里云API网关服务提供API托管服务,提供了强大的适配和集成能力,可以将各种不同的业务系统API实现统一管理。API网关同时支持将API访问日志一键存储到日志服务,通过日志服务强大的查询分析能力,用户可以针对访问日志自定义计算多种指标,监测服务运行情况。继而通过定时SQL将结果指标直接存储到时序库,直接查询API网关指标,而且可以通过较低成本长期存储指标数据。 下面我们一步步从头开始,学习如何利用日志服务监测API网关及其代理的服务。
数据采集
数据采集一直是让开发运维比较头疼的事情,要学习各种不同的采集工具,适配形形色色的环境,解析各式各样的数据格式,在不断试错的情况下,才能够完成第一次的数据采集。而在此之后,还需要不断地完善优化,耗费大量的经历。下面简单介绍下数据采集以及采集到的日志格式,详情可以参考官方文档。
一键采集
阿里云API网关已经很好的集成了日志服务,用户只需要在API网关的日志管理界面关联日志服务,即可完成API访问日志的一键采集,极其方便。
- 在API网关的日志管理界面点击创建日志配置;
- 在弹出窗中选择日志服务的Project/Logstore;
- 点击确认,完成数据采集;
日志格式
下面是采集到的API访问日志示例,
{
"exception": " ",
"apiName": "getbill",
"apiStageName": "stage3",
"__tag__:__receive_time__": "1667222540",
"httpMethod": "POST",
"path": "/request/path-1/file-6",
"__pack_meta__": "1|MTY2NzIwNzcxMTIyMzU0Mzc1Ng==|1094|1093",
"requestHandleTime": "31/Oct/2022:13:02:49",
"requestId": "d6b86756-83c2-e5a8-63f6-da39045f6595",
"appId": "9fb195bd-3d39-be83-ca8c-44a6e85262eb",
"__time__": 1667221369,
"__topic__": "apigateway_log",
"apiStageUid": "e5c13606-f96e-5653-26b1-750d766dd3ae",
"appName": "app3",
"__source__": "127.0.0.1",
"apiGroupUid": "3a51584d-20de-2da1-3095-7f82aa7022dc",
"errorMessage": " ",
"responseSize": "472",
"serviceLatency": "967",
"providerAliUid": "9e21f8dc-54bd-7ad0-5fb4-a898614bc41c",
"apiGroupName": "group4",
"apiUid": &