除了基础监控中包含的大部分指标,阿里云Elasticsearch的高级监控还有哪些指标?
还包括更多的ES应用层面的监控项,重点的ES应用层面的监控部分为cluster、index、Node Resource、Node Network、Node DiskNode JVM 、Thread_pool。
cluster表示ES集群维度监控,包括了节点的总数量、index的总数量、集群中shard的总数量、主shard的总数量等数据。
index是索引维度监控数据,包括了集群中索引维度的查询QPS、集群中索引维度的写入QPS、索引请求的执行耗时、查询请求的执行耗时、index segments内存使用情况、index segments数目等,当ES集群整体QPS异常,可以通过该指标看下,具体是那个索引的写入QPS上升了,当ES集群内存异常,可以通过这部分监控数据,分析下具体是哪部分内存异常,比如index segments内存使用情况,是指每个segment都会有一部分数据缓存在内存中,加速索引数据的查询速度,这部分内存是无法被GC的,一个node的segment memory占用过多的时候,就需要考虑删除、归档数据,或者扩容了。
Node Resource主要是节点内存、CPU资源的监控,当业务出现请求异常,可以优先查看下节点的资源数据,使用存在CPU、内存打高的情况。
Node Network是节点网络相关数据,包括节点网络流入流出包、节点网络流入流出率、节点TCP连接数,主要观察下ES集群连接数量和请求流量等。
Node Disk是节点维度的磁盘使用情况,包括每秒完成的读写请求数量、每秒完成的读写大小等指标,主要是观察存储维度的数据读写情况。
Node JVM是节点JVM内存使用的监控,包括heap使用率、old区使用情况、old GC耗时、young GC耗时、old GC频次、young GC频次、堆外内存最大使用量等。
其中heap使用率,也就是堆内内存。es内存分配,堆内和堆外个一半,当内存超过64G,堆内存不会再多分配,全部分配给堆外内存。而gc是保证ES内存资源使用的重要机制,一般通过gc的频次和耗时情况,判断集群的内存压力,当内存使用异常,可以通过gc的频次和耗时情况分析下。
Thread_pool是线程监控,包括线程池中的线程总数、查询线程池中被拒绝的请求数、查询线程池中排队的请求数,以及通用线程池的相关数据,线程一般和请求及CPU相关,当客户端请求失败,可以先观察下CPU使用率,以及查询线程池的情况,如果CPU使用率过高,查询线程池中排队的请求数打满,都可能导致请求失败。
以上内容摘自《企业级云原生白皮书项目实战》电子书,点击https://developer.aliyun.com/ebook/download/7774可下载完整版
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。