Commit Graph

190 Commits

Author SHA1 Message Date
Marc Sanmiquel 7c1b368cca
Add container semantic conventions resource (#39)
Co-authored-by: Josh Suereth <joshuasuereth@google.com>
2023-06-28 11:42:25 -04:00
Alexander Wert cdaccc8e4a
Moved HTTP semantic conventions to a dedicated topic-based structure (#141) 2023-06-28 08:14:15 -07:00
Trask Stalnaker 29c9b6bc62
Add 'as reported by the JVM' qualifier to JVM cpu metrics (#115)
Co-authored-by: Armin Ruech <armin.ruech@dynatrace.com>
2023-06-23 16:58:22 +02:00
Trask Stalnaker 2055854c0c
Change `server.address` and `server.port` from required to recommended on HTTP Server Spans (#114) 2023-06-21 16:01:51 -07:00
Carlos Alberto Cortez beb9444651
Mark service.version as stable. (#106) 2023-06-20 10:43:49 -07:00
Liudmila Molkova be0fab156d
Limit HTTP request method cardinality: original_method (option A) (#17) 2023-06-20 09:20:14 -07:00
Liudmila Molkova 156f9424fe
Make server.address and server.port to opt-in on HTTP server metrics (#109) 2023-06-19 14:35:45 -07:00
Trask Stalnaker d31b014b1f
Make `url.query` conditionally required for HTTP spans (#118) 2023-06-19 10:34:08 -07:00
Mateusz Rzeszutek bef5a68c2f
Recommend emitting server.socket.domain only if it's different from s… (#94) 2023-06-14 20:44:04 -07:00
Trask Stalnaker 0e24f77ce7
Fix typo (#110) 2023-06-14 08:26:45 -07:00
Trask Stalnaker 8364aaada5
Split out truly experimental JVM metrics (#56) 2023-06-13 20:05:49 -07:00
Trask Stalnaker 8f9fbdf8d6
Add `process.runtime.jvm.cpu.time` metric (#55) 2023-06-13 17:50:05 -07:00
Trask Stalnaker 412a3eff4e
Rename `process.runtime.jvm.cpu.utilization` to `process.runtime.jvm.cpu.recent_utilization` (#53) 2023-06-09 10:23:53 -07:00
Alexey Basinov d6d29521bc
Add Google Bare Metal Solution as a cloud platform (#64)
Co-authored-by: Joao Grassi <joao@joaograssi.com>
Co-authored-by: Josh Suereth <joshuasuereth@google.com>
2023-06-05 16:50:28 -04:00
Mike Dame 4f211389fd
Add GCP Compute Engine resource attributes for host/instance (#15)
Co-authored-by: Josh Suereth <joshuasuereth@google.com>
2023-06-01 10:46:31 -04:00
Trask Stalnaker 62513fbc50
Clarify `process.runtime.jvm.threads.count` refers to platform threads (#54) 2023-05-31 16:12:03 +02:00
Josh Suereth 4c5194ae78
Update all links to the specification to point at the 1.21.0 release (#45) 2023-05-23 11:50:37 -04:00
Gregor Zeitlinger 3a0a2d9031
describe JVM CPU metrics (#13)
Co-authored-by: Josh Suereth <joshuasuereth@google.com>
2023-05-16 12:30:28 -04:00
Liudmila Molkova c5f7a17b34
Editorial: minor fixes for HTTP spec (#16) 2023-05-12 12:21:55 -07:00
Josh Suereth 9976b2abba
Add pull request checks back for links/markdown. (#5) 2023-05-11 12:57:26 -04:00
Mike Dame 56c77bacd6 Add detail for GCP Cloud Run Job execution (#3378) 2023-05-08 21:18:54 -07:00
Liudmila Molkova 614dbefc77 BREAKING: Introduce common `url.*` attributes, and improve use of namespacing under `http.*` (#3355) 2023-05-08 19:55:53 -07:00
Trask Stalnaker 9e3e528ccc BREAKING: Rename remaining network attributes from `net.*` to `network.*` and align definitions with ECS (#3426) 2023-05-08 17:46:55 -07:00
Liudmila Molkova 5b8861e8c5 BREAKING: Replace `net.peer.*`/`net.host.*` with `client.*`/`server.*` (and `source.*`/`destination.*`) (#3402) 2023-05-08 16:19:51 -07:00
jack-berg 8f0a652071 JVM gc duration unit and bucket boundaries (#3458) 2023-05-03 09:47:34 -07:00
Cijo Thomas a2e3100848 Add Rust to the telemetry.sdk.language resource convention (#3448) 2023-04-26 12:42:23 -07:00
Robert Pająk 2ef975b7b2 Refactor Telemetry SDK resource detector description (#3392) 2023-04-25 08:00:38 -06:00
Johannes Tax 15f3e529f1 BREAKING: Remove `messaging.consumer.id`, make `messaging.client_id` generic (#3336)
Fixes #2015

## Changes

Based on discussions in the messaging workgroup and in issue #2015, this
PR proposes to remove `messaging.consumer.id`, and to replace both
`messaging.kafka.client_id` and `messaging.rocketmq.client_id` with a
generic `messaging.client_id`.

`messaging.consumer.id` is defined to always be set to the `client_id`
of the used messaging system, except for Kafka, where it was defined to
be a combination of `messaging.kafka.client_id` and
`messaging.kafka.consumer.group`, or just the latter if
`messaging.kafka.client_id` is not available. With this definition, the
semantics of `consumer.id` are different between messaging systems, and
even different for different Kafka scenarios.

The proposed `messaging.client_id` has consistent semantics ("an unique
client id, when it is available"), and can be used instead of
`messaging.consumer.id` in almost all cases.

In addition to have consistent semantics, this also simplifies the
semantic conventions, as instead of

`messaging.consumer.id`
`messaging.kafka.client_id`
`messaging.rocketmq.client_id`

there is now just:

`messaging.client_id`.
2023-04-24 17:13:21 -06:00
Trask Stalnaker 92a5b9ef64 Fix JVM buffer pool attribute description (#3423)
Follow-up to #3413

---------

Co-authored-by: jack-berg <34418638+jack-berg@users.noreply.github.com>
2023-04-21 09:59:59 -05:00
Trask Stalnaker e4613f98af Converts JVM metrics to yaml (#3413)
Converts JVM metrics to yaml
2023-04-20 13:56:48 -05:00
Matthew Wear aa873f0a9b add k8s.cluster.uid resource attribute semconv (#3267)
Fixes #3266

## Changes

Kubernetes doesn't have a formal way to identify a cluster, but a
pseudo-id can be derived by taking the `uid` of the `kube-system`
namespace. This PR adds a convention for `k8s.cluster.uid` to be set to
the `kube-system` namespace uid.
2023-04-18 15:21:28 -06:00
Trask Stalnaker bb42c33451 Change http.server.duration and http.client.duration units to seconds (#3390) 2023-04-14 20:46:53 -07:00
Liudmila Molkova 6544326ec3 Editorial: add attribute_group type to log.record (#3374) 2023-04-12 11:14:21 -07:00
Sebastien Rosset 26b305941d Update the description of the `host.image` attribute (#3194) 2023-04-11 18:29:16 +02:00
Christian Neumüller 07721f339c Add back refs to cloud.resource_id lost in FaaS renaming. (#3329)
These places were removed when #3188 in its original form removed
faas.id without replacement and weren't added back after changing it to
introduce cloud.resource_id instead.

Editorial change, no CHANGELOG or issue.
2023-04-11 07:13:14 -06:00
Trask Stalnaker 096a73fb29 BREAKING: Remove http.status_code attribute from the http.server.active_requests metric (#3366) 2023-04-06 21:36:41 -07:00
avzis 46e47de82d Change `db.statement` to only be collected if there is sanitization (#3127) 2023-04-06 10:35:33 -07:00
Severin Neumann 0902d5f429 Add semantic conventions for log record ID (#3047)
Fixes #597

## Changes

- Add a section for "generic attributes" to the log semconv
- Add an attribute `log_record.id` making use of ULID as discussed in
#597

Some additional notes:
- I kept the PR small, so I left out some other potential attributes,
e.g. something for pre-existing ID (like windows event logs) or for
storing the used logging/eventing system or even something like a
"signature" that might be worth discussing, etc.
- I followed the structure of "generic attributes" from the spans
semconv
- I took some of the existing wording from #597 &
https://github.com/open-telemetry/oteps/pull/97#discussion_r421865344 to
describe the field

---------

Signed-off-by: svrnm <neumanns@cisco.com>
Co-authored-by: Joao Grassi <joao@joaograssi.com>
Co-authored-by: jack-berg <34418638+jack-berg@users.noreply.github.com>
Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com>
2023-04-06 13:14:26 -04:00
Trask Stalnaker 189cb12e7a Add warning about net.* attributes which are used by HTTP semconv (#3278)
Fixes #3260

(a first try at least)

## Changes

Splits `net.*` attributes into two sections, and adds this warning to
the attributes in the first section:

> **Warning** Most of the attributes in this section are in use by the
HTTP semantic conventions.
Once the HTTP semantic conventions are declared stable, changes to the
attributes in this section will only be allowed
if they do not cause breaking changes to HTTP semantic conventions.

Co-authored-by: Liudmila Molkova <limolkova@microsoft.com>
Co-authored-by: Carlos Alberto Cortez <calberto.cortez@gmail.com>
Co-authored-by: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com>
2023-04-06 10:05:07 -04:00
David Phillips 7138e40aec Add Trino to db.system semantic conventions (#3347) 2023-04-05 21:07:06 +02:00
Josh Suereth dcd39bf86e Mark `service` and `telemetry.sdk` resource attributes as stable. (#3202)
## Changes

This PR marks the set of resource semantic conventions, which a relied
upon in stable API / SDK specification, as stable themselves.

- Add a caveat that changing `service.*` and `telemetry.*` names need
MORE than just schema file changes.
- Mark core Resource attribute semconv document as MIXED stability
- Update key sections for Resource attribute semconv as stable
- Mark `telemetry.sdk` and `service` attribute groups as stable.
- Move `telemetry.auto` and `service.*` "contentious" attributes into
`{section}_experimental.yaml` file. This retains the reserved name, but
does not mark the convention as stable, allowing us to ensure stable
portions of our specification refer to stable semconv.
- Update examples for `service.instance.id` to include an example of the
preferred style instance id before the fallback.

Related issues #3177

## Usage in the Specification

One reason we should mark these attributes as stable is because they are
referenced from numerous stable portions of our specification, and they
are also leveraged from newly stabilizing portions of our specification.

- [Resource
SDK](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/sdk.md#sdk-provided-resource-attributes)
- stable
- [Environment
Variables](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/sdk-environment-variables.md#general-sdk-configuration)
- stable
- [Jaeger
Exporter](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk_exporters/jaeger.md#resource)
- stable
- [Zipkin
Exporter](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk_exporters/zipkin.md#service-name)
- Stable
- [Log
DataModel](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#rfc5424-syslog)
- Stable
- [Prometheus
compatibility](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/compatibility/prometheus_and_openmetrics.md#resource-attributes)
- still experimental
- [Performance Benchmark
Guidelines](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/performance-benchmark.md)

## A note on ECS compatibility

Here's [ECS service
definition](https://www.elastic.co/guide/en/ecs/current/ecs-service.html).

They include more attributes than we do. The only possible conflict
between us is `service.instance.id` vs. `service.node.name`. In this
case, our `service.instance.id` has a fallback of generating UUID which
is inconsistent w/ `service.node.name` which requires a user-generated
name if another name cannot be provided.

There's an opportunity for us to unify here. However, I don't think
there's appetite in OTEL to require user-specified names in lieu of some
algorithm or generative specification.
2023-04-03 19:40:12 -07:00
Sourabh Jain e857d8146d Cosmos DB attributes: fixes UserAgent description (#3338) 2023-03-29 09:44:40 -07:00
Alexander Wert efa4181f83 Added AWS S3 semantic conventions (#3251) 2023-03-22 08:29:16 -07:00
Sourabh Jain 006e3b4091 Add Cosmosdb attributes for open telemetry (#3097) 2023-03-21 10:49:17 -07:00
Liudmila Molkova 139842c9e0 BREAKING: remove messaging.destination.kind and messaging.source.kind values (#3214)
Fixes #3170, #3265, #3249

## Changes

~~We currently allow `topic` or `queue` on `messaging.destination.kind`.
While it's common in messaging world to have one or another, messaging
semantic conventions can be applied to AMPQ communication (which does
not have topic/queue terminology), [socket.io](https://socket.io/), and
potentially other less traditional messaging use-cases.~~

It's unclear how `messaging.destination.kind` and
`messaging.source.kind` could be used. The distinction between queue and
topic is significant for messaging and distributed systems, but not for
tracing.

In either case, tracing backends should expect to process traces from 0+
messaging and 0+ messaging consumers. In either case, message consumers
can be simultaneous or consequent and there could be many of them.

The only known case (Solace) where it could be useful is when messaging
system allows having queues and topic with the same name on the same
broker, and it could be used to distinguish one from another.

Based on messaging SIG discussion, the attributes are removed for the
time being until we understand if and how they are useful.

Depending on messaging system queues or topics behavior vary a lot and
in future it would makes more sense to represent actual behavior with
individual attributes such as:
- auto-settlement (at-most-once or at least once guarantees)
- settlement for individual messages or offsets
- broadcast or unicast
- etc
2023-03-21 10:51:55 -06:00
Trask Stalnaker b7e8b54419 BREAKING rename `net.app.protocol.(name|version)` to `net.protocol.(name|version)` and replace `http.flavor` with `net.protocol.(name|version)` (#3272) 2023-03-10 10:15:15 -08:00
Tyler Yahn d28c963926 Fix grammatical number of metric semconv units (#3298) 2023-03-08 09:17:29 -08:00
Jamie Danielson 40a91717ba Show relationship between http target and route in example usage (#3292)
## Changes

Clarify relationship between `http.target` and `http.route` by using the
same pattern in the example usage. Having different patterns for the
attribute values distorts the relationship between the two attributes.

A similar pattern is seen in the docs for
[`aws-lambda.md`](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/instrumentation/aws-lambda.md#api-gateway-request-proxy-lambda-tracing-passive),
where `http.target` is `/pets/10` and `http.route` is `/pets/{petId}`.
It's a minor adjustment but should help provide clarity for new users.

---------

Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
2023-03-08 09:12:28 -08:00
Trask Stalnaker 489fea52c8 net.peer.name clarification for HTTP client semconv (#3276)
Fixes #3273

## Changes

Clarifies that if an HTTP client request is explicitly made to an IP
address, e.g. `http://x.x.x.x:8080`, then
`net.peer.name` SHOULD be the IP address `x.x.x.x`.
2023-03-06 09:33:35 -06:00
Trask Stalnaker c9ff781e94 Make net.sock.host.port conditionally required (#3246) 2023-03-02 14:01:52 -08:00