Skip to content

Commit

Permalink
Merge branch 'main' into gcp-cloud-run-service-version
Browse files Browse the repository at this point in the history
  • Loading branch information
damemi authored Apr 24, 2023
2 parents 26550f1 + 11e28ed commit 36c082f
Show file tree
Hide file tree
Showing 11 changed files with 574 additions and 70 deletions.
12 changes: 6 additions & 6 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ specification/metrics/ @open-telemetry/technical-committee @open-telemetry/spec
experimental/logs/ @open-telemetry/technical-committee @open-telemetry/specs-approvers @open-telemetry/specs-logs-approvers
specification/logs/ @open-telemetry/technical-committee @open-telemetry/specs-approvers @open-telemetry/specs-logs-approvers

# Semantic Conventions owners (global + trace/metrics/logs + instr-wg)
semantic_conventions/ @open-telemetry/technical-committee @open-telemetry/specs-approvers @open-telemetry/instr-wg
specification/trace/semantic_conventions/ @open-telemetry/technical-committee @open-telemetry/specs-approvers @open-telemetry/specs-trace-approvers @open-telemetry/instr-wg
specification/metrics/semantic_conventions/ @open-telemetry/technical-committee @open-telemetry/specs-approvers @open-telemetry/specs-metrics-approvers @open-telemetry/instr-wg
specification/logs/semantic_conventions/ @open-telemetry/technical-committee @open-telemetry/specs-approvers @open-telemetry/specs-logs-approvers @open-telemetry/instr-wg
specification/resource/semantic_conventions/ @open-telemetry/technical-committee @open-telemetry/specs-approvers @open-telemetry/instr-wg
# Semantic Conventions owners (global + trace/metrics/logs/semconv)
semantic_conventions/ @open-telemetry/technical-committee @open-telemetry/specs-approvers @open-telemetry/specs-semconv-approvers
specification/trace/semantic_conventions/ @open-telemetry/technical-committee @open-telemetry/specs-approvers @open-telemetry/specs-trace-approvers @open-telemetry/specs-semconv-approvers
specification/metrics/semantic_conventions/ @open-telemetry/technical-committee @open-telemetry/specs-approvers @open-telemetry/specs-metrics-approvers @open-telemetry/specs-semconv-approvers
specification/logs/semantic_conventions/ @open-telemetry/technical-committee @open-telemetry/specs-approvers @open-telemetry/specs-logs-approvers @open-telemetry/specs-semconv-approvers
specification/resource/semantic_conventions/ @open-telemetry/technical-committee @open-telemetry/specs-approvers @open-telemetry/specs-semconv-approvers
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,16 @@ release.

- Lay initial groundwork for file configuration
([#3360](https://github.com/open-telemetry/opentelemetry-specification/pull/3360))
- Move file configuration schema to `opentelemetry-configuration`.
([#3412](https://github.com/open-telemetry/opentelemetry-specification/pull/3412))

### Telemetry Schemas

### Common

- Add log entries to specification README.md contents.
([#3435](https://github.com/open-telemetry/opentelemetry-specification/pull/3435))

## v1.20.0 (2023-04-07)

### Context
Expand Down Expand Up @@ -101,6 +106,8 @@ release.

### Semantic Conventions

- Add k8s.cluster.uid semantic convention
([#3267](https://github.com/open-telemetry/opentelemetry-specification/pull/3267))
- Clarify that attribute requirement levels apply to the instrumentation library
([#3289](https://github.com/open-telemetry/opentelemetry-specification/pull/3289))
- Fix grammatical number of metric units.
Expand Down
185 changes: 185 additions & 0 deletions semantic_conventions/metrics/process-runtime-jvm-metrics.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
groups:
- id: attributes.process.runtime.jvm.memory
type: attribute_group
brief: "Describes JVM memory metric attributes."
attributes:
- id: type
type:
allow_custom_values: false
members:
- id: heap
value: 'heap'
brief: 'Heap memory.'
- id: non_heap
value: 'non_heap'
brief: 'Non-heap memory'
requirement_level: recommended
brief: The type of memory.
examples: ["heap", "non_heap"]
- id: pool
type: string
requirement_level: recommended
brief: Name of the memory pool.
examples: ["G1 Old Gen", "G1 Eden space", "G1 Survivor Space"]
note: >
Pool names are generally obtained via
[MemoryPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/MemoryPoolMXBean.html#getName()).
- id: metric.process.runtime.jvm.memory.usage
type: metric
metric_name: process.runtime.jvm.memory.usage
extends: attributes.process.runtime.jvm.memory
brief: "Measure of memory used."
instrument: updowncounter
unit: "By"

- id: metric.process.runtime.jvm.memory.init
type: metric
metric_name: process.runtime.jvm.memory.init
extends: attributes.process.runtime.jvm.memory
brief: "Measure of initial memory requested."
instrument: updowncounter
unit: "By"

- id: metric.process.runtime.jvm.memory.committed
type: metric
metric_name: process.runtime.jvm.memory.committed
extends: attributes.process.runtime.jvm.memory
brief: "Measure of memory committed."
instrument: updowncounter
unit: "By"

- id: metric.process.runtime.jvm.memory.limit
type: metric
metric_name: process.runtime.jvm.memory.limit
extends: attributes.process.runtime.jvm.memory
brief: "Measure of max obtainable memory."
instrument: updowncounter
unit: "By"

- id: metric.process.runtime.jvm.memory.usage_after_last_gc
type: metric
metric_name: process.runtime.jvm.memory.usage_after_last_gc
extends: attributes.process.runtime.jvm.memory
brief: "Measure of memory used, as measured after the most recent garbage collection event on this pool."
instrument: updowncounter
unit: "By"

- id: metric.process.runtime.jvm.gc.duration
type: metric
metric_name: process.runtime.jvm.gc.duration
brief: "Duration of JVM garbage collection actions."
instrument: histogram
unit: "ms"
attributes:
- id: gc
type: string
requirement_level: recommended
brief: Name of the garbage collector.
examples: ["G1 Young Generation", "G1 Old Generation"]
note: >
Garbage collector name is generally obtained via
[GarbageCollectionNotificationInfo#getGcName()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcName()).
- id: action
type: string
requirement_level: recommended
brief: Name of the garbage collector action.
examples: ["end of minor GC", "end of major GC"]
note: >
Garbage collector action is generally obtained via
[GarbageCollectionNotificationInfo#getGcAction()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcAction()).
- id: metric.process.runtime.jvm.threads.count
type: metric
metric_name: process.runtime.jvm.threads.count
brief: "Number of executing threads."
instrument: updowncounter
unit: "{thread}"
attributes:
- id: daemon
brief: "Whether the thread is daemon or not."
type: boolean
requirement_level: recommended

- id: metric.process.runtime.jvm.classes.loaded
type: metric
metric_name: process.runtime.jvm.classes.loaded
brief: "Number of classes loaded since JVM start."
instrument: counter
unit: "{class}"

- id: metric.process.runtime.jvm.classes.unloaded
type: metric
metric_name: process.runtime.jvm.classes.unloaded
brief: "Number of classes unloaded since JVM start."
instrument: counter
unit: "{class}"

- id: metric.process.runtime.jvm.classes.current_loaded
type: metric
metric_name: process.runtime.jvm.classes.current_loaded
brief: "Number of classes currently loaded."
instrument: updowncounter
unit: "{class}"

- id: metric.process.runtime.jvm.cpu.utilization
type: metric
metric_name: process.runtime.jvm.cpu.utilization
brief: "Recent CPU utilization for the process."
note: >
This utilization is not defined as being for the specific interval since last measurement
(unlike `system.cpu.utilization`).
instrument: gauge
unit: "1"

- id: metric.process.runtime.jvm.system.cpu.utilization
type: metric
metric_name: process.runtime.jvm.system.cpu.utilization
brief: "Recent CPU utilization for the whole system."
note: >
This utilization is not defined as being for the specific interval since last measurement
(unlike `system.cpu.utilization`).
instrument: gauge
unit: "1"

- id: metric.process.runtime.jvm.system.cpu.load_1m
type: metric
metric_name: process.runtime.jvm.system.cpu.load_1m
brief: "Average CPU load of the whole system for the last minute."
instrument: gauge
unit: "1"

- id: attributes.process.runtime.jvm.buffer
type: attribute_group
brief: "Describes JVM buffer metric attributes."
attributes:
- ref: pool
brief: Name of the buffer pool.
examples: [ "mapped", "direct" ]
note: >
Pool names are generally obtained via
[BufferPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/BufferPoolMXBean.html#getName()).
- id: metric.process.runtime.jvm.buffer.usage
type: metric
metric_name: process.runtime.jvm.buffer.usage
extends: attributes.process.runtime.jvm.buffer
brief: "Measure of memory used by buffers."
instrument: updowncounter
unit: "By"

- id: metric.process.runtime.jvm.buffer.limit
type: metric
metric_name: process.runtime.jvm.buffer.limit
extends: attributes.process.runtime.jvm.buffer
brief: "Measure of total memory capacity of buffers."
instrument: updowncounter
unit: "By"

- id: metric.process.runtime.jvm.buffer.count
type: metric
metric_name: process.runtime.jvm.buffer.count
extends: attributes.process.runtime.jvm.buffer
brief: "Number of buffers in the pool."
instrument: updowncounter
unit: "{buffer}"
29 changes: 29 additions & 0 deletions semantic_conventions/resource/k8s.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,35 @@ groups:
brief: >
The name of the cluster.
examples: ['opentelemetry-cluster']
- id: uid
type: string
brief: >
A pseudo-ID for the cluster, set to the UID of the `kube-system`
namespace.
note: |
K8s does not have support for obtaining a cluster ID. If this is ever
added, we will recommend collecting the `k8s.cluster.uid` through the
official APIs. In the meantime, we are able to use the `uid` of the
`kube-system` namespace as a proxy for cluster ID. Read on for the
rationale.
Every object created in a K8s cluster is assigned a distinct UID. The
`kube-system` namespace is used by Kubernetes itself and will exist
for the lifetime of the cluster. Using the `uid` of the `kube-system`
namespace is a reasonable proxy for the K8s ClusterID as it will only
change if the cluster is rebuilt. Furthermore, Kubernetes UIDs are
UUIDs as standardized by
[ISO/IEC 9834-8 and ITU-T X.667](https://www.itu.int/ITU-T/studygroups/com17/oid.html).
Which states:
> If generated according to one of the mechanisms defined in Rec.
ITU-T X.667 | ISO/IEC 9834-8, a UUID is either guaranteed to be
different from all other UUIDs generated before 3603 A.D., or is
extremely likely to be different (depending on the mechanism chosen).
Therefore, UIDs between clusters should be extremely unlikely to
conflict.
examples: ['218fc5a9-a5f1-4b54-aa05-46717d0ab26d']

- id: k8s.node
prefix: k8s.node
Expand Down
5 changes: 5 additions & 0 deletions specification/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,13 @@ cascade:
- [Baggage](baggage/api.md)
- [Tracing](trace/api.md)
- [Metrics](metrics/api.md)
- Logs
- [Bridge API](logs/bridge-api.md)
- [Event API](logs/event-api.md)
- SDK Specification
- [Tracing](trace/sdk.md)
- [Metrics](metrics/sdk.md)
- [Logs](logs/sdk.md)
- [Resource](resource/sdk.md)
- [Configuration](sdk-configuration.md)
- Data Specification
Expand All @@ -39,6 +43,7 @@ cascade:
- [OpenCensus](compatibility/opencensus.md)
- [OpenTracing](compatibility/opentracing.md)
- [Prometheus and OpenMetrics](compatibility/prometheus_and_openmetrics.md)
- [Trace Context in non-OTLP Log Formats](compatibility/logging_trace_context.md)

## Notation Conventions and Compliance

Expand Down
4 changes: 2 additions & 2 deletions specification/configuration/file-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ interpreted to produce configured OpenTelemetry components.
## Configuration Model

The configuration model is defined
in [./schema/](./schema/opentelemetry_configuration.json) using
the [JSON Schema](https://json-schema.org/).
in [opentelemetry-configuration](https://github.com/open-telemetry/opentelemetry-configuration)
using the [JSON Schema](https://json-schema.org/).

### Stability Definition

Expand Down

This file was deleted.

2 changes: 1 addition & 1 deletion specification/logs/bridge-api.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Logs Bridge API

**Status**: [Experimental](../document-status.md)
**Status**: [Stable](../document-status.md)

<details>
<summary>Table of Contents</summary>
Expand Down
2 changes: 1 addition & 1 deletion specification/logs/sdk.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Logs SDK

**Status**: [Experimental](../document-status.md)
**Status**: [Stable](../document-status.md)

<details>
<summary>Table of Contents</summary>
Expand Down
Loading

0 comments on commit 36c082f

Please sign in to comment.