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-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-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-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)` |  |
|
| <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
|
## Deprecated Code Attributes
|
||||||
|
|
||||||
These deprecated attributes provide context about source code
|
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 |
|
| 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-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-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-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 |
|
| 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.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.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 name, or equivalent (usually rightmost part of the code unit's name). | `serveRequest` | `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.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` |  |
|
| [`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 -->
|
<!-- markdownlint-restore -->
|
||||||
<!-- prettier-ignore-end -->
|
<!-- prettier-ignore-end -->
|
||||||
<!-- END AUTOGENERATED TEXT -->
|
<!-- END AUTOGENERATED TEXT -->
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ groups:
|
||||||
- id: code.filepath
|
- id: code.filepath
|
||||||
type: string
|
type: string
|
||||||
stability: development
|
stability: development
|
||||||
|
deprecated: Replaced by `code.file.path`
|
||||||
brief: >
|
brief: >
|
||||||
Deprecated, use `code.file.path` instead
|
Deprecated, use `code.file.path` instead
|
||||||
examples: /usr/local/MyApplication/content_root/app/index.php
|
examples: /usr/local/MyApplication/content_root/app/index.php
|
||||||
|
|
@ -32,3 +33,10 @@ groups:
|
||||||
brief: >
|
brief: >
|
||||||
Deprecated, use `code.column.number`
|
Deprecated, use `code.column.number`
|
||||||
examples: 16
|
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
|
type: string
|
||||||
stability: development
|
stability: development
|
||||||
brief: >
|
brief: >
|
||||||
The method or function name, or equivalent (usually rightmost part of the code unit's name).
|
The method or function fully-qualified name without arguments. The value should fit the natural representation of the language
|
||||||
examples: serveRequest
|
runtime, which is also likely the same used within `code.stacktrace` attribute value.
|
||||||
- id: code.namespace
|
examples:
|
||||||
type: string
|
- 'com.example.MyHttpService.serveRequest'
|
||||||
stability: development
|
- 'GuzzleHttp\Client::transfer'
|
||||||
brief: >
|
- 'fopen'
|
||||||
The "namespace" within which `code.function.name` is defined. Usually the qualified class or module name,
|
note: |
|
||||||
such that `code.namespace` + some separator + `code.function.name` form a unique identifier for the code unit.
|
Values and format depends on each language runtime, thus it is impossible to provide an exhaustive list of examples.
|
||||||
examples: com.example.MyHttpService
|
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
|
- id: code.file.path
|
||||||
type: string
|
type: string
|
||||||
stability: development
|
stability: development
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue