move process to registry (#502)

Co-authored-by: Alexander Wert <AlexanderWert@users.noreply.github.com>
This commit is contained in:
Alexandra Konrad 2023-11-10 21:53:46 +01:00 committed by GitHub
parent 6a9acefdbf
commit a1b924ca85
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 101 additions and 66 deletions

View File

@ -35,6 +35,7 @@ Currently, the following namespaces exist:
* [HTTP](http.md)
* [Network](network.md)
* [OCI](oci.md)
* [Process](process.md)
* [RPC](rpc.md)
* [Server](server.md)
* [Source](source.md)

View File

@ -0,0 +1,19 @@
<!--- Hugo front matter used to generate the website version of this page:
--->
# Process
## Process Attributes
<!-- semconv registry.process(omit_requirement_level) -->
| Attribute | Type | Description | Examples |
|---|---|---|---|
| `process.command` | string | The command used to launch the process (i.e. the command name). On Linux based systems, can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can be set to the first parameter extracted from `GetCommandLineW`. | `cmd/otelcol` |
| `process.command_args` | string[] | All the command arguments (including the command/executable itself) as received by the process. On Linux-based systems (and some other Unixoid systems supporting procfs), can be set according to the list of null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based executables, this would be the full argv vector passed to `main`. | `[cmd/otecol, --config=config.yaml]` |
| `process.command_line` | string | The full command used to launch the process as a single string representing the full command. On Windows, can be set to the result of `GetCommandLineW`. Do not set this if you have to assemble it just for monitoring; use `process.command_args` instead. | `C:\cmd\otecol --config="my directory\config.yaml"` |
| `process.executable.name` | string | The name of the process executable. On Linux based systems, can be set to the `Name` in `proc/[pid]/status`. On Windows, can be set to the base name of `GetProcessImageFileNameW`. | `otelcol` |
| `process.executable.path` | string | The full path to the process executable. On Linux based systems, can be set to the target of `proc/[pid]/exe`. On Windows, can be set to the result of `GetProcessImageFileNameW`. | `/usr/bin/cmd/otelcol` |
| `process.owner` | string | The username of the user that owns the process. | `root` |
| `process.parent_pid` | int | Parent Process identifier (PID). | `111` |
| `process.pid` | int | Process identifier (PID). | `1234` |
<!-- endsemconv -->

View File

@ -27,22 +27,22 @@
<!-- semconv process -->
| Attribute | Type | Description | Examples | Requirement Level |
|---|---|---|---|---|
| `process.command` | string | The command used to launch the process (i.e. the command name). On Linux based systems, can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can be set to the first parameter extracted from `GetCommandLineW`. | `cmd/otelcol` | Conditionally Required: See alternative attributes below. |
| `process.command_args` | string[] | All the command arguments (including the command/executable itself) as received by the process. On Linux-based systems (and some other Unixoid systems supporting procfs), can be set according to the list of null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based executables, this would be the full argv vector passed to `main`. | `[cmd/otecol, --config=config.yaml]` | Conditionally Required: See alternative attributes below. |
| `process.command_line` | string | The full command used to launch the process as a single string representing the full command. On Windows, can be set to the result of `GetCommandLineW`. Do not set this if you have to assemble it just for monitoring; use `process.command_args` instead. | `C:\cmd\otecol --config="my directory\config.yaml"` | Conditionally Required: See alternative attributes below. |
| `process.executable.name` | string | The name of the process executable. On Linux based systems, can be set to the `Name` in `proc/[pid]/status`. On Windows, can be set to the base name of `GetProcessImageFileNameW`. | `otelcol` | Conditionally Required: See alternative attributes below. |
| `process.executable.path` | string | The full path to the process executable. On Linux based systems, can be set to the target of `proc/[pid]/exe`. On Windows, can be set to the result of `GetProcessImageFileNameW`. | `/usr/bin/cmd/otelcol` | Conditionally Required: See alternative attributes below. |
| `process.owner` | string | The username of the user that owns the process. | `root` | Recommended |
| `process.parent_pid` | int | Parent Process identifier (PID). | `111` | Recommended |
| `process.pid` | int | Process identifier (PID). | `1234` | Recommended |
| [`process.command`](../attributes-registry/process.md) | string | The command used to launch the process (i.e. the command name). On Linux based systems, can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can be set to the first parameter extracted from `GetCommandLineW`. | `cmd/otelcol` | Conditionally Required: See alternative attributes below. |
| [`process.command_args`](../attributes-registry/process.md) | string[] | All the command arguments (including the command/executable itself) as received by the process. On Linux-based systems (and some other Unixoid systems supporting procfs), can be set according to the list of null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based executables, this would be the full argv vector passed to `main`. | `[cmd/otecol, --config=config.yaml]` | Conditionally Required: See alternative attributes below. |
| [`process.command_line`](../attributes-registry/process.md) | string | The full command used to launch the process as a single string representing the full command. On Windows, can be set to the result of `GetCommandLineW`. Do not set this if you have to assemble it just for monitoring; use `process.command_args` instead. | `C:\cmd\otecol --config="my directory\config.yaml"` | Conditionally Required: See alternative attributes below. |
| [`process.executable.name`](../attributes-registry/process.md) | string | The name of the process executable. On Linux based systems, can be set to the `Name` in `proc/[pid]/status`. On Windows, can be set to the base name of `GetProcessImageFileNameW`. | `otelcol` | Conditionally Required: See alternative attributes below. |
| [`process.executable.path`](../attributes-registry/process.md) | string | The full path to the process executable. On Linux based systems, can be set to the target of `proc/[pid]/exe`. On Windows, can be set to the result of `GetProcessImageFileNameW`. | `/usr/bin/cmd/otelcol` | Conditionally Required: See alternative attributes below. |
| [`process.owner`](../attributes-registry/process.md) | string | The username of the user that owns the process. | `root` | Recommended |
| [`process.parent_pid`](../attributes-registry/process.md) | int | Parent Process identifier (PID). | `111` | Recommended |
| [`process.pid`](../attributes-registry/process.md) | int | Process identifier (PID). | `1234` | Recommended |
**Additional attribute requirements:** At least one of the following sets of attributes is required:
* `process.executable.name`
* `process.executable.path`
* `process.command`
* `process.command_line`
* `process.command_args`
* [`process.executable.name`](../attributes-registry/process.md)
* [`process.executable.path`](../attributes-registry/process.md)
* [`process.command`](../attributes-registry/process.md)
* [`process.command_line`](../attributes-registry/process.md)
* [`process.command_args`](../attributes-registry/process.md)
<!-- endsemconv -->
Between `process.command_args` and `process.command_line`, usually `process.command_args` should be preferred.

View File

@ -0,0 +1,60 @@
groups:
- id: registry.process
prefix: process
type: attribute_group
brief: >
An operating system process.
attributes:
- id: pid
type: int
brief: >
Process identifier (PID).
examples: [1234]
- id: parent_pid
type: int
brief: >
Parent Process identifier (PID).
examples: [111]
- id: executable.name
type: string
brief: >
The name of the process executable. On Linux based systems, can be set
to the `Name` in `proc/[pid]/status`. On Windows, can be set to the
base name of `GetProcessImageFileNameW`.
examples: ['otelcol']
- id: executable.path
type: string
brief: >
The full path to the process executable. On Linux based systems, can
be set to the target of `proc/[pid]/exe`. On Windows, can be set to the
result of `GetProcessImageFileNameW`.
examples: ['/usr/bin/cmd/otelcol']
- id: command
type: string
brief: >
The command used to launch the process (i.e. the command name). On Linux
based systems, can be set to the zeroth string in `proc/[pid]/cmdline`.
On Windows, can be set to the first parameter extracted from `GetCommandLineW`.
examples: ['cmd/otelcol']
- id: command_line
type: string
brief: >
The full command used to launch the process as a single string representing
the full command. On Windows, can be set to the result of `GetCommandLineW`.
Do not set this if you have to assemble it just for monitoring; use
`process.command_args` instead.
examples: ['C:\cmd\otecol --config="my directory\config.yaml"']
- id: command_args
type: string[]
brief: >
All the command arguments (including the command/executable itself) as
received by the process. On Linux-based systems (and some other Unixoid
systems supporting procfs), can be set according to the list of
null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based
executables, this would be the full argv vector passed to `main`.
examples: ['cmd/otecol', '--config=config.yaml']
- id: owner
type: string
brief: >
The username of the user that owns the process.
examples: 'root'

View File

@ -5,69 +5,24 @@ groups:
brief: >
An operating system process.
attributes:
- id: pid
type: int
brief: >
Process identifier (PID).
examples: [1234]
- id: parent_pid
type: int
brief: >
Parent Process identifier (PID).
examples: [111]
- id: executable.name
type: string
- ref: process.pid
- ref: process.parent_pid
- ref: process.executable.name
requirement_level:
conditionally_required: See alternative attributes below.
brief: >
The name of the process executable. On Linux based systems, can be set
to the `Name` in `proc/[pid]/status`. On Windows, can be set to the
base name of `GetProcessImageFileNameW`.
examples: ['otelcol']
- id: executable.path
type: string
- ref: process.executable.path
requirement_level:
conditionally_required: See alternative attributes below.
brief: >
The full path to the process executable. On Linux based systems, can
be set to the target of `proc/[pid]/exe`. On Windows, can be set to the
result of `GetProcessImageFileNameW`.
examples: ['/usr/bin/cmd/otelcol']
- id: command
type: string
- ref: process.command
requirement_level:
conditionally_required: See alternative attributes below.
brief: >
The command used to launch the process (i.e. the command name). On Linux
based systems, can be set to the zeroth string in `proc/[pid]/cmdline`.
On Windows, can be set to the first parameter extracted from `GetCommandLineW`.
examples: ['cmd/otelcol']
- id: command_line
type: string
- ref: process.command_line
requirement_level:
conditionally_required: See alternative attributes below.
brief: >
The full command used to launch the process as a single string representing
the full command. On Windows, can be set to the result of `GetCommandLineW`.
Do not set this if you have to assemble it just for monitoring; use
`process.command_args` instead.
examples: ['C:\cmd\otecol --config="my directory\config.yaml"']
- id: command_args
type: string[]
- ref: process.command_args
requirement_level:
conditionally_required: See alternative attributes below.
brief: >
All the command arguments (including the command/executable itself) as
received by the process. On Linux-based systems (and some other Unixoid
systems supporting procfs), can be set according to the list of
null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based
executables, this would be the full argv vector passed to `main`.
examples: ['cmd/otecol', '--config=config.yaml']
- id: owner
type: string
brief: >
The username of the user that owns the process.
examples: 'root'
- ref: process.owner
constraints:
- any_of:
- process.executable.name