Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package
python-opentelemetry-exporter-otlp-proto-common for openSUSE:Factory checked in
at 2025-05-27 18:44:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing
/work/SRC/openSUSE:Factory/python-opentelemetry-exporter-otlp-proto-common (Old)
and
/work/SRC/openSUSE:Factory/.python-opentelemetry-exporter-otlp-proto-common.new.2732
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-opentelemetry-exporter-otlp-proto-common"
Tue May 27 18:44:07 2025 rev:10 rq:1280596 version:1.33.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-opentelemetry-exporter-otlp-proto-common/python-opentelemetry-exporter-otlp-proto-common.changes
2025-02-26 17:19:39.518064048 +0100
+++
/work/SRC/openSUSE:Factory/.python-opentelemetry-exporter-otlp-proto-common.new.2732/python-opentelemetry-exporter-otlp-proto-common.changes
2025-05-27 18:44:14.685738490 +0200
@@ -1,0 +2,16 @@
+Mon May 26 07:26:19 UTC 2025 - Nico Krapp <[email protected]>
+
+- Update to 1.33.1
+ * Remove log messages from BatchLogRecordProcessor.emit, this caused the
+ program to crash at shutdown with a max recursion error
+- Update to 1.33.0
+ * Fix intermittent Connection aborted error when using otlp/http exporters
+ * opentelemetry-sdk: use stable code attributes:
+ code.function -> code.function.name, code.lineno -> code.line.number,
+ code.filepath -> code.file.path
+ * Fix serialization of extended attributes for logs signal
+ * Handle OTEL_PROPAGATORS contains None
+ * docs: updated and added to the metrics and log examples
+ * Bump semantic conventions to 1.33.0
+
+-------------------------------------------------------------------
Old:
----
opentelemetry_exporter_otlp_proto_common-1.30.0.tar.gz
New:
----
opentelemetry_exporter_otlp_proto_common-1.33.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-opentelemetry-exporter-otlp-proto-common.spec ++++++
--- /var/tmp/diff_new_pack.1w970M/_old 2025-05-27 18:44:15.289763907 +0200
+++ /var/tmp/diff_new_pack.1w970M/_new 2025-05-27 18:44:15.293764076 +0200
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-opentelemetry-exporter-otlp-proto-common
-Version: 1.30.0
+Version: 1.33.1
Release: 0
Summary: OpenTelemetry Protobuf encoding
License: Apache-2.0
++++++ opentelemetry_exporter_otlp_proto_common-1.30.0.tar.gz ->
opentelemetry_exporter_otlp_proto_common-1.33.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_exporter_otlp_proto_common-1.30.0/PKG-INFO
new/opentelemetry_exporter_otlp_proto_common-1.33.1/PKG-INFO
--- old/opentelemetry_exporter_otlp_proto_common-1.30.0/PKG-INFO
2020-02-02 01:00:00.000000000 +0100
+++ new/opentelemetry_exporter_otlp_proto_common-1.33.1/PKG-INFO
2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: opentelemetry-exporter-otlp-proto-common
-Version: 1.30.0
+Version: 1.33.1
Summary: OpenTelemetry Protobuf encoding
Project-URL: Homepage,
https://github.com/open-telemetry/opentelemetry-python/tree/main/exporter/opentelemetry-exporter-otlp-proto-common
Project-URL: Repository, https://github.com/open-telemetry/opentelemetry-python
@@ -21,7 +21,7 @@
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.8
-Requires-Dist: opentelemetry-proto==1.30.0
+Requires-Dist: opentelemetry-proto==1.33.1
Description-Content-Type: text/x-rst
OpenTelemetry Protobuf Encoding
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_exporter_otlp_proto_common-1.30.0/pyproject.toml
new/opentelemetry_exporter_otlp_proto_common-1.33.1/pyproject.toml
--- old/opentelemetry_exporter_otlp_proto_common-1.30.0/pyproject.toml
2020-02-02 01:00:00.000000000 +0100
+++ new/opentelemetry_exporter_otlp_proto_common-1.33.1/pyproject.toml
2020-02-02 01:00:00.000000000 +0100
@@ -28,7 +28,7 @@
"Programming Language :: Python :: 3.13",
]
dependencies = [
- "opentelemetry-proto == 1.30.0",
+ "opentelemetry-proto == 1.33.1",
]
[project.urls]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_exporter_otlp_proto_common-1.30.0/src/opentelemetry/exporter/otlp/proto/common/_internal/__init__.py
new/opentelemetry_exporter_otlp_proto_common-1.33.1/src/opentelemetry/exporter/otlp/proto/common/_internal/__init__.py
---
old/opentelemetry_exporter_otlp_proto_common-1.30.0/src/opentelemetry/exporter/otlp/proto/common/_internal/__init__.py
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_exporter_otlp_proto_common-1.33.1/src/opentelemetry/exporter/otlp/proto/common/_internal/__init__.py
2020-02-02 01:00:00.000000000 +0100
@@ -45,7 +45,7 @@
)
from opentelemetry.sdk.trace import Resource
from opentelemetry.sdk.util.instrumentation import InstrumentationScope
-from opentelemetry.util.types import Attributes
+from opentelemetry.util.types import _ExtendedAttributes
_logger = logging.getLogger(__name__)
@@ -61,6 +61,7 @@
return PB2InstrumentationScope(
name=instrumentation_scope.name,
version=instrumentation_scope.version,
+ attributes=_encode_attributes(instrumentation_scope.attributes),
)
@@ -135,14 +136,17 @@
def _encode_attributes(
- attributes: Attributes,
+ attributes: _ExtendedAttributes,
+ allow_null: bool = False,
) -> Optional[List[PB2KeyValue]]:
if attributes:
pb2_attributes = []
for key, value in attributes.items():
# pylint: disable=broad-exception-caught
try:
- pb2_attributes.append(_encode_key_value(key, value))
+ pb2_attributes.append(
+ _encode_key_value(key, value, allow_null=allow_null)
+ )
except Exception as error:
_logger.exception("Failed to encode key %s: %s", key, error)
else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_exporter_otlp_proto_common-1.30.0/src/opentelemetry/exporter/otlp/proto/common/_internal/_log_encoder/__init__.py
new/opentelemetry_exporter_otlp_proto_common-1.33.1/src/opentelemetry/exporter/otlp/proto/common/_internal/_log_encoder/__init__.py
---
old/opentelemetry_exporter_otlp_proto_common-1.30.0/src/opentelemetry/exporter/otlp/proto/common/_internal/_log_encoder/__init__.py
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_exporter_otlp_proto_common-1.33.1/src/opentelemetry/exporter/otlp/proto/common/_internal/_log_encoder/__init__.py
2020-02-02 01:00:00.000000000 +0100
@@ -57,7 +57,9 @@
flags=int(log_data.log_record.trace_flags),
body=_encode_value(body, allow_null=True),
severity_text=log_data.log_record.severity_text,
- attributes=_encode_attributes(log_data.log_record.attributes),
+ attributes=_encode_attributes(
+ log_data.log_record.attributes, allow_null=True
+ ),
dropped_attributes_count=log_data.log_record.dropped_attributes,
severity_number=log_data.log_record.severity_number.value,
)
@@ -82,6 +84,9 @@
ScopeLogs(
scope=(_encode_instrumentation_scope(sdk_instrumentation)),
log_records=pb2_logs,
+ schema_url=sdk_instrumentation.schema_url
+ if sdk_instrumentation
+ else None,
)
)
pb2_resource_logs.append(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_exporter_otlp_proto_common-1.30.0/src/opentelemetry/exporter/otlp/proto/common/_internal/metrics_encoder/__init__.py
new/opentelemetry_exporter_otlp_proto_common-1.33.1/src/opentelemetry/exporter/otlp/proto/common/_internal/metrics_encoder/__init__.py
---
old/opentelemetry_exporter_otlp_proto_common-1.30.0/src/opentelemetry/exporter/otlp/proto/common/_internal/metrics_encoder/__init__.py
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_exporter_otlp_proto_common-1.33.1/src/opentelemetry/exporter/otlp/proto/common/_internal/metrics_encoder/__init__.py
2020-02-02 01:00:00.000000000 +0100
@@ -11,19 +11,21 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+from __future__ import annotations
+
import logging
from os import environ
from typing import Dict, List
from opentelemetry.exporter.otlp.proto.common._internal import (
_encode_attributes,
+ _encode_instrumentation_scope,
_encode_span_id,
_encode_trace_id,
)
from opentelemetry.proto.collector.metrics.v1.metrics_service_pb2 import (
ExportMetricsServiceRequest,
)
-from opentelemetry.proto.common.v1.common_pb2 import InstrumentationScope
from opentelemetry.proto.metrics.v1 import metrics_pb2 as pb2
from opentelemetry.proto.resource.v1.resource_pb2 import (
Resource as PB2Resource,
@@ -66,8 +68,9 @@
class OTLPMetricExporterMixin:
def _common_configuration(
self,
- preferred_temporality: Dict[type, AggregationTemporality] = None,
- preferred_aggregation: Dict[type, Aggregation] = None,
+ preferred_temporality: dict[type, AggregationTemporality]
+ | None = None,
+ preferred_aggregation: dict[type, Aggregation] | None = None,
) -> None:
MetricExporter.__init__(
self,
@@ -114,8 +117,9 @@
_logger.warning(
"Unrecognized OTEL_EXPORTER_METRICS_TEMPORALITY_PREFERENCE"
" value found: "
- f"{otel_exporter_otlp_metrics_temporality_preference}, "
- "using CUMULATIVE"
+ "%s, "
+ "using CUMULATIVE",
+ otel_exporter_otlp_metrics_temporality_preference,
)
instrument_class_temporality = {
Counter: AggregationTemporality.CUMULATIVE,
@@ -219,10 +223,8 @@
# there is no need to check for existing instrumentation scopes
# here.
pb2_scope_metrics = pb2.ScopeMetrics(
- scope=InstrumentationScope(
- name=instrumentation_scope.name,
- version=instrumentation_scope.version,
- )
+ scope=_encode_instrumentation_scope(instrumentation_scope),
+ schema_url=instrumentation_scope.schema_url,
)
scope_metrics_dict[instrumentation_scope] = pb2_scope_metrics
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_exporter_otlp_proto_common-1.30.0/src/opentelemetry/exporter/otlp/proto/common/_internal/trace_encoder/__init__.py
new/opentelemetry_exporter_otlp_proto_common-1.33.1/src/opentelemetry/exporter/otlp/proto/common/_internal/trace_encoder/__init__.py
---
old/opentelemetry_exporter_otlp_proto_common-1.30.0/src/opentelemetry/exporter/otlp/proto/common/_internal/trace_encoder/__init__.py
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_exporter_otlp_proto_common-1.33.1/src/opentelemetry/exporter/otlp/proto/common/_internal/trace_encoder/__init__.py
2020-02-02 01:00:00.000000000 +0100
@@ -89,6 +89,9 @@
PB2ScopeSpans(
scope=(_encode_instrumentation_scope(sdk_instrumentation)),
spans=pb2_spans,
+ schema_url=sdk_instrumentation.schema_url
+ if sdk_instrumentation
+ else None,
)
)
pb2_resource_spans.append(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_exporter_otlp_proto_common-1.30.0/src/opentelemetry/exporter/otlp/proto/common/version/__init__.py
new/opentelemetry_exporter_otlp_proto_common-1.33.1/src/opentelemetry/exporter/otlp/proto/common/version/__init__.py
---
old/opentelemetry_exporter_otlp_proto_common-1.30.0/src/opentelemetry/exporter/otlp/proto/common/version/__init__.py
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_exporter_otlp_proto_common-1.33.1/src/opentelemetry/exporter/otlp/proto/common/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.30.0"
+__version__ = "1.33.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_exporter_otlp_proto_common-1.30.0/tests/test_log_encoder.py
new/opentelemetry_exporter_otlp_proto_common-1.33.1/tests/test_log_encoder.py
---
old/opentelemetry_exporter_otlp_proto_common-1.30.0/tests/test_log_encoder.py
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_exporter_otlp_proto_common-1.33.1/tests/test_log_encoder.py
2020-02-02 01:00:00.000000000 +0100
@@ -178,7 +178,75 @@
),
)
- return [log1, log2, log3, log4, log5]
+ log6 = LogData(
+ log_record=SDKLogRecord(
+ timestamp=1644650584292683022,
+ observed_timestamp=1644650584292683022,
+ trace_id=212592107417388365804938480559624925522,
+ span_id=6077757853989569222,
+ trace_flags=TraceFlags(0x01),
+ severity_text="ERROR",
+ severity_number=SeverityNumber.ERROR,
+ body="This instrumentation scope has a schema url",
+ resource=SDKResource(
+ {"first_resource": "value"},
+ "resource_schema_url",
+ ),
+ attributes={"filename": "model.py", "func_name": "run_method"},
+ ),
+ instrumentation_scope=InstrumentationScope(
+ "scope_with_url",
+ "scope_with_url_version",
+ "instrumentation_schema_url",
+ ),
+ )
+
+ log7 = LogData(
+ log_record=SDKLogRecord(
+ timestamp=1644650584292683033,
+ observed_timestamp=1644650584292683033,
+ trace_id=212592107417388365804938480559624925533,
+ span_id=6077757853989569233,
+ trace_flags=TraceFlags(0x01),
+ severity_text="FATAL",
+ severity_number=SeverityNumber.FATAL,
+ body="This instrumentation scope has a schema url and
attributes",
+ resource=SDKResource(
+ {"first_resource": "value"},
+ "resource_schema_url",
+ ),
+ attributes={"filename": "model.py", "func_name": "run_method"},
+ ),
+ instrumentation_scope=InstrumentationScope(
+ "scope_with_attributes",
+ "scope_with_attributes_version",
+ "instrumentation_schema_url",
+ {"one": 1, "two": "2"},
+ ),
+ )
+
+ log8 = LogData(
+ log_record=SDKLogRecord(
+ timestamp=1644650584292683044,
+ observed_timestamp=1644650584292683044,
+ trace_id=212592107417388365804938480559624925566,
+ span_id=6077757853989569466,
+ trace_flags=TraceFlags(0x01),
+ severity_text="INFO",
+ severity_number=SeverityNumber.INFO,
+ body="Test export of extended attributes",
+ resource=SDKResource({}),
+ attributes={
+ "extended": {
+ "sequence": [{"inner": "mapping", "none": None}]
+ }
+ },
+ ),
+ instrumentation_scope=InstrumentationScope(
+ "extended_name", "extended_version"
+ ),
+ )
+ return [log1, log2, log3, log4, log5, log6, log7, log8]
def get_test_logs(
self,
@@ -218,7 +286,8 @@
"Do not go gentle into that good
night. Rage, rage against the dying of the light"
),
attributes=_encode_attributes(
- {"a": 1, "b": "c"}
+ {"a": 1, "b": "c"},
+ allow_null=True,
),
)
],
@@ -248,7 +317,76 @@
{
"filename": "model.py",
"func_name": "run_method",
- }
+ },
+ allow_null=True,
+ ),
+ )
+ ],
+ ),
+ PB2ScopeLogs(
+ scope=PB2InstrumentationScope(
+ name="scope_with_url",
+ version="scope_with_url_version",
+ ),
+ schema_url="instrumentation_schema_url",
+ log_records=[
+ PB2LogRecord(
+ time_unix_nano=1644650584292683022,
+
observed_time_unix_nano=1644650584292683022,
+ trace_id=_encode_trace_id(
+ 212592107417388365804938480559624925522
+ ),
+ span_id=_encode_span_id(
+ 6077757853989569222
+ ),
+ flags=int(TraceFlags(0x01)),
+ severity_text="ERROR",
+ severity_number=SeverityNumber.ERROR.value,
+ body=_encode_value(
+ "This instrumentation scope has a
schema url"
+ ),
+ attributes=_encode_attributes(
+ {
+ "filename": "model.py",
+ "func_name": "run_method",
+ },
+ allow_null=True,
+ ),
+ )
+ ],
+ ),
+ PB2ScopeLogs(
+ scope=PB2InstrumentationScope(
+ name="scope_with_attributes",
+ version="scope_with_attributes_version",
+ attributes=_encode_attributes(
+ {"one": 1, "two": "2"},
+ allow_null=True,
+ ),
+ ),
+ schema_url="instrumentation_schema_url",
+ log_records=[
+ PB2LogRecord(
+ time_unix_nano=1644650584292683033,
+
observed_time_unix_nano=1644650584292683033,
+ trace_id=_encode_trace_id(
+ 212592107417388365804938480559624925533
+ ),
+ span_id=_encode_span_id(
+ 6077757853989569233
+ ),
+ flags=int(TraceFlags(0x01)),
+ severity_text="FATAL",
+ severity_number=SeverityNumber.FATAL.value,
+ body=_encode_value(
+ "This instrumentation scope has a
schema url and attributes"
+ ),
+ attributes=_encode_attributes(
+ {
+ "filename": "model.py",
+ "func_name": "run_method",
+ },
+ allow_null=True,
),
)
],
@@ -304,7 +442,8 @@
severity_number=SeverityNumber.DEBUG.value,
body=_encode_value("To our galaxy"),
attributes=_encode_attributes(
- {"a": 1, "b": "c"}
+ {"a": 1, "b": "c"},
+ allow_null=True,
),
),
],
@@ -359,6 +498,43 @@
),
],
),
+ PB2ScopeLogs(
+ scope=PB2InstrumentationScope(
+ name="extended_name",
+ version="extended_version",
+ ),
+ log_records=[
+ PB2LogRecord(
+ time_unix_nano=1644650584292683044,
+
observed_time_unix_nano=1644650584292683044,
+ trace_id=_encode_trace_id(
+ 212592107417388365804938480559624925566
+ ),
+ span_id=_encode_span_id(
+ 6077757853989569466,
+ ),
+ flags=int(TraceFlags(0x01)),
+ severity_text="INFO",
+ severity_number=SeverityNumber.INFO.value,
+ body=_encode_value(
+ "Test export of extended attributes"
+ ),
+ attributes=_encode_attributes(
+ {
+ "extended": {
+ "sequence": [
+ {
+ "inner": "mapping",
+ "none": None,
+ }
+ ]
+ }
+ },
+ allow_null=True,
+ ),
+ ),
+ ],
+ ),
],
),
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_exporter_otlp_proto_common-1.30.0/tests/test_metrics_encoder.py
new/opentelemetry_exporter_otlp_proto_common-1.33.1/tests/test_metrics_encoder.py
---
old/opentelemetry_exporter_otlp_proto_common-1.30.0/tests/test_metrics_encoder.py
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_exporter_otlp_proto_common-1.33.1/tests/test_metrics_encoder.py
2020-02-02 01:00:00.000000000 +0100
@@ -110,7 +110,7 @@
scope=SDKInstrumentationScope(
name="first_name",
version="first_version",
- schema_url="insrumentation_scope_schema_url",
+ schema_url="instrumentation_scope_schema_url",
),
metrics=[_generate_sum("sum_int", 33)],
schema_url="instrumentation_scope_schema_url",
@@ -137,6 +137,7 @@
scope=InstrumentationScope(
name="first_name", version="first_version"
),
+ schema_url="instrumentation_scope_schema_url",
metrics=[
pb2.Metric(
name="sum_int",
@@ -190,7 +191,7 @@
scope=SDKInstrumentationScope(
name="first_name",
version="first_version",
- schema_url="insrumentation_scope_schema_url",
+ schema_url="instrumentation_scope_schema_url",
),
metrics=[_generate_sum("sum_double", 2.98)],
schema_url="instrumentation_scope_schema_url",
@@ -217,6 +218,7 @@
scope=InstrumentationScope(
name="first_name", version="first_version"
),
+ schema_url="instrumentation_scope_schema_url",
metrics=[
pb2.Metric(
name="sum_double",
@@ -270,7 +272,7 @@
scope=SDKInstrumentationScope(
name="first_name",
version="first_version",
- schema_url="insrumentation_scope_schema_url",
+ schema_url="instrumentation_scope_schema_url",
),
metrics=[_generate_gauge("gauge_int", 9000)],
schema_url="instrumentation_scope_schema_url",
@@ -297,6 +299,7 @@
scope=InstrumentationScope(
name="first_name", version="first_version"
),
+ schema_url="instrumentation_scope_schema_url",
metrics=[
pb2.Metric(
name="gauge_int",
@@ -348,7 +351,7 @@
scope=SDKInstrumentationScope(
name="first_name",
version="first_version",
- schema_url="insrumentation_scope_schema_url",
+ schema_url="instrumentation_scope_schema_url",
),
metrics=[_generate_gauge("gauge_double", 52.028)],
schema_url="instrumentation_scope_schema_url",
@@ -375,6 +378,7 @@
scope=InstrumentationScope(
name="first_name", version="first_version"
),
+ schema_url="instrumentation_scope_schema_url",
metrics=[
pb2.Metric(
name="gauge_double",
@@ -425,7 +429,7 @@
scope=SDKInstrumentationScope(
name="first_name",
version="first_version",
- schema_url="insrumentation_scope_schema_url",
+ schema_url="instrumentation_scope_schema_url",
),
metrics=[self.histogram],
schema_url="instrumentation_scope_schema_url",
@@ -452,6 +456,7 @@
scope=InstrumentationScope(
name="first_name", version="first_version"
),
+ schema_url="instrumentation_scope_schema_url",
metrics=[
pb2.Metric(
name="histogram",
@@ -537,7 +542,7 @@
scope=SDKInstrumentationScope(
name="first_name",
version="first_version",
- schema_url="insrumentation_scope_schema_url",
+ schema_url="instrumentation_scope_schema_url",
),
metrics=[self.histogram, self.histogram],
schema_url="instrumentation_scope_schema_url",
@@ -546,7 +551,7 @@
scope=SDKInstrumentationScope(
name="second_name",
version="second_version",
- schema_url="insrumentation_scope_schema_url",
+ schema_url="instrumentation_scope_schema_url",
),
metrics=[self.histogram],
schema_url="instrumentation_scope_schema_url",
@@ -555,7 +560,7 @@
scope=SDKInstrumentationScope(
name="third_name",
version="third_version",
- schema_url="insrumentation_scope_schema_url",
+ schema_url="instrumentation_scope_schema_url",
),
metrics=[self.histogram],
schema_url="instrumentation_scope_schema_url",
@@ -582,6 +587,7 @@
scope=InstrumentationScope(
name="first_name", version="first_version"
),
+ schema_url="instrumentation_scope_schema_url",
metrics=[
pb2.Metric(
name="histogram",
@@ -713,6 +719,7 @@
scope=InstrumentationScope(
name="second_name", version="second_version"
),
+ schema_url="instrumentation_scope_schema_url",
metrics=[
pb2.Metric(
name="histogram",
@@ -782,6 +789,7 @@
scope=InstrumentationScope(
name="third_name", version="third_version"
),
+ schema_url="instrumentation_scope_schema_url",
metrics=[
pb2.Metric(
name="histogram",
@@ -892,7 +900,7 @@
scope=SDKInstrumentationScope(
name="first_name",
version="first_version",
- schema_url="insrumentation_scope_schema_url",
+ schema_url="instrumentation_scope_schema_url",
),
metrics=[exponential_histogram],
schema_url="instrumentation_scope_schema_url",
@@ -919,6 +927,7 @@
scope=InstrumentationScope(
name="first_name", version="first_version"
),
+ schema_url="instrumentation_scope_schema_url",
metrics=[
pb2.Metric(
name="exponential_histogram",
@@ -989,7 +998,7 @@
scope=SDKInstrumentationScope(
name="first_name",
version="first_version",
- schema_url="insrumentation_scope_schema_url",
+ schema_url="instrumentation_scope_schema_url",
),
metrics=[_generate_sum("sum_double", big_number)],
schema_url="instrumentation_scope_schema_url",
@@ -1005,3 +1014,88 @@
# assert that the EncodingException wraps the metric and original
exception
assert isinstance(context.exception.metric, Metric)
assert isinstance(context.exception.original_exception, ValueError)
+
+ def test_encode_scope_with_attributes(self):
+ metrics_data = MetricsData(
+ resource_metrics=[
+ ResourceMetrics(
+ resource=Resource(
+ attributes=None,
+ schema_url="resource_schema_url",
+ ),
+ scope_metrics=[
+ ScopeMetrics(
+ scope=SDKInstrumentationScope(
+ name="first_name",
+ version="first_version",
+ schema_url="instrumentation_scope_schema_url",
+ attributes={"one": 1, "two": "2"},
+ ),
+ metrics=[_generate_sum("sum_int", 88)],
+ schema_url="instrumentation_scope_schema_url",
+ )
+ ],
+ schema_url="resource_schema_url",
+ )
+ ]
+ )
+ expected = ExportMetricsServiceRequest(
+ resource_metrics=[
+ pb2.ResourceMetrics(
+ schema_url="resource_schema_url",
+ resource=OTLPResource(),
+ scope_metrics=[
+ pb2.ScopeMetrics(
+ scope=InstrumentationScope(
+ name="first_name",
+ version="first_version",
+ attributes=[
+ KeyValue(
+ key="one", value=AnyValue(int_value=1)
+ ),
+ KeyValue(
+ key="two",
+ value=AnyValue(string_value="2"),
+ ),
+ ],
+ ),
+ schema_url="instrumentation_scope_schema_url",
+ metrics=[
+ pb2.Metric(
+ name="sum_int",
+ unit="s",
+ description="foo",
+ sum=pb2.Sum(
+ data_points=[
+ pb2.NumberDataPoint(
+ attributes=[
+ KeyValue(
+ key="a",
+ value=AnyValue(
+ int_value=1
+ ),
+ ),
+ KeyValue(
+ key="b",
+ value=AnyValue(
+ bool_value=True
+ ),
+ ),
+ ],
+
start_time_unix_nano=1641946015139533244,
+
time_unix_nano=1641946016139533244,
+ as_int=88,
+ )
+ ],
+
aggregation_temporality=AggregationTemporality.CUMULATIVE,
+ is_monotonic=True,
+ ),
+ )
+ ],
+ )
+ ],
+ )
+ ]
+ )
+ actual = encode_metrics(metrics_data)
+ self.assertEqual(expected, actual)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_exporter_otlp_proto_common-1.30.0/tests/test_trace_encoder.py
new/opentelemetry_exporter_otlp_proto_common-1.33.1/tests/test_trace_encoder.py
---
old/opentelemetry_exporter_otlp_proto_common-1.30.0/tests/test_trace_encoder.py
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_exporter_otlp_proto_common-1.33.1/tests/test_trace_encoder.py
2020-02-02 01:00:00.000000000 +0100
@@ -72,12 +72,16 @@
base_time + 150 * 10**6,
base_time + 300 * 10**6,
base_time + 400 * 10**6,
+ base_time + 500 * 10**6,
+ base_time + 600 * 10**6,
)
end_times = (
start_times[0] + (50 * 10**6),
start_times[1] + (100 * 10**6),
start_times[2] + (200 * 10**6),
start_times[3] + (300 * 10**6),
+ start_times[4] + (400 * 10**6),
+ start_times[5] + (500 * 10**6),
)
parent_span_context = SDKSpanContext(
@@ -151,7 +155,42 @@
span4.start(start_time=start_times[3])
span4.end(end_time=end_times[3])
- return [span1, span2, span3, span4]
+ span5 = SDKSpan(
+ name="test-span-5",
+ context=other_context,
+ parent=None,
+ resource=SDKResource(
+ attributes={"key_resource": "another_resource"},
+ schema_url="resource_schema_url",
+ ),
+ instrumentation_scope=SDKInstrumentationScope(
+ name="scope_1_name",
+ version="scope_1_version",
+ schema_url="scope_1_schema_url",
+ ),
+ )
+ span5.start(start_time=start_times[4])
+ span5.end(end_time=end_times[4])
+
+ span6 = SDKSpan(
+ name="test-span-6",
+ context=other_context,
+ parent=None,
+ resource=SDKResource(
+ attributes={"key_resource": "another_resource"},
+ schema_url="resource_schema_url",
+ ),
+ instrumentation_scope=SDKInstrumentationScope(
+ name="scope_2_name",
+ version="scope_2_version",
+ schema_url="scope_2_schema_url",
+ attributes={"one": "1", "two": 2},
+ ),
+ )
+ span6.start(start_time=start_times[5])
+ span6.end(end_time=end_times[5])
+
+ return [span1, span2, span3, span4, span5, span6]
def get_exhaustive_test_spans(
self,
@@ -356,6 +395,86 @@
)
],
),
+ PB2ResourceSpans(
+ resource=PB2Resource(
+ attributes=[
+ PB2KeyValue(
+ key="key_resource",
+ value=PB2AnyValue(
+ string_value="another_resource"
+ ),
+ ),
+ ],
+ ),
+ schema_url="resource_schema_url",
+ scope_spans=[
+ PB2ScopeSpans(
+ scope=PB2InstrumentationScope(
+ name="scope_1_name", version="scope_1_version"
+ ),
+ schema_url="scope_1_schema_url",
+ spans=[
+ PB2SPan(
+ trace_id=trace_id,
+ span_id=_encode_span_id(
+ otel_spans[4].context.span_id
+ ),
+ trace_state=None,
+ parent_span_id=None,
+ name=otel_spans[4].name,
+ kind=span_kind,
+ start_time_unix_nano=otel_spans[
+ 4
+ ].start_time,
+ end_time_unix_nano=otel_spans[4].end_time,
+ attributes=None,
+ events=None,
+ links=None,
+ status={},
+ flags=0x100,
+ ),
+ ],
+ ),
+ PB2ScopeSpans(
+ scope=PB2InstrumentationScope(
+ name="scope_2_name",
+ version="scope_2_version",
+ attributes=[
+ PB2KeyValue(
+ key="one",
+ value=PB2AnyValue(string_value="1"),
+ ),
+ PB2KeyValue(
+ key="two",
+ value=PB2AnyValue(int_value=2),
+ ),
+ ],
+ ),
+ schema_url="scope_2_schema_url",
+ spans=[
+ PB2SPan(
+ trace_id=trace_id,
+ span_id=_encode_span_id(
+ otel_spans[5].context.span_id
+ ),
+ trace_state=None,
+ parent_span_id=None,
+ name=otel_spans[5].name,
+ kind=span_kind,
+ start_time_unix_nano=otel_spans[
+ 5
+ ].start_time,
+ end_time_unix_nano=otel_spans[5].end_time,
+ attributes=None,
+ events=None,
+ links=None,
+ status={},
+ flags=0x100,
+ ),
+ ],
+ ),
+ ],
+ ),
]
)