一般性问题

问:什么是 Amazon CodeGuru?

Amazon CodeGuru 是由机器学习提供支持的开发人员工具,可提供智能建议以提高代码质量并确定应用程序中最昂贵的代码行。

问:Amazon CodeGuru 有什么用处?

Amazon CodeGuru 具有两个组件 - Amazon CodeGuru Reviewer 和 Amazon CodeGuru Profiler。Amazon CodeGuru Reviewer 使用机器学习来识别应用程序开发过程中的严重问题和难以发现的错误,从而提升代码质量。Amazon CodeGuru Profiler 可优化在生产期间运行的应用程序的性能,识别出最昂贵的代码行,从而显著降低运营成本。

问:如何开始使用 Amazon CodeGuru?

Amazon CodeGuru 现已正式发布。您现在就可以在 Amazon CodeGuru 控制台中开始使用。

要开始使用 Amazon CodeGuru Reviewer,请登录 Amazon CodeGuru Reviewer 控制台,然后可以关联 GitHub、GitHub Enterprise、Bitbucket 或 AWS CodeCommit 上的现有代码存储库。完成一次性设置后,Amazon CodeGuru Reviewer 会开始分析代码,并直接在拉取请求或代码存储库中提供代码改进建议。

您也可以在几分钟内开始分析应用程序。要开始使用 Amazon CodeGuru Profiler,请登录 Amazon CodeGuru Profiler 控制台,然后可以为应用程序配置一个分析组。在命令行上使用分析代理启动应用程序,或按照以下步骤使用所描述的自定义方法之一。您可以让 Amazon CodeGuru Profiler 持续运行,以便它主动找出运行中的应用程序的性能问题。

问:哪些 AWS 区域提供 Amazon CodeGuru?

要了解支持该服务的 AWS 区域,请访问所有 AWS 全球基础设施的 AWS 区域表。有关更多信息,请参阅“AWS 一般参考”中的区域和终端节点

Amazon CodeGuru Reviewer

问:什么是 Amazon CodeGuru Reviewer?

Amazon CodeGuru Reviewer 是一项自动代码审查服务,能确定 Java 代码中的关键缺陷和偏离编码最佳实践之处。它对拉取请求中的代码行进行扫描,并根据从各大开源项目和 Amazon 代码库中学到的标准提供智能建议。Amazon CodeGuru Reviewer 可与广泛使用的源代码控制系统(包括 GitHub、GitHub Enterprise、Bitbucket 和 AWS CodeCommit)上的现有代码审查工作流程无缝集成,并提供用于改善代码质量的可行建议。

问:支持哪些编程语言和源代码存储库?

Amazon CodeGuru Reviewer 目前支持 GitHub、GitHub Enterprise、Bitbucket 和 AWS CodeCommit 存储库中存储的 Java 代码。

问:Amazon CodeGuru Reviewer 检测哪种类型的问题?

Amazon CodeGuru Reviewer 会检查并发性问题、可能的争用状况、未经净化或恶意的输入、对敏感数据(如凭证)进行的不当处理、资源泄漏,还会检测并发代码中的争用状况和死锁。它还可推荐 AWS 和 Java 最佳实践,并检测可以整合的克隆代码,从而提高代码的可维护性。
问:如何开始使用 Amazon CodeGuru Reviewer?

访问 Amazon CodeGuru 控制台,将 Amazon CodeGuru Reviewer 的建议直接整合到代码拉取请求中。要开始使用,您可以访问 CodeGuru 控制台,然后按照步骤关联 AWS CodeCommit、GitHub、GitHub Enterprise 和 BitBucket 存储库,以便开始接收 Amazon CodeGuru Reviewer 的建议。启用后,Amazon CodeGuru Reviewer 将以注释形式自动在为连接的存储库生成的拉取请求上提供智能建议。

问:Amazon CodeGuru Reviewer 如何访问我的代码?

为了生成建议,Amazon CodeGuru Reviewer 需要获得代码的只读访问权限。您的信任、隐私和内容的安全性是我们最重视的问题,我们会采取适当的控制措施(包括传输中加密)来防止他人未经授权访问或披露您的内容,并确保我们依照对您的承诺来使用您的内容。有关更多信息,请参阅数据隐私常见问题

问:Amazon CodeGuru Reviewer 是否会保存我的代码副本?

否,Amazon CodeGuru Reviewer 不会存储您的源代码。

问:Amazon CodeGuru Reviewer 如何接受训练以便提供智能建议?

Amazon CodeGuru Reviewer 使用规则挖掘和监督机器学习模型(结合使用逻辑回归和神经网络)进行训练。

例如,在进行与确定偏离 AWS 最佳实践之处相关的训练时,Amazon CodeGuru Reviewer 会使用搜索技术和针对拉取请求(包含 AWS API 调用)的位置敏感模型挖掘 Amazon 代码库。它会查看旨在改善代码质量的代码更改,并针对文档数据交叉引用这些更改。最终将创建一组新规则,而 Reviewer 会在审查您的代码时将这组规则作为最佳实践推荐给您。
在进行与资源和敏感数据泄漏有关的训练时,它会全面分析代码以确定所有使用资源或敏感数据的代码路径,并创建代表这些路径的功能集,然后将其用作逻辑回归模型和卷积神经网络 (CNN) 的输入。

对于基于规则和基于机器学习的模型,Amazon CodeGuru Reviewer 使用您提供的反馈作为标签,并反复改善代码检测器的质量。

Amazon CodeGuru Profiler

问:什么是 Amazon CodeGuru Profiler?

Amazon CodeGuru Profiler 可帮助开发人员轻松了解应用程序的运行时行为,改善性能,并降低基础设施成本。Amazon CodeGuru Profiler 可分析应用程序的运行时概况,并提供智能建议和可视化图表,以指导开发人员改善代码中最相关部分的性能。

问:什么是分析组?

分析组是您创建的逻辑分组。它代表一个应用程序的界限。例如,在微服务架构中,分析组将聚合您分配给它的微服务的概况,然后为所有这些服务产生一个概况。

问:我已在代码中加入了大量的日志记录功能。是否还需要执行分析?

日志记录执行时间仅适用于有限的一组情景,因为日志记录只能监视延迟(而不是 CPU 利用率),由于开发人员必须记录应用程序中的每个函数(但不能影响应用程序性能),所以实现起来非常耗时,这就导致开发人员缺少用于监视生产中的应用程序和对其进行问题排查的有效工具。分析消除了此类不足,具体而言:Amazon CodeGuru Profiler 设计为不管在何种情况下都会收集与该应用程序的一切行为有关的数据。CodeGuru Profiler 使用包含常见性能低下问题的知识库自动分析运行中的应用程序,以发现影响其性能的代码模式。开发人员随后可以按照提供的建议来修复问题。

问:Amazon CodeGuru Profiler 与传统的 APM 和独立分析程序有何不同?

传统的 APM 提供有关监控、跟踪和应用程序性能的有用数据。Amazon CodeGuru Profiler 将应用程序的运行时数据可视化,并提供与其发现的性能问题有关的可行建议,从而对这些 APM 功能进行了补充。它还使用机器学习来检测和提醒您应用程序配置文件中的异常,并指出异常的代码行。借助 Amazon CodeGuru Profiler,您无需具备深厚的性能工程背景,即可轻松看到最有可能优化性能、也最具成本节省潜力的代码部分,并获得有关如何改进这些部分的指导。Amazon CodeGuru Profiler 可分析 EC2 实例、容器和包括 AWS Lambda 在内的无服务器计算平台。此外,某些独立分析程序设计为仅在测试环境下运行,而 Amazon CodeGuru Profiler 设计为在生产环境中的生产流量负载下连续运行,而且不会影响应用程序。这在排查生产环境中的操作问题时(包括在祼主机上运行时)很有用。

问:我可以分析哪些类型的应用程序?

Amazon CodeGuru Profiler 适用于在 Amazon EC2 上托管的应用程序、在 Amazon ECS 和 Amazon EKS 上运行的容器化应用程序,以及在 AWS Fargate 和 AWS Lambda 上运行的无服务器应用程序。

问:CodeGuru Profiler 对在 AWS Lambda 上托管的应用程序的性能有何影响?

Amazon CodeGuru Profiler 代理使用分配给 AWS Lambda 函数的资源(CPU、内存)。当它作为进程内线程运行时,对应用程序性能的影响最小。如果您的应用程序占用了 AWS Lambda 函数的大部分资源,请考虑增加资源以使代理正常工作。

问:支持哪些编程语言?

Amazon CodeGuru Profiler 目前支持 JVM 应用程序,包括 Java、Scala、Kotlin 等等。

问:Amazon CodeGuru Profiler 如何工作?

Amazon CodeGuru Profiler 包含三部分:代理、分析程序服务和智能建议。该代理通过命令行启动您的应用程序,并以进程内线程的形式作为应用程序的一部分运行。它从运行代理的每个服务实例中获取数据,然后每 10 分钟向分析程序服务发送一次数据,之后,该服务将聚合这些数据。Amazon CodeGuru Profiler 随后会在交互式火焰图中发布概况数据,让您能直观查看应用程序的性能。Amazon CodeGuru Profiler 还会持续扫描已分析的数据,并将其与 Amazon 和性能工程最佳实践进行对比。如果发现性能问题,它会通过提供智能建议主动提醒您注意问题。它还使用机器学习来持续分析应用程序运行时数据,在检测到应用程序配置文件中的异常时发出警报,并指出异常的代码行。

Product-Page_Standard-Icons_01_Product-Features_SqInk
了解有关定价的更多信息

访问 Amazon CodeGuru 定价页面。

了解更多 
Product-Page_Standard-Icons_02_Sign-Up_SqInk
注册免费账户

立即享受 AWS 免费套餐。 

注册 
Product-Page_Standard-Icons_03_Start-Building_SqInk
开始在控制台中构建

在 AWS 管理控制台中,使用 Amazon CodeGuru 开始构建。

登录