云监控为您提供企业级开放型一站式监控解决方案。Hologres已经接入云监控的云服务监控,方便您通过云监控全面了解Hologres实例的资源使用、业务运行及健康状况,及时收到异常报警并做出响应,保证应用程序运行顺畅。本文为您介绍如何通过云监控监测Hologres实例的相关指标并上报告警。
前提条件
使用限制
Hologres仅支持使用自定义大盘的方式查看实例的相关指标。
使用建议
目前云监控已经支持按照Hologres实例类型(包括实时数仓Hologres(从实例)、实时数仓Hologres(湖仓加速)、实时数仓Hologres(通用型)、实时数仓Hologres(计算组))展示对应实例的监控指标,不同的实例类型对应专属监控指标,以便更好的监控业务异常并处理,建议将实时数仓Hologres的监控切换为对应实例类型下的监控,以获得更好的监控体验。
授予RAM用户云监控查看权限
您可为RAM用户授权如下权限,授权方法请参见为RAM用户授权。
权限名称 | 权限功能描述 |
AliyunCloudMonitorFullAccess | 管理云监控(CloudMonitor)的权限。 |
AliyunCloudMonitorReadOnlyAccess | 只读访问云监控(CloudMonitor)的权限。 |
AliyunCloudMonitorMetricDataReadOnlyAccess | 访问云监控(CloudMonitor)时序指标数据的权限。 |
查看监控指标
进入云监控的方式有两种,分别为从Hologres管理控制台跳转和直接登录云监控控制台。
从Hologres管理控制台跳转
登录Hologres管理控制台,单击左侧实例列表。
在实例列表页面,单击对应实例名称。
在实例详情页左侧导航栏,单击监控信息。
在监控信息页面,单击右上角云监控,即可进入云监控Hologres实例监控页面查看实例相关指标的状态。
直接登录云监控控制台
登录云监控控制台。
在左侧导航栏,单击云产品监控。
在大数据(数加)区域,单击交互式分析Hologres进入Hologres监控大盘。
单击地域后的图标,选择目标地域。
单击目标实例ID或操作列的监控图表,查看实例相关指标的状态。
说明您可以自定义查看实例指标的时间段,监控数据最多保留30天。
创建并配置报警规则
您可以根据业务的实际情况,创建并配置监控指标的阈值报警,当监控指标超过设定阈值后,系统自动发送报警通知,帮助您及时发现监控数据的异常并快速处理。创建并配置报警规则的步骤如下:
登录云监控控制台。
在左侧导航栏,单击 。
在报警规则页面,单击创建报警规则。
在创建报警规则页面,配置报警规则的各项参数。
参数
描述
产品
选择交互式分析Hologres。
资源范围
报警规则的作用范围。取值如下:
全部资源:表示该规则对用户名下对应产品的所有实例生效。例如:您设置了全部资源粒度的Hologres CPU使用率大于80%报警,则只要用户名下有Hologres的CPU使用率大于80%,就会发送报警通知。
当资源范围选择全部资源时,报警的资源最多为1000个,超过1000个可能会导致达到阈值不报警的问题,建议您使用应用分组按业务划分资源后再设置报警。
应用分组:报警规则作用于Hologres的指定应用分组内的全部资源上。
实例:表示该规则只对某个具体的实例生效。例如:您如果设置了实例粒度的主机CPU使用率大于80%报警,则当该实例CPU使用率大于80%时,会发送报警通知。
规则描述
报警规则的主体。当监控数据满足报警条件时,触发报警规则。规则描述的设置方法如下:
单击添加规则。
在添加规则描述面板,设置规则名称、监控指标类型、监控指标、阈值、报警级别和报警方式等。
单击确定。
通道沉默周期
指报警发生后如果未恢复正常,间隔多久重复发送一次报警通知。
生效时间
报警规则的生效时间,报警规则只在生效时间内才会检查监控数据是否需要报警。
说明单击高级设置,可设置该参数。
报警联系人组
发送报警的联系人组。
应用分组的报警通知会发送给该报警联系人组中的报警联系人。报警联系人组是一组报警联系人,可以包含一个或多个报警联系人。
关于如何创建报警联系人和报警联系人组,请参见创建报警联系人或报警联系人组。
报警回调
公网可访问的URL,用于接收云监控通过POST请求推送的报警信息。目前仅支持HTTP协议。关于如何设置报警回调,请参见使用阈值报警回调。
弹性伸缩
当产品选择弹性伸缩时,您需要设置弹性伸缩的地域、弹性伸缩组和弹性伸缩规则。在发生报警时触发相应的伸缩规则。
日志服务
当产品选择日志服务时,您需要设置日志服务的地域、Project和Logstore。在发生报警时,将报警信息写入日志。
消息服务MNS-Topic
如果您打开消息服务MNS-Topic开关,当报警发生时,会将报警信息写入消息服务的主题。您需要设置消息服务的地域和主题。
关于如何创建主题,请参见创建主题。
无数据处理方法
无监控数据时报警的处理方式。取值:
不做任何处理(默认值)
发送无数据报警
视为正常
单击确认。
您也可以单击目标实例ID操作列的报警规则,查看或修改已有的报警规则。
配置一键报警
您可以在云监控为Hologres开启一键报警功能,为所有实例设置默认的告警规则,方便对多个常见的重要指标进行异常告警,快速发现问题。Hologres默认的告警规则如下:
如果连接数使用率(Info)连续3次平均值>=95就报警,通知对象为云账号报警联系人。
如果存储水位(Warn)连续3次平均值>90%就报警,通知对象为云账号报警联系人。
如果内存水位(Warn)连续3次平均值>=90%就报警,通知对象为云账号报警联系人。
如果CPU水位(Info)连续3次平均值>=99%就报警,通知对象为云账号报警联系人。
每次告警的周期为5分钟。
配置一键报警的注意事项如下:
一键报警功能开启后,默认开启云监控预置的报警规则,快速建立云监控报警体系监控重要指标,并未全面覆盖所有监控指标。
一键报警功能开启后,对应的报警规则作用于您选中产品的当前实例及后续新生成的实例。
一键报警功能支持您对预置的报警规则进行修改、禁用和删除操作。
配置一键报警的步骤如下:
登录云监控控制台。
在左侧导航栏,单击 ,进入一键报警页面。
在一键报警列表,单击交互式分析Hologres的一键报警开关,开启一键报警。
单击交互式分析Hologres左侧的图标,查看云监控为您自动生成的报警规则。
可选:您可以单击操作栏中的禁用、修改、删除,禁用、修改、删除对应的报警规则。
使用自定义大盘定制监控指标
云监控已为您初始化了用户维度的Hologres监控大盘,如果您需要查看其他数据,可以使用自定义大盘定制监控指标。自定义监控大盘的步骤如下:
登录云监控控制台。
在左侧导航栏,单击 ,进入自定义大盘页面。
单击添加大盘,在添加大盘组对话框输入新建的监控大盘名称。
单击确定,单击新建的监控大盘名称并跳转至新建的监控大盘页面。
单击添加图表,进入添加图表页面。
选择折线图、面积图、TopN表格、热力图或饼图中任意一种图表类型。
配置云产品监控或自定义监控。
以云产品监控为例,选择云产品为交互式分析Hologres并为图表命名,配置监控项和资源。
Hologres支持的实例监控项如下表所示。
监控项
Code
描述
CPU水位
cpu_usage
实例CPU的使用百分比。
内存水位
memory_usage
实例内存的使用百分比。
存储已用容量
storage_usage
实例存储的使用量。
存储水位
storage_usage_percent
实例存储已用容量与购买存储规格的比例。未购买存储规格无数据。
Query QPS明细
query_qps
每秒SQL语句执行个数,按cmdType(Query类型)展示。
cmdType包含如下。
SELECT语句。
INSERT语句。
UPDATE语句。
DELETE语句。
Query响应时间明细
query_latency
Query响应时间(Latency)明细,按cmdType(Query类型)展示。
cmdType包含如下。
SELECT语句。
INSERT语句。
UPDATE语句。
DELETE语句。
Query P99 延迟
query_latency_p99
Query响应时间P99明细,按cmdType(Query类型)展示。
连接数
connection_count
实例的SQL连接数明细,按数据库名称展开。连接数指标未展示在主图,需在自定义监控配置。
SQL总连接数
connection_num
实例的SQL总连接数。
连接数使用率
connection_usage
单个节点占用连接数与总连接数的比值。
每秒失败查询数
failed_query_qps
实例每秒失败SQL查询数量。
实时写入RPS
dml_rps
实例每秒实时导入数据条数。
Select语句响应时间
无
Select Query查询的延迟时间。
Insert语句响应时间
无
Insert Query查询的延迟时间。
Update语句响应时间
无
Update Query查询的延迟时间。
Delete语句响应时间
无
Delete Query查询的延迟时间。
告警最佳实践
如何为业务设置合适的告警,达到不频繁地对不重要事件报警,又能及时感知到重要异常事件发生的目的,实际上取决于您的具体业务情况,以及Hologres在您的整体架构中所处的位置,请根据具体情况进行设置。不过有一些通用性的指标,建议您对其设置告警,并且设置合适的告警,如下所示。
CPU水位
CPU水位反映了Hologres的资源是否存在瓶颈,也反映了您的资源使用是否充分。CPU水位告警的核心逻辑在于,设置规则检测出CPU水位持续100%,即CPU持续打满的情况。因为这种情况,意味着当前实例规模的资源已充分利用,难以支撑业务数据量、查询量、计算量等的增长,需要考虑扩容等手段。
告警规则建议
不建议出现一次CPU使用率达到100%就告警。
如果CPU水位持续到达100%一段时间,随后降低维持在中等或较低水平,那么一般是那段时间在做大的计算,例如大规模数据的写入,或者大规模数据的查询,因此不建议出现一次CPU使用率达到100%就告警,这样可能会产生较多误报。
建议设置为“CPU水位连续3次>=99% Info(每次间隔5分钟)”类似的告警规则。
设置为“CPU水位连续3次>=99% Info(每次间隔5分钟)”的告警规则,即15分钟内检测3次出现CPU使用率100%,产生Info级别的告警。此告警规则可以有效避免误报,根据具体情况的不同,您可以降低间隔时间,或者提高检测次数。
内存水位
内存水位的逻辑与CPU水位大体相同。不同于CPU水位具有不产生计算则几乎为0的特点,内存水位在没有计算时,并不会为0,有时甚至会比较高。Hologres把计算内存分为了三块,一是预留给计算的内存,约占30%,没有计算时,这块几乎为0;二是数据缓存,在诸多情况下,数据缓存可以极大地减少I/O读取,提高SQL的计算效率,约占30%;三是实例中所有表、索引等元数据缓存,以及表在内存中的句柄和缓冲区等,约占30%。
告警规则建议
不建议内存水位设置过低的阈值。
没有计算时只能保证前30%是空的,还有60%甚至以上的内存,可能是被占据的,因此体现出内存水位不为0甚至较高。有可能超过60%被占据,是因为元数据优先放入内存,如果元数据过多,加上数据缓存的30%,无计算时内存使用会超过60%。
建议设置为“内存水位连续3次>=90% Warning(每次间隔5分钟)”类似的告警规则。
设置为内存水位连续3次>=90% Warning(每次间隔5分钟)”的告警规则,即15分钟内检测到3次出现内存使用率超过90%,产生Warning级别的告警。
连接数使用率
对连接使用率进行告警,是为了防止连接数打满,而造成无法连接的异常影响业务。一般连接数在总连接数的95%以下都算安全。因此可以设置告警规则为:连接数使用率(Info)连续3次>=95就报警。
P99延迟
SQL语句从提交到返回的过程中,Hologres引擎处理99%查询语句的时间。响应时间异常性变大反映出系统可能有慢Query的趋势,可能会影响下游业务处理。平均响应时间很难有一个标准,需要根据您的实际查询使用模式而定。P99延迟代表了99% Query跑完的时间,相对平均而言有特定的意义。
例如您是持续服务型应用,平常的正常延迟都在1s以内,那么响应时间突然到5s或10s,就不太正常,需要告警出来,偶尔到1.2s,1.5s,则正常。
例如您是分析性应用,根据不同业务人员的需求,查询的大小、响应时间都不尽相同,那么就需要根据自己的场景进行设置。
另外要注意的是,当实例负载很高的时候,SQL运行时间波动可能越大,这种情况下就容易产生告警。解决方法是适当调整阈值,或者扩增实例规格以维持负载平稳。
Query QPS
在您的业务中,有持续的SQL语句执行时,往往有持续稳定的QPS(Query Per Second)指标。当QPS突然降到很低,或者为0时,如果不是业务有意停止,那么可能意味着系统有异常。如果业务QPS持续稳定在某个值A,那么建议告警阈值设置为A的80%、50%或10%等,即告警规则设置为:QPS连续3次<=(A*0.8) Warning(每次间隔5分钟)。
SQL语句的QPS包含如下。
类型
说明
(推荐)Query QPS明细
实例每秒SQL语句执行数。
SELECT语句QPS
实例每秒SELECT语句数。
INSERT语句QPS
实例每秒INSERT语句数。
UPDATE语句QPS
实例每秒UPDATE语句数。
DELETE语句QPS
实例每秒DELETE语句数。
实时写入RPS
在您的业务中,有持续的外部数据导入(通过Flink/数据集成等等)时,往往有持续的实时导入RPS(Record Per Second)指标。当RPS突然降到很低,或者为0时,如果不是作业有意停止,那么可能意味着系统有异常。例如,设置告警为:RPS(cmdType=sdk)连续1次<=10 Warning。
告警后处理最佳实践
在告警之后,请根据以下类别对可能存在的异常情况进行处理,Hologres针对具体的情况推荐的处理方法如下。
出现连接数使用率告警
处理方法: 对连接数进行诊断和管理,详情请参见连接数管理进行适当处理。
出现SQL总连接数高的告警
处理方法:对实例的连接进行诊断和管理,详情请参见连接数管理。
出现内存水位高的告警
具体分为如下两种情况。
情景一:无计算但内存水位偏高。
处理方法:如果您的实例出现没有计算但内存水位高,可能说明您的实例元数据过多,例如表的数量很多;或者是索引设置不合理,例如对高基数的列设置了Dictionary索引或Bitmap索引。
情景二:有计算且内存水位偏高。
处理方法:如果有计算,且内存水位高,或者SQL发生内存超出报错,这时可以通过检查SQL的执行计划,观察是否合理等手段,改善SQL的内存消耗。
出现存储水位高的告警
处理方法:当出现存储水位告警时,代表您实例存储告急,请适当扩容存储。
出现QPS低的告警
处理方法:
排查是否存在前台任务手工重启、发布、实例是否正在升级等人为或正常原因造成。
排查完毕后,请检查当前前台任务的报错状况,SQL日志报错情况,是否有报错信息,根据具体信息排查。
出现平均响应时间长的告警
处理方法:出现平均响应时间的尖峰,一般情况下,需要具体SQL执行人员排查具体的SQL的执行计划是否符合预期。
出现RPS低的告警
处理方法:
排查是否存在前台任务手工重启、发布、实例是否正在升级等人为或正常原因造成。
排查完毕后,请检查当前导入任务的健康状况,是否有报错信息,再根据具体信息排查。
- 本页导读 (1)