clarify code function name (#1944)
Co-authored-by: Christophe Kamphaus <christophe.kamphaus@gmail.com> Co-authored-by: Liudmila Molkova <limolkova@microsoft.com> Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
This commit is contained in:
parent
7170b2d04d
commit
cb11bb9bac
|
|
@ -0,0 +1,5 @@
|
|||
change_type: breaking
|
||||
component: code
|
||||
note: "`code.function.name` value should contain the fully qualified function name, `code.namespace` is now deprecated"
|
||||
issues: [1677]
|
||||
subtext:
|
||||
|
|
@ -14,11 +14,26 @@ These attributes provide context about source code
|
|||
|---|---|---|---|---|
|
||||
| <a id="code-column-number" href="#code-column-number">`code.column.number`</a> | 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` |  |
|
||||
| <a id="code-file-path" href="#code-file-path">`code.file.path`</a> | 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` |  |
|
||||
| <a id="code-function-name" href="#code-function-name">`code.function.name`</a> | string | The method or function name, or equivalent (usually rightmost part of the code unit's name). | `serveRequest` |  |
|
||||
| <a id="code-function-name" href="#code-function-name">`code.function.name`</a> | 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` |  |
|
||||
| <a id="code-line-number" href="#code-line-number">`code.line.number`</a> | 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` |  |
|
||||
| <a id="code-namespace" href="#code-namespace">`code.namespace`</a> | string | The "namespace" within which `code.function.name` is defined. Usually the qualified class or module name, such that `code.namespace` + some separator + `code.function.name` form a unique identifier for the code unit. | `com.example.MyHttpService` |  |
|
||||
| <a id="code-stacktrace" href="#code-stacktrace">`code.stacktrace`</a> | string | A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG. | `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)` |  |
|
||||
|
||||
**[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`
|
||||
|
||||
## Deprecated Code Attributes
|
||||
|
||||
These deprecated attributes provide context about source code
|
||||
|
|
@ -26,6 +41,7 @@ These deprecated attributes provide context about source code
|
|||
| Attribute | Type | Description | Examples | Stability |
|
||||
|---|---|---|---|---|
|
||||
| <a id="code-column" href="#code-column">`code.column`</a> | int | Deprecated, use `code.column.number` | `16` | <br>Replaced by `code.column.number` |
|
||||
| <a id="code-filepath" href="#code-filepath">`code.filepath`</a> | string | Deprecated, use `code.file.path` instead | `/usr/local/MyApplication/content_root/app/index.php` |  |
|
||||
| <a id="code-filepath" href="#code-filepath">`code.filepath`</a> | string | Deprecated, use `code.file.path` instead | `/usr/local/MyApplication/content_root/app/index.php` | <br>Replaced by `code.file.path` |
|
||||
| <a id="code-function" href="#code-function">`code.function`</a> | string | Deprecated, use `code.function.name` instead | `serveRequest` | <br>Replaced by `code.function.name` |
|
||||
| <a id="code-lineno" href="#code-lineno">`code.lineno`</a> | int | Deprecated, use `code.line.number` instead | `42` | <br>Replaced by `code.line.number` |
|
||||
| <a id="code-namespace" href="#code-namespace">`code.namespace`</a> | string | Deprecated, namespace is now included into `code.function.name` | `com.example.MyHttpService` | <br>Value should be included in `code.function.name` which is expected to be a fully-qualified name. |
|
||||
|
|
|
|||
|
|
@ -431,12 +431,28 @@ about the span.
|
|||
| 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.filepath`](/docs/attributes-registry/code.md) | string | Deprecated, use `code.file.path` instead | `/usr/local/MyApplication/content_root/app/index.php` | `Recommended` |  |
|
||||
| [`code.function.name`](/docs/attributes-registry/code.md) | string | The method or function name, or equivalent (usually rightmost part of the code unit's name). | `serveRequest` | `Recommended` |  |
|
||||
| [`code.filepath`](/docs/attributes-registry/code.md) | string | Deprecated, use `code.file.path` instead | `/usr/local/MyApplication/content_root/app/index.php` | `Recommended` | <br>Replaced by `code.file.path` |
|
||||
| [`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.namespace`](/docs/attributes-registry/code.md) | string | The "namespace" within which `code.function.name` is defined. Usually the qualified class or module name, such that `code.namespace` + some separator + `code.function.name` form a unique identifier for the code unit. | `com.example.MyHttpService` | `Recommended` |  |
|
||||
| [`code.namespace`](/docs/attributes-registry/code.md) | string | Deprecated, namespace is now included into `code.function.name` | `com.example.MyHttpService` | `Recommended` | <br>Value should be included in `code.function.name` which is expected to be a fully-qualified name. |
|
||||
| [`code.stacktrace`](/docs/attributes-registry/code.md) | string | A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG. | `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 -->
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ groups:
|
|||
- id: code.filepath
|
||||
type: string
|
||||
stability: development
|
||||
deprecated: Replaced by `code.file.path`
|
||||
brief: >
|
||||
Deprecated, use `code.file.path` instead
|
||||
examples: /usr/local/MyApplication/content_root/app/index.php
|
||||
|
|
@ -32,3 +33,10 @@ groups:
|
|||
brief: >
|
||||
Deprecated, use `code.column.number`
|
||||
examples: 16
|
||||
- id: code.namespace
|
||||
type: string
|
||||
stability: development
|
||||
deprecated: Value should be included in `code.function.name` which is expected to be a fully-qualified name.
|
||||
brief: >
|
||||
Deprecated, namespace is now included into `code.function.name`
|
||||
examples: com.example.MyHttpService
|
||||
|
|
|
|||
|
|
@ -9,15 +9,28 @@ groups:
|
|||
type: string
|
||||
stability: development
|
||||
brief: >
|
||||
The method or function name, or equivalent (usually rightmost part of the code unit's name).
|
||||
examples: serveRequest
|
||||
- id: code.namespace
|
||||
type: string
|
||||
stability: development
|
||||
brief: >
|
||||
The "namespace" within which `code.function.name` is defined. Usually the qualified class or module name,
|
||||
such that `code.namespace` + some separator + `code.function.name` form a unique identifier for the code unit.
|
||||
examples: com.example.MyHttpService
|
||||
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.
|
||||
examples:
|
||||
- 'com.example.MyHttpService.serveRequest'
|
||||
- 'GuzzleHttp\Client::transfer'
|
||||
- 'fopen'
|
||||
note: |
|
||||
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`
|
||||
- id: code.file.path
|
||||
type: string
|
||||
stability: development
|
||||
|
|
|
|||
Loading…
Reference in New Issue