借助阿里云在亚洲加速迈向成功
一站式安全合规咨询服务
MLPS 2.0 一站式合规解决方案
依托我们的网络进军中国市场
提升面向互联网应用的性能和安全性
保障您的中国业务安全无忧
通过强大的数据安全框架保护您的数据资产
申请 ICP 备案的流程解读和咨询服务
面向大数据建设、管理及应用的全域解决方案
企业内大数据建设、管理和应用的一站式解决方案
将您的采购和销售置于同一企业级全渠道数字平台上
全渠道内置 AI 驱动、拟人化、多语言对话的聊天机器人
快速搭建在线教育平台
提供域名注册、分析和保护服务
云原生 Kubernetes 容器化应用运行环境
以 Kubernetes 为使用界面的容器服务产品,提供符合容器规范的算力资源
安全的镜像托管服务,支持全生命周期管理
多集群环境下微服务应用流量统一管理
提供任意基础设施上容器集群的统一管控,助您轻松管控分布式云场景
高弹性、高可靠的企业级无服务器 Kubernetes 容器产品
敏捷安全的 Serverless 容器运行服务
为虚拟机和容器提供高可靠性、高性能、低时延的块存储服务
一款海量、安全、低成本、高可靠的云存储服务
可靠、弹性、高性能、多共享的文件存储服务
全托管、可扩展的并行文件系统服务。
全托管的 NoSQL 结构化数据实时存储服务
可抵扣多种存储产品的容量包,兼具灵活性和长期成本优化
让您的应用跨不同可用区资源自动分配访问量
随时绑定和解绑 VPC ECS
云网络公网、跨域流量统一计费
高性价比,可抵扣按流量计费的流量费用
创建云上隔离的网络,在专有环境中运行资源
在 VPC 环境下构建公网流量的出入口
具备网络状态可视化、故障智能诊断能力的自助式网络运维服务。
安全便捷的云上服务专属连接
基于阿里云专有网络的私有 DNS 解析服务
保障在线业务不受大流量 DDoS 攻击影响
系统运维和安全审计管控平台
业务上云的第一个网络安全基础设施
集零信任内网访问、办公数据保护、终端管理等多功能于一体的办公安全管控平台
提供7X24小时安全运维平台
防御常见 Web 攻击,缓解 HTTP 泛洪攻击
实现全站 HTTPS,呈现可信的 WEB 访问
为云上应用提供符合行业标准和密码算法等级的数据加解密、签名验签和数据认证能力
一款发现、分类和保护敏感数据的安全服务
创建、控制和管理您的加密密钥
快速提高应用高可用能力服务
围绕应用和微服务的 PaaS 平台
兼容主流开源微服务生态的一站式平台
多集群环境下微服务应用流量统一管理
Super MySQL 和 PostgreSQL,高度兼容 Oracle 语法
全托管 MySQL、PostgreSQL、SQL Server、MariaDB
兼容 Redis® 的缓存和KV数据库
兼容Apache Cassandra、Apache HBase、Elasticsearch、OpenTSDB 等多种开源接口
文档型数据库,支持副本集和分片架构
100%兼容 Apache HBase 并深度扩展,稳定、易用、低成本的NoSQL数据库。
低成本、高可用、可弹性伸缩的在线时序数据库服务
专为搜索和分析而设计,成本效益达到开源的两倍,采用最新的企业级AI搜索和AI助手功能。
一款兼容PostgreSQL协议的实时交互式分析产品
一种快速、完全托管的 TB/PB 级数据仓库
基于 Flink 为大数据行业提供解决方案
基于Qwen和其他热门模型的一站式生成式AI平台,可构建了解您业务的智能应用程
一站式机器学习平台,满足数据挖掘分析需求
高性能向量检索服务,提供低代码API和高成本效益
帮助您的应用快速构建高质量的个性化推荐服务能力
提供定制化的高品质机器翻译服务
全面的AI计算平台,满足大模型训练等高性能AI计算的算力和性能需求
具备智能会话能力的会话机器人
基于机器学习的智能图像搜索产品
基于阿里云深度学习技术,为用户提供图像分割、视频分割、文字识别等离线SDK能力,支持Android、iOS不同的适用终端。
语音识别、语音合成服务以及自学习平台
一站式智能搜索业务开发平台
助力金融企业快速搭建超低时延、高质量、稳定的行情数据服务
帮助企业快速测算和分析企业的碳排放和产品碳足迹
企业工作流程自动化,全面提高效率
金融级云原生分布式架构的一站式高可用应用研发、运维平台
eKYC 数字远程在线解决方案
可智能检测、大数据驱动的综合性反洗钱 (AML) 解决方案
阿里云APM类监控产品
实时云监控服务,确保应用及服务器平稳运行
为系统运维人员管理云基础架构提供全方位服务的云上自动化运维平台
面向您的云资源的风险检测服务
提升分布式环境下的诊断效率
日志类数据一站式服务,无需开发就能部署
ECS 预留实例
让弹性计算产品的成本和灵活性达到最佳平衡的付费方式。云原生 AI 套件
加速AI平台构建,提高资源效率和交付速度FinOps
实时分析您的云消耗并实现节约SecOps
实施细粒度安全控制DevOps
快速、安全地最大限度提高您的DevOps优势自带IP上云
自带公网 IP 地址上云全球网络互联
端到端的软件定义网络解决方案,可推动跨国企业的业务发展全球应用加速
提升面向互联网应用的性能和安全性全球互联网接入
将IDC网关迁移到云端云原生 AI 套件
加速AI平台构建,提高资源效率和交付速度FinOps
实时分析您的云消耗并实现节约SecOps
实施细粒度安全控制DevOps
快速、安全地最大限度提高您的DevOps优势金融科技云数据库解决方案
利用专为金融科技而设的云原生数据库解决方案游戏行业云数据库解决方案
提供多种成熟架构,解决所有数据问题Oracle 数据库迁移
将 Oracle 数据库顺利迁移到云原生数据库数据库迁移
加速迁移您的数据到阿里云阿里云上的数据湖
实时存储、管理和分析各种规模和类型的数据数码信贷
利用大数据和 AI 降低信贷和黑灰产风险面向企业数据技术的大数据咨询服务
帮助企业实现数据现代化并规划其数字化未来人工智能对话服务
全渠道内置 AI 驱动、拟人化、多语言对话的聊天机器人EasyDispatch 现场服务管理
为现场服务调度提供实时AI决策支持在线教育
快速搭建在线教育平台窄带高清 (HD) 转码
带宽成本降低高达 30%广电级大型赛事直播
为全球观众实时直播大型赛事,视频播放流畅不卡顿直播电商
快速轻松地搭建一站式直播购物平台用于供应链规划的Alibaba Dchain
构建和管理敏捷、智能且经济高效的供应链云胸牌
针对赛事运营的创新型凭证数字服务数字门店中的云 POS 解决方案
将所有操作整合到一个云 POS 系统中元宇宙
元宇宙是下一代互联网人工智能 (AI) 加速
利用阿里云 GPU 技术,为 AI 驱动型业务以及 AI 模型训练和推理加速DevOps
快速、安全地最大限度提高您的DevOps优势数据迁移解决方案
加速迁移您的数据到阿里云企业 IT 治理
在阿里云上构建高效可控的云环境基于日志管理的AIOps
登录到带有智能化日志管理解决方案的 AIOps 环境备份与存档
数据备份、数据存档和灾难恢复用阿里云金融服务加快创新
在云端开展业务,提升客户满意度
为全球资本市场提供安全、准确和数字化的客户体验
利用专为金融科技而设的云原生数据库解决方案
利用大数据和 AI 降低信贷和黑灰产风险
建立快速、安全的全球外汇交易平台
新零售时代下,实现传统零售业转型
利用云服务处理流量波动问题,扩展业务运营、降低成本
快速轻松地搭建一站式直播购物平台
面向大数据建设、管理及应用的全域解决方案
全渠道内置 AI 驱动、拟人化、多语言对话的聊天机器人
以数字化媒体旅程为当今的媒体市场准备就绪您的内容
带宽成本降低高达 30%
快速轻松地搭建一站式直播购物平台
为全球观众实时直播大型赛事,视频播放流畅不卡顿
使用阿里云弹性高性能计算 E-HPC 将本地渲染农场连接到云端
构建发现服务,帮助客户找到最合适的内容
保护您的媒体存档安全
通过统一的数据驱动平台提供一致的全生命周期客户服务
在钉钉上打造一个多功能的电信和数字生活平台
在线存储、共享和管理照片与文件
提供全渠道的无缝客户体验
面向中小型企业,为独立软件供应商提供可靠的IT服务
打造最快途径,助力您的新云业务扬帆起航
先进的SD-WAN平台,可实现WAN连接、实时优化并降低WAN成本
通过自动化和流程标准化实现快速事件响应
针对关键网络安全威胁提供集中可见性并进行智能安全分析
提供大容量、可靠且高度安全的企业文件传输
用智能技术数字化体育赛事
基于人工智能的低成本体育广播服务
专业的广播转码及信号分配管理服务
基于云的音视频内容引入、编辑和分发服务
在虚拟场馆中模拟关键运营任务
针对赛事运营的创新型凭证数字服务
智能和交互式赛事指南
轻松管理云端背包单元的绑定直播流
通过数据加强您的营销工作
元宇宙是下一代互联网
利用生成式 AI 加速创新,创造新的业务佳绩
阿里云高性能开源大模型
借助AI轻松解锁和提炼文档中的知识
通过AI驱动的语音转文本服务获取洞察
探索阿里云人工智能和数据智能的所有功能、新优惠和最新产品
该体验中心提供广泛的用例和产品帮助文档,助您开始使用阿里云 AI 产品和浏览您的业务数据。
利用阿里云 GPU 技术,为 AI 驱动型业务以及 AI 模型训练和推理加速
元宇宙是下一代互联网
构建发现服务,帮助客户找到最合适的内容
全渠道内置 AI 驱动、拟人化、多语言对话的聊天机器人
加速迁移您的数据到阿里云
在阿里云上建立一个安全且易扩容的环境,助力高效率且高成本效益的上云旅程
迁移到完全托管的云数据库
将 Oracle 数据库顺利迁移到云原生数据库
自带公网 IP 地址上云
利用阿里云强大的安全工具集,保障业务安全、应用程序安全、数据安全、基础设施安全和帐户安全
保护、备份和还原您的云端数据资产
MLPS 2.0 一站式合规解决方案
快速高效地将您的业务扩展到中国,同时遵守适用的当地法规
实现对 CloudOps、DevOps、SecOps、AIOps 和 FinOps 的高效、安全和透明的管理
构建您的原生云环境并高效管理集群
快速、安全地最大限度提高您的DevOps优势
实施细粒度安全控制
提供运维效率和总体系统安全性
实时分析您的云消耗并实现节约
实时存储、管理和分析各种规模和类型的数据
登录到带有智能化日志管理解决方案的 AIOps 环境
帮助企业实现数据现代化并规划其数字化未来
帮助零售商快速规划数字化之旅
将全球知名的 CRM 平台引入中国
在线存储、共享和管理照片与文件
构建、部署和管理高可用、高可靠、高弹性的应用程序
快速、安全地最大限度提高您的DevOps优势
将您的采购和销售置于同一企业级全渠道数字平台上
企业内大数据建设、管理和应用的一站式解决方案
帮助企业简化 IT 架构、实现商业价值、加速数字化转型的步伐
快速高效地将您的业务扩展到中国,同时遵守适用的当地法规
快速搜集、处理、分析联网设备产生的数据
0.0.201
在Service Mesh中,不同的服务可能需要采集不同的可观测性数据,因此需要支持针对网格代理与网关Pod分别定义采集配置规则,并统一标准化采集配置规则,以便更好地支持云原生应用的可观测性。可观测性在云原生应用中扮演着非常重要的角色,它可以帮助我们实时监控服务的运行情况和性能指标,发现并解决服务故障和瓶颈,从而提高应用的可靠性和性能。阿里云服务网格ASM提供了统一标准化方式,为您提供一种收敛后的可观测数据生成与采集配置模式,以更好地支持云原生应用的可观测性。本文介绍可观测的概念及相关功能。
随着应用系统的复杂度越来越高,就越来越难保证所有的系统都一直处于稳健状态,有可能某些部分会因问题而处于降级状态。因此不仅需要将应用程序构建得更可靠且更具弹性,还需要通过可观测性工具了解应用服务和基础设施在运行时发生的情况。如果能够了解实际发生的情况,就可以学会检测故障并在观察到某些意外情况时进行深入调试。这将有助于降低平均恢复时间,快速恢复对业务的影响。
可观测性是一个包含各种级别的系统特征,必须结合应用程序的指标采集、网络的指标采集、以及基础设施(例如数据库存储等)来筛选存储大量的数据,以便在发生不可预测的情况时拼凑出一个完整的视图。Service Mesh在可观测性方面可以有效提升应用程序级别的网络指标采集。从实际应用的角度来看,在系统中需要重视其稳定性,需要理解什么时候系统运行良好或出现问题,从而可以更快地识别错误,并实施正确的自动化及手动控制来维护系统的可用性。
Service Mesh的数据平面代理位于服务之间的网络请求路径中,通过捕获代理的可观测性数据可以在运行时了解应用程序网络和网格的运行情况。
在Service Mesh中实现可观测性,涉及了日志、监控指标、链路追踪这些可观测性数据的生成规则配置和采集配置,以及如何将这些可观测数据采集到云托管服务或者自建服务中。同时,还需要考虑如何支持针对网格代理与网关Pod分别定义采集配置,以支持不同的场景诉求。ASM提供了统一标准化方式,为您提供一种收敛后的可观测数据生成与采集配置模式,以更好地支持云原生应用的可观测性。
Telemetry CRD允许在多个命名空间内创建多个对象,但随意定义可能造成冲突等,导致实际执行的结果与预期不符。基于实际操作得出的最佳实践如下:
在根命名空间istio-system中定义多个网格范围的Telemetry资源对象无效,即只能存在一个Telemetry资源对象。ASM中已经内置了该最佳实践,在istio-system命名空间内只允许存在一个名称为default的Telemetry资源对象。
所有的命名空间下约束只存在一个Telemetry资源对象允许工作负载的选择器selector为空,且名称为default。
可以通过使用工作负载选择器selector在所需命名空间中应用新的Telemetry资源对象来实现特定工作负载的覆盖。
如果存在具有相同的工作负载选择器selector的两个Telemetry资源对象,即这两个Telemetry资源对象选择了相同的工作负载,则不确定这两个Telemetry资源对象中的哪一个会被执行。
当根命名空间istio-system下的全局Telemetry资源对象中,未定位监控指标部分,默认对应不启用生成指标。
在Service Mesh中,日志的采集是实现可观测性的重要手段之一。将所有服务的日志聚合到一处,便于统一管理和检索。为了实现这个目标,需要将每个服务的日志打印到stdout或stderr,并使用日志代理将它们收集到中心日志系统中。ASM提供了日志过滤和日志格式化功能,可以根据需要对日志进行过滤和格式化,以便更好地检索和分析日志。
在实际应用中,不同服务的日志格式可能不同,因此需要设置生成规则来控制日志的生成方式。部署在数据平面(即加入网格的Kubernetes集群)的Envoy Proxy可以输出所有访问日志。ASM支持自定义Envoy Proxy输出的访问日志内容。
基于Telemetry CRD,ASM提供了如下图所示的图形化界面,简化日志数据格式的配置。具体操作,请参见自定义数据面访问日志。
对应生成的定义内容如下:
envoyFileAccessLog:
logFormat:
text: '{"bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","downstream_local_address":"%DOWNSTREAM_LOCAL_ADDRESS%","downstream_remote_address":"%DOWNSTREAM_REMOTE_ADDRESS%","duration":"%DURATION%","istio_policy_status":"%DYNAMIC_METADATA(istio.mixer:status)%","method":"%REQ(:METHOD)%","path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","protocol":"%PROTOCOL%","request_id":"%REQ(X-REQUEST-ID)%","requested_server_name":"%REQUESTED_SERVER_NAME%","response_code":"%RESPONSE_CODE%","response_flags":"%RESPONSE_FLAGS%","route_name":"%ROUTE_NAME%","start_time":"%START_TIME%","trace_id":"%REQ(X-B3-TRACEID)%","upstream_cluster":"%UPSTREAM_CLUSTER%","upstream_host":"%UPSTREAM_HOST%","upstream_local_address":"%UPSTREAM_LOCAL_ADDRESS%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_transport_failure_reason":"%UPSTREAM_TRANSPORT_FAILURE_REASON%","user_agent":"%REQ(USER-AGENT)%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","authority_for":"%REQ(:AUTHORITY)%","upstream_response_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","xff":"%REQ(X-FORWARDED-FOR)%","app_service_name":"%UPSTREAM_CLUSTER%"}'
path: /dev/stdout
对应的过滤条件内容如下:
accessLogging:
- disabled: false
filter:
expression: response.code >= 400
providers:
- name: envoy
将数据平面日志采集到阿里云日志服务SLS时,需要设置采集规则来控制日志的采集方式和储存有效期。容器服务ACK集成了日志服务功能,可对服务网格数据平面集群的AccessLog进行采集。具体操作,请参见使用日志服务采集数据面集群AccessLog。
ASM支持采集控制平面日志和日志告警,例如采集ASM控制平面向数据平面Sidecar推送配置的相关日志。ASM控制面组件的主要功能之一是推送网格的规则配置到数据面的Sidecar代理或者网关中。如果您配置的网格规则内容存在一些冲突导致推送失败,Sidecar代理或者网关将接收不到最新的配置内容。虽然Sidecar代理或网关在不重启的情况下,可以使用已经接收到的配置继续运行,但是一旦这些Pod重启,很有可能导致Sidecar代理或网关启动失败。在很多实际场景中,经常出现用户误配置引发的网关或代理不可用的问题,因此启用控制面的日志告警,及时发现并解决问题十分必要。具体操作,请参见启用控制平面日志采集和日志告警(旧版)或启用控制平面日志采集和日志告警(新版)。
监控指标是Service Mesh中的另一个重要可观测性维度,用于描述请求的处理情况、服务之间的通信状况等。Istio采用Prometheus进行监控指标的采集和存储,每个服务的代理(Envoy)会生成大量的监控指标。这些指标可以用于实时监控服务的运行情况和性能指标,还可以用于异常检测和自动伸缩等场景。
启用服务网格数据平面监控指标可以使服务网格数据平面(网关和Sidecar代理)生成与其运行状态相关的指标数据。您可以通过将指标采集到阿里云ARMS Prometheus来直接查看监控报表(采集指标可能产生费用),或是自建Prometheus并从ASM数据平面抓取监控指标。
基于Telemetry CRD,ASM提供了如下图所示的图形化界面,简化自定义指标配置。具体操作,请参见在ASM中自定义监控指标。
对应生成的定义内容如下:
展开查看定义内容
metrics:
- overrides:
- disabled: true
match:
metric: ALL_METRICS
mode: CLIENT
- disabled: false
match:
metric: ALL_METRICS
mode: SERVER
tagOverrides: {}
- disabled: true
match:
metric: REQUEST_COUNT
mode: CLIENT
- disabled: false
match:
metric: REQUEST_COUNT
mode: SERVER
tagOverrides: {}
- disabled: true
match:
metric: REQUEST_DURATION
mode: CLIENT
- disabled: false
match:
metric: REQUEST_DURATION
mode: SERVER
tagOverrides: {}
- disabled: true
match:
metric: REQUEST_SIZE
mode: CLIENT
- disabled: false
match:
metric: REQUEST_SIZE
mode: SERVER
tagOverrides: {}
- disabled: true
match:
metric: RESPONSE_SIZE
mode: CLIENT
- disabled: false
match:
metric: RESPONSE_SIZE
mode: SERVER
tagOverrides: {}
- disabled: true
match:
metric: GRPC_REQUEST_MESSAGES
mode: CLIENT
- disabled: false
match:
metric: GRPC_REQUEST_MESSAGES
mode: SERVER
tagOverrides: {}
- disabled: true
match:
metric: GRPC_RESPONSE_MESSAGES
mode: CLIENT
- disabled: false
match:
metric: GRPC_RESPONSE_MESSAGES
mode: SERVER
tagOverrides: {}
- disabled: true
match:
metric: TCP_SENT_BYTES
mode: CLIENT
- disabled: false
match:
metric: TCP_SENT_BYTES
mode: SERVER
tagOverrides: {}
- disabled: true
match:
metric: TCP_RECEIVED_BYTES
mode: CLIENT
- disabled: false
match:
metric: TCP_RECEIVED_BYTES
mode: SERVER
tagOverrides: {}
- disabled: true
match:
metric: TCP_OPENED_CONNECTIONS
mode: CLIENT
- disabled: false
match:
metric: TCP_OPENED_CONNECTIONS
mode: SERVER
tagOverrides: {}
- disabled: true
match:
metric: TCP_CLOSED_CONNECTIONS
mode: CLIENT
- disabled: false
match:
metric: TCP_CLOSED_CONNECTIONS
mode: SERVER
tagOverrides: {}
providers:
- name: prometheus
第一次开启:阿里云可观测监控Prometheus版是收费服务,请您根据实际情况自行决定指标生成范围,以免指标量过大,产生过高费用。例如,若需要针对网关进行监控,则需要开启CLIENT侧指标。对于已开启过的指标,重新开启之后的指标设置将保留使用上一次的设置规则。
ASM网格拓扑功能相关的指标设置:ASM网格拓扑功能依赖于Sidecar上报的监控指标,若您开启了网格拓扑,关闭部分监控指标会对网格拓扑功能造成影响甚至不可用。
如果不启用REQUEST_COUNT的SERVER侧指标,将无法生成HTTP或gRPC服务的拓扑图。
如果不启用TCP_SENT_BYTES的SERVER侧指标,将无法生成TCP服务的拓扑图。
关闭REQUEST_SIZE和REQUEST_DURATION的SERVER侧,REQUEST_SIZE的CLIENT侧指标会导致部分拓扑图节点的监控信息无法展示。
开启Prometheus的统计数据收集功能,将采集到的监控指标发送到Prometheus中,以便进行存储和分析。ASM集成了ARMS Prometheus功能,可以实现对服务网格的监控。具体操作,请参见集成可观测监控Prometheus版实现网格监控。
Prometheus采集间隔会对指标收集开销产生重大影响。间隔越长,抓取的数据点就越少,从而可以减少处理、存储和计算开销。当前的默认配置为15秒,对于生产场景来说可能过于频繁。请根据实际需要在Prometheus侧进行调整。如果使用的是ARMS Prometheus,请通过ARMS控制台进行相关配置。具体操作,请参见配置采集规则。
直方图关联的指标(包括istio_request_duration_milliseconds_bucket
、istio_request_bytes_bucket
、istio_response_bytes_bucket
)通常比较密集,开销较大。为了避免这些自定义指标持续产生费用,您可以废弃这些自定义指标。如果使用的是ARMS Prometheus,请通过ARMS控制台进行配置。具体操作,请参见配置废弃指标。
ASM集成自建Prometheus实现网格监控。具体操作,请参见集成自建Prometheus实现网格监控。
如下图所示,您可以通过Grafana查看对应的仪表盘。
已有Prometheus监控端点的应用服务,通过启用合并Istio与应用的监控指标功能,可以借助网格代理输出原有业务指标。启用合并Istio与应用的监控指标功能后,ASM会将应用程序指标合并到Istio指标中,相对应的prometheus.io
注解会被加入到所有数据面Pod上,以启用Prometheus的指标抓取能力。如果这些注解已经存在,就会被覆盖。网格代理将应用指标和Istio指标进行合并,Prometheus可以从:15020/stats/prometheus
端点拉取合并后的指标。具体操作,请参见合并Istio与应用的监控指标。
网格拓扑是一个服务网格可观测性工具,提供查看相关服务与配置的可视化界面。如下图所示,ASM支持内置网格拓扑。具体操作,请参见开启网格拓扑提高可观测性。
服务等级指标SLI(Service Level Indicator)是衡量服务健康状况的指标。SLO是指服务等级的目标值或范围值,由一个或多个服务等级指标SLI组成。
SLO提供了一种形式化的方式来描述、衡量和监控微服务应用程序的性能、质量和可靠性。SLO为应用开发和平台团队、运维团队提供了一个共享的质量基准,可作为衡量服务水平质量以及持续改进的参考。使用SLI组合定义的SLO能够帮助团队以更精确的方式描述服务健康状况。
SLO示例如下:
每分钟平均QPS > 100,000/s
99%访问延迟 < 500ms
99%每分钟带宽 > 200 MB/s
ASM提供了开箱即用的基于服务等级目标SLO(Service Level Objectives)的监控和告警能力,能够监控应用服务之间调用的延迟和错误率特征等。
ASM支持的SLI类型如下:
服务可用性:服务成功响应的时间比例,对应的SLI插件类型为availability。HTTP响应码为429或以5XX(以5开头的状态码)会被判断为不可用。
延迟时间:服务返回请求的响应所需的时间(单位为毫秒),对应的SLI插件类型为lantency。您可自定义延迟上限,高于上限的响应会被判断为不合格。
ASM提供了定义SLO配置的UI界面如下。
使用ASM定义应用服务级SLO,可以自动生成Prometheus规则。将生成的规则导入Prometheus中之后可以执行SLO。在Prometheus框架中,由AlertManager组件负责收集Prometheus Server产生的告警信息,并根据您的配置发送给各个接收者。如下图所示,当触发告警时,您可以在Alertmanager页面看到自定义告警信息采集成功。关于SLO的更多信息,请参见SLO管理。
分布式追踪是Service Mesh中实现可观测性的重要组成部分之一,是一种用于对应用程序进行概要分析和监视的方法,尤其是针对使用微服务架构构建的应用程序。在微服务架构中,服务之间的通信通过网络进行,因此需要采用分布式追踪技术来对服务之间的调用关系进行跟踪和监控。在Istio中,可以使用Jaeger、Zipkin等分布式追踪工具来实现这个功能。在分布式追踪里,存在Trace和Span两个重要概念。
Span:分布式追踪的基本组成单元,表示一个分布式系统中的单独的工作单元,每一个Span可以包含其它Span的引用。多个Span在一起构成了Trace。
Trace:微服务中记录的完整的请求执行过程,一个完整的Trace由一个或多个Span组成。
虽然Istio代理能够自动发送Span信息,但是应用程序仍然需要传播适当的HTTP标头,以便在代理发送Span时,可以将Span正确地关联到单个跟踪中。因此,应用程序需要收集以下标头并将其从传入请求传播到任何传出请求:
x-request-id
x-b3-traceid
x-b3-spanid
x-b3-parentspanid
x-b3-sampled
x-b3-flags
x-ot-span-context
基于Telemetry CRD,ASM提供了如下图所示的图形化界面,简化定义分布式链路追踪数据的生成规则配置。
对应生成的定义内容如下:
tracing:
- customTags:
mytag1:
literal:
value: fixedvalue
mytag2:
header:
defaultValue: value1
name: myheader1
mytag3:
environment:
defaultValue: value1
name: myenv1
providers:
- name: zipkin
randomSamplingPercentage: 90
若您需要将采集到的数据发送到云托管服务或者自建服务中,可以使用以下方式:
在云托管服务中,可以使用云原生应用管理服务来实现数据的收集和分析。具体操作,请参见在ASM中实现分布式跟踪。
在自建服务中,可以使用开源的数据收集和分析工具(例如Zipkin、Jaeger等)来实现数据的收集和分析。具体操作,请参见向自建系统导出ASM链路追踪数据。