Resolves #7437. A few caveats about this. The TL;DR on #7437 is that a non-containerized process was reporting a `container.id` attribute. The submitter narrowed it down and I was able to confirm with the test case in this PR. I hunted for other means for code to determine if it's containerized with the idea to not even do the parsing if not containerized, but I couldn't find anything useful. In fact, most approaches of detecting containerization at all do involve parsing cgroups. Wacky. So I attempted to verify that container IDs should always be 64 characters. I found: * podman - docs [here](https://docs.podman.io/en/latest/markdown/podman-container-inspect.1.html) "Container ID (full 64-char hash)" * docker - UID generator source [here]( |
||
---|---|---|
.. | ||
src | ||
README.md | ||
build.gradle.kts |
README.md
OpenTelemetry Resource Providers
This package includes some standard ResourceProvider
s for filling in attributes related to
common environments. Currently, the resources provide the following semantic conventions:
Populated attributes
Container
Provider: io.opentelemetry.instrumentation.resources.ContainerResource
Specification: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/container.md
Implemented attributes:
container.id
Host
Provider: io.opentelemetry.instrumentation.resources.HostResource
Specification: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/host.md
Implemented attributes:
host.name
host.arch
Operating System
Provider: io.opentelemetry.instrumentation.resources.OsResource
Specification: https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/resource/semantic_conventions/os.md
Implemented attributes:
os.type
os.description
Process
Implementation: io.opentelemetry.instrumentation.resources.ProcessResource
Implemented attributes:
process.pid
process.executable.path
(note, we assume thejava
binary is located in thebin
subfolder ofJAVA_HOME
)process.command_line
(note this includes all system properties and arguments when running)
Java Runtime
Implementation: io.opentelemetry.instrumentation.resources.ProcessRuntimeResource
Implemented attributes:
process.runtime.name
process.runtime.version
process.runtime.description
Platforms
This package currently does not run on Android. It has been verified on OpenJDK and should work on other server JVM distributions but if you find any issues please let us know.