59 lines
3.8 KiB
Markdown
59 lines
3.8 KiB
Markdown
<!--- Hugo front matter used to generate the website version of this page:
|
|
linkTitle: Code
|
|
--->
|
|
|
|
# Semantic conventions for code
|
|
|
|
**Status**: [Release Candidate][DocumentStatus]
|
|
|
|
This document defines semantic conventions for source code.
|
|
|
|
> **Warning**
|
|
>
|
|
> Existing code instrumentations that are using
|
|
> [v1.29.0 of `code` conventions](https://github.com/open-telemetry/semantic-conventions/blob/v1.29.0/docs/attributes-registry/code.md)
|
|
> (or prior):
|
|
>
|
|
> * SHOULD NOT change the version of the `code` conventions that they emit by default
|
|
> until the `code` semantic conventions are marked stable.
|
|
|
|
## Attributes
|
|
|
|
<!-- semconv code -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`code.column.number`](/docs/attributes-registry/code.md) | int | The column number in `code.file.path` best representing the operation. It SHOULD point within the code unit named in `code.function.name`. | `16` | `Recommended` |  |
|
|
| [`code.file.path`](/docs/attributes-registry/code.md) | string | The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path). | `/usr/local/MyApplication/content_root/app/index.php` | `Recommended` |  |
|
|
| [`code.function.name`](/docs/attributes-registry/code.md) | string | The method or function fully-qualified name without arguments. The value should fit the natural representation of the language runtime, which is also likely the same used within `code.stacktrace` attribute value. [1] | `com.example.MyHttpService.serveRequest`; `GuzzleHttp\Client::transfer`; `fopen` | `Recommended` |  |
|
|
| [`code.line.number`](/docs/attributes-registry/code.md) | int | The line number in `code.file.path` best representing the operation. It SHOULD point within the code unit named in `code.function.name`. | `42` | `Recommended` |  |
|
|
| [`code.stacktrace`](/docs/attributes-registry/code.md) | string | A stacktrace as a string in the natural representation for the language runtime. The representation is identical to [`exception.stacktrace`](/docs/exceptions/exceptions-spans.md#stacktrace-representation). | `at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n at com.example.GenerateTrace.main(GenerateTrace.java:5)` | `Opt-In` |  |
|
|
|
|
**[1] `code.function.name`:** Values and format depends on each language runtime, thus it is impossible to provide an exhaustive list of examples.
|
|
The values are usually the same (or prefixes of) the ones found in native stack trace representation stored in
|
|
`code.stacktrace` without information on arguments.
|
|
|
|
Examples:
|
|
|
|
* Java method: `com.example.MyHttpService.serveRequest`
|
|
* Java anonymous class method: `com.mycompany.Main$1.myMethod`
|
|
* Java lambda method: `com.mycompany.Main$$Lambda/0x0000748ae4149c00.myMethod`
|
|
* PHP function: `GuzzleHttp\Client::transfer`
|
|
* Go function: `github.com/my/repo/pkg.foo.func5`
|
|
* Elixir: `OpenTelemetry.Ctx.new`
|
|
* Erlang: `opentelemetry_ctx:new`
|
|
* Rust: `playground::my_module::my_cool_func`
|
|
* C function: `fopen`
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
[DocumentStatus]: https://opentelemetry.io/docs/specs/otel/document-status
|