6.9 KiB
Process
type: process
Description: An operating system process.
| Attribute | Description | Example | Required |
|---|---|---|---|
| process.pid | Process identifier (PID). | 1234 |
No |
| process.executable.name | 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 |
See below |
| process.executable.path | 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 |
See below |
| process.command | 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 |
See below |
| process.command_line | 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" |
See below |
| process.command_args | 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 ] |
See below |
| process.owner | The username of the user that owns the process. | root |
No |
Between process.command_args and process.command_line, usually process.command_args should be preferred.
On Windows and other systems where the native format of process commands is a single string,
process.command_line can additionally (or instead) be used.
For backwards compatibility with older versions of this semantic convention,
it is possible but deprecated to use an array as type for process.command_line.
In that case it MUST be interpreted as if it was process.command_args.
At least one of process.executable.name, process.executable.path, process.command, process.command_line or process.command_args is required to allow back ends to identify the executable.
Process runtimes
type: process.runtime
Description: The single (language) runtime instance which is monitored.
| Attribute | Description | Example | Required |
|---|---|---|---|
| process.runtime.name | The name of the runtime of this process. For compiled native binaries, this SHOULD be the name of the compiler. | OpenJDK Runtime Environment |
No |
| process.runtime.version | The version of the runtime of this process, as returned by the runtime without modification. | 14.0.2 |
No |
| process.runtime.description | An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment. | Eclipse OpenJ9 openj9-0.21.0 |
No |
process.runtime.name SHOULD be set to one of the values listed below, unless more detailed instructions are provided.
If none of the listed values apply, a custom value best describing the runtime MAY be used.
Erlang Runtimes:
TODO(https://github.com/open-telemetry/opentelemetry-erlang/issues/96): Confirm the contents here
process.runtime.name- The name of the Erlang runtime being used. Usually will be BEAM.process.runtime.version- The ERTS (Erlang Runtime System) version. For BEAM this is found withapplication:get_key(erts, vsn).process.runtime.description- The OTP versionerlang:system_info(otp_release)and ERTS version combined.
Example:
| Name | process.runtime.name |
process.runtime.version |
process.runtime.description |
|---|---|---|---|
| beam | BEAM | 11.0.3 | Erlang/OTP 24 erts-11.0.3 |
Go Runtimes:
TODO(https://github.com/open-telemetry/opentelemetry-go/issues/1181): Confirm the contents here
| Value | Description |
|---|---|
gc |
Go compiler |
gccgo |
GCC Go frontend |
Java runtimes:
Java instrumentation should fill in the values by copying from system properties.
process.runtime.name- Fill in the value ofjava.runtime.nameas isprocess.runtime.version- Fill in the value ofjava.runtime.versionas isprocess.runtime.description- Fill in the value ofjava.vm.vendor, followed by a space, followed byjava.vm.version
Examples for some Java runtimes
| Name | process.runtime.name |
process.runtime.version |
process.runtime.description |
|---|---|---|---|
| OpenJDK | OpenJDK Runtime Environment | 11.0.8+10 | Oracle Corporation 11.0.8+10 |
| AdoptOpenJDK Eclipse J9 | OpenJDK Runtime Environment | 11.0.8+10 | Eclipse OpenJ9 openj9-0.21.0 |
| AdoptOpenJDK Hotspot | OpenJDK Runtime Environment | 11.0.8+10 | AdoptOpenJDK 11.0.8+10 |
| SapMachine | OpenJDK Runtime Environment | 11.0.8+10-LTS-sapmachine | SAP SE 11.0.8+10-LTS-sapmachine |
| Zulu OpenJDK | OpenJDK Runtime Environment | 11.0.8+10-LTS | Azul Systems, Inc Zulu11.41+23-CA |
| Android 11 | Android Runtime | 0.9 | The Android Project 2.1.0 |
JavaScript runtimes:
TODO(https://github.com/open-telemetry/opentelemetry-js/issues/1544): Confirm the contents here
| Value | Description |
|---|---|
nodejs |
NodeJS |
browser |
Web Browser |
iojs |
io.js |
graalvm |
GraalVM |
When the value is browser, process.runtime.version SHOULD be set to the User-Agent header.
.NET Runtimes:
TODO(https://github.com/open-telemetry/opentelemetry-dotnet/issues/1281): Confirm the contents here
| Value | Description |
|---|---|
dotnet-core |
.NET Core, .NET 5+ |
dotnet-framework |
.NET Framework |
mono |
Mono |
Python Runtimes:
TODO(https://github.com/open-telemetry/opentelemetry-python/issues/1127): Confirm the contents here
| Value | Description |
|---|---|
cpython |
CPython |
graalvm |
GraalVM |
ironpython |
IronPython |
jython |
Jython |
pypy |
PyPy |
pythonnet |
PythonNet |
Ruby Runtimes:
Ruby instrumentation should fill in the values by copying from built-in runtime constants.
process.runtime.name- Fill in the value ofRUBY_ENGINEas isprocess.runtime.version- Fill in the value ofRUBY_VERSIONas isprocess.runtime.description- Fill in the value ofRUBY_DESCRIPTIONas is
Examples for some Ruby runtimes
| Name | process.runtime.name |
process.runtime.version |
process.runtime.description |
|---|---|---|---|
| MRI | ruby | 2.7.1 | ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19] |
| TruffleRuby | truffleruby | 2.6.2 | truffleruby (Shopify) 20.0.0-dev-92ed3059, like ruby 2.6.2, GraalVM CE Native [x86_64-darwin] |