Add semantic conventions for log media attributes (#2022)

Logs are transmitted via several common media, such as files and
iostreams. This PR establishes semantic conventions for describing the
file or iostream from which a log was read. Notably, these attributes
are not resource attributes, as the medium used to tranmit a log is not
considered to be the originator of the log.
This commit is contained in:
Daniel Jaglowski 2021-11-09 18:12:07 -05:00 committed by GitHub
parent fdd5c96846
commit 76b14b16c2
2 changed files with 51 additions and 0 deletions

View File

@ -0,0 +1,11 @@
# Log Attribute Semantic Conventions
**Status**: [Experimental](../../document-status.md)
The following semantic conventions for logs are defined:
* [Log Media](media.md): Semantic attributes that may be used in describing the source of a log.
Apart from semantic conventions for logs, [traces](../../trace/semantic_conventions/README.md), and [metrics](../../metrics/semantic_conventions/README.md),
OpenTelemetry also defines the concept of overarching [Resources](../../resource/sdk.md) with their own
[Resource Semantic Conventions](../../resource/semantic_conventions/README.md).

View File

@ -0,0 +1,40 @@
# Semantic Conventions for Log Media
**Status**: [Experimental](../../document-status.md)
This document describes attributes for log media in OpenTelemetry. Log media are mechanisms by which logs are transmitted. Types of media include files, streams, network protocols, and os-specific logging services such as journald and Windows Event Log.
<!-- Re-generate TOC with `markdown-toc --no-first-h1 -i` -->
<!-- toc -->
- [Log Media](#log-media)
* [Log File](#log-file)
* [I/O Stream](#io-stream)
<!-- tocstop -->
## Log Media
**Note:** The OpenTelemetry specification defines a [Resource](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/sdk.md#resource-sdk) as `an immutable representation of the entity producing telemetry`.
The following attributes do not describe entities that produce telemetry. Rather, they describe mechanisms of log transmission.
As such, these should be recorded as Log Record attributes when applicable. They should not be recorded as Resource attributes.
### Log File
**Description:** A file to which log was emitted.
| Name | Notes and examples |
| ------------------------------- | ---------------------------------------------------------------------------------------- |
| `log.file.name` | The basename of the file. Example: `audit.log` |
| `log.file.path` | The full path to the file. Example: `/var/log/mysql/audit.log` |
| `log.file.name_resolved` | The basename of the file, with symlinks resolved. Example: `uuid.log` |
| `log.file.path_resolved` | The full path to the file, with symlinks resolved. Example: `/var/lib/docker/uuid.log` |
### I/O Stream
**Description:** The I/O stream to which the log was emitted.
| Name | Notes and examples |
| ------------------------------- | ---------------------------------------------------------------------------------------- |
| `log.iostream` | The stream associated with the log. SHOULD be one of: `stdout`, `stderr` |