Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-opentelemetry-proto for
openSUSE:Factory checked in at 2026-03-30 18:30:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-opentelemetry-proto (Old)
and /work/SRC/openSUSE:Factory/.python-opentelemetry-proto.new.1999 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-opentelemetry-proto"
Mon Mar 30 18:30:41 2026 rev:13 rq:1343478 version:1.40.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-opentelemetry-proto/python-opentelemetry-proto.changes
2026-01-06 17:43:54.787977168 +0100
+++
/work/SRC/openSUSE:Factory/.python-opentelemetry-proto.new.1999/python-opentelemetry-proto.changes
2026-03-30 18:33:43.365137287 +0200
@@ -1,0 +2,15 @@
+Mon Mar 23 21:43:23 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 1.40.0:
+ * Regenerate code using opentelemetry-proto v1.9.0.
+ * Add support for Python 3.14.
+ * Breaking changes in profiles (v1development) proto:
+ + Added Stack and KeyValueAndUnit messages.
+ + Replaced location indices with stack index in Sample.
+ + Changed Profile.sample_type to a singular field.
+ + Renamed fields (e.g. time_nanos to time_unix_nano).
+ + Removed legacy resolution flags from Mapping.
+ * Clarify schema_url scope in logs, metrics, and traces.
+ * Documentation improvements and duplicate key warnings.
+
+-------------------------------------------------------------------
Old:
----
opentelemetry_proto-1.39.1.tar.gz
New:
----
opentelemetry_proto-1.40.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-opentelemetry-proto.spec ++++++
--- /var/tmp/diff_new_pack.w0fmkO/_old 2026-03-30 18:33:44.189171738 +0200
+++ /var/tmp/diff_new_pack.w0fmkO/_new 2026-03-30 18:33:44.193171904 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-opentelemetry-proto
#
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,18 +19,18 @@
%{?sle15_python_module_pythons}
Name: python-opentelemetry-proto
# Please keep in sync with python-opentelemetry-exporter-otlp-*
-Version: 1.39.1
+Version: 1.40.0
Release: 0
Summary: OpenTelemetry Python Proto
License: Apache-2.0
URL: https://github.com/open-telemetry/opentelemetry-python
Source:
https://files.pythonhosted.org/packages/source/o/opentelemetry-proto/opentelemetry_proto-%{version}.tar.gz
-BuildRequires: %{python_module base >= 3.8}
+BuildRequires: %{python_module base >= 3.9}
BuildRequires: %{python_module hatchling}
BuildRequires: %{python_module pip}
BuildRequires: python-rpm-macros
# SECTION test requirements
-BuildRequires: %{python_module protobuf >= 5.0}
+BuildRequires: %{python_module protobuf >= 5.0 with %python-protobuf < 7.0}
BuildRequires: %{python_module pytest}
# /SECTION
BuildRequires: fdupes
@@ -40,7 +40,7 @@
%description
This library contains the generated code for OpenTelemetry protobuf data model.
-The code in the current package was generated using the v0.17.0 release_ of
+The code in the current package was generated using the v1.9.0 release_ of
opentelemetry-proto.
%prep
++++++ opentelemetry_proto-1.39.1.tar.gz -> opentelemetry_proto-1.40.0.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opentelemetry_proto-1.39.1/PKG-INFO
new/opentelemetry_proto-1.40.0/PKG-INFO
--- old/opentelemetry_proto-1.39.1/PKG-INFO 2020-02-02 01:00:00.000000000
+0100
+++ new/opentelemetry_proto-1.40.0/PKG-INFO 2020-02-02 01:00:00.000000000
+0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: opentelemetry-proto
-Version: 1.39.1
+Version: 1.40.0
Summary: OpenTelemetry Python Proto
Project-URL: Homepage,
https://github.com/open-telemetry/opentelemetry-python/tree/main/opentelemetry-proto
Project-URL: Repository, https://github.com/open-telemetry/opentelemetry-python
@@ -17,6 +17,7 @@
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.9
Requires-Dist: protobuf<7.0,>=5.0
Description-Content-Type: text/x-rst
@@ -30,9 +31,9 @@
:target: https://pypi.org/project/opentelemetry-proto/
This library contains the generated code for OpenTelemetry protobuf data
model. The code in the current
-package was generated using the v1.7.0 release_ of opentelemetry-proto.
+package was generated using the v1.9.0 release_ of opentelemetry-proto.
-.. _release:
https://github.com/open-telemetry/opentelemetry-proto/releases/tag/v1.7.0
+.. _release:
https://github.com/open-telemetry/opentelemetry-proto/releases/tag/v1.9.0
Installation
------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opentelemetry_proto-1.39.1/README.rst
new/opentelemetry_proto-1.40.0/README.rst
--- old/opentelemetry_proto-1.39.1/README.rst 2020-02-02 01:00:00.000000000
+0100
+++ new/opentelemetry_proto-1.40.0/README.rst 2020-02-02 01:00:00.000000000
+0100
@@ -7,9 +7,9 @@
:target: https://pypi.org/project/opentelemetry-proto/
This library contains the generated code for OpenTelemetry protobuf data
model. The code in the current
-package was generated using the v1.7.0 release_ of opentelemetry-proto.
+package was generated using the v1.9.0 release_ of opentelemetry-proto.
-.. _release:
https://github.com/open-telemetry/opentelemetry-proto/releases/tag/v1.7.0
+.. _release:
https://github.com/open-telemetry/opentelemetry-proto/releases/tag/v1.9.0
Installation
------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opentelemetry_proto-1.39.1/pyproject.toml
new/opentelemetry_proto-1.40.0/pyproject.toml
--- old/opentelemetry_proto-1.39.1/pyproject.toml 2020-02-02
01:00:00.000000000 +0100
+++ new/opentelemetry_proto-1.40.0/pyproject.toml 2020-02-02
01:00:00.000000000 +0100
@@ -23,6 +23,7 @@
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
]
dependencies = [
"protobuf>=5.0, < 7.0",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_proto-1.39.1/src/opentelemetry/proto/common/v1/common_pb2.pyi
new/opentelemetry_proto-1.40.0/src/opentelemetry/proto/common/v1/common_pb2.pyi
---
old/opentelemetry_proto-1.39.1/src/opentelemetry/proto/common/v1/common_pb2.pyi
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_proto-1.40.0/src/opentelemetry/proto/common/v1/common_pb2.pyi
2020-02-02 01:00:00.000000000 +0100
@@ -31,7 +31,7 @@
@typing_extensions.final
class AnyValue(google.protobuf.message.Message):
- """AnyValue is used to represent any type of attribute value. AnyValue may
contain a
+ """Represents any type of attribute value. AnyValue may contain a
primitive value such as a string or integer or it may contain an arbitrary
nested
object containing arrays, key-value lists and primitives.
"""
@@ -108,8 +108,10 @@
def values(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___KeyValue]:
"""A collection of key/value pairs of key-value pairs. The list may be
empty (may
contain 0 elements).
+
The keys MUST be unique (it is not allowed to have more than one
value with the same key).
+ The behavior of software that receives duplicated keys can be
unpredictable.
"""
def __init__(
self,
@@ -122,7 +124,7 @@
@typing_extensions.final
class KeyValue(google.protobuf.message.Message):
- """KeyValue is a key-value pair that is used to store Span attributes, Link
+ """Represents a key-value pair that is used to store Span attributes, Link
attributes, etc.
"""
@@ -131,8 +133,10 @@
KEY_FIELD_NUMBER: builtins.int
VALUE_FIELD_NUMBER: builtins.int
key: builtins.str
+ """The key name of the pair."""
@property
- def value(self) -> global___AnyValue: ...
+ def value(self) -> global___AnyValue:
+ """The value of the pair."""
def __init__(
self,
*,
@@ -157,15 +161,25 @@
ATTRIBUTES_FIELD_NUMBER: builtins.int
DROPPED_ATTRIBUTES_COUNT_FIELD_NUMBER: builtins.int
name: builtins.str
- """An empty instrumentation scope name means the name is unknown."""
+ """A name denoting the Instrumentation scope.
+ An empty instrumentation scope name means the name is unknown.
+ """
version: builtins.str
+ """Defines the version of the instrumentation scope.
+ An empty instrumentation scope version means the version is unknown.
+ """
@property
def attributes(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___KeyValue]:
"""Additional attributes that describe the scope. [Optional].
Attribute keys MUST be unique (it is not allowed to have more than one
attribute with the same key).
+ The behavior of software that receives duplicated keys can be
unpredictable.
"""
dropped_attributes_count: builtins.int
+ """The number of attributes that were discarded. Attributes
+ can be discarded because their keys are too long or because there are too
many
+ attributes. If this value is 0, then no attributes were dropped.
+ """
def __init__(
self,
*,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_proto-1.39.1/src/opentelemetry/proto/logs/v1/logs_pb2.pyi
new/opentelemetry_proto-1.40.0/src/opentelemetry/proto/logs/v1/logs_pb2.pyi
--- old/opentelemetry_proto-1.39.1/src/opentelemetry/proto/logs/v1/logs_pb2.pyi
2020-02-02 01:00:00.000000000 +0100
+++ new/opentelemetry_proto-1.40.0/src/opentelemetry/proto/logs/v1/logs_pb2.pyi
2020-02-02 01:00:00.000000000 +0100
@@ -222,7 +222,8 @@
is recorded in. Notably, the last part of the URL path is the version
number of the
schema: http[s]://server[:port]/path/<version>. To learn more about Schema
URL see
https://opentelemetry.io/docs/specs/otel/schemas/#schema-url
- This schema_url applies to all logs in the "logs" field.
+ This schema_url applies to the data in the "scope" field and all logs in
the
+ "log_records" field.
"""
def __init__(
self,
@@ -296,6 +297,7 @@
"""Additional attributes that describe the specific event occurrence.
[Optional].
Attribute keys MUST be unique (it is not allowed to have more than one
attribute with the same key).
+ The behavior of software that receives duplicated keys can be
unpredictable.
"""
dropped_attributes_count: builtins.int
flags: builtins.int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_proto-1.39.1/src/opentelemetry/proto/metrics/v1/metrics_pb2.pyi
new/opentelemetry_proto-1.40.0/src/opentelemetry/proto/metrics/v1/metrics_pb2.pyi
---
old/opentelemetry_proto-1.39.1/src/opentelemetry/proto/metrics/v1/metrics_pb2.pyi
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_proto-1.40.0/src/opentelemetry/proto/metrics/v1/metrics_pb2.pyi
2020-02-02 01:00:00.000000000 +0100
@@ -326,7 +326,8 @@
is recorded in. Notably, the last part of the URL path is the version
number of the
schema: http[s]://server[:port]/path/<version>. To learn more about Schema
URL see
https://opentelemetry.io/docs/specs/otel/schemas/#schema-url
- This schema_url applies to all metrics in the "metrics" field.
+ This schema_url applies to the data in the "scope" field and all metrics
in the
+ "metrics" field.
"""
def __init__(
self,
@@ -440,11 +441,11 @@
SUMMARY_FIELD_NUMBER: builtins.int
METADATA_FIELD_NUMBER: builtins.int
name: builtins.str
- """name of the metric."""
+ """The name of the metric."""
description: builtins.str
- """description of the metric, which can be used in documentation."""
+ """A description of the metric, which can be used in documentation."""
unit: builtins.str
- """unit in which the metric value is reported. Follows the format
+ """The unit in which the metric value is reported. Follows the format
described by https://unitsofmeasure.org/ucum.html.
"""
@property
@@ -466,6 +467,7 @@
for lossless roundtrip translation to / from another data model.
Attribute keys MUST be unique (it is not allowed to have more than one
attribute with the same key).
+ The behavior of software that receives duplicated keys can be
unpredictable.
"""
def __init__(
self,
@@ -503,7 +505,10 @@
DATA_POINTS_FIELD_NUMBER: builtins.int
@property
- def data_points(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NumberDataPoint]:
...
+ def data_points(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NumberDataPoint]:
+ """The time series data points.
+ Note: Multiple time series may be included (same timestamp, different
attributes).
+ """
def __init__(
self,
*,
@@ -525,13 +530,16 @@
AGGREGATION_TEMPORALITY_FIELD_NUMBER: builtins.int
IS_MONOTONIC_FIELD_NUMBER: builtins.int
@property
- def data_points(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NumberDataPoint]:
...
+ def data_points(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NumberDataPoint]:
+ """The time series data points.
+ Note: Multiple time series may be included (same timestamp, different
attributes).
+ """
aggregation_temporality: global___AggregationTemporality.ValueType
"""aggregation_temporality describes if the aggregator reports delta
changes
since last report time, or cumulative changes since a fixed start time.
"""
is_monotonic: builtins.bool
- """If "true" means that the sum is monotonic."""
+ """Represents whether the sum is monotonic."""
def __init__(
self,
*,
@@ -554,7 +562,10 @@
DATA_POINTS_FIELD_NUMBER: builtins.int
AGGREGATION_TEMPORALITY_FIELD_NUMBER: builtins.int
@property
- def data_points(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___HistogramDataPoint]:
...
+ def data_points(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___HistogramDataPoint]:
+ """The time series data points.
+ Note: Multiple time series may be included (same timestamp, different
attributes).
+ """
aggregation_temporality: global___AggregationTemporality.ValueType
"""aggregation_temporality describes if the aggregator reports delta
changes
since last report time, or cumulative changes since a fixed start time.
@@ -580,7 +591,10 @@
DATA_POINTS_FIELD_NUMBER: builtins.int
AGGREGATION_TEMPORALITY_FIELD_NUMBER: builtins.int
@property
- def data_points(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExponentialHistogramDataPoint]:
...
+ def data_points(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExponentialHistogramDataPoint]:
+ """The time series data points.
+ Note: Multiple time series may be included (same timestamp, different
attributes).
+ """
aggregation_temporality: global___AggregationTemporality.ValueType
"""aggregation_temporality describes if the aggregator reports delta
changes
since last report time, or cumulative changes since a fixed start time.
@@ -612,7 +626,10 @@
DATA_POINTS_FIELD_NUMBER: builtins.int
@property
- def data_points(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SummaryDataPoint]:
...
+ def data_points(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SummaryDataPoint]:
+ """The time series data points.
+ Note: Multiple time series may be included (same timestamp, different
attributes).
+ """
def __init__(
self,
*,
@@ -643,6 +660,7 @@
where this point belongs. The list may be empty (may contain 0
elements).
Attribute keys MUST be unique (it is not allowed to have more than one
attribute with the same key).
+ The behavior of software that receives duplicated keys can be
unpredictable.
"""
start_time_unix_nano: builtins.int
"""StartTimeUnixNano is optional but strongly encouraged, see the
@@ -718,6 +736,7 @@
where this point belongs. The list may be empty (may contain 0
elements).
Attribute keys MUST be unique (it is not allowed to have more than one
attribute with the same key).
+ The behavior of software that receives duplicated keys can be
unpredictable.
"""
start_time_unix_nano: builtins.int
"""StartTimeUnixNano is optional but strongly encouraged, see the
@@ -838,13 +857,13 @@
OFFSET_FIELD_NUMBER: builtins.int
BUCKET_COUNTS_FIELD_NUMBER: builtins.int
offset: builtins.int
- """Offset is the bucket index of the first entry in the bucket_counts
array.
+ """The bucket index of the first entry in the bucket_counts array.
Note: This uses a varint encoding as a simple form of compression.
"""
@property
def bucket_counts(self) ->
google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
- """bucket_counts is an array of count values, where
bucket_counts[i] carries
+ """An array of count values, where bucket_counts[i] carries
the count of the bucket at index (offset+i). bucket_counts[i] is
the count
of values greater than base^(offset+i) and less than or equal to
base^(offset+i+1).
@@ -882,6 +901,7 @@
where this point belongs. The list may be empty (may contain 0
elements).
Attribute keys MUST be unique (it is not allowed to have more than one
attribute with the same key).
+ The behavior of software that receives duplicated keys can be
unpredictable.
"""
start_time_unix_nano: builtins.int
"""StartTimeUnixNano is optional but strongly encouraged, see the
@@ -897,12 +917,12 @@
1970.
"""
count: builtins.int
- """count is the number of values in the population. Must be
+ """The number of values in the population. Must be
non-negative. This value must be equal to the sum of the "bucket_counts"
values in the positive and negative Buckets plus the "zero_count" field.
"""
sum: builtins.float
- """sum of the values in the population. If count is zero then this field
+ """The sum of the values in the population. If count is zero then this
field
must be zero.
Note: Sum should only be filled out when measuring non-negative discrete
@@ -929,7 +949,7 @@
values depend on the range of the data.
"""
zero_count: builtins.int
- """zero_count is the count of values that are either exactly zero or
+ """The count of values that are either exactly zero or
within the region considered zero by the instrumentation at the
tolerated degree of precision. This bucket stores values that
cannot be expressed using the standard exponential formula as
@@ -954,9 +974,9 @@
measurements that were used to form the data point
"""
min: builtins.float
- """min is the minimum value over (start_time, end_time]."""
+ """The minimum value over (start_time, end_time]."""
max: builtins.float
- """max is the maximum value over (start_time, end_time]."""
+ """The maximum value over (start_time, end_time]."""
zero_threshold: builtins.float
"""ZeroThreshold may be optionally set to convey the width of the zero
region. Where the zero region is defined as the closed interval
@@ -1049,6 +1069,7 @@
where this point belongs. The list may be empty (may contain 0
elements).
Attribute keys MUST be unique (it is not allowed to have more than one
attribute with the same key).
+ The behavior of software that receives duplicated keys can be
unpredictable.
"""
start_time_unix_nano: builtins.int
"""StartTimeUnixNano is optional but strongly encouraged, see the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_proto-1.39.1/src/opentelemetry/proto/profiles/v1development/profiles_pb2.py
new/opentelemetry_proto-1.40.0/src/opentelemetry/proto/profiles/v1development/profiles_pb2.py
---
old/opentelemetry_proto-1.39.1/src/opentelemetry/proto/profiles/v1development/profiles_pb2.py
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_proto-1.40.0/src/opentelemetry/proto/profiles/v1development/profiles_pb2.py
2020-02-02 01:00:00.000000000 +0100
@@ -16,7 +16,7 @@
from opentelemetry.proto.resource.v1 import resource_pb2 as
opentelemetry_dot_proto_dot_resource_dot_v1_dot_resource__pb2
-DESCRIPTOR =
_descriptor_pool.Default().AddSerializedFile(b'\n9opentelemetry/proto/profiles/v1development/profiles.proto\x12*opentelemetry.proto.profiles.v1development\x1a*opentelemetry/proto/common/v1/common.proto\x1a.opentelemetry/proto/resource/v1/resource.proto\"\xee\x03\n\x12ProfilesDictionary\x12J\n\rmapping_table\x18\x01
\x03(\x0b\x32\x33.opentelemetry.proto.profiles.v1development.Mapping\x12L\n\x0elocation_table\x18\x02
\x03(\x0b\x32\x34.opentelemetry.proto.profiles.v1development.Location\x12L\n\x0e\x66unction_table\x18\x03
\x03(\x0b\x32\x34.opentelemetry.proto.profiles.v1development.Function\x12\x44\n\nlink_table\x18\x04
\x03(\x0b\x32\x30.opentelemetry.proto.profiles.v1development.Link\x12\x14\n\x0cstring_table\x18\x05
\x03(\t\x12@\n\x0f\x61ttribute_table\x18\x06
\x03(\x0b\x32\'.opentelemetry.proto.common.v1.KeyValue\x12R\n\x0f\x61ttribute_units\x18\x07
\x03(\x0b\x32\x39.opentelemetry.proto.profiles.v1development.AttributeUnit\"\xbb\x01\n\x0cProfilesData\x12W\n\x11resource_
profiles\x18\x01
\x03(\x0b\x32<.opentelemetry.proto.profiles.v1development.ResourceProfiles\x12R\n\ndictionary\x18\x02
\x01(\x0b\x32>.opentelemetry.proto.profiles.v1development.ProfilesDictionary\"\xbe\x01\n\x10ResourceProfiles\x12;\n\x08resource\x18\x01
\x01(\x0b\x32).opentelemetry.proto.resource.v1.Resource\x12Q\n\x0escope_profiles\x18\x02
\x03(\x0b\x32\x39.opentelemetry.proto.profiles.v1development.ScopeProfiles\x12\x12\n\nschema_url\x18\x03
\x01(\tJ\x06\x08\xe8\x07\x10\xe9\x07\"\xae\x01\n\rScopeProfiles\x12\x42\n\x05scope\x18\x01
\x01(\x0b\x32\x33.opentelemetry.proto.common.v1.InstrumentationScope\x12\x45\n\x08profiles\x18\x02
\x03(\x0b\x32\x33.opentelemetry.proto.profiles.v1development.Profile\x12\x12\n\nschema_url\x18\x03
\x01(\t\"\x86\x04\n\x07Profile\x12J\n\x0bsample_type\x18\x01
\x03(\x0b\x32\x35.opentelemetry.proto.profiles.v1development.ValueType\x12\x42\n\x06sample\x18\x02
\x03(\x0b\x32\x32.opentelemetry.proto.profiles.v1development.Sample\x12\x18\n\x10location_indices\x
18\x03 \x03(\x05\x12\x12\n\ntime_nanos\x18\x04
\x01(\x03\x12\x16\n\x0e\x64uration_nanos\x18\x05
\x01(\x03\x12J\n\x0bperiod_type\x18\x06
\x01(\x0b\x32\x35.opentelemetry.proto.profiles.v1development.ValueType\x12\x0e\n\x06period\x18\x07
\x01(\x03\x12\x1a\n\x12\x63omment_strindices\x18\x08
\x03(\x05\x12!\n\x19\x64\x65\x66\x61ult_sample_type_index\x18\t
\x01(\x05\x12\x12\n\nprofile_id\x18\n \x01(\x0c\x12
\n\x18\x64ropped_attributes_count\x18\x0b
\x01(\r\x12\x1f\n\x17original_payload_format\x18\x0c
\x01(\t\x12\x18\n\x10original_payload\x18\r
\x01(\x0c\x12\x19\n\x11\x61ttribute_indices\x18\x0e
\x03(\x05\"F\n\rAttributeUnit\x12\x1e\n\x16\x61ttribute_key_strindex\x18\x01
\x01(\x05\x12\x15\n\runit_strindex\x18\x02
\x01(\x05\")\n\x04Link\x12\x10\n\x08trace_id\x18\x01
\x01(\x0c\x12\x0f\n\x07span_id\x18\x02
\x01(\x0c\"\x9e\x01\n\tValueType\x12\x15\n\rtype_strindex\x18\x01
\x01(\x05\x12\x15\n\runit_strindex\x18\x02
\x01(\x05\x12\x63\n\x17\x61ggregation_temporality\x18\x03
\x01(\x0e\x32\x42.opent
elemetry.proto.profiles.v1development.AggregationTemporality\"\xb1\x01\n\x06Sample\x12\x1d\n\x15locations_start_index\x18\x01
\x01(\x05\x12\x18\n\x10locations_length\x18\x02
\x01(\x05\x12\r\n\x05value\x18\x03
\x03(\x03\x12\x19\n\x11\x61ttribute_indices\x18\x04
\x03(\x05\x12\x17\n\nlink_index\x18\x05
\x01(\x05H\x00\x88\x01\x01\x12\x1c\n\x14timestamps_unix_nano\x18\x06
\x03(\x04\x42\r\n\x0b_link_index\"\xe3\x01\n\x07Mapping\x12\x14\n\x0cmemory_start\x18\x01
\x01(\x04\x12\x14\n\x0cmemory_limit\x18\x02
\x01(\x04\x12\x13\n\x0b\x66ile_offset\x18\x03
\x01(\x04\x12\x19\n\x11\x66ilename_strindex\x18\x04
\x01(\x05\x12\x19\n\x11\x61ttribute_indices\x18\x05
\x03(\x05\x12\x15\n\rhas_functions\x18\x06
\x01(\x08\x12\x15\n\rhas_filenames\x18\x07
\x01(\x08\x12\x18\n\x10has_line_numbers\x18\x08
\x01(\x08\x12\x19\n\x11has_inline_frames\x18\t
\x01(\x08\"\xb7\x01\n\x08Location\x12\x1a\n\rmapping_index\x18\x01
\x01(\x05H\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x02
\x01(\x04\x12>\n\x04line\x18\x
03
\x03(\x0b\x32\x30.opentelemetry.proto.profiles.v1development.Line\x12\x11\n\tis_folded\x18\x04
\x01(\x08\x12\x19\n\x11\x61ttribute_indices\x18\x05
\x03(\x05\x42\x10\n\x0e_mapping_index\"<\n\x04Line\x12\x16\n\x0e\x66unction_index\x18\x01
\x01(\x05\x12\x0c\n\x04line\x18\x02 \x01(\x03\x12\x0e\n\x06\x63olumn\x18\x03
\x01(\x03\"n\n\x08\x46unction\x12\x15\n\rname_strindex\x18\x01
\x01(\x05\x12\x1c\n\x14system_name_strindex\x18\x02
\x01(\x05\x12\x19\n\x11\x66ilename_strindex\x18\x03
\x01(\x05\x12\x12\n\nstart_line\x18\x04
\x01(\x03*\x8c\x01\n\x16\x41ggregationTemporality\x12\'\n#AGGREGATION_TEMPORALITY_UNSPECIFIED\x10\x00\x12!\n\x1d\x41GGREGATION_TEMPORALITY_DELTA\x10\x01\x12&\n\"AGGREGATION_TEMPORALITY_CUMULATIVE\x10\x02\x42\xa4\x01\n-io.opentelemetry.proto.profiles.v1developmentB\rProfilesProtoP\x01Z5go.opentelemetry.io/proto/otlp/profiles/v1development\xaa\x02*OpenTelemetry.Proto.Profiles.V1Developmentb\x06proto3')
+DESCRIPTOR =
_descriptor_pool.Default().AddSerializedFile(b'\n9opentelemetry/proto/profiles/v1development/profiles.proto\x12*opentelemetry.proto.profiles.v1development\x1a*opentelemetry/proto/common/v1/common.proto\x1a.opentelemetry/proto/resource/v1/resource.proto\"\xf6\x03\n\x12ProfilesDictionary\x12J\n\rmapping_table\x18\x01
\x03(\x0b\x32\x33.opentelemetry.proto.profiles.v1development.Mapping\x12L\n\x0elocation_table\x18\x02
\x03(\x0b\x32\x34.opentelemetry.proto.profiles.v1development.Location\x12L\n\x0e\x66unction_table\x18\x03
\x03(\x0b\x32\x34.opentelemetry.proto.profiles.v1development.Function\x12\x44\n\nlink_table\x18\x04
\x03(\x0b\x32\x30.opentelemetry.proto.profiles.v1development.Link\x12\x14\n\x0cstring_table\x18\x05
\x03(\t\x12T\n\x0f\x61ttribute_table\x18\x06
\x03(\x0b\x32;.opentelemetry.proto.profiles.v1development.KeyValueAndUnit\x12\x46\n\x0bstack_table\x18\x07
\x03(\x0b\x32\x31.opentelemetry.proto.profiles.v1development.Stack\"\xbb\x01\n\x0cProfilesData\x12W\n\x11re
source_profiles\x18\x01
\x03(\x0b\x32<.opentelemetry.proto.profiles.v1development.ResourceProfiles\x12R\n\ndictionary\x18\x02
\x01(\x0b\x32>.opentelemetry.proto.profiles.v1development.ProfilesDictionary\"\xbe\x01\n\x10ResourceProfiles\x12;\n\x08resource\x18\x01
\x01(\x0b\x32).opentelemetry.proto.resource.v1.Resource\x12Q\n\x0escope_profiles\x18\x02
\x03(\x0b\x32\x39.opentelemetry.proto.profiles.v1development.ScopeProfiles\x12\x12\n\nschema_url\x18\x03
\x01(\tJ\x06\x08\xe8\x07\x10\xe9\x07\"\xae\x01\n\rScopeProfiles\x12\x42\n\x05scope\x18\x01
\x01(\x0b\x32\x33.opentelemetry.proto.common.v1.InstrumentationScope\x12\x45\n\x08profiles\x18\x02
\x03(\x0b\x32\x33.opentelemetry.proto.profiles.v1development.Profile\x12\x12\n\nschema_url\x18\x03
\x01(\t\"\xb1\x03\n\x07Profile\x12J\n\x0bsample_type\x18\x01
\x01(\x0b\x32\x35.opentelemetry.proto.profiles.v1development.ValueType\x12\x43\n\x07samples\x18\x02
\x03(\x0b\x32\x32.opentelemetry.proto.profiles.v1development.Sample\x12\x16\n\x0etime_unix_
nano\x18\x03 \x01(\x06\x12\x15\n\rduration_nano\x18\x04
\x01(\x04\x12J\n\x0bperiod_type\x18\x05
\x01(\x0b\x32\x35.opentelemetry.proto.profiles.v1development.ValueType\x12\x0e\n\x06period\x18\x06
\x01(\x03\x12\x12\n\nprofile_id\x18\x07 \x01(\x0c\x12
\n\x18\x64ropped_attributes_count\x18\x08
\x01(\r\x12\x1f\n\x17original_payload_format\x18\t
\x01(\t\x12\x18\n\x10original_payload\x18\n
\x01(\x0c\x12\x19\n\x11\x61ttribute_indices\x18\x0b
\x03(\x05\")\n\x04Link\x12\x10\n\x08trace_id\x18\x01
\x01(\x0c\x12\x0f\n\x07span_id\x18\x02
\x01(\x0c\"9\n\tValueType\x12\x15\n\rtype_strindex\x18\x01
\x01(\x05\x12\x15\n\runit_strindex\x18\x02
\x01(\x05\"z\n\x06Sample\x12\x13\n\x0bstack_index\x18\x01
\x01(\x05\x12\x0e\n\x06values\x18\x02
\x03(\x03\x12\x19\n\x11\x61ttribute_indices\x18\x03
\x03(\x05\x12\x12\n\nlink_index\x18\x04
\x01(\x05\x12\x1c\n\x14timestamps_unix_nano\x18\x05
\x03(\x06\"\x80\x01\n\x07Mapping\x12\x14\n\x0cmemory_start\x18\x01
\x01(\x04\x12\x14\n\x0cmemory_limit\x18\x02 \x01(\x04\x12\
x13\n\x0b\x66ile_offset\x18\x03
\x01(\x04\x12\x19\n\x11\x66ilename_strindex\x18\x04
\x01(\x05\x12\x19\n\x11\x61ttribute_indices\x18\x05
\x03(\x05\"!\n\x05Stack\x12\x18\n\x10location_indices\x18\x01
\x03(\x05\"\x8e\x01\n\x08Location\x12\x15\n\rmapping_index\x18\x01
\x01(\x05\x12\x0f\n\x07\x61\x64\x64ress\x18\x02
\x01(\x04\x12?\n\x05lines\x18\x03
\x03(\x0b\x32\x30.opentelemetry.proto.profiles.v1development.Line\x12\x19\n\x11\x61ttribute_indices\x18\x04
\x03(\x05\"<\n\x04Line\x12\x16\n\x0e\x66unction_index\x18\x01
\x01(\x05\x12\x0c\n\x04line\x18\x02 \x01(\x03\x12\x0e\n\x06\x63olumn\x18\x03
\x01(\x03\"n\n\x08\x46unction\x12\x15\n\rname_strindex\x18\x01
\x01(\x05\x12\x1c\n\x14system_name_strindex\x18\x02
\x01(\x05\x12\x19\n\x11\x66ilename_strindex\x18\x03
\x01(\x05\x12\x12\n\nstart_line\x18\x04
\x01(\x03\"v\n\x0fKeyValueAndUnit\x12\x14\n\x0ckey_strindex\x18\x01
\x01(\x05\x12\x36\n\x05value\x18\x02
\x01(\x0b\x32\'.opentelemetry.proto.common.v1.AnyValue\x12\x15\n\runit_strindex\x18\x03
\x0
1(\x05\x42\xa4\x01\n-io.opentelemetry.proto.profiles.v1developmentB\rProfilesProtoP\x01Z5go.opentelemetry.io/proto/otlp/profiles/v1development\xaa\x02*OpenTelemetry.Proto.Profiles.V1Developmentb\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -24,32 +24,32 @@
if not _descriptor._USE_C_DESCRIPTORS:
_globals['DESCRIPTOR']._loaded_options = None
_globals['DESCRIPTOR']._serialized_options =
b'\n-io.opentelemetry.proto.profiles.v1developmentB\rProfilesProtoP\001Z5go.opentelemetry.io/proto/otlp/profiles/v1development\252\002*OpenTelemetry.Proto.Profiles.V1Development'
- _globals['_AGGREGATIONTEMPORALITY']._serialized_start=2822
- _globals['_AGGREGATIONTEMPORALITY']._serialized_end=2962
_globals['_PROFILESDICTIONARY']._serialized_start=198
- _globals['_PROFILESDICTIONARY']._serialized_end=692
- _globals['_PROFILESDATA']._serialized_start=695
- _globals['_PROFILESDATA']._serialized_end=882
- _globals['_RESOURCEPROFILES']._serialized_start=885
- _globals['_RESOURCEPROFILES']._serialized_end=1075
- _globals['_SCOPEPROFILES']._serialized_start=1078
- _globals['_SCOPEPROFILES']._serialized_end=1252
- _globals['_PROFILE']._serialized_start=1255
- _globals['_PROFILE']._serialized_end=1773
- _globals['_ATTRIBUTEUNIT']._serialized_start=1775
- _globals['_ATTRIBUTEUNIT']._serialized_end=1845
- _globals['_LINK']._serialized_start=1847
- _globals['_LINK']._serialized_end=1888
- _globals['_VALUETYPE']._serialized_start=1891
- _globals['_VALUETYPE']._serialized_end=2049
- _globals['_SAMPLE']._serialized_start=2052
- _globals['_SAMPLE']._serialized_end=2229
- _globals['_MAPPING']._serialized_start=2232
- _globals['_MAPPING']._serialized_end=2459
- _globals['_LOCATION']._serialized_start=2462
- _globals['_LOCATION']._serialized_end=2645
- _globals['_LINE']._serialized_start=2647
- _globals['_LINE']._serialized_end=2707
- _globals['_FUNCTION']._serialized_start=2709
- _globals['_FUNCTION']._serialized_end=2819
+ _globals['_PROFILESDICTIONARY']._serialized_end=700
+ _globals['_PROFILESDATA']._serialized_start=703
+ _globals['_PROFILESDATA']._serialized_end=890
+ _globals['_RESOURCEPROFILES']._serialized_start=893
+ _globals['_RESOURCEPROFILES']._serialized_end=1083
+ _globals['_SCOPEPROFILES']._serialized_start=1086
+ _globals['_SCOPEPROFILES']._serialized_end=1260
+ _globals['_PROFILE']._serialized_start=1263
+ _globals['_PROFILE']._serialized_end=1696
+ _globals['_LINK']._serialized_start=1698
+ _globals['_LINK']._serialized_end=1739
+ _globals['_VALUETYPE']._serialized_start=1741
+ _globals['_VALUETYPE']._serialized_end=1798
+ _globals['_SAMPLE']._serialized_start=1800
+ _globals['_SAMPLE']._serialized_end=1922
+ _globals['_MAPPING']._serialized_start=1925
+ _globals['_MAPPING']._serialized_end=2053
+ _globals['_STACK']._serialized_start=2055
+ _globals['_STACK']._serialized_end=2088
+ _globals['_LOCATION']._serialized_start=2091
+ _globals['_LOCATION']._serialized_end=2233
+ _globals['_LINE']._serialized_start=2235
+ _globals['_LINE']._serialized_end=2295
+ _globals['_FUNCTION']._serialized_start=2297
+ _globals['_FUNCTION']._serialized_end=2407
+ _globals['_KEYVALUEANDUNIT']._serialized_start=2409
+ _globals['_KEYVALUEANDUNIT']._serialized_end=2527
# @@protoc_insertion_point(module_scope)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_proto-1.39.1/src/opentelemetry/proto/profiles/v1development/profiles_pb2.pyi
new/opentelemetry_proto-1.40.0/src/opentelemetry/proto/profiles/v1development/profiles_pb2.pyi
---
old/opentelemetry_proto-1.39.1/src/opentelemetry/proto/profiles/v1development/profiles_pb2.pyi
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_proto-1.40.0/src/opentelemetry/proto/profiles/v1development/profiles_pb2.pyi
2020-02-02 01:00:00.000000000 +0100
@@ -35,160 +35,18 @@
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
-import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import opentelemetry.proto.common.v1.common_pb2
import opentelemetry.proto.resource.v1.resource_pb2
import sys
-import typing
-if sys.version_info >= (3, 10):
+if sys.version_info >= (3, 8):
import typing as typing_extensions
else:
import typing_extensions
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
-class _AggregationTemporality:
- ValueType = typing.NewType("ValueType", builtins.int)
- V: typing_extensions.TypeAlias = ValueType
-
-class
_AggregationTemporalityEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_AggregationTemporality.ValueType],
builtins.type):
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
- AGGREGATION_TEMPORALITY_UNSPECIFIED: _AggregationTemporality.ValueType # 0
- """UNSPECIFIED is the default AggregationTemporality, it MUST not be
used."""
- AGGREGATION_TEMPORALITY_DELTA: _AggregationTemporality.ValueType # 1
- """* DELTA is an AggregationTemporality for a profiler which reports
- changes since last report time. Successive metrics contain aggregation of
- values from continuous and non-overlapping intervals.
-
- The values for a DELTA metric are based only on the time interval
- associated with one measurement cycle. There is no dependency on
- previous measurements like is the case for CUMULATIVE metrics.
-
- For example, consider a system measuring the number of requests that
- it receives and reports the sum of these requests every second as a
- DELTA metric:
-
- 1. The system starts receiving at time=t_0.
- 2. A request is received, the system measures 1 request.
- 3. A request is received, the system measures 1 request.
- 4. A request is received, the system measures 1 request.
- 5. The 1 second collection cycle ends. A metric is exported for the
- number of requests received over the interval of time t_0 to
- t_0+1 with a value of 3.
- 6. A request is received, the system measures 1 request.
- 7. A request is received, the system measures 1 request.
- 8. The 1 second collection cycle ends. A metric is exported for the
- number of requests received over the interval of time t_0+1 to
- t_0+2 with a value of 2.
- """
- AGGREGATION_TEMPORALITY_CUMULATIVE: _AggregationTemporality.ValueType # 2
- """* CUMULATIVE is an AggregationTemporality for a profiler which
- reports changes since a fixed start time. This means that current values
- of a CUMULATIVE metric depend on all previous measurements since the
- start time. Because of this, the sender is required to retain this state
- in some form. If this state is lost or invalidated, the CUMULATIVE metric
- values MUST be reset and a new fixed start time following the last
- reported measurement time sent MUST be used.
-
- For example, consider a system measuring the number of requests that
- it receives and reports the sum of these requests every second as a
- CUMULATIVE metric:
-
- 1. The system starts receiving at time=t_0.
- 2. A request is received, the system measures 1 request.
- 3. A request is received, the system measures 1 request.
- 4. A request is received, the system measures 1 request.
- 5. The 1 second collection cycle ends. A metric is exported for the
- number of requests received over the interval of time t_0 to
- t_0+1 with a value of 3.
- 6. A request is received, the system measures 1 request.
- 7. A request is received, the system measures 1 request.
- 8. The 1 second collection cycle ends. A metric is exported for the
- number of requests received over the interval of time t_0 to
- t_0+2 with a value of 5.
- 9. The system experiences a fault and loses state.
- 10. The system recovers and resumes receiving at time=t_1.
- 11. A request is received, the system measures 1 request.
- 12. The 1 second collection cycle ends. A metric is exported for the
- number of requests received over the interval of time t_1 to
- t_1+1 with a value of 1.
-
- Note: Even though, when reporting changes since last report time, using
- CUMULATIVE is valid, it is not recommended.
- """
-
-class AggregationTemporality(_AggregationTemporality,
metaclass=_AggregationTemporalityEnumTypeWrapper):
- """Specifies the method of aggregating metric values, either DELTA (change
since last report)
- or CUMULATIVE (total since a fixed start time).
- """
-
-AGGREGATION_TEMPORALITY_UNSPECIFIED: AggregationTemporality.ValueType # 0
-"""UNSPECIFIED is the default AggregationTemporality, it MUST not be used."""
-AGGREGATION_TEMPORALITY_DELTA: AggregationTemporality.ValueType # 1
-"""* DELTA is an AggregationTemporality for a profiler which reports
-changes since last report time. Successive metrics contain aggregation of
-values from continuous and non-overlapping intervals.
-
-The values for a DELTA metric are based only on the time interval
-associated with one measurement cycle. There is no dependency on
-previous measurements like is the case for CUMULATIVE metrics.
-
-For example, consider a system measuring the number of requests that
-it receives and reports the sum of these requests every second as a
-DELTA metric:
-
-1. The system starts receiving at time=t_0.
-2. A request is received, the system measures 1 request.
-3. A request is received, the system measures 1 request.
-4. A request is received, the system measures 1 request.
-5. The 1 second collection cycle ends. A metric is exported for the
-number of requests received over the interval of time t_0 to
-t_0+1 with a value of 3.
-6. A request is received, the system measures 1 request.
-7. A request is received, the system measures 1 request.
-8. The 1 second collection cycle ends. A metric is exported for the
-number of requests received over the interval of time t_0+1 to
-t_0+2 with a value of 2.
-"""
-AGGREGATION_TEMPORALITY_CUMULATIVE: AggregationTemporality.ValueType # 2
-"""* CUMULATIVE is an AggregationTemporality for a profiler which
-reports changes since a fixed start time. This means that current values
-of a CUMULATIVE metric depend on all previous measurements since the
-start time. Because of this, the sender is required to retain this state
-in some form. If this state is lost or invalidated, the CUMULATIVE metric
-values MUST be reset and a new fixed start time following the last
-reported measurement time sent MUST be used.
-
-For example, consider a system measuring the number of requests that
-it receives and reports the sum of these requests every second as a
-CUMULATIVE metric:
-
-1. The system starts receiving at time=t_0.
-2. A request is received, the system measures 1 request.
-3. A request is received, the system measures 1 request.
-4. A request is received, the system measures 1 request.
-5. The 1 second collection cycle ends. A metric is exported for the
-number of requests received over the interval of time t_0 to
-t_0+1 with a value of 3.
-6. A request is received, the system measures 1 request.
-7. A request is received, the system measures 1 request.
-8. The 1 second collection cycle ends. A metric is exported for the
-number of requests received over the interval of time t_0 to
-t_0+2 with a value of 5.
-9. The system experiences a fault and loses state.
-10. The system recovers and resumes receiving at time=t_1.
-11. A request is received, the system measures 1 request.
-12. The 1 second collection cycle ends. A metric is exported for the
-number of requests received over the interval of time t_1 to
-t_1+1 with a value of 1.
-
-Note: Even though, when reporting changes since last report time, using
-CUMULATIVE is valid, it is not recommended.
-"""
-global___AggregationTemporality = AggregationTemporality
-
@typing_extensions.final
class ProfilesDictionary(google.protobuf.message.Message):
""" Relationships Diagram
@@ -209,7 +67,7 @@
│ ScopeProfiles │
└──────────────────┘
│
- │ 1-1
+ │ 1-n
▼
┌──────────────────┐
│ Profile │
@@ -217,15 +75,21 @@
│ n-1
│ 1-n ┌───────────────────────────────────────┐
▼ │ ▽
- ┌──────────────────┐ 1-n ┌──────────────┐ ┌──────────┐
- │ Sample │ ──────▷ │ KeyValue │ │ Link │
- └──────────────────┘ └──────────────┘ └──────────┘
- │ 1-n △ △
- │ 1-n ┌─────────────────┘ │ 1-n
- ▽ │ │
- ┌──────────────────┐ n-1 ┌──────────────┐
- │ Location │ ──────▷ │ Mapping │
- └──────────────────┘ └──────────────┘
+ ┌──────────────────┐ 1-n ┌─────────────────┐ ┌──────────┐
+ │ Sample │ ──────▷ │ KeyValueAndUnit │ │ Link │
+ └──────────────────┘ └─────────────────┘ └──────────┘
+ │ △ △
+ │ n-1 │ │ 1-n
+ ▽ │ │
+ ┌──────────────────┐ │ │
+ │ Stack │ │ │
+ └──────────────────┘ │ │
+ │ 1-n │ │
+ │ 1-n ┌────────────────┘ │
+ ▽ │ │
+ ┌──────────────────┐ n-1 ┌─────────────┐
+ │ Location │ ──────▷ │ Mapping │
+ └──────────────────┘ └─────────────┘
│
│ 1-n
▼
@@ -240,7 +104,28 @@
└──────────────────┘
ProfilesDictionary represents the profiles data shared across the
- entire message being sent.
+ entire message being sent. The following applies to all fields in this
+ message:
+
+ - A dictionary is an array of dictionary items. Users of the dictionary
+ compactly reference the items using the index within the array.
+
+ - A dictionary MUST have a zero value encoded as the first element. This
+ allows for _index fields pointing into the dictionary to use a 0 pointer
+ value to indicate 'null' / 'not set'. Unless otherwise defined, a 'zero
+ value' message value is one with all default field values, so as to
+ minimize wire encoded size.
+
+ - There SHOULD NOT be dupes in a dictionary. The identity of dictionary
+ items is based on their value, recursively as needed. If a particular
+ implementation does emit duplicated items, it MUST NOT attempt to give
them
+ meaning based on the index or order. A profile processor may remove
+ duplicate items and this MUST NOT have any observable effects for
+ consumers.
+
+ - There SHOULD NOT be orphaned (unreferenced) items in a dictionary. A
+ profile processor may remove ("garbage-collect") orphaned items and this
+ MUST NOT have any observable effects for consumers.
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -251,32 +136,67 @@
LINK_TABLE_FIELD_NUMBER: builtins.int
STRING_TABLE_FIELD_NUMBER: builtins.int
ATTRIBUTE_TABLE_FIELD_NUMBER: builtins.int
- ATTRIBUTE_UNITS_FIELD_NUMBER: builtins.int
+ STACK_TABLE_FIELD_NUMBER: builtins.int
@property
def mapping_table(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Mapping]:
"""Mappings from address ranges to the image/binary/library mapped
into that address range referenced by locations via
Location.mapping_index.
+
+ mapping_table[0] must always be zero value (Mapping{}) and present.
"""
@property
def location_table(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Location]:
- """Locations referenced by samples via Profile.location_indices."""
+ """Locations referenced by samples via Stack.location_indices.
+
+ location_table[0] must always be zero value (Location{}) and present.
+ """
@property
def function_table(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Function]:
- """Functions referenced by locations via Line.function_index."""
+ """Functions referenced by locations via Line.function_index.
+
+ function_table[0] must always be zero value (Function{}) and present.
+ """
@property
def link_table(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Link]:
- """Links referenced by samples via Sample.link_index."""
+ """Links referenced by samples via Sample.link_index.
+
+ link_table[0] must always be zero value (Link{}) and present.
+ """
@property
def string_table(self) ->
google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
"""A common table for strings referenced by various messages.
- string_table[0] must always be "".
+
+ string_table[0] must always be "" and present.
"""
@property
- def attribute_table(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[opentelemetry.proto.common.v1.common_pb2.KeyValue]:
- """A common table for attributes referenced by various messages."""
+ def attribute_table(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___KeyValueAndUnit]:
+ """A common table for attributes referenced by the Profile, Sample,
Mapping
+ and Location messages below through attribute_indices field. Each
entry is
+ a key/value pair with an optional unit. Since this is a dictionary
table,
+ multiple entries with the same key may be present, unlike direct
attribute
+ tables like Resource.attributes. The referencing attribute_indices
fields,
+ though, do maintain the key uniqueness requirement.
+
+ It's recommended to use attributes for variables with bounded
cardinality,
+ such as categorical variables
+ (https://en.wikipedia.org/wiki/Categorical_variable). Using an
attribute of
+ a floating point type (e.g., CPU time) in a sample can quickly make
every
+ attribute value unique, defeating the purpose of the dictionary and
+ impractically increasing the profile size.
+
+ Examples of attributes:
+ "/http/user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X
10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98
Safari/537.36"
+ "abc.com/myattribute": true
+ "allocation_size": 128 bytes
+
+ attribute_table[0] must always be zero value (KeyValueAndUnit{}) and
present.
+ """
@property
- def attribute_units(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AttributeUnit]:
- """Represents a mapping between Attribute Keys and Units."""
+ def stack_table(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Stack]:
+ """Stacks referenced by samples via Sample.stack_index.
+
+ stack_table[0] must always be zero value (Stack{}) and present.
+ """
def __init__(
self,
*,
@@ -285,10 +205,10 @@
function_table: collections.abc.Iterable[global___Function] | None =
...,
link_table: collections.abc.Iterable[global___Link] | None = ...,
string_table: collections.abc.Iterable[builtins.str] | None = ...,
- attribute_table:
collections.abc.Iterable[opentelemetry.proto.common.v1.common_pb2.KeyValue] |
None = ...,
- attribute_units: collections.abc.Iterable[global___AttributeUnit] |
None = ...,
+ attribute_table: collections.abc.Iterable[global___KeyValueAndUnit] |
None = ...,
+ stack_table: collections.abc.Iterable[global___Stack] | None = ...,
) -> None: ...
- def ClearField(self, field_name:
typing_extensions.Literal["attribute_table", b"attribute_table",
"attribute_units", b"attribute_units", "function_table", b"function_table",
"link_table", b"link_table", "location_table", b"location_table",
"mapping_table", b"mapping_table", "string_table", b"string_table"]) -> None:
...
+ def ClearField(self, field_name:
typing_extensions.Literal["attribute_table", b"attribute_table",
"function_table", b"function_table", "link_table", b"link_table",
"location_table", b"location_table", "mapping_table", b"mapping_table",
"stack_table", b"stack_table", "string_table", b"string_table"]) -> None: ...
global___ProfilesDictionary = ProfilesDictionary
@@ -319,6 +239,8 @@
from non-containerized processes.
Other resource groupings are possible as well and clarified via
Resource.attributes and semantic conventions.
+ Tools that visualize profiles should prefer displaying
+ resources_profiles[0].scope_profiles[0].profiles[0] by default.
"""
@property
def dictionary(self) -> global___ProfilesDictionary:
@@ -394,7 +316,8 @@
is recorded in. Notably, the last part of the URL path is the version
number of the
schema: http[s]://server[:port]/path/<version>. To learn more about Schema
URL see
https://opentelemetry.io/docs/specs/otel/schemas/#schema-url
- This schema_url applies to all profiles in the "profiles" field.
+ This schema_url applies to the data in the "scope" field and all profiles
in the
+ "profiles" field.
"""
def __init__(
self,
@@ -422,21 +345,20 @@
that is most useful to humans. There should be enough
information present to determine the original sampled values.
- - On-disk, the serialized proto must be gzip-compressed.
-
- The profile is represented as a set of samples, where each sample
- references a sequence of locations, and where each location belongs
+ references a stack trace which is a list of locations, each belonging
to a mapping.
- - There is a N->1 relationship from sample.location_id entries to
- locations. For every sample.location_id entry there must be a
+ - There is a N->1 relationship from Stack.location_indices entries to
+ locations. For every Stack.location_indices entry there must be a
unique Location with that index.
- There is an optional N->1 relationship from locations to
mappings. For every nonzero Location.mapping_id there must be a
unique Mapping with that index.
- Represents a complete profile, including sample types, samples,
- mappings to binaries, locations, functions, string table, and additional
metadata.
- It modifies and annotates pprof Profile with OpenTelemetry specific fields.
+ Represents a complete profile, including sample types, samples, mappings to
+ binaries, stacks, locations, functions, string table, and additional
+ metadata. It modifies and annotates pprof Profile with OpenTelemetry
+ specific fields.
Note that whilst fields in this message retain the name and field id from
pprof in most cases
for ease of understanding data migration, it is not intended that
pprof:Profile and
@@ -446,43 +368,34 @@
DESCRIPTOR: google.protobuf.descriptor.Descriptor
SAMPLE_TYPE_FIELD_NUMBER: builtins.int
- SAMPLE_FIELD_NUMBER: builtins.int
- LOCATION_INDICES_FIELD_NUMBER: builtins.int
- TIME_NANOS_FIELD_NUMBER: builtins.int
- DURATION_NANOS_FIELD_NUMBER: builtins.int
+ SAMPLES_FIELD_NUMBER: builtins.int
+ TIME_UNIX_NANO_FIELD_NUMBER: builtins.int
+ DURATION_NANO_FIELD_NUMBER: builtins.int
PERIOD_TYPE_FIELD_NUMBER: builtins.int
PERIOD_FIELD_NUMBER: builtins.int
- COMMENT_STRINDICES_FIELD_NUMBER: builtins.int
- DEFAULT_SAMPLE_TYPE_INDEX_FIELD_NUMBER: builtins.int
PROFILE_ID_FIELD_NUMBER: builtins.int
DROPPED_ATTRIBUTES_COUNT_FIELD_NUMBER: builtins.int
ORIGINAL_PAYLOAD_FORMAT_FIELD_NUMBER: builtins.int
ORIGINAL_PAYLOAD_FIELD_NUMBER: builtins.int
ATTRIBUTE_INDICES_FIELD_NUMBER: builtins.int
@property
- def sample_type(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ValueType]:
- """A description of the samples associated with each Sample.value.
- For a cpu profile this might be:
- [["cpu","nanoseconds"]] or [["wall","seconds"]] or
[["syscall","count"]]
+ def sample_type(self) -> global___ValueType:
+ """The type and unit of all Sample.values in this profile.
+ For a cpu or off-cpu profile this might be:
+ ["cpu","nanoseconds"] or ["off_cpu","nanoseconds"]
For a heap profile, this might be:
- [["allocations","count"], ["space","bytes"]],
- If one of the values represents the number of events represented
- by the sample, by convention it should be at index 0 and use
- sample_type.unit == "count".
+ ["allocated_objects","count"] or ["allocated_space","bytes"],
"""
@property
- def sample(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Sample]:
+ def samples(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Sample]:
"""The set of samples recorded in this profile."""
- @property
- def location_indices(self) ->
google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
- """References to locations in ProfilesDictionary.location_table."""
- time_nanos: builtins.int
- """The following fields 4-14 are informational, do not affect
+ time_unix_nano: builtins.int
+ """The following fields 3-12 are informational, do not affect
interpretation of results.
Time of collection (UTC) represented as nanoseconds past the epoch.
"""
- duration_nanos: builtins.int
+ duration_nano: builtins.int
"""Duration of the profile, if a duration makes sense."""
@property
def period_type(self) -> global___ValueType:
@@ -491,100 +404,68 @@
"""
period: builtins.int
"""The number of events between sampled occurrences."""
- @property
- def comment_strindices(self) ->
google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
- """Free-form text associated with the profile. The text is displayed
as is
- to the user by the tools that read profiles (e.g. by pprof). This field
- should not be used to store any machine-readable information, it is
only
- for human-friendly content. The profile must stay functional if this
field
- is cleaned.
- Indices into ProfilesDictionary.string_table.
- """
- default_sample_type_index: builtins.int
- """Index into the sample_type array to the default sample type."""
profile_id: builtins.bytes
"""A globally unique identifier for a profile. The ID is a 16-byte array.
An ID with
- all zeroes is considered invalid.
-
- This field is required.
+ all zeroes is considered invalid. It may be used for deduplication and
signal
+ correlation purposes. It is acceptable to treat two profiles with
different values
+ in this field as not equal, even if they represented the same object at an
earlier
+ time.
+ This field is optional; an ID may be assigned to an ID-less profile in a
later step.
"""
dropped_attributes_count: builtins.int
- """dropped_attributes_count is the number of attributes that were
discarded. Attributes
+ """The number of attributes that were discarded. Attributes
can be discarded because their keys are too long or because there are too
many
attributes. If this value is 0, then no attributes were dropped.
"""
original_payload_format: builtins.str
- """Specifies format of the original payload. Common values are defined in
semantic conventions. [required if original_payload is present]"""
+ """The original payload format. See also original_payload. Optional, but
the
+ format and the bytes must be set or unset together.
+
+ The allowed values for the format string are defined by the OpenTelemetry
+ specification. Some examples are "jfr", "pprof", "linux_perf".
+
+ The original payload may be optionally provided when the conversion to the
+ OLTP format was done from a different format with some loss of the fidelity
+ and the receiver may want to store the original payload to allow future
+ lossless export or reinterpretation. Some examples of the original format
+ are JFR (Java Flight Recorder), pprof, Linux perf.
+
+ Even when the original payload is in a format that is semantically close to
+ OTLP, such as pprof, a conversion may still be lossy in some cases (e.g. if
+ the pprof file contains custom extensions or conventions).
+
+ The original payload can be large in size, so including the original
+ payload should be configurable by the profiler or collector options. The
+ default behavior should be to not include the original payload.
+ """
original_payload: builtins.bytes
- """Original payload can be stored in this field. This can be useful for
users who want to get the original payload.
- Formats such as JFR are highly extensible and can contain more information
than what is defined in this spec.
- Inclusion of original payload should be configurable by the user. Default
behavior should be to not include the original payload.
- If the original payload is in pprof format, it SHOULD not be included in
this field.
- The field is optional, however if it is present then equivalent converted
data should be populated in other fields
- of this message as far as is practicable.
+ """The original payload bytes. See also original_payload_format. Optional,
but
+ format and the bytes must be set or unset together.
"""
@property
def attribute_indices(self) ->
google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
- """References to attributes in attribute_table. [optional]
- It is a collection of key/value pairs. Note, global attributes
- like server name can be set using the resource API. Examples of
attributes:
-
- "/http/user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X
10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98
Safari/537.36"
- "/http/server_latency": 300
- "abc.com/myattribute": true
- "abc.com/score": 10.239
-
- The OpenTelemetry API specification further restricts the allowed
value types:
-
https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/common/README.md#attribute
- Attribute keys MUST be unique (it is not allowed to have more than one
- attribute with the same key).
- """
+ """References to attributes in attribute_table. [optional]"""
def __init__(
self,
*,
- sample_type: collections.abc.Iterable[global___ValueType] | None = ...,
- sample: collections.abc.Iterable[global___Sample] | None = ...,
- location_indices: collections.abc.Iterable[builtins.int] | None = ...,
- time_nanos: builtins.int = ...,
- duration_nanos: builtins.int = ...,
+ sample_type: global___ValueType | None = ...,
+ samples: collections.abc.Iterable[global___Sample] | None = ...,
+ time_unix_nano: builtins.int = ...,
+ duration_nano: builtins.int = ...,
period_type: global___ValueType | None = ...,
period: builtins.int = ...,
- comment_strindices: collections.abc.Iterable[builtins.int] | None =
...,
- default_sample_type_index: builtins.int = ...,
profile_id: builtins.bytes = ...,
dropped_attributes_count: builtins.int = ...,
original_payload_format: builtins.str = ...,
original_payload: builtins.bytes = ...,
attribute_indices: collections.abc.Iterable[builtins.int] | None = ...,
) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["period_type",
b"period_type"]) -> builtins.bool: ...
- def ClearField(self, field_name:
typing_extensions.Literal["attribute_indices", b"attribute_indices",
"comment_strindices", b"comment_strindices", "default_sample_type_index",
b"default_sample_type_index", "dropped_attributes_count",
b"dropped_attributes_count", "duration_nanos", b"duration_nanos",
"location_indices", b"location_indices", "original_payload",
b"original_payload", "original_payload_format", b"original_payload_format",
"period", b"period", "period_type", b"period_type", "profile_id",
b"profile_id", "sample", b"sample", "sample_type", b"sample_type",
"time_nanos", b"time_nanos"]) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["period_type",
b"period_type", "sample_type", b"sample_type"]) -> builtins.bool: ...
+ def ClearField(self, field_name:
typing_extensions.Literal["attribute_indices", b"attribute_indices",
"dropped_attributes_count", b"dropped_attributes_count", "duration_nano",
b"duration_nano", "original_payload", b"original_payload",
"original_payload_format", b"original_payload_format", "period", b"period",
"period_type", b"period_type", "profile_id", b"profile_id", "sample_type",
b"sample_type", "samples", b"samples", "time_unix_nano", b"time_unix_nano"]) ->
None: ...
global___Profile = Profile
@typing_extensions.final
-class AttributeUnit(google.protobuf.message.Message):
- """Represents a mapping between Attribute Keys and Units."""
-
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
-
- ATTRIBUTE_KEY_STRINDEX_FIELD_NUMBER: builtins.int
- UNIT_STRINDEX_FIELD_NUMBER: builtins.int
- attribute_key_strindex: builtins.int
- """Index into string table."""
- unit_strindex: builtins.int
- """Index into string table."""
- def __init__(
- self,
- *,
- attribute_key_strindex: builtins.int = ...,
- unit_strindex: builtins.int = ...,
- ) -> None: ...
- def ClearField(self, field_name:
typing_extensions.Literal["attribute_key_strindex", b"attribute_key_strindex",
"unit_strindex", b"unit_strindex"]) -> None: ...
-
-global___AttributeUnit = AttributeUnit
-
-@typing_extensions.final
class Link(google.protobuf.message.Message):
"""A pointer from a profile Sample to a trace Span.
Connects a profile sample to a trace span, identified by unique trace and
span IDs.
@@ -612,83 +493,86 @@
@typing_extensions.final
class ValueType(google.protobuf.message.Message):
- """ValueType describes the type and units of a value, with an optional
aggregation temporality."""
+ """ValueType describes the type and units of a value."""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
TYPE_STRINDEX_FIELD_NUMBER: builtins.int
UNIT_STRINDEX_FIELD_NUMBER: builtins.int
- AGGREGATION_TEMPORALITY_FIELD_NUMBER: builtins.int
type_strindex: builtins.int
"""Index into ProfilesDictionary.string_table."""
unit_strindex: builtins.int
"""Index into ProfilesDictionary.string_table."""
- aggregation_temporality: global___AggregationTemporality.ValueType
def __init__(
self,
*,
type_strindex: builtins.int = ...,
unit_strindex: builtins.int = ...,
- aggregation_temporality: global___AggregationTemporality.ValueType =
...,
) -> None: ...
- def ClearField(self, field_name:
typing_extensions.Literal["aggregation_temporality",
b"aggregation_temporality", "type_strindex", b"type_strindex", "unit_strindex",
b"unit_strindex"]) -> None: ...
+ def ClearField(self, field_name:
typing_extensions.Literal["type_strindex", b"type_strindex", "unit_strindex",
b"unit_strindex"]) -> None: ...
global___ValueType = ValueType
@typing_extensions.final
class Sample(google.protobuf.message.Message):
- """Each Sample records values encountered in some program
- context. The program context is typically a stack trace, perhaps
- augmented with auxiliary information like the thread-id, some
- indicator of a higher level request being handled etc.
+ """Each Sample records values encountered in some program context. The
program
+ context is typically a stack trace, perhaps augmented with auxiliary
+ information like the thread-id, some indicator of a higher level request
+ being handled etc.
+
+ A Sample MUST have have at least one values or timestamps_unix_nano entry.
If
+ both fields are populated, they MUST contain the same number of elements,
and
+ the elements at the same index MUST refer to the same event.
+
+ Examples of different ways of representing a sample with the total value
of 10:
+
+ Report of a stacktrace at 10 timestamps (consumers must assume the value
is 1 for each point):
+ values: []
+ timestamps_unix_nano: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+
+ Report of a stacktrace with an aggregated value without timestamps:
+ values: [10]
+ timestamps_unix_nano: []
+
+ Report of a stacktrace at 4 timestamps where each point records a specific
value:
+ values: [2, 2, 3, 3]
+ timestamps_unix_nano: [1, 2, 3, 4]
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
- LOCATIONS_START_INDEX_FIELD_NUMBER: builtins.int
- LOCATIONS_LENGTH_FIELD_NUMBER: builtins.int
- VALUE_FIELD_NUMBER: builtins.int
+ STACK_INDEX_FIELD_NUMBER: builtins.int
+ VALUES_FIELD_NUMBER: builtins.int
ATTRIBUTE_INDICES_FIELD_NUMBER: builtins.int
LINK_INDEX_FIELD_NUMBER: builtins.int
TIMESTAMPS_UNIX_NANO_FIELD_NUMBER: builtins.int
- locations_start_index: builtins.int
- """locations_start_index along with locations_length refers to to a slice
of locations in Profile.location_indices."""
- locations_length: builtins.int
- """locations_length along with locations_start_index refers to a slice of
locations in Profile.location_indices.
- Supersedes location_index.
- """
+ stack_index: builtins.int
+ """Reference to stack in ProfilesDictionary.stack_table."""
@property
- def value(self) ->
google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
- """The type and unit of each value is defined by the corresponding
- entry in Profile.sample_type. All samples must have the same
- number of values, the same as the length of Profile.sample_type.
- When aggregating multiple samples into a single sample, the
- result has a list of values that is the element-wise sum of the
- lists of the originals.
- """
+ def values(self) ->
google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
+ """The type and unit of each value is defined by
Profile.sample_type."""
@property
def attribute_indices(self) ->
google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
"""References to attributes in ProfilesDictionary.attribute_table.
[optional]"""
link_index: builtins.int
- """Reference to link in ProfilesDictionary.link_table. [optional]"""
+ """Reference to link in ProfilesDictionary.link_table. [optional]
+ It can be unset / set to 0 if no link exists, as link_table[0] is always a
'null' default value.
+ """
@property
def timestamps_unix_nano(self) ->
google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
- """Timestamps associated with Sample represented in nanoseconds. These
timestamps are expected
- to fall within the Profile's time range. [optional]
+ """Timestamps associated with Sample represented in nanoseconds. These
+ timestamps should fall within the Profile's time range.
"""
def __init__(
self,
*,
- locations_start_index: builtins.int = ...,
- locations_length: builtins.int = ...,
- value: collections.abc.Iterable[builtins.int] | None = ...,
+ stack_index: builtins.int = ...,
+ values: collections.abc.Iterable[builtins.int] | None = ...,
attribute_indices: collections.abc.Iterable[builtins.int] | None = ...,
- link_index: builtins.int | None = ...,
+ link_index: builtins.int = ...,
timestamps_unix_nano: collections.abc.Iterable[builtins.int] | None =
...,
) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["_link_index",
b"_link_index", "link_index", b"link_index"]) -> builtins.bool: ...
- def ClearField(self, field_name: typing_extensions.Literal["_link_index",
b"_link_index", "attribute_indices", b"attribute_indices", "link_index",
b"link_index", "locations_length", b"locations_length",
"locations_start_index", b"locations_start_index", "timestamps_unix_nano",
b"timestamps_unix_nano", "value", b"value"]) -> None: ...
- def WhichOneof(self, oneof_group: typing_extensions.Literal["_link_index",
b"_link_index"]) -> typing_extensions.Literal["link_index"] | None: ...
+ def ClearField(self, field_name:
typing_extensions.Literal["attribute_indices", b"attribute_indices",
"link_index", b"link_index", "stack_index", b"stack_index",
"timestamps_unix_nano", b"timestamps_unix_nano", "values", b"values"]) -> None:
...
global___Sample = Sample
@@ -705,10 +589,6 @@
FILE_OFFSET_FIELD_NUMBER: builtins.int
FILENAME_STRINDEX_FIELD_NUMBER: builtins.int
ATTRIBUTE_INDICES_FIELD_NUMBER: builtins.int
- HAS_FUNCTIONS_FIELD_NUMBER: builtins.int
- HAS_FILENAMES_FIELD_NUMBER: builtins.int
- HAS_LINE_NUMBERS_FIELD_NUMBER: builtins.int
- HAS_INLINE_FRAMES_FIELD_NUMBER: builtins.int
memory_start: builtins.int
"""Address at which the binary (or DLL) is loaded into memory."""
memory_limit: builtins.int
@@ -724,11 +604,6 @@
@property
def attribute_indices(self) ->
google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
"""References to attributes in ProfilesDictionary.attribute_table.
[optional]"""
- has_functions: builtins.bool
- """The following fields indicate the resolution of symbolic info."""
- has_filenames: builtins.bool
- has_line_numbers: builtins.bool
- has_inline_frames: builtins.bool
def __init__(
self,
*,
@@ -737,16 +612,33 @@
file_offset: builtins.int = ...,
filename_strindex: builtins.int = ...,
attribute_indices: collections.abc.Iterable[builtins.int] | None = ...,
- has_functions: builtins.bool = ...,
- has_filenames: builtins.bool = ...,
- has_line_numbers: builtins.bool = ...,
- has_inline_frames: builtins.bool = ...,
) -> None: ...
- def ClearField(self, field_name:
typing_extensions.Literal["attribute_indices", b"attribute_indices",
"file_offset", b"file_offset", "filename_strindex", b"filename_strindex",
"has_filenames", b"has_filenames", "has_functions", b"has_functions",
"has_inline_frames", b"has_inline_frames", "has_line_numbers",
b"has_line_numbers", "memory_limit", b"memory_limit", "memory_start",
b"memory_start"]) -> None: ...
+ def ClearField(self, field_name:
typing_extensions.Literal["attribute_indices", b"attribute_indices",
"file_offset", b"file_offset", "filename_strindex", b"filename_strindex",
"memory_limit", b"memory_limit", "memory_start", b"memory_start"]) -> None: ...
global___Mapping = Mapping
@typing_extensions.final
+class Stack(google.protobuf.message.Message):
+ """A Stack represents a stack trace as a list of locations."""
+
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
+
+ LOCATION_INDICES_FIELD_NUMBER: builtins.int
+ @property
+ def location_indices(self) ->
google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
+ """References to locations in ProfilesDictionary.location_table.
+ The first location is the leaf frame.
+ """
+ def __init__(
+ self,
+ *,
+ location_indices: collections.abc.Iterable[builtins.int] | None = ...,
+ ) -> None: ...
+ def ClearField(self, field_name:
typing_extensions.Literal["location_indices", b"location_indices"]) -> None: ...
+
+global___Stack = Stack
+
+@typing_extensions.final
class Location(google.protobuf.message.Message):
"""Describes function and line table debug information."""
@@ -754,13 +646,12 @@
MAPPING_INDEX_FIELD_NUMBER: builtins.int
ADDRESS_FIELD_NUMBER: builtins.int
- LINE_FIELD_NUMBER: builtins.int
- IS_FOLDED_FIELD_NUMBER: builtins.int
+ LINES_FIELD_NUMBER: builtins.int
ATTRIBUTE_INDICES_FIELD_NUMBER: builtins.int
mapping_index: builtins.int
"""Reference to mapping in ProfilesDictionary.mapping_table.
- It can be unset if the mapping is unknown or not applicable for
- this profile type.
+ It can be unset / set to 0 if the mapping is unknown or not applicable for
+ this profile type, as mapping_table[0] is always a 'null' default mapping.
"""
address: builtins.int
"""The instruction address for this location, if available. It
@@ -770,37 +661,27 @@
the beginning of the instruction if necessary.
"""
@property
- def line(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Line]:
+ def lines(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Line]:
"""Multiple line indicates this location has inlined functions,
where the last entry represents the caller into which the
preceding entries were inlined.
E.g., if memcpy() is inlined into printf:
- line[0].function_name == "memcpy"
- line[1].function_name == "printf"
+ lines[0].function_name == "memcpy"
+ lines[1].function_name == "printf"
"""
- is_folded: builtins.bool
- """Provides an indication that multiple symbols map to this location's
- address, for example due to identical code folding by the linker. In that
- case the line information above represents one of the multiple
- symbols. This field must be recomputed when the symbolization state of the
- profile changes.
- """
@property
def attribute_indices(self) ->
google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
"""References to attributes in ProfilesDictionary.attribute_table.
[optional]"""
def __init__(
self,
*,
- mapping_index: builtins.int | None = ...,
+ mapping_index: builtins.int = ...,
address: builtins.int = ...,
- line: collections.abc.Iterable[global___Line] | None = ...,
- is_folded: builtins.bool = ...,
+ lines: collections.abc.Iterable[global___Line] | None = ...,
attribute_indices: collections.abc.Iterable[builtins.int] | None = ...,
) -> None: ...
- def HasField(self, field_name: typing_extensions.Literal["_mapping_index",
b"_mapping_index", "mapping_index", b"mapping_index"]) -> builtins.bool: ...
- def ClearField(self, field_name:
typing_extensions.Literal["_mapping_index", b"_mapping_index", "address",
b"address", "attribute_indices", b"attribute_indices", "is_folded",
b"is_folded", "line", b"line", "mapping_index", b"mapping_index"]) -> None: ...
- def WhichOneof(self, oneof_group:
typing_extensions.Literal["_mapping_index", b"_mapping_index"]) ->
typing_extensions.Literal["mapping_index"] | None: ...
+ def ClearField(self, field_name: typing_extensions.Literal["address",
b"address", "attribute_indices", b"attribute_indices", "lines", b"lines",
"mapping_index", b"mapping_index"]) -> None: ...
global___Location = Location
@@ -843,7 +724,7 @@
FILENAME_STRINDEX_FIELD_NUMBER: builtins.int
START_LINE_FIELD_NUMBER: builtins.int
name_strindex: builtins.int
- """Function name. Empty string if not available."""
+ """The function name. Empty string if not available."""
system_name_strindex: builtins.int
"""Function name, as identified by the system. For instance,
it can be a C++ mangled name. Empty string if not available.
@@ -863,3 +744,36 @@
def ClearField(self, field_name:
typing_extensions.Literal["filename_strindex", b"filename_strindex",
"name_strindex", b"name_strindex", "start_line", b"start_line",
"system_name_strindex", b"system_name_strindex"]) -> None: ...
global___Function = Function
+
+@typing_extensions.final
+class KeyValueAndUnit(google.protobuf.message.Message):
+ """A custom 'dictionary native' style of encoding attributes which is more
convenient
+ for profiles than opentelemetry.proto.common.v1.KeyValue
+ Specifically, uses the string table for keys and allows optional unit
information.
+ """
+
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
+
+ KEY_STRINDEX_FIELD_NUMBER: builtins.int
+ VALUE_FIELD_NUMBER: builtins.int
+ UNIT_STRINDEX_FIELD_NUMBER: builtins.int
+ key_strindex: builtins.int
+ """The index into the string table for the attribute's key."""
+ @property
+ def value(self) -> opentelemetry.proto.common.v1.common_pb2.AnyValue:
+ """The value of the attribute."""
+ unit_strindex: builtins.int
+ """The index into the string table for the attribute's unit.
+ zero indicates implicit (by semconv) or non-defined unit.
+ """
+ def __init__(
+ self,
+ *,
+ key_strindex: builtins.int = ...,
+ value: opentelemetry.proto.common.v1.common_pb2.AnyValue | None = ...,
+ unit_strindex: builtins.int = ...,
+ ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["value",
b"value"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["key_strindex",
b"key_strindex", "unit_strindex", b"unit_strindex", "value", b"value"]) ->
None: ...
+
+global___KeyValueAndUnit = KeyValueAndUnit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_proto-1.39.1/src/opentelemetry/proto/resource/v1/resource_pb2.pyi
new/opentelemetry_proto-1.40.0/src/opentelemetry/proto/resource/v1/resource_pb2.pyi
---
old/opentelemetry_proto-1.39.1/src/opentelemetry/proto/resource/v1/resource_pb2.pyi
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_proto-1.40.0/src/opentelemetry/proto/resource/v1/resource_pb2.pyi
2020-02-02 01:00:00.000000000 +0100
@@ -44,9 +44,10 @@
"""Set of attributes that describe the resource.
Attribute keys MUST be unique (it is not allowed to have more than one
attribute with the same key).
+ The behavior of software that receives duplicated keys can be
unpredictable.
"""
dropped_attributes_count: builtins.int
- """dropped_attributes_count is the number of dropped attributes. If the
value is 0, then
+ """The number of dropped attributes. If the value is 0, then
no attributes were dropped.
"""
@property
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_proto-1.39.1/src/opentelemetry/proto/trace/v1/trace_pb2.pyi
new/opentelemetry_proto-1.40.0/src/opentelemetry/proto/trace/v1/trace_pb2.pyi
---
old/opentelemetry_proto-1.39.1/src/opentelemetry/proto/trace/v1/trace_pb2.pyi
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_proto-1.40.0/src/opentelemetry/proto/trace/v1/trace_pb2.pyi
2020-02-02 01:00:00.000000000 +0100
@@ -177,7 +177,8 @@
is recorded in. Notably, the last part of the URL path is the version
number of the
schema: http[s]://server[:port]/path/<version>. To learn more about Schema
URL see
https://opentelemetry.io/docs/specs/otel/schemas/#schema-url
- This schema_url applies to all spans and span events in the "spans" field.
+ This schema_url applies to the data in the "scope" field and all spans and
span
+ events in the "spans" field.
"""
def __init__(
self,
@@ -276,19 +277,20 @@
ATTRIBUTES_FIELD_NUMBER: builtins.int
DROPPED_ATTRIBUTES_COUNT_FIELD_NUMBER: builtins.int
time_unix_nano: builtins.int
- """time_unix_nano is the time the event occurred."""
+ """The time the event occurred."""
name: builtins.str
- """name of the event.
+ """The name of the event.
This field is semantically required to be set to non-empty string.
"""
@property
def attributes(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[opentelemetry.proto.common.v1.common_pb2.KeyValue]:
- """attributes is a collection of attribute key/value pairs on the
event.
+ """A collection of attribute key/value pairs on the event.
Attribute keys MUST be unique (it is not allowed to have more than
one
attribute with the same key).
+ The behavior of software that receives duplicated keys can be
unpredictable.
"""
dropped_attributes_count: builtins.int
- """dropped_attributes_count is the number of dropped attributes. If
the value is 0,
+ """The number of dropped attributes. If the value is 0,
then no attributes were dropped.
"""
def __init__(
@@ -327,12 +329,13 @@
"""The trace_state associated with the link."""
@property
def attributes(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[opentelemetry.proto.common.v1.common_pb2.KeyValue]:
- """attributes is a collection of attribute key/value pairs on the
link.
+ """A collection of attribute key/value pairs on the link.
Attribute keys MUST be unique (it is not allowed to have more than
one
attribute with the same key).
+ The behavior of software that receives duplicated keys can be
unpredictable.
"""
dropped_attributes_count: builtins.int
- """dropped_attributes_count is the number of dropped attributes. If
the value is 0,
+ """The number of dropped attributes. If the value is 0,
then no attributes were dropped.
"""
flags: builtins.int
@@ -449,7 +452,7 @@
and `SERVER` (callee) to identify queueing latency associated with the
span.
"""
start_time_unix_nano: builtins.int
- """start_time_unix_nano is the start time of the span. On the client side,
this is the time
+ """The start time of the span. On the client side, this is the time
kept by the local machine where the span execution starts. On the server
side, this
is the time when the server's application handler starts running.
Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
1970.
@@ -457,7 +460,7 @@
This field is semantically required and it is expected that end_time >=
start_time.
"""
end_time_unix_nano: builtins.int
- """end_time_unix_nano is the end time of the span. On the client side,
this is the time
+ """The end time of the span. On the client side, this is the time
kept by the local machine where the span execution ends. On the server
side, this
is the time when the server application handler stops running.
Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January
1970.
@@ -466,7 +469,7 @@
"""
@property
def attributes(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[opentelemetry.proto.common.v1.common_pb2.KeyValue]:
- """attributes is a collection of key/value pairs. Note, global
attributes
+ """A collection of key/value pairs. Note, global attributes
like server name can be set using the resource API. Examples of
attributes:
"/http/user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X
10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98
Safari/537.36"
@@ -474,30 +477,29 @@
"example.com/myattribute": true
"example.com/score": 10.239
- The OpenTelemetry API specification further restricts the allowed
value types:
-
https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/common/README.md#attribute
Attribute keys MUST be unique (it is not allowed to have more than one
attribute with the same key).
+ The behavior of software that receives duplicated keys can be
unpredictable.
"""
dropped_attributes_count: builtins.int
- """dropped_attributes_count is the number of attributes that were
discarded. Attributes
+ """The number of attributes that were discarded. Attributes
can be discarded because their keys are too long or because there are too
many
attributes. If this value is 0, then no attributes were dropped.
"""
@property
def events(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Span.Event]:
- """events is a collection of Event items."""
+ """A collection of Event items."""
dropped_events_count: builtins.int
- """dropped_events_count is the number of dropped events. If the value is
0, then no
+ """The number of dropped events. If the value is 0, then no
events were dropped.
"""
@property
def links(self) ->
google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Span.Link]:
- """links is a collection of Links, which are references from this span
to a span
+ """A collection of Links, which are references from this span to a span
in the same or different trace.
"""
dropped_links_count: builtins.int
- """dropped_links_count is the number of dropped links after the maximum
size was
+ """The number of dropped links after the maximum size was
enforced. If this value is 0, then no links were dropped.
"""
@property
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_proto-1.39.1/src/opentelemetry/proto/version/__init__.py
new/opentelemetry_proto-1.40.0/src/opentelemetry/proto/version/__init__.py
--- old/opentelemetry_proto-1.39.1/src/opentelemetry/proto/version/__init__.py
2020-02-02 01:00:00.000000000 +0100
+++ new/opentelemetry_proto-1.40.0/src/opentelemetry/proto/version/__init__.py
2020-02-02 01:00:00.000000000 +0100
@@ -12,4 +12,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-__version__ = "1.39.1"
+__version__ = "1.40.0"