首页 > 其他分享 >虹科干货|一份选择微服务监控工具的指北

虹科干货|一份选择微服务监控工具的指北

时间:2023-08-18 09:50:19浏览次数:126  
标签:指北 服务 干货 跟踪 监控 虹科 架构 工具 警报

毋庸置疑,监控是管理任何微服务架构的一个关键方面。但是如何为业务选择最佳的微服务监控工具呢?有哪些微服务监控工具?这些工具有什么功能?这里一份参考指北供你参阅。

监控您的期望

监控哪些内容?

在选择工具之前,请考虑一下您购买工具的动机。您的团队应该讨论“我们试图解决或预防哪些问题?” 这就导致了“我们需要检查哪些数据来确定我们是否正在解决或预防这些问题?” 这些答案可帮助您确定要监控的内容以及可以忽略(或较少关注)的内容。 

不要采取“监控所有事情以防万一有用”的态度。大多数团队的资源有限,这意味着无论如何都不可能监控所有的事情;充其量,你最终会感到警觉疲劳。也就是说:您的期望可能与现实不符。当意外的事情发生时,很难提前知道什么是有用的。直到一切都着火并且您试图弄清楚发生了什么之前,并不清楚需要监视什么。需要将“仔细思考”和“根据经验进行调整”结合起来。

微服务监控工具标准

任何类型的应用程序监控工具都具有许多功能。您可能不需要全部。最好从我们的 Redis 专家和经验丰富的从业者(有伤疤的人)确定的最高标准开始。

· 它应该能够扩展。随着您的微服务架构的增长,您的监控需求也会随之增长。您最不想要的就是一个无法跟上负载的工具。确保您的监控系统可以在不影响微服务的情况下宕机!

· 它需要收集正确的数据并进行分析。仔细查看该工具收集的数据以及它如何呈现该信息。 强大的监控工具可以收集并分析分布式系统各个角落的数据,但它不应该让您因嘈杂、不相关的信息而不知所措。它应该为您提供值得称为“见解”的全面见解,包括性能指标、日志和跟踪。 

· 对于微服务架构,优先考虑分布式跟踪。调试跨多个微服务的问题可能是一场噩梦。分布式跟踪可帮助您跟踪跨服务的请求流,这有助于识别性能瓶颈并理解复杂的交互。例如,确保每个日志消息/记录/行都附加有可归因的traceid,并使用允许您聚合视图的系统。

· 它应该与您使用的其他工具集成,无需繁琐的设置或自定义代码。也许监控工具比任何其他应用程序更应该与其他应用程序良好地配合。 同样,查看从现有提供商迁移到新监控工具的过程,包括数据结构要求。研究一下如果这个工具不起作用,需要采取什么措施才能改用另一种工具。了解 API 是什么样的,因为您在某些时候肯定会需要它。考虑未来的标准支持,例如OpenTelemetry。 

· 它应该易于学习和易于使用(这不是同一件事)。谁愿意努力学习另一种工具?浏览分布式系统已经足够复杂了;您的监控工具应该简化事情,而不是增加系统的复杂性。配置不应该是一件痛苦的事。仔细观察其仪表板和可视化效果,以确定它们是否像供应商承诺的那样直观。

· 它应该设置合理的警报和通知。当风暴即将来临时,您需要立即知道!您的监控工具应提供强大的警报和通知功能,以便您可以在小问题变成大问题之前采取行动。

· 它必须适合您的预算。虽然您想要为分布式系统提供最好的工具,但您不希望与 CFO 进行不舒服的对话。对于任何 IT 支出都是如此,但在这里尤其如此,因为成本和定价模型差异很大。众所周知,意外使用会造成意外超支事件。按用户付费的模式有时会导致关于谁可以访问的尴尬决策。 

这些工具实际上监控什么?

微服务监控工具应该提供整个微服务生态系统的可见性,包括性能指标、资源利用率、服务网格数据、自定义指标和错误率理想的工具应该擅长收集、存储和分析来自分布式系统的数据,为每个微服务的运行状况和性能提供可操作的见解。它应该与其他工具和系统无缝集成,例如日志系统、警报工具和事件管理平台

· 性能指标:监控工具收集和监控来自各个组件的性能指标,例如CPU使用率、内存利用率、网络流量和各个微服务的响应时间。这有助于跟踪整体运行状况和系统性能。

· 资源利用率:监控工具密切关注微服务和基础设施组件的资源消耗。这包括监控 CPU、内存、磁盘使用情况和网络带宽,以确保有效的资源分配。

· 错误率和故障分析:这些工具跟踪来自微服务的错误率、状态代码和错误消息。这可以快速检测异常和潜在问题,帮助开发人员查明故障并及时排除故障。

· 延迟和吞吐量:监控工具测量处理微服务请求所需的时间以及处理这些请求的速率。 

· 警报和阈值:如果任何指标超过指定阈值,系统会触发警报,以便 IT 团队可以立即采取行动。

· 日志和跟踪:一些监控工具与日志系统集成以捕获和分析来自多个服务的日志。跟踪功能允许开发人员跟踪各种微服务之间的请求流。

· API 监控:这些工具可以监控不同微服务和 API 之间的交互,确保 API 调用成功(并在失败时通知您)并识别 API 通信中的潜在瓶颈。

· 容器监控:监控工具可以捕获容器健康状况中的独特环境问题,例如资源利用率和性能。

· 服务网格可观察性:对于使用服务网格的微服务架构,监控工具可以深入了解网格内微服务之间的通信和交互。

· 应用性能监控(APM):APM工具关注各个微服务的代码级性能,使开发人员更容易识别性能瓶颈。

· 自定义指标:高级监控工具认识到所有这些类别有时还不够。它们允许您定义和收集特定于您的微服务架构的自定义指标。

实际上,如果您使用 Redis(用于微服务或其他用途),那么这是一个很好的监控入门设置。您的仪表板可能包含这些项目,配置为在任何指标显着峰值时向您发出警报。

· 命令量,按命令、服务和/或脚本/功能分类

· 命令失败率,按命令、服务和/或脚本/功能分类

· 命令延迟,按命令、服务和/或脚本/功能分类

· 内存使用情况

· 键数 (DBSIZE)

微服务监控工具

· Prometheus:开源监控和警报工具包,专为分布式系统设计,因此适用于微服务监控。

· Grafana:Grafana 以其可视化和仪表板而闻名,它有助于导航数据集合并将其以人类理解的形式呈现。

· Datadog:Datadog 提供实时警报、分布式跟踪和 APM,其功能可保证对微服务生态系统的全面可见性。

· Dynatrace:该监控工具为微服务环境提供自动应用程序发现和可观察性。

· Architect.io:该工具是大型组织中强大的测试和监控功能的最爱,具有微服务架构的全面视图。

· Lumigo:Lumigo 提供端到端可见性、实时调试和成本监控,并且特别关注无服务器架构。

· AppDynamics:凭借其实时可见性、异常值检测、网络性能监控以及 Docker 和 Kubernetes 监控,这可能适合跟踪大型复杂架构中的事件。

· Instana:该工具承诺为整个微服务环境提供完整的可观察性。

· Uptrace:Uptrace 强调性能数据的可见性以及与流行编程语言和框架的集成,帮助开发人员识别、诊断和解决微服务生态系统中的性能问题;我们最近写了有关 Uptrace 的经历。

· .......

加强微服务监控

 

没有明确的正确或错误的选择。关键问题是,“这是适合我的特定项目的工具吗?” 关键因素是找到适合您项目当前和未来需求的工具并做出明智的选择。理想情况下,您选择的工具可以帮助您维护健康高效的微服务环境,最终交付可靠的高性能应用程序。Redis 可以与所有这些一起工作。您可以使用 Redis Enterprise 将您的微服务应用程序提升到新的水平。

监控您的期望

监控哪些内容?

在选择工具之前,请考虑一下您购买工具的动机。您的团队应该讨论“我们试图解决或预防哪些问题?” 这就导致了“我们需要检查哪些数据来确定我们是否正在解决或预防这些问题?” 这些答案可帮助您确定要监控的内容以及可以忽略(或较少关注)的内容。 

不要采取“监控所有事情以防万一有用”的态度。大多数团队的资源有限,这意味着无论如何都不可能监控所有的事情;充其量,你最终会感到警觉疲劳。也就是说:您的期望可能与现实不符。当意外的事情发生时,很难提前知道什么是有用的。直到一切都着火并且您试图弄清楚发生了什么之前,并不清楚需要监视什么。需要将“仔细思考”和“根据经验进行调整”结合起来。

微服务监控工具标准

任何类型的应用程序监控工具都具有许多功能。您可能不需要全部。最好从我们的 Redis 专家和经验丰富的从业者(有伤疤的人)确定的最高标准开始。

· 它应该能够扩展。随着您的微服务架构的增长,您的监控需求也会随之增长。您最不想要的就是一个无法跟上负载的工具。确保您的监控系统可以在不影响微服务的情况下宕机!

· 它需要收集正确的数据并进行分析。仔细查看该工具收集的数据以及它如何呈现该信息。 强大的监控工具可以收集并分析分布式系统各个角落的数据,但它不应该让您因嘈杂、不相关的信息而不知所措。它应该为您提供值得称为“见解”的全面见解,包括性能指标、日志和跟踪。 

· 对于微服务架构,优先考虑分布式跟踪。调试跨多个微服务的问题可能是一场噩梦。分布式跟踪可帮助您跟踪跨服务的请求流,这有助于识别性能瓶颈并理解复杂的交互。例如,确保每个日志消息/记录/行都附加有可归因的traceid,并使用允许您聚合视图的系统。

· 它应该与您使用的其他工具集成,无需繁琐的设置或自定义代码。也许监控工具比任何其他应用程序更应该与其他应用程序良好地配合。 同样,查看从现有提供商迁移到新监控工具的过程,包括数据结构要求。研究一下如果这个工具不起作用,需要采取什么措施才能改用另一种工具。了解 API 是什么样的,因为您在某些时候肯定会需要它。考虑未来的标准支持,例如OpenTelemetry。 

· 它应该易于学习和易于使用(这不是同一件事)。谁愿意努力学习另一种工具?浏览分布式系统已经足够复杂了;您的监控工具应该简化事情,而不是增加系统的复杂性。配置不应该是一件痛苦的事。仔细观察其仪表板和可视化效果,以确定它们是否像供应商承诺的那样直观。

· 它应该设置合理的警报和通知。当风暴即将来临时,您需要立即知道!您的监控工具应提供强大的警报和通知功能,以便您可以在小问题变成大问题之前采取行动。

· 它必须适合您的预算。虽然您想要为分布式系统提供最好的工具,但您不希望与 CFO 进行不舒服的对话。对于任何 IT 支出都是如此,但在这里尤其如此,因为成本和定价模型差异很大。众所周知,意外使用会造成意外超支事件。按用户付费的模式有时会导致关于谁可以访问的尴尬决策。 

这些工具实际上监控什么?

微服务监控工具应该提供整个微服务生态系统的可见性,包括性能指标、资源利用率、服务网格数据、自定义指标和错误率理想的工具应该擅长收集、存储和分析来自分布式系统的数据,为每个微服务的运行状况和性能提供可操作的见解。它应该与其他工具和系统无缝集成,例如日志系统、警报工具和事件管理平台

· 性能指标:监控工具收集和监控来自各个组件的性能指标,例如CPU使用率、内存利用率、网络流量和各个微服务的响应时间。这有助于跟踪整体运行状况和系统性能。

· 资源利用率:监控工具密切关注微服务和基础设施组件的资源消耗。这包括监控 CPU、内存、磁盘使用情况和网络带宽,以确保有效的资源分配。

· 错误率和故障分析:这些工具跟踪来自微服务的错误率、状态代码和错误消息。这可以快速检测异常和潜在问题,帮助开发人员查明故障并及时排除故障。

· 延迟和吞吐量:监控工具测量处理微服务请求所需的时间以及处理这些请求的速率。 

· 警报和阈值:如果任何指标超过指定阈值,系统会触发警报,以便 IT 团队可以立即采取行动。

· 日志和跟踪:一些监控工具与日志系统集成以捕获和分析来自多个服务的日志。跟踪功能允许开发人员跟踪各种微服务之间的请求流。

· API 监控:这些工具可以监控不同微服务和 API 之间的交互,确保 API 调用成功(并在失败时通知您)并识别 API 通信中的潜在瓶颈。

· 容器监控:监控工具可以捕获容器健康状况中的独特环境问题,例如资源利用率和性能。

· 服务网格可观察性:对于使用服务网格的微服务架构,监控工具可以深入了解网格内微服务之间的通信和交互。

· 应用性能监控(APM):APM工具关注各个微服务的代码级性能,使开发人员更容易识别性能瓶颈。

· 自定义指标:高级监控工具认识到所有这些类别有时还不够。它们允许您定义和收集特定于您的微服务架构的自定义指标。

实际上,如果您使用 Redis(用于微服务或其他用途),那么这是一个很好的监控入门设置。您的仪表板可能包含这些项目,配置为在任何指标显着峰值时向您发出警报。

· 命令量,按命令、服务和/或脚本/功能分类

· 命令失败率,按命令、服务和/或脚本/功能分类

· 命令延迟,按命令、服务和/或脚本/功能分类

· 内存使用情况

· 键数 (DBSIZE)

微服务监控工具

· Prometheus:开源监控和警报工具包,专为分布式系统设计,因此适用于微服务监控。

· Grafana:Grafana 以其可视化和仪表板而闻名,它有助于导航数据集合并将其以人类理解的形式呈现。

· Datadog:Datadog 提供实时警报、分布式跟踪和 APM,其功能可保证对微服务生态系统的全面可见性。

· Dynatrace:该监控工具为微服务环境提供自动应用程序发现和可观察性。

· Architect.io:该工具是大型组织中强大的测试和监控功能的最爱,具有微服务架构的全面视图。

· Lumigo:Lumigo 提供端到端可见性、实时调试和成本监控,并且特别关注无服务器架构。

· AppDynamics:凭借其实时可见性、异常值检测、网络性能监控以及 Docker 和 Kubernetes 监控,这可能适合跟踪大型复杂架构中的事件。

· Instana:该工具承诺为整个微服务环境提供完整的可观察性。

· Uptrace:Uptrace 强调性能数据的可见性以及与流行编程语言和框架的集成,帮助开发人员识别、诊断和解决微服务生态系统中的性能问题;我们最近写了有关 Uptrace 的经历

· .......

加强微服务监控

没有明确的正确或错误的选择。关键问题是,“这是适合我的特定项目的工具吗?” 关键因素是找到适合您项目当前和未来需求的工具并做出明智的选择。理想情况下,您选择的工具可以帮助您维护健康高效的微服务环境,最终交付可靠的高性能应用程序。Redis 可以与所有这些一起工作。您可以使用 Redis Enterprise 将您的微服务应用程序提升到新的水平。

标签:指北,服务,干货,跟踪,监控,虹科,架构,工具,警报
From: https://www.cnblogs.com/hongcloudtech/p/17639550.html

相关文章

  • 虹科分享|Redis Stack不想再让开发人员受苦了!
    什么是RedisStackRedisStack:整合Redis模块的功能为了简化开发人员对较新的Redis模块及其提供的功能的体验,同时简化支持其功能的文档和客户端。以帮助开发人员从开始使用Redis的那一刻起,就能充分提高工作效率。RedisStack诞生了。RedisStack将较新的Redis模块整合到一......
  • #yyds干货盘点# LeetCode程序员面试金典:存在重复元素 II
    题目:给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i]==nums[j] 且 abs(i-j)<=k 。如果存在,返回 true ;否则,返回 false 。 示例 1:输入:nums=[1,2,3,1],k=3输出:true示例2:输入:nums=[1,0,1,1],k=1输出......
  • #yyds干货盘点# LeetCode程序员面试金典:组合和四
    1.简述:给你一个由 不同 整数组成的数组 ,和一个目标整数 。请你从 中找出并返回总和为 的元素组合的个数。numstargetnumstarget题目数据保证答案符合32位整数范围。 示例1:输入:nums=[1,2,3],target=4输出:7解释:所有可能的组合为:(1,1,1,1)(1,1,2)(1,2,1)......
  • 【华秋干货铺】DDR电路的PCB布局布线要求
    上期和大家聊的电源PCB设计的重要性,那本篇内容小编则给大家讲讲存储器的PCB设计建议,同样还是以大家最为熟悉的RK3588为例,详细介绍一下DDR模块电路的PCB设计要如何布局布线。由于RK3588DDR接口速率最高达4266Mbps,PCB设计难度大,所以强烈建议使用瑞芯微原厂提供的DDR模板和对应的DD......
  • #yyds干货盘点#FastDFS配置Nginx访问
    下载相关依赖软件包yum-yinstallwgetmakezlibzlib-develgcc-c++libtoolopensslopenssl-develwgethttp://nginx.org/download/nginx-1.10.2.tar.gztar-xzvfnginx-1.10.2.tar.gz安装Nginxcdnginx-1.10.2./configure--prefix=/data/apps/nginx-download\--p......
  • 大会回顾 | 有干货!有人气!有乐趣!
    8月10日,2023数字供应链安全大会(DSS2023)在北京·国家会议中心隆重举办。大会由悬镜安全主办,ISC互联网安全大会组委会、中国软件评测中心(工业和信息化部软件与集成电路促进中心)、中国信息通信研究院云计算与大数据研究所、CCF计算机安全专业委员会、北京信息化协会信息技术应用创新......
  • 大会回顾 | 有干货!有人气!有乐趣!
    8月10日,2023数字供应链安全大会(DSS2023)在北京·国家会议中心隆重举办。大会由悬镜安全主办,ISC互联网安全大会组委会、中国软件评测中心(工业和信息化部软件与集成电路促进中心)、中国信息通信研究院云计算与大数据研究所、CCF计算机安全专业委员会、北京信息化协会信息技术应用创......
  • 技术干货|如何使用 DolphinDB 解决数据精度问题
    1DECIMAL的计算特性1.1DECIMAL的计算方式DECIMAL的存储分为两部分,即存储整型数据的rawdata和存储小数位数的scale。例如,对于DECIMAL32(2)类型的1.23,它存储了两个数据:(1)rawdata:即整型123,(2)scale:即2。这样存储的好处是,在计算时可以直接使用整型的rawdata进行......
  • 干货满满:多人语音聊天室源码开发解析
    目前,一对一直播源码平台已经不能满足广大社交场景和人群了,而多人语音聊天室源码的开发属性,正好满足此需求,也让社交更加多样化、娱乐化,那么在技术上如何开发多人语音聊天室源码呢?开发语音聊天室的技术关键点如下:1.多人语音频繁麦位切换:抢麦、跳麦、麦位排序、抱麦、上麦、下麦等是典......
  • 虹科干货 | 化身向量数据库的Redis Enterprise——快速、准确、高效的非结构化数据
    用户期望在他们遇到的每一个应用程序和网站都有搜索功能。然而,超过80%的商业数据是非结构化的,以文本、图像、音频、视频或其他格式存储。RedisEnterprise如何实现矢量相似性搜索呢?答案是,将AI驱动的搜索功能集成到RedisEnterprise中,以实现矢量相似性搜索。 RedisEnterprise如何......