Add system.linux.memory.available metric (#323)
This commit is contained in:
parent
a89f57357e
commit
650be8f523
|
|
@ -105,6 +105,8 @@ release.
|
||||||
- BREAKING: Rename `messaging.message.payload_size_bytes` to `messaging.message.body.size`,
|
- BREAKING: Rename `messaging.message.payload_size_bytes` to `messaging.message.body.size`,
|
||||||
remove `messaging.message.payload_compressed_size_bytes`.
|
remove `messaging.message.payload_compressed_size_bytes`.
|
||||||
([#229](https://github.com/open-telemetry/semantic-conventions/pull/229))
|
([#229](https://github.com/open-telemetry/semantic-conventions/pull/229))
|
||||||
|
- Add `system.linux.memory.available` metric.
|
||||||
|
([#323](https://github.com/open-telemetry/semantic-conventions/pull/323))
|
||||||
- BREAKING: Rename `http.server.request.size` metric to `http.server.request.body.size`
|
- BREAKING: Rename `http.server.request.size` metric to `http.server.request.body.size`
|
||||||
and `http.server.response.size` metric to `http.server.response.body.size`
|
and `http.server.response.size` metric to `http.server.response.body.size`
|
||||||
([#247](https://github.com/open-telemetry/semantic-conventions/pull/247))
|
([#247](https://github.com/open-telemetry/semantic-conventions/pull/247))
|
||||||
|
|
|
||||||
|
|
@ -21,18 +21,18 @@ key, but non-obvious, aspects:
|
||||||
- All descriptions, normative language are defined in the `docs/`
|
- All descriptions, normative language are defined in the `docs/`
|
||||||
directory.
|
directory.
|
||||||
- We provide tooling to generate Markdown documentation from the formal
|
- We provide tooling to generate Markdown documentation from the formal
|
||||||
YAML definitons. See [Yaml to Markdown](#yaml-to-markdown).
|
YAML definitons. See [Yaml to Markdown](#yaml-to-markdown).
|
||||||
- We use Hugo to render [semantic conventions on our website](https://opentelemetry.io/docs/specs/semconv/).
|
- We use Hugo to render [semantic conventions on our website](https://opentelemetry.io/docs/specs/semconv/).
|
||||||
You will see `<!--- Hugo front matter used to generate ...` sections
|
You will see `<!--- Hugo front matter used to generate ...` sections
|
||||||
in markdown. See [Hugo frontmatter](#hugo-frontmatter) for details.
|
in markdown. See [Hugo frontmatter](#hugo-frontmatter) for details.
|
||||||
- All changes to existing attributes, metrics, etc. MUST be allowed as
|
- All changes to existing attributes, metrics, etc. MUST be allowed as
|
||||||
per our [stability guarantees](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.20.0/specification/versioning-and-stability.md#semantic-conventions-stability) and
|
per our [stability guarantees](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.20.0/specification/versioning-and-stability.md#semantic-conventions-stability) and
|
||||||
defined in a schema file. As part of any contribution, you should
|
defined in a schema file. As part of any contribution, you should
|
||||||
include attribute changes defined in the `schema-next.yaml` file.
|
include attribute changes defined in the `schema-next.yaml` file.
|
||||||
For details, please read [the schema specification](https://opentelemetry.io/docs/specs/otel/schemas/).
|
For details, please read [the schema specification](https://opentelemetry.io/docs/specs/otel/schemas/).
|
||||||
- After creating a pull request, please update the [CHANGELOG](CHANGELOG.md) file with
|
- After creating a pull request, please update the [CHANGELOG](CHANGELOG.md) file with
|
||||||
a description of your changes.
|
a description of your changes.
|
||||||
|
|
||||||
Please make sure all Pull Requests are compliant with these rules!
|
Please make sure all Pull Requests are compliant with these rules!
|
||||||
|
|
||||||
### Hugo frontmatter
|
### Hugo frontmatter
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,7 @@ instruments not explicitly defined in the specification.
|
||||||
* [Metric: `system.processes.count`](#metric-systemprocessescount)
|
* [Metric: `system.processes.count`](#metric-systemprocessescount)
|
||||||
* [Metric: `system.processes.created`](#metric-systemprocessescreated)
|
* [Metric: `system.processes.created`](#metric-systemprocessescreated)
|
||||||
- [`system.{os}.` - OS Specific System Metrics](#systemos---os-specific-system-metrics)
|
- [`system.{os}.` - OS Specific System Metrics](#systemos---os-specific-system-metrics)
|
||||||
|
* [Metric: `system.linux.memory.available`](#metric-systemlinuxmemoryavailable)
|
||||||
|
|
||||||
<!-- tocstop -->
|
<!-- tocstop -->
|
||||||
|
|
||||||
|
|
@ -739,3 +740,17 @@ an `{os}` prefix to split this metric across OSes.
|
||||||
|
|
||||||
[DocumentStatus]: https://github.com/open-telemetry/opentelemetry-specification/blob/v1.22.0/specification/document-status.md
|
[DocumentStatus]: https://github.com/open-telemetry/opentelemetry-specification/blob/v1.22.0/specification/document-status.md
|
||||||
[MetricRecommended]: https://github.com/open-telemetry/opentelemetry-specification/blob/v1.22.0/specification/metrics/metric-requirement-level.md#recommended
|
[MetricRecommended]: https://github.com/open-telemetry/opentelemetry-specification/blob/v1.22.0/specification/metrics/metric-requirement-level.md#recommended
|
||||||
|
|
||||||
|
### Metric: `system.linux.memory.available`
|
||||||
|
|
||||||
|
<!-- semconv metric.system.linux.memory.available(metric_table) -->
|
||||||
|
| Name | Instrument Type | Unit (UCUM) | Description |
|
||||||
|
| -------- | --------------- | ----------- | -------------- |
|
||||||
|
| `system.linux.memory.available` | UpDownCounter | `By` | An estimate of how much memory is available for starting new applications, without causing swapping [1] |
|
||||||
|
|
||||||
|
**[1]:** This is an alternative to `system.memory.usage` metric with `state=free`.
|
||||||
|
Linux starting from 3.14 exports "available" memory. It takes "free" memory as a baseline, and then factors in kernel-specific values.
|
||||||
|
This is supposed to be more accurate than just "free" memory.
|
||||||
|
For reference, see the calculations [here](https://superuser.com/a/980821).
|
||||||
|
See also `MemAvailable` in [/proc/meminfo](https://man7.org/linux/man-pages/man5/proc.5.html).
|
||||||
|
<!-- endsemconv -->
|
||||||
|
|
|
||||||
|
|
@ -490,3 +490,17 @@ groups:
|
||||||
brief: "Total number of processes created over uptime of the host"
|
brief: "Total number of processes created over uptime of the host"
|
||||||
instrument: counter
|
instrument: counter
|
||||||
unit: "{process}"
|
unit: "{process}"
|
||||||
|
|
||||||
|
# system.linux.* metrics
|
||||||
|
- id: metric.system.linux.memory.available
|
||||||
|
type: metric
|
||||||
|
metric_name: system.linux.memory.available
|
||||||
|
brief: "An estimate of how much memory is available for starting new applications, without causing swapping"
|
||||||
|
note: |
|
||||||
|
This is an alternative to `system.memory.usage` metric with `state=free`.
|
||||||
|
Linux starting from 3.14 exports "available" memory. It takes "free" memory as a baseline, and then factors in kernel-specific values.
|
||||||
|
This is supposed to be more accurate than just "free" memory.
|
||||||
|
For reference, see the calculations [here](https://superuser.com/a/980821).
|
||||||
|
See also `MemAvailable` in [/proc/meminfo](https://man7.org/linux/man-pages/man5/proc.5.html).
|
||||||
|
instrument: updowncounter
|
||||||
|
unit: "By"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue