ruby-cloud-profiler
An implementation of Google Cloud Profiler
for Ruby.
This project is not officially supported or endorsed by Google in any way.
Under the hood, the agent uses Stackprof
to collect the profiling data, and then converts it to
the pprof format
expected by Cloud Profiler. The Cloud Profiler API doesn't have pretty HTML
documentation, but is described
in the googleapis specification
which creates
generated code in google-api-ruby-client.
To use, you need to decide what to name your service and you need a Google
Cloud project ID:
require 'cloud_profiler_agent'
agent = CloudProfilerAgent::Agent.new(service: 'my-service', project_id: 'my-project-id')
agent.start
This will start a background thread that will merrily poll the Cloud Profiler
API to see what kinds of profiles it should collect, and when. Then it will run
stackprof, and upload the profiles.
Note: the agent can only profile its own process. If your Ruby application is
running from a webserver that forks subprocesses, then you'll need to somehow
arrange to start the agent in the subprocess.