Ruby
Ruby性能分析器革新了Ruby应用程序的性能调优。与Pyroscope集成后,它提供实时性能数据,使开发者能够深入了解其Ruby代码库。此工具对于识别性能问题、优化代码效率以及提高Ruby应用程序的整体速度和可靠性至关重要。
注意
请参阅可用的分析类型以获取Ruby支持的列表。
开始之前
要捕获和分析分析数据,您需要一个托管的Pyroscope OSS服务器或一个带有Grafana Cloud Profiles的托管Pyroscope实例(需要免费Grafana Cloud账户)。
Pyroscope服务器可以是用于开发的本地服务器或用于生产使用的远程服务器。
将Ruby分析添加到您的应用程序
将pyroscope
gem添加到您的Gemfile
bundle add pyroscope
配置Ruby客户端
将以下代码添加到您的应用程序中。如果您使用Rails,请将其放入config/initializers
目录。此代码将初始化Pyroscope分析器并开始分析
require 'pyroscope'
Pyroscope.configure do |config|
config.application_name = "my.ruby.app" # replace this with some name for your application
config.server_address = "http://my-pyroscope-server:4040" # replace this with the address of your Pyroscope server
end
如何将分析标签添加到Ruby应用程序中
Pyroscope Ruby集成提供了一些标记分析数据的方式。例如,您可以在初始化分析器时提供标签
require 'pyroscope'
Pyroscope.configure do |config|
config.application_name = "my.ruby.app"
config.server_address = "http://my-pyroscope-server:4040"
config.tags = {
"hostname" => ENV["HOSTNAME"],
}
end
或者您可以动态地标记代码的某些部分
Pyroscope.tag_wrapper({ "controller": "slow_controller_i_want_to_profile" }) do
slow_code
end
Rails分析自动标记
默认情况下,如果您将Pyroscope添加到Rails应用程序中,它将自动使用action="<controller_name>/<action_name>"
标签标记您的操作。
要禁用Rails自动标记,请将autoinstrument_rails
设置为false
Pyroscope.configure do |config|
config.autoinstrument_rails = false
# more configuration
end
使用Ruby SDK通过Pyroscope发送数据
require "pyroscope"
Pyroscope.configure do |config|
config.application_name = "example.ruby.app"
config.server_address = "<URL>"
config.basic_auth_username='<User>'
config.basic_auth_password='<Password>'
# Optional Pyroscope tenant ID (only needed if using multi-tenancy). Not needed for Grafana Cloud.
# config.tenant_id='<TenantID>'
end
要配置Ruby SDK以发送数据到Pyroscope,将<URL>
占位符替换为适当的服务器URL。这可能是一致的Grafana Cloud URL或您自己的自定义Pyroscope服务器URL。
如果您需要将数据发送到Grafana Cloud,您必须配置HTTP基本身份验证。将<User>
替换为您Grafana Cloud堆栈用户,将<Password>
替换为您Grafana Cloud API密钥。
如果您的Pyroscope服务器启用了多租户,您需要配置一个租户ID。将<TenantID>
替换为您Pyroscope租户ID。
Ruby分析示例
查看以下资源以了解有关Ruby分析的更多信息