# Profiles attributes

LLMS index: [llms.txt](/llms.txt)

---

**Status**: [Development][DocumentStatus]


## 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.

<!-- semconv profile.frame(full) -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Attributes:**

| Key | Stability | [Requirement Level](/docs/specs/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`profile.frame.type`](/docs/specs/semconv/registry/attributes/profile.md) | ![Development](https://img.shields.io/badge/-development-blue) | `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](https://en.wikipedia.org/wiki/BEAM_(Erlang_virtual_machine)) | ![Development](https://img.shields.io/badge/-development-blue) |
| `cpython` | [Python](https://wikipedia.org/wiki/Python_(programming_language)) | ![Development](https://img.shields.io/badge/-development-blue) |
| `dotnet` | [.NET](https://wikipedia.org/wiki/.NET) | ![Development](https://img.shields.io/badge/-development-blue) |
| `go` | [Go](https://wikipedia.org/wiki/Go_(programming_language)), | ![Development](https://img.shields.io/badge/-development-blue) |
| `jvm` | [JVM](https://wikipedia.org/wiki/Java_virtual_machine) | ![Development](https://img.shields.io/badge/-development-blue) |
| `kernel` | [Kernel](https://wikipedia.org/wiki/Kernel_(operating_system)) | ![Development](https://img.shields.io/badge/-development-blue) |
| `native` | Can be one of but not limited to [C](https://wikipedia.org/wiki/C_(programming_language)), [C++](https://wikipedia.org/wiki/C%2B%2B), [Go](https://wikipedia.org/wiki/Go_(programming_language)) or [Rust](https://wikipedia.org/wiki/Rust_(programming_language)). If possible, a more precise value MUST be used. | ![Development](https://img.shields.io/badge/-development-blue) |
| `perl` | [Perl](https://wikipedia.org/wiki/Perl) | ![Development](https://img.shields.io/badge/-development-blue) |
| `php` | [PHP](https://wikipedia.org/wiki/PHP) | ![Development](https://img.shields.io/badge/-development-blue) |
| `ruby` | [Ruby](https://wikipedia.org/wiki/Ruby_(programming_language)) | ![Development](https://img.shields.io/badge/-development-blue) |
| `rust` | [Rust](https://wikipedia.org/wiki/Rust_(programming_language)) | ![Development](https://img.shields.io/badge/-development-blue) |
| `v8js` | [V8JS](https://wikipedia.org/wiki/V8_(JavaScript_engine)) | ![Development](https://img.shields.io/badge/-development-blue) |

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## Compatibility with pprof

Existing [pprof][pprofLink] 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.

<!-- semconv pprof(full) -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Attributes:**

| Key | Stability | [Requirement Level](/docs/specs/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`pprof.location.is_folded`](/docs/specs/semconv/registry/attributes/pprof.md) | ![Development](https://img.shields.io/badge/-development-blue) | `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`](/docs/specs/semconv/registry/attributes/pprof.md) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | boolean | Indicates that there are filenames related to this mapping. | |
| [`pprof.mapping.has_functions`](/docs/specs/semconv/registry/attributes/pprof.md) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | boolean | Indicates that there are functions related to this mapping. | |
| [`pprof.mapping.has_inline_frames`](/docs/specs/semconv/registry/attributes/pprof.md) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | boolean | Indicates that there are inline frames related to this mapping. | |
| [`pprof.mapping.has_line_numbers`](/docs/specs/semconv/registry/attributes/pprof.md) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | boolean | Indicates that there are line numbers related to this mapping. | |
| [`pprof.profile.comment`](/docs/specs/semconv/registry/attributes/pprof.md) | ![Development](https://img.shields.io/badge/-development-blue) | `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`](/docs/specs/semconv/registry/attributes/pprof.md) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | string | Documentation link for this profile type. [1] | `http://pprof.example.com/cpu-profile.html` |
| [`pprof.profile.drop_frames`](/docs/specs/semconv/registry/attributes/pprof.md) | ![Development](https://img.shields.io/badge/-development-blue) | `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`](/docs/specs/semconv/registry/attributes/pprof.md) | ![Development](https://img.shields.io/badge/-development-blue) | `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`](/docs/specs/semconv/registry/attributes/pprof.md) | ![Development](https://img.shields.io/badge/-development-blue) | `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`](/docs/specs/semconv/registry/attributes/pprof.md) | ![Development](https://img.shields.io/badge/-development-blue) | `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[]).

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

[DocumentStatus]: /docs/specs/otel/document-status
[pprofLink]: https://github.com/google/pprof
