Sha256: c73030eba876b9a72cd1541b25ea047089ca32dd0dad3c757609d90c31fec185
Contents?: true
Size: 1.06 KB
Versions: 3
Compression:
Stored size: 1.06 KB
Contents
require 'set' require 'time' require 'ddtrace/profiling/flush' require 'ddtrace/profiling/pprof/template' module Datadog module Profiling module Encoding module Profile # Encodes gathered data into the pprof format module Protobuf module_function def encode(flush) return unless flush # Create a pprof template from the list of event types event_classes = flush.event_groups.collect(&:event_class).uniq template = Pprof::Template.for_event_classes(event_classes) # Add all events to the pprof flush.event_groups.each { |event_group| template.add_events!(event_group.event_class, event_group.events) } Datadog.logger.debug do "Encoding profile covering #{flush.start.iso8601} to #{flush.finish.iso8601}, " \ "events: #{flush.event_count} (#{template.debug_statistics})" end # Build the profile and encode it template.to_pprof end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ddtrace-0.51.1 | lib/ddtrace/profiling/encoding/profile.rb |
ddtrace-0.51.0 | lib/ddtrace/profiling/encoding/profile.rb |
ddtrace-0.50.0 | lib/ddtrace/profiling/encoding/profile.rb |