Hello community,
here is the log from the commit of package python-opentelemetry-api for
openSUSE:Factory checked in at 2020-04-16 23:01:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-opentelemetry-api (Old)
and /work/SRC/openSUSE:Factory/.python-opentelemetry-api.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-opentelemetry-api"
Thu Apr 16 23:01:37 2020 rev:3 rq:794251 version:0.6b0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-opentelemetry-api/python-opentelemetry-api.changes
2020-03-27 22:01:57.262955284 +0100
+++
/work/SRC/openSUSE:Factory/.python-opentelemetry-api.new.2738/python-opentelemetry-api.changes
2020-04-16 23:02:05.947620679 +0200
@@ -1,0 +2,9 @@
+Wed Apr 15 14:03:21 UTC 2020 - [email protected]
+
+- version update to 0.6b0
+ * Add support for lazy events and links (#474)
+ * Metrics API no longer uses LabelSet (#527)
+ * Adding is_remote flag to SpanContext, indicating when a span is remote
(#516)
+ * Allow digit as first char in vendor specific trace state key (#511)
+
+-------------------------------------------------------------------
Old:
----
opentelemetry-api-0.5b0.tar.gz
New:
----
opentelemetry-api-0.6b0.tar.gz
tests.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-opentelemetry-api.spec ++++++
--- /var/tmp/diff_new_pack.LWdjDs/_old 2020-04-16 23:02:07.887622141 +0200
+++ /var/tmp/diff_new_pack.LWdjDs/_new 2020-04-16 23:02:07.887622141 +0200
@@ -19,25 +19,31 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-opentelemetry-api
-Version: 0.5b0
+Version: 0.6b0
Release: 0
Summary: OpenTelemetry Python API
License: Apache-2.0
URL:
https://github.com/open-telemetry/opentelemetry-python/tree/master/opentelemetry-api
Source:
https://files.pythonhosted.org/packages/source/o/opentelemetry-api/opentelemetry-api-%{version}.tar.gz
+# https://github.com/open-telemetry/opentelemetry-python/pull/557
+Source98: tests.tar.bz2
# https://github.com/open-telemetry/opentelemetry-python/issues/473
Source99:
https://raw.githubusercontent.com/open-telemetry/opentelemetry-python/master/LICENSE
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildArch: noarch
+Requires: python-setuptools
+# SECTION test requirements
+BuildRequires: %{python_module pytest}
+# /SECTION
%python_subpackages
%description
OpenTelemetry Python API
%prep
-%setup -q -n opentelemetry-api-%{version}
+%setup -q -n opentelemetry-api-%{version} -a98
cp %{SOURCE99} .
%build
@@ -47,6 +53,12 @@
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
+%check
+# test_environment_variables and test_getattr erroring,
+# let us see whether they got fixed via github PR referenced
+# above (in next version)
+%pytest -k 'not (test_getattr or test_environment_variables)'
+
%files %{python_files}
%doc README.rst
%license LICENSE
++++++ opentelemetry-api-0.5b0.tar.gz -> opentelemetry-api-0.6b0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opentelemetry-api-0.5b0/PKG-INFO
new/opentelemetry-api-0.6b0/PKG-INFO
--- old/opentelemetry-api-0.5b0/PKG-INFO 2020-03-17 00:13:34.000000000
+0100
+++ new/opentelemetry-api-0.6b0/PKG-INFO 2020-03-31 07:23:45.000000000
+0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: opentelemetry-api
-Version: 0.5b0
+Version: 0.6b0
Summary: OpenTelemetry Python API
Home-page:
https://github.com/open-telemetry/opentelemetry-python/tree/master/opentelemetry-api
Author: OpenTelemetry Authors
@@ -27,7 +27,7 @@
* `OpenTelemetry Project <https://opentelemetry.io/>`_
Platform: UNKNOWN
-Classifier: Development Status :: 3 - Alpha
+Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
@@ -36,4 +36,5 @@
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
Description-Content-Type: text/x-rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opentelemetry-api-0.5b0/setup.py
new/opentelemetry-api-0.6b0/setup.py
--- old/opentelemetry-api-0.5b0/setup.py 2020-03-17 00:12:29.000000000
+0100
+++ new/opentelemetry-api-0.6b0/setup.py 2020-03-31 07:22:45.000000000
+0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -28,7 +28,7 @@
author="OpenTelemetry Authors",
author_email="[email protected]",
classifiers=[
- "Development Status :: 3 - Alpha",
+ "Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python",
@@ -37,6 +37,7 @@
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
+ "Programming Language :: Python :: 3.8",
],
description="OpenTelemetry Python API",
include_package_data=True,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/configuration/__init__.py
new/opentelemetry-api-0.6b0/src/opentelemetry/configuration/__init__.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/configuration/__init__.py
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/configuration/__init__.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/context/__init__.py
new/opentelemetry-api-0.6b0/src/opentelemetry/context/__init__.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/context/__init__.py
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/context/__init__.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,6 +13,7 @@
# limitations under the License.
import logging
+import threading
import typing
from functools import wraps
from os import environ
@@ -24,7 +25,7 @@
logger = logging.getLogger(__name__)
_RUNTIME_CONTEXT = None # type: typing.Optional[RuntimeContext]
-
+_RUNTIME_CONTEXT_LOCK = threading.Lock()
_F = typing.TypeVar("_F", bound=typing.Callable[..., typing.Any])
@@ -42,26 +43,30 @@
**kwargs: typing.Dict[typing.Any, typing.Any]
) -> typing.Optional[typing.Any]:
global _RUNTIME_CONTEXT # pylint: disable=global-statement
- if _RUNTIME_CONTEXT is None:
- # FIXME use a better implementation of a configuration manager to
avoid having
- # to get configuration values straight from environment variables
- if version_info < (3, 5):
- # contextvars are not supported in 3.4, use thread-local
storage
- default_context = "threadlocal_context"
- else:
- default_context = "contextvars_context"
-
- configured_context = environ.get(
- "OPENTELEMETRY_CONTEXT", default_context
- ) # type: str
- try:
- _RUNTIME_CONTEXT = next(
- iter_entry_points(
- "opentelemetry_context", configured_context
+
+ with _RUNTIME_CONTEXT_LOCK:
+ if _RUNTIME_CONTEXT is None:
+ # FIXME use a better implementation of a configuration manager
to avoid having
+ # to get configuration values straight from environment
variables
+ if version_info < (3, 5):
+ # contextvars are not supported in 3.4, use thread-local
storage
+ default_context = "threadlocal_context"
+ else:
+ default_context = "contextvars_context"
+
+ configured_context = environ.get(
+ "OPENTELEMETRY_CONTEXT", default_context
+ ) # type: str
+ try:
+ _RUNTIME_CONTEXT = next(
+ iter_entry_points(
+ "opentelemetry_context", configured_context
+ )
+ ).load()()
+ except Exception: # pylint: disable=broad-except
+ logger.error(
+ "Failed to load context: %s", configured_context
)
- ).load()()
- except Exception: # pylint: disable=broad-except
- logger.error("Failed to load context: %s", configured_context)
return func(*args, **kwargs) # type: ignore
return wrapper # type:ignore
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/context/aiocontextvarsfix.py
new/opentelemetry-api-0.6b0/src/opentelemetry/context/aiocontextvarsfix.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/context/aiocontextvarsfix.py
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/context/aiocontextvarsfix.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,5 +1,5 @@
# type: ignore
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/context/context.py
new/opentelemetry-api-0.6b0/src/opentelemetry/context/context.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/context/context.py
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/context/context.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/context/contextvars_context.py
new/opentelemetry-api-0.6b0/src/opentelemetry/context/contextvars_context.py
---
old/opentelemetry-api-0.5b0/src/opentelemetry/context/contextvars_context.py
2020-03-17 00:12:29.000000000 +0100
+++
new/opentelemetry-api-0.6b0/src/opentelemetry/context/contextvars_context.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/context/threadlocal_context.py
new/opentelemetry-api-0.6b0/src/opentelemetry/context/threadlocal_context.py
---
old/opentelemetry-api-0.5b0/src/opentelemetry/context/threadlocal_context.py
2020-03-17 00:12:29.000000000 +0100
+++
new/opentelemetry-api-0.6b0/src/opentelemetry/context/threadlocal_context.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/correlationcontext/__init__.py
new/opentelemetry-api-0.6b0/src/opentelemetry/correlationcontext/__init__.py
---
old/opentelemetry-api-0.5b0/src/opentelemetry/correlationcontext/__init__.py
2020-03-17 00:12:29.000000000 +0100
+++
new/opentelemetry-api-0.6b0/src/opentelemetry/correlationcontext/__init__.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,7 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-import abc
import typing
from opentelemetry.context import get_value, set_value
@@ -24,7 +23,7 @@
def get_correlations(
context: typing.Optional[Context] = None,
) -> typing.Dict[str, object]:
- """ Returns the name/value pairs in the CorrelationContext
+ """Returns the name/value pairs in the CorrelationContext
Args:
context: The Context to use. If not set, uses current Context
@@ -41,7 +40,8 @@
def get_correlation(
name: str, context: typing.Optional[Context] = None
) -> typing.Optional[object]:
- """ Provides access to the value for a name/value pair in the
CorrelationContext
+ """Provides access to the value for a name/value pair in the
+ CorrelationContext
Args:
name: The name of the value to retrieve
@@ -76,6 +76,7 @@
name: str, context: typing.Optional[Context] = None
) -> Context:
"""Removes a value from the CorrelationContext
+
Args:
name: The name of the value to remove
context: The Context to use. If not set, uses current Context
@@ -91,6 +92,7 @@
def clear_correlations(context: typing.Optional[Context] = None) -> Context:
"""Removes all values from the CorrelationContext
+
Args:
context: The Context to use. If not set, uses current Context
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/correlationcontext/propagation/__init__.py
new/opentelemetry-api-0.6b0/src/opentelemetry/correlationcontext/propagation/__init__.py
---
old/opentelemetry-api-0.5b0/src/opentelemetry/correlationcontext/propagation/__init__.py
2020-03-17 00:12:29.000000000 +0100
+++
new/opentelemetry-api-0.6b0/src/opentelemetry/correlationcontext/propagation/__init__.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,7 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-import re
import typing
import urllib.parse
@@ -36,9 +35,10 @@
carrier: httptextformat.HTTPTextFormatT,
context: typing.Optional[Context] = None,
) -> Context:
- """ Extract CorrelationContext from the carrier.
+ """Extract CorrelationContext from the carrier.
- See
`opentelemetry.trace.propagation.httptextformat.HTTPTextFormat.extract`
+ See
+ `opentelemetry.trace.propagation.httptextformat.HTTPTextFormat.extract`
"""
if context is None:
@@ -79,7 +79,8 @@
) -> None:
"""Injects CorrelationContext into the carrier.
- See
`opentelemetry.trace.propagation.httptextformat.HTTPTextFormat.inject`
+ See
+ `opentelemetry.trace.propagation.httptextformat.HTTPTextFormat.inject`
"""
correlations = correlationcontext.get_correlations(context=context)
if not correlations:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/logs/__init__.py
new/opentelemetry-api-0.6b0/src/opentelemetry/logs/__init__.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/logs/__init__.py
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/logs/__init__.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/metrics/__init__.py
new/opentelemetry-api-0.6b0/src/opentelemetry/metrics/__init__.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/metrics/__init__.py
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/metrics/__init__.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -60,6 +60,9 @@
value: The value to record to the bound metric instrument.
"""
+ def release(self) -> None:
+ """No-op implementation of release."""
+
class BoundCounter:
def add(self, value: ValueT) -> None:
@@ -79,25 +82,6 @@
"""
-class LabelSet(abc.ABC):
- """A canonicalized set of labels useful for preaggregation
-
- Re-usable LabelSet objects provide a potential optimization for scenarios
- where bound metric instruments might not be effective. For example, if the
- LabelSet will be re-used but only used once per metrics, bound metric
- instruments do not offer any optimization. It may best to pre-compute a
- canonicalized LabelSet once and re-use it with the direct calling
- convention. LabelSets are immutable and should be opaque in implementation.
- """
-
-
-class DefaultLabelSet(LabelSet):
- """The default LabelSet.
-
- Used when no LabelSet implementation is available.
- """
-
-
class Metric(abc.ABC):
"""Base class for various types of metrics.
@@ -106,7 +90,7 @@
"""
@abc.abstractmethod
- def bind(self, label_set: LabelSet) -> "object":
+ def bind(self, labels: Dict[str, str]) -> "object":
"""Gets a bound metric instrument.
Bound metric instruments are useful to reduce the cost of repeatedly
@@ -118,51 +102,51 @@
provided are permitted.
Args:
- label_set: `LabelSet` to associate with the bound instrument.
+ labels: Labels to associate with the bound instrument.
"""
class DefaultMetric(Metric):
"""The default Metric used when no Metric implementation is available."""
- def bind(self, label_set: LabelSet) -> "DefaultBoundInstrument":
+ def bind(self, labels: Dict[str, str]) -> "DefaultBoundInstrument":
"""Gets a `DefaultBoundInstrument`.
Args:
- label_set: `LabelSet` to associate with the bound instrument.
+ labels: Labels to associate with the bound instrument.
"""
return DefaultBoundInstrument()
- def add(self, value: ValueT, label_set: LabelSet) -> None:
+ def add(self, value: ValueT, labels: Dict[str, str]) -> None:
"""No-op implementation of `Counter` add.
Args:
value: The value to add to the counter metric.
- label_set: `LabelSet` to associate with the bound instrument.
+ labels: Labels to associate with the bound instrument.
"""
- def record(self, value: ValueT, label_set: LabelSet) -> None:
+ def record(self, value: ValueT, labels: Dict[str, str]) -> None:
"""No-op implementation of `Measure` record.
Args:
value: The value to record to this measure metric.
- label_set: `LabelSet` to associate with the bound instrument.
+ labels: Labels to associate with the bound instrument.
"""
class Counter(Metric):
"""A counter type metric that expresses the computation of a sum."""
- def bind(self, label_set: LabelSet) -> "BoundCounter":
+ def bind(self, labels: Dict[str, str]) -> "BoundCounter":
"""Gets a `BoundCounter`."""
return BoundCounter()
- def add(self, value: ValueT, label_set: LabelSet) -> None:
+ def add(self, value: ValueT, labels: Dict[str, str]) -> None:
"""Increases the value of the counter by ``value``.
Args:
value: The value to add to the counter metric.
- label_set: `LabelSet` to associate with the returned bound counter.
+ labels: Labels to associate with the bound instrument.
"""
@@ -172,16 +156,16 @@
Measure metrics represent raw statistics that are recorded.
"""
- def bind(self, label_set: LabelSet) -> "BoundMeasure":
+ def bind(self, labels: Dict[str, str]) -> "BoundMeasure":
"""Gets a `BoundMeasure`."""
return BoundMeasure()
- def record(self, value: ValueT, label_set: LabelSet) -> None:
+ def record(self, value: ValueT, labels: Dict[str, str]) -> None:
"""Records the ``value`` to the measure.
Args:
value: The value to record to this measure metric.
- label_set: `LabelSet` to associate with the returned bound measure.
+ labels: Labels to associate with the bound instrument.
"""
@@ -196,24 +180,24 @@
"""
@abc.abstractmethod
- def observe(self, value: ValueT, label_set: LabelSet) -> None:
+ def observe(self, value: ValueT, labels: Dict[str, str]) -> None:
"""Captures ``value`` to the observer.
Args:
value: The value to capture to this observer metric.
- label_set: `LabelSet` associated to ``value``.
+ labels: Labels associated to ``value``.
"""
class DefaultObserver(Observer):
"""No-op implementation of ``Observer``."""
- def observe(self, value: ValueT, label_set: LabelSet) -> None:
+ def observe(self, value: ValueT, labels: Dict[str, str]) -> None:
"""Captures ``value`` to the observer.
Args:
value: The value to capture to this observer metric.
- label_set: `LabelSet` associated to ``value``.
+ labels: Labels associated to ``value``.
"""
@@ -283,20 +267,20 @@
@abc.abstractmethod
def record_batch(
self,
- label_set: LabelSet,
+ labels: Dict[str, str],
record_tuples: Sequence[Tuple["Metric", ValueT]],
) -> None:
"""Atomically records a batch of `Metric` and value pairs.
Allows the functionality of acting upon multiple metrics with a single
API call. Implementations should find bound metric instruments that
- match the key-value pairs in the labelset.
+ match the key-value pairs in the labels.
- Args: label_set: The `LabelSet` associated with all measurements in the
- batch. A measurement is a tuple, representing the `Metric` being
- recorded and the corresponding value to record. record_tuples: A
- sequence of pairs of `Metric` s and the corresponding value to
- record for that metric.
+ Args:
+ labels: Labels associated with all measurements in the
+ batch.
+ record_tuples: A sequence of pairs of `Metric` s and the
+ corresponding value to record for that metric.
"""
@abc.abstractmethod
@@ -351,13 +335,11 @@
"""
@abc.abstractmethod
- def get_label_set(self, labels: Dict[str, str]) -> "LabelSet":
- """Gets a `LabelSet` with the given labels.
+ def unregister_observer(self, observer: "Observer") -> None:
+ """Unregisters an ``Observer`` metric instrument.
Args:
- labels: A dictionary representing label key to label value pairs.
-
- Returns: A `LabelSet` object canonicalized using the given input.
+ observer: The observer to unregister.
"""
@@ -366,7 +348,7 @@
def record_batch(
self,
- label_set: LabelSet,
+ labels: Dict[str, str],
record_tuples: Sequence[Tuple["Metric", ValueT]],
) -> None:
pass
@@ -396,9 +378,8 @@
) -> "Observer":
return DefaultObserver()
- def get_label_set(self, labels: Dict[str, str]) -> "LabelSet":
- # pylint: disable=no-self-use
- return DefaultLabelSet()
+ def unregister_observer(self, observer: "Observer") -> None:
+ pass
_METER_PROVIDER = None
@@ -411,7 +392,7 @@
) -> "Meter":
"""Returns a `Meter` for use by the given instrumentation library.
This function is a convenience wrapper for
- opentelemetry.metrics.meter_provider().get_meter
+ opentelemetry.metrics.get_meter_provider().get_meter
"""
return get_meter_provider().get_meter(
instrumenting_module_name, stateful, instrumenting_library_version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/propagators/__init__.py
new/opentelemetry-api-0.6b0/src/opentelemetry/propagators/__init__.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/propagators/__init__.py
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/propagators/__init__.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/propagators/composite.py
new/opentelemetry-api-0.6b0/src/opentelemetry/propagators/composite.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/propagators/composite.py
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/propagators/composite.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/trace/__init__.py
new/opentelemetry-api-0.6b0/src/opentelemetry/trace/__init__.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/trace/__init__.py
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/trace/__init__.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -87,48 +87,59 @@
ParentSpan = typing.Optional[typing.Union["Span", "SpanContext"]]
-class Link:
- """A link to a `Span`."""
-
- def __init__(
- self, context: "SpanContext", attributes: types.Attributes = None
- ) -> None:
+class LinkBase(abc.ABC):
+ def __init__(self, context: "SpanContext") -> None:
self._context = context
- if attributes is None:
- self._attributes = {} # type: types.Attributes
- else:
- self._attributes = attributes
@property
def context(self) -> "SpanContext":
return self._context
@property
+ @abc.abstractmethod
def attributes(self) -> types.Attributes:
- return self._attributes
+ pass
+
+class Link(LinkBase):
+ """A link to a `Span`.
-class Event:
- """A text annotation with a set of attributes."""
+ Args:
+ context: `SpanContext` of the `Span` to link to.
+ attributes: Link's attributes.
+ """
def __init__(
- self, name: str, attributes: types.Attributes, timestamp: int
+ self, context: "SpanContext", attributes: types.Attributes = None,
) -> None:
- self._name = name
+ super().__init__(context)
self._attributes = attributes
- self._timestamp = timestamp
-
- @property
- def name(self) -> str:
- return self._name
@property
def attributes(self) -> types.Attributes:
return self._attributes
+
+class LazyLink(LinkBase):
+ """A lazy link to a `Span`.
+
+ Args:
+ context: `SpanContext` of the `Span` to link to.
+ link_formatter: Callable object that returns the attributes of the
+ Link.
+ """
+
+ def __init__(
+ self,
+ context: "SpanContext",
+ link_formatter: types.AttributesFormatter,
+ ) -> None:
+ super().__init__(context)
+ self._link_formatter = link_formatter
+
@property
- def timestamp(self) -> int:
- return self._timestamp
+ def attributes(self) -> types.Attributes:
+ return self._link_formatter()
class SpanKind(enum.Enum):
@@ -206,10 +217,17 @@
"""
@abc.abstractmethod
- def add_lazy_event(self, event: Event) -> None:
+ def add_lazy_event(
+ self,
+ name: str,
+ event_formatter: types.AttributesFormatter,
+ timestamp: typing.Optional[int] = None,
+ ) -> None:
"""Adds an `Event`.
- Adds an `Event` that has previously been created.
+ Adds a single `Event` with the name, an event formatter that calculates
+ the attributes lazily and, optionally, a timestamp. Implementations
+ should generate a timestamp if the `timestamp` argument is omitted.
"""
@abc.abstractmethod
@@ -319,12 +337,14 @@
span_id: This span's ID.
trace_flags: Trace options to propagate.
trace_state: Tracing-system-specific info to propagate.
+ is_remote: True if propagated from a remote parent.
"""
def __init__(
self,
trace_id: int,
span_id: int,
+ is_remote: bool,
trace_flags: "TraceFlags" = DEFAULT_TRACE_OPTIONS,
trace_state: "TraceState" = DEFAULT_TRACE_STATE,
) -> None:
@@ -336,13 +356,17 @@
self.span_id = span_id
self.trace_flags = trace_flags
self.trace_state = trace_state
+ self.is_remote = is_remote
def __repr__(self) -> str:
- return "{}(trace_id={}, span_id={}, trace_state={!r})".format(
+ return (
+ "{}(trace_id={}, span_id={}, trace_state={!r}, is_remote={})"
+ ).format(
type(self).__name__,
format_trace_id(self.trace_id),
format_span_id(self.span_id),
self.trace_state,
+ self.is_remote,
)
def is_valid(self) -> bool:
@@ -389,7 +413,12 @@
) -> None:
pass
- def add_lazy_event(self, event: Event) -> None:
+ def add_lazy_event(
+ self,
+ name: str,
+ event_formatter: types.AttributesFormatter,
+ timestamp: typing.Optional[int] = None,
+ ) -> None:
pass
def update_name(self, name: str) -> None:
@@ -402,10 +431,11 @@
INVALID_SPAN_ID = 0x0000000000000000
INVALID_TRACE_ID = 0x00000000000000000000000000000000
INVALID_SPAN_CONTEXT = SpanContext(
- INVALID_TRACE_ID,
- INVALID_SPAN_ID,
- DEFAULT_TRACE_OPTIONS,
- DEFAULT_TRACE_STATE,
+ trace_id=INVALID_TRACE_ID,
+ span_id=INVALID_SPAN_ID,
+ is_remote=False,
+ trace_flags=DEFAULT_TRACE_OPTIONS,
+ trace_state=DEFAULT_TRACE_STATE,
)
INVALID_SPAN = DefaultSpan(INVALID_SPAN_CONTEXT)
@@ -653,7 +683,7 @@
"""Returns a `Tracer` for use by the given instrumentation library.
This function is a convenience wrapper for
- opentelemetry.trace.tracer_provider().get_tracer
+ opentelemetry.trace.get_tracer_provider().get_tracer
"""
return get_tracer_provider().get_tracer(
instrumenting_module_name, instrumenting_library_version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/trace/propagation/__init__.py
new/opentelemetry-api-0.6b0/src/opentelemetry/trace/propagation/__init__.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/trace/propagation/__init__.py
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/trace/propagation/__init__.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/trace/propagation/httptextformat.py
new/opentelemetry-api-0.6b0/src/opentelemetry/trace/propagation/httptextformat.py
---
old/opentelemetry-api-0.5b0/src/opentelemetry/trace/propagation/httptextformat.py
2020-03-17 00:12:29.000000000 +0100
+++
new/opentelemetry-api-0.6b0/src/opentelemetry/trace/propagation/httptextformat.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/trace/propagation/tracecontexthttptextformat.py
new/opentelemetry-api-0.6b0/src/opentelemetry/trace/propagation/tracecontexthttptextformat.py
---
old/opentelemetry-api-0.5b0/src/opentelemetry/trace/propagation/tracecontexthttptextformat.py
2020-03-17 00:12:29.000000000 +0100
+++
new/opentelemetry-api-0.6b0/src/opentelemetry/trace/propagation/tracecontexthttptextformat.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -33,7 +33,7 @@
_KEY_WITHOUT_VENDOR_FORMAT = r"[a-z][_0-9a-z\-\*\/]{0,255}"
_KEY_WITH_VENDOR_FORMAT = (
- r"[a-z][_0-9a-z\-\*\/]{0,240}@[a-z][_0-9a-z\-\*\/]{0,13}"
+ r"[a-z0-9][_0-9a-z\-\*\/]{0,240}@[a-z][_0-9a-z\-\*\/]{0,13}"
)
_KEY_FORMAT = _KEY_WITHOUT_VENDOR_FORMAT + "|" + _KEY_WITH_VENDOR_FORMAT
@@ -105,6 +105,7 @@
span_context = trace.SpanContext(
trace_id=int(trace_id, 16),
span_id=int(span_id, 16),
+ is_remote=True,
trace_flags=trace.TraceFlags(trace_flags),
trace_state=tracestate,
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/trace/sampling.py
new/opentelemetry-api-0.6b0/src/opentelemetry/trace/sampling.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/trace/sampling.py
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/trace/sampling.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/trace/status.py
new/opentelemetry-api-0.6b0/src/opentelemetry/trace/status.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/trace/status.py
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/trace/status.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/util/__init__.py
new/opentelemetry-api-0.6b0/src/opentelemetry/util/__init__.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/util/__init__.py
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/util/__init__.py
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/util/types.py
new/opentelemetry-api-0.6b0/src/opentelemetry/util/types.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/util/types.py 2020-03-17
00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/util/types.py 2020-03-31
07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
# limitations under the License.
-from typing import Dict, Optional, Sequence, Union
+from typing import Callable, Dict, Optional, Sequence, Union
AttributeValue = Union[
str,
@@ -26,3 +26,4 @@
Sequence[float],
]
Attributes = Optional[Dict[str, AttributeValue]]
+AttributesFormatter = Callable[[], Optional[Dict[str, AttributeValue]]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry/util/version.py
new/opentelemetry-api-0.6b0/src/opentelemetry/util/version.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/util/version.py
2020-03-17 00:12:57.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/util/version.py
2020-03-31 07:23:16.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,4 +12,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-__version__ = "0.5b0"
+__version__ = "0.6b0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry-api-0.5b0/src/opentelemetry_api.egg-info/PKG-INFO
new/opentelemetry-api-0.6b0/src/opentelemetry_api.egg-info/PKG-INFO
--- old/opentelemetry-api-0.5b0/src/opentelemetry_api.egg-info/PKG-INFO
2020-03-17 00:13:34.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry_api.egg-info/PKG-INFO
2020-03-31 07:23:45.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: opentelemetry-api
-Version: 0.5b0
+Version: 0.6b0
Summary: OpenTelemetry Python API
Home-page:
https://github.com/open-telemetry/opentelemetry-python/tree/master/opentelemetry-api
Author: OpenTelemetry Authors
@@ -27,7 +27,7 @@
* `OpenTelemetry Project <https://opentelemetry.io/>`_
Platform: UNKNOWN
-Classifier: Development Status :: 3 - Alpha
+Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
@@ -36,4 +36,5 @@
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
Description-Content-Type: text/x-rst