文档

云监控

更新时间:

云监控为您提供企业级开放型一站式监控解决方案。Hologres已经接入云监控的云服务监控,方便您通过云监控全面了解Hologres实例的资源使用、业务运行及健康状况,及时收到异常报警并做出响应,保证应用程序运行顺畅。本文为您介绍如何通过云监控监测Hologres实例的相关指标并上报告警。

前提条件

使用限制

Hologres仅支持使用自定义大盘的方式查看实例的相关指标。

使用建议

目前云监控已经支持按照Hologres实例类型(包括实时数仓Hologres(从实例)实时数仓Hologres(湖仓加速)实时数仓Hologres(通用型)实时数仓Hologres(计算组))展示对应实例的监控指标,不同的实例类型对应专属监控指标,以便更好的监控业务异常并处理,建议将实时数仓Hologres的监控切换为对应实例类型下的监控,以获得更好的监控体验。image.png

授予RAM用户云监控查看权限

您可为RAM用户授权如下权限,授权方法请参见为RAM用户授权

权限名称

权限功能描述

AliyunCloudMonitorFullAccess

管理云监控(CloudMonitor)的权限。

AliyunCloudMonitorReadOnlyAccess

只读访问云监控(CloudMonitor)的权限。

AliyunCloudMonitorMetricDataReadOnlyAccess

访问云监控(CloudMonitor)时序指标数据的权限。

查看监控指标

进入云监控的方式有两种,分别为从Hologres管理控制台跳转和直接登录云监控控制台。

  • 从Hologres管理控制台跳转

    1. 登录Hologres管理控制台,单击左侧实例列表

    2. 实例列表页面,单击对应实例名称。

    3. 实例详情页左侧导航栏,单击监控信息

    4. 监控信息页面,单击右上角云监控,即可进入云监控Hologres实例监控页面查看实例相关指标的状态。云监控

  • 直接登录云监控控制台

    1. 登录云监控控制台

    2. 在左侧导航栏,单击云产品监控

    3. 大数据(数加)区域,单击交互式分析Hologres进入Hologres监控大盘。

    4. 单击地域后的地域图标,选择目标地域。

    5. 单击目标实例ID或操作列的监控图表,查看实例相关指标的状态。image.png

      说明

      您可以自定义查看实例指标的时间段,监控数据最多保留30天。

创建并配置报警规则

您可以根据业务的实际情况,创建并配置监控指标的阈值报警,当监控指标超过设定阈值后,系统自动发送报警通知,帮助您及时发现监控数据的异常并快速处理。创建并配置报警规则的步骤如下:

  1. 登录云监控控制台

  2. 在左侧导航栏,单击报警服务 > 报警规则

  3. 报警规则页面,单击创建报警规则

  4. 创建报警规则页面,配置报警规则的各项参数。

    参数

    描述

    产品

    选择交互式分析Hologres

    资源范围

    报警规则的作用范围。取值如下:

    • 全部资源:表示该规则对用户名下对应产品的所有实例生效。例如:您设置了全部资源粒度的Hologres CPU使用率大于80%报警,则只要用户名下有Hologres的CPU使用率大于80%,就会发送报警通知。

      资源范围选择全部资源时,报警的资源最多为1000个,超过1000个可能会导致达到阈值不报警的问题,建议您使用应用分组按业务划分资源后再设置报警。

    • 应用分组:报警规则作用于Hologres的指定应用分组内的全部资源上。

    • 实例:表示该规则只对某个具体的实例生效。例如:您如果设置了实例粒度的主机CPU使用率大于80%报警,则当该实例CPU使用率大于80%时,会发送报警通知。

    规则描述

    报警规则的主体。当监控数据满足报警条件时,触发报警规则。规则描述的设置方法如下:

    1. 单击添加规则

    2. 添加规则描述面板,设置规则名称、监控指标类型、监控指标、阈值、报警级别和报警方式等。

    3. 单击确定

    通道沉默周期

    指报警发生后如果未恢复正常,间隔多久重复发送一次报警通知。

    生效时间

    报警规则的生效时间,报警规则只在生效时间内才会检查监控数据是否需要报警。

    说明

    单击高级设置,可设置该参数。

    报警联系人组

    发送报警的联系人组。

    应用分组的报警通知会发送给该报警联系人组中的报警联系人。报警联系人组是一组报警联系人,可以包含一个或多个报警联系人。

    关于如何创建报警联系人和报警联系人组,请参见创建报警联系人或报警联系人组

    报警回调

    公网可访问的URL,用于接收云监控通过POST请求推送的报警信息。目前仅支持HTTP协议。关于如何设置报警回调,请参见使用阈值报警回调

    弹性伸缩

    产品选择弹性伸缩时,您需要设置弹性伸缩的地域弹性伸缩组弹性伸缩规则。在发生报警时触发相应的伸缩规则。

    日志服务

    产品选择日志服务时,您需要设置日志服务的地域ProjectLogstore。在发生报警时,将报警信息写入日志。

    消息服务MNS-Topic

    如果您打开消息服务MNS-Topic开关,当报警发生时,会将报警信息写入消息服务的主题。您需要设置消息服务的地域和主题。

    关于如何创建主题,请参见创建主题

    无数据处理方法

    无监控数据时报警的处理方式。取值:

    • 不做任何处理(默认值)

    • 发送无数据报警

    • 视为正常

  5. 单击确认

    您也可以单击目标实例ID操作列的报警规则,查看或修改已有的报警规则。image.png

配置一键报警

您可以在云监控为Hologres开启一键报警功能,为所有实例设置默认的告警规则,方便对多个常见的重要指标进行异常告警,快速发现问题。Hologres默认的告警规则如下:

  • 如果连接数使用率(Info)连续3次平均值>=95就报警,通知对象为云账号报警联系人

  • 如果存储水位(Warn)连续3次平均值>90%就报警,通知对象为云账号报警联系人

  • 如果内存水位(Warn)连续3次平均值>=90%就报警,通知对象为云账号报警联系人

  • 如果CPU水位(Info)连续3次平均值>=99%就报警,通知对象为云账号报警联系人

说明

每次告警的周期为5分钟。

配置一键报警的注意事项如下:

  • 一键报警功能开启后,默认开启云监控预置的报警规则,快速建立云监控报警体系监控重要指标,并未全面覆盖所有监控指标。

  • 一键报警功能开启后,对应的报警规则作用于您选中产品的当前实例及后续新生成的实例。

  • 一键报警功能支持您对预置的报警规则进行修改、禁用和删除操作。

配置一键报警的步骤如下:

  1. 登录云监控控制台

  2. 在左侧导航栏,单击报警服务 > 一键报警,进入一键报警页面。

  3. 一键报警列表,单击交互式分析Hologres一键报警开关,开启一键报警。开启一键报警

  4. 单击交互式分析Hologres左侧的地域图标,查看云监控为您自动生成的报警规则。一键报警规则

  5. 可选:您可以单击操作栏中的禁用修改删除,禁用、修改、删除对应的报警规则。

使用自定义大盘定制监控指标

云监控已为您初始化了用户维度的Hologres监控大盘,如果您需要查看其他数据,可以使用自定义大盘定制监控指标。自定义监控大盘的步骤如下:

  1. 登录云监控控制台

  2. 在左侧导航栏,单击可视化(Dashboard) > 自定义大盘,进入自定义大盘页面。

  3. 单击添加大盘添加大盘组对话框输入新建的监控大盘名称。

  4. 单击确定,单击新建的监控大盘名称并跳转至新建的监控大盘页面。

  5. 单击添加图表,进入添加图表页面。添加图表

  6. 选择折线图、面积图、TopN表格、热力图或饼图中任意一种图表类型。

  7. 配置云产品监控自定义监控

    云产品监控为例,选择云产品为交互式分析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低的告警

    处理方法:

    1. 排查是否存在前台任务手工重启、发布、实例是否正在升级等人为或正常原因造成。

    2. 排查完毕后,请检查当前前台任务的报错状况,SQL日志报错情况,是否有报错信息,根据具体信息排查。

  • 出现平均响应时间长的告警

    处理方法:出现平均响应时间的尖峰,一般情况下,需要具体SQL执行人员排查具体的SQL的执行计划是否符合预期。

  • 出现RPS低的告警

    处理方法:

    1. 排查是否存在前台任务手工重启、发布、实例是否正在升级等人为或正常原因造成。

    2. 排查完毕后,请检查当前导入任务的健康状况,是否有报错信息,再根据具体信息排查。

  • 本页导读 (1)
文档反馈