Skip to content

Latest commit

 

History

History
101 lines (74 loc) · 7.82 KB

File metadata and controls

101 lines (74 loc) · 7.82 KB

Profiles attributes

Status: Development

General profiles identification attributes

The attributes described in this section are rather generic. They may be used in any Profiles record they apply to.

Frame types

Description: Describes the origin of a single frame in a Profile.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
profile.frame.type Development Recommended string Describes the interpreter or compiler of a single frame. cpython

profile.frame.type has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
beam Erlang Development
cpython Python Development
dotnet .NET Development
go Go, Development
jvm JVM Development
kernel Kernel Development
native Can be one of but not limited to C, C++, Go or Rust. If possible, a more precise value MUST be used. Development
perl Perl Development
php PHP Development
ruby Ruby Development
rust Rust Development
v8js V8JS Development

Compatibility with pprof

Existing pprof formats can be unambiguously mapped to this data model. Reverse mapping from this data model is also possible to the extent that the target profiles format has equivalent capabilities.

The attributes described in this section are specific to support convertibility. They may be used in any Profiles record they apply to.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
pprof.location.is_folded Development Recommended boolean Provides an indication that multiple symbols map to this location's address, for example due to identical code folding by the linker. In that case the line information represents one of the multiple symbols. This field must be recomputed when the symbolization state of the profile changes.
pprof.mapping.has_filenames Development Recommended boolean Indicates that there are filenames related to this mapping.
pprof.mapping.has_functions Development Recommended boolean Indicates that there are functions related to this mapping.
pprof.mapping.has_inline_frames Development Recommended boolean Indicates that there are inline frames related to this mapping.
pprof.mapping.has_line_numbers Development Recommended boolean Indicates that there are line numbers related to this mapping.
pprof.profile.comment Development Recommended string[] Free-form text associated with the profile. This field should not be used to store any machine-readable information, it is only for human-friendly content. ["hello world", "bazinga"]
pprof.profile.doc_url Development Recommended string Documentation link for this profile type. [1] http://pprof.example.com/cpu-profile.html
pprof.profile.drop_frames Development Recommended string Frames with Function.function_name fully matching the regexp will be dropped from the samples, along with their successors. /foobar/
pprof.profile.keep_frames Development Recommended string Frames with Function.function_name fully matching the regexp will be kept, even if it matches drop_frames. /bazinga/
pprof.scope.default_sample_type Development Recommended string Records the pprof's default_sample_type in the original profile. Not set if the default sample type was missing. [2] cpu
pprof.scope.sample_type_order Development Recommended int[] Records the indexes of the sample types in the original profile. [3] [3, 0, 1, 2]

[1] pprof.profile.doc_url: The URL must be absolute and may be missing if the profile was generated by code that did not supply a link

[2] pprof.scope.default_sample_type: This attribute, if present, MUST be set at the scope level (resource_profiles[].scope_profiles[].scope.attributes[]).

[3] pprof.scope.sample_type_order: This attribute, if present, MUST be set at the scope level (resource_profiles[].scope_profiles[].scope.attributes[]).