Skip to content

Commit 7737f53

Browse files
committed
2 parents 7fb531d + 7408bb7 commit 7737f53

File tree

118 files changed

+466
-2109
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

118 files changed

+466
-2109
lines changed

.github/workflows/publish.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Publish
22

33
on:
44
release:
5-
types: [created]
5+
types: [published]
66

77
jobs:
88
publish:

.github/workflows/test.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
- 'release/*'
77
pull_request:
88
env:
9-
CORE_REPO_SHA: c4cdffd0c8bd47b2e5c4f4a823722ca514f10db3
9+
CORE_REPO_SHA: 67bbad45917baa354a3a6d0d4361da48ff13fd31
1010

1111
jobs:
1212
build:

CHANGELOG.md

+28-7
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [Unreleased](https://github.com/open-telemetry/opentelemetry-python/compare/v1.3.0-0.22b0...HEAD)
9-
- `opentelemetry-sdk-extension-aws` Update AWS entry points to match spec
10-
([#566](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/566))
11-
- Include Flask 2.0 as compatible with existing flask instrumentation
12-
([#545](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/545))
13-
- `openelemetry-sdk-extension-aws` Take a dependency on `opentelemetry-sdk`
14-
([#558](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/558))
8+
## [Unreleased](https://github.com/open-telemetry/opentelemetry-python/compare/v1.4.0-0.23b0...HEAD)
9+
10+
## [1.4.0-0.23b0](https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.4.0-0.23b0) - 2021-07-19
11+
12+
13+
14+
### Removed
15+
- Move `opentelemetry-instrumentation` to the core repo.
16+
([#595](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/595))
1517

1618
### Changed
1719
- `opentelemetry-instrumentation-tornado` properly instrument work done in tornado on_finish method.
@@ -34,8 +36,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3436
- Updating dependency for opentelemetry api/sdk packages to support major version instead
3537
of pinning to specific versions.
3638
([#567](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/567))
39+
- `opentelemetry-instrumentation-grpc` Respect the suppress instrumentation in gRPC client instrumentor
40+
([#559](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/559))
3741
- `opentelemetry-instrumentation-grpc` Fixed asynchonous unary call traces
3842
([#536](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/536))
43+
- `opentelemetry-sdk-extension-aws` Update AWS entry points to match spec
44+
([#566](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/566))
45+
- Include Flask 2.0 as compatible with existing flask instrumentation
46+
([#545](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/545))
47+
- `openelemetry-sdk-extension-aws` Take a dependency on `opentelemetry-sdk`
48+
([#558](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/558))
49+
- Change `opentelemetry-instrumentation-httpx` to replace `client` classes with instrumented versions.
50+
([#577](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/577))
51+
- `opentelemetry-instrumentation-requests` Fix potential `AttributeError` when `requests`
52+
is used with a custom transport adapter.
53+
([#562](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/562))
54+
- `opentelemetry-instrumentation-django` Fix AttributeError: ResolverMatch object has no attribute route
55+
([#581](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/581))
56+
- `opentelemetry-instrumentation-botocore` Suppress botocore downstream instrumentation like urllib3
57+
([#563](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/563))
58+
- `opentelemetry-exporter-datadog` Datadog exporter should not use `unknown_service` as fallback resource service name.
59+
([#570](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/570))
3960

4061
### Added
4162
- `opentelemetry-instrumentation-httpx` Add `httpx` instrumentation

_template/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "0.23.dev0"
15+
__version__ = "0.23b0"

docs-requirements.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ sphinx-autodoc-typehints
66
# doesn't work for pkg_resources.
77
-e "git+https://github.com/open-telemetry/opentelemetry-python.git#egg=opentelemetry-api&subdirectory=opentelemetry-api"
88
-e "git+https://github.com/open-telemetry/opentelemetry-python.git#egg=opentelemetry-semantic-conventions&subdirectory=opentelemetry-semantic-conventions"
9-
-e "git+https://github.com/open-telemetry/opentelemetry-python-contrib.git#egg=opentelemetry-instrumentation&subdirectory=opentelemetry-instrumentation"
9+
-e "git+https://github.com/open-telemetry/opentelemetry-python.git#egg=opentelemetry-instrumentation&subdirectory=opentelemetry-instrumentation"
1010
-e "git+https://github.com/open-telemetry/opentelemetry-python.git#egg=opentelemetry-sdk&subdirectory=opentelemetry-sdk"
1111
-e "git+https://github.com/open-telemetry/opentelemetry-python-contrib.git#egg=opentelemetry-util-http&subdirectory=util/opentelemetry-util-http"
1212

docs/conf.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@
2525
settings.configure()
2626

2727
source_dirs = [
28-
os.path.abspath("../opentelemetry-instrumentation/src/"),
28+
os.path.abspath(
29+
"../opentelemetry-python-core/opentelemetry-instrumentation/src/"
30+
),
2931
]
3032

3133
exp = "../exporter"

eachdist.ini

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ sortfirst=
1717
ext/*
1818

1919
[stable]
20-
version=1.4.0.dev0
20+
version=1.4.0
2121

2222
packages=
2323
opentelemetry-sdk
@@ -35,7 +35,7 @@ packages=
3535
opentelemetry-api
3636

3737
[prerelease]
38-
version=0.23.dev0
38+
version=0.23b0
3939

4040
packages=
4141
all

exporter/opentelemetry-exporter-datadog/setup.cfg

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ install_requires =
4141
ddtrace>=0.34.0,<0.47.0
4242
opentelemetry-api ~= 1.3
4343
opentelemetry-sdk ~= 1.3
44-
opentelemetry-semantic-conventions == 0.23.dev0
44+
opentelemetry-semantic-conventions == 0.23b0
4545

4646
[options.packages.find]
4747
where = src

exporter/opentelemetry-exporter-datadog/src/opentelemetry/exporter/datadog/exporter.py

+9-5
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,12 @@ def _translate_to_datadog(self, spans):
135135
[
136136
resource_tags,
137137
resource_service_name,
138-
] = _extract_tags_from_resource(span.resource)
138+
] = _extract_tags_from_resource(span.resource, self.service)
139139

140140
datadog_span = DatadogSpan(
141141
tracer,
142142
_get_span_name(span),
143-
service=resource_service_name or self.service,
143+
service=resource_service_name,
144144
resource=_get_resource(span),
145145
span_type=_get_span_type(span),
146146
trace_id=trace_id,
@@ -312,19 +312,23 @@ def _parse_tags_str(tags_str):
312312
return parsed_tags
313313

314314

315-
def _extract_tags_from_resource(resource):
315+
def _extract_tags_from_resource(resource, fallback_service_name):
316316
"""Parse tags from resource.attributes, except service.name which
317317
has special significance within datadog"""
318318
tags = {}
319-
service_name = None
320319
if not (resource and getattr(resource, "attributes", None)):
321-
return [tags, service_name]
320+
return [tags, fallback_service_name]
322321

322+
service_name = None
323323
for attribute_key, attribute_value in resource.attributes.items():
324324
if attribute_key == SERVICE_NAME_TAG:
325325
service_name = attribute_value
326326
else:
327327
tags[attribute_key] = attribute_value
328+
329+
if service_name is None or service_name == "unknown_service":
330+
service_name = fallback_service_name
331+
328332
return [tags, service_name]
329333

330334

exporter/opentelemetry-exporter-datadog/src/opentelemetry/exporter/datadog/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "0.23.dev0"
15+
__version__ = "0.23b0"

exporter/opentelemetry-exporter-datadog/tests/test_datadog_exporter.py

+38
Original file line numberDiff line numberDiff line change
@@ -612,3 +612,41 @@ def test_sampling_rate(self):
612612
]
613613
expected = [0.5]
614614
self.assertListEqual(actual, expected)
615+
616+
def test_service_name_fallback(self):
617+
context = trace_api.SpanContext(
618+
trace_id=0x000000000000000000000000DEADBEEF,
619+
span_id=0x34BF92DEEFC58C92,
620+
is_remote=False,
621+
trace_flags=trace_api.TraceFlags(trace_api.TraceFlags.SAMPLED),
622+
)
623+
trace_api.get_tracer_provider().sampler = sampling.TraceIdRatioBased(
624+
0.5
625+
)
626+
627+
resource_with_default_name = Resource(
628+
attributes={
629+
"key_resource": "some_resource",
630+
"service.name": "unknown_service",
631+
}
632+
)
633+
634+
span = trace._Span(
635+
name="sampled",
636+
context=context,
637+
parent=None,
638+
resource=resource_with_default_name,
639+
)
640+
span.start()
641+
span.end()
642+
643+
# pylint: disable=protected-access
644+
exporter = datadog.DatadogSpanExporter(service="fallback_service_name")
645+
datadog_spans = [
646+
span.to_dict() for span in exporter._translate_to_datadog([span])
647+
]
648+
649+
self.assertEqual(len(datadog_spans), 1)
650+
651+
span = datadog_spans[0]
652+
self.assertEqual(span["service"], "fallback_service_name")

instrumentation/opentelemetry-instrumentation-aiohttp-client/setup.cfg

+3-3
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ package_dir=
3939
packages=find_namespace:
4040
install_requires =
4141
opentelemetry-api ~= 1.3
42-
opentelemetry-semantic-conventions == 0.23.dev0
43-
opentelemetry-instrumentation == 0.23.dev0
44-
opentelemetry-util-http == 0.23.dev0
42+
opentelemetry-semantic-conventions == 0.23b0
43+
opentelemetry-instrumentation == 0.23b0
44+
opentelemetry-util-http == 0.23b0
4545
wrapt >= 1.0.0, < 2.0.0
4646

4747
[options.packages.find]

instrumentation/opentelemetry-instrumentation-aiohttp-client/src/opentelemetry/instrumentation/aiohttp_client/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "0.23.dev0"
15+
__version__ = "0.23b0"

instrumentation/opentelemetry-instrumentation-aiopg/setup.cfg

+4-4
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ package_dir=
3939
packages=find_namespace:
4040
install_requires =
4141
opentelemetry-api ~= 1.3
42-
opentelemetry-semantic-conventions == 0.23.dev0
43-
opentelemetry-instrumentation-dbapi == 0.23.dev0
44-
opentelemetry-instrumentation == 0.23.dev0
42+
opentelemetry-semantic-conventions == 0.23b0
43+
opentelemetry-instrumentation-dbapi == 0.23b0
44+
opentelemetry-instrumentation == 0.23b0
4545
wrapt >= 1.0.0, < 2.0.0
4646

4747
[options.extras_require]
4848
test =
49-
opentelemetry-test == 0.23.dev0
49+
opentelemetry-test == 0.23b0
5050

5151
[options.packages.find]
5252
where = src

instrumentation/opentelemetry-instrumentation-aiopg/src/opentelemetry/instrumentation/aiopg/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "0.23.dev0"
15+
__version__ = "0.23b0"

instrumentation/opentelemetry-instrumentation-asgi/setup.cfg

+4-4
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ package_dir=
3939
packages=find_namespace:
4040
install_requires =
4141
opentelemetry-api ~= 1.3
42-
opentelemetry-semantic-conventions == 0.23.dev0
43-
opentelemetry-instrumentation == 0.23.dev0
44-
opentelemetry-util-http == 0.23.dev0
42+
opentelemetry-semantic-conventions == 0.23b0
43+
opentelemetry-instrumentation == 0.23b0
44+
opentelemetry-util-http == 0.23b0
4545

4646
[options.extras_require]
4747
test =
48-
opentelemetry-test == 0.23.dev0
48+
opentelemetry-test == 0.23b0
4949

5050
[options.packages.find]
5151
where = src

instrumentation/opentelemetry-instrumentation-asgi/src/opentelemetry/instrumentation/asgi/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "0.23.dev0"
15+
__version__ = "0.23b0"

instrumentation/opentelemetry-instrumentation-asyncpg/setup.cfg

+3-3
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ package_dir=
3939
packages=find_namespace:
4040
install_requires =
4141
opentelemetry-api ~= 1.3
42-
opentelemetry-semantic-conventions == 0.23.dev0
43-
opentelemetry-instrumentation == 0.23.dev0
42+
opentelemetry-semantic-conventions == 0.23b0
43+
opentelemetry-instrumentation == 0.23b0
4444

4545
[options.extras_require]
4646
test =
47-
opentelemetry-test == 0.23.dev0
47+
opentelemetry-test == 0.23b0
4848

4949
[options.packages.find]
5050
where = src

instrumentation/opentelemetry-instrumentation-asyncpg/src/opentelemetry/instrumentation/asyncpg/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "0.23.dev0"
15+
__version__ = "0.23b0"

instrumentation/opentelemetry-instrumentation-boto/setup.cfg

+4-4
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ package_dir=
3939
packages=find_namespace:
4040
install_requires =
4141
opentelemetry-api ~= 1.3
42-
opentelemetry-semantic-conventions == 0.23.dev0
43-
opentelemetry-instrumentation == 0.23.dev0
44-
opentelemetry-instrumentation-botocore == 0.23.dev0
42+
opentelemetry-semantic-conventions == 0.23b0
43+
opentelemetry-instrumentation == 0.23b0
44+
opentelemetry-instrumentation-botocore == 0.23b0
4545

4646
[options.extras_require]
4747
test =
4848
moto~=2.0
49-
opentelemetry-test == 0.23.dev0
49+
opentelemetry-test == 0.23b0
5050

5151
[options.packages.find]
5252
where = src

instrumentation/opentelemetry-instrumentation-boto/src/opentelemetry/instrumentation/boto/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "0.23.dev0"
15+
__version__ = "0.23b0"

instrumentation/opentelemetry-instrumentation-botocore/setup.cfg

+3-3
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ package_dir=
3939
packages=find_namespace:
4040
install_requires =
4141
opentelemetry-api ~= 1.3
42-
opentelemetry-semantic-conventions == 0.23.dev0
43-
opentelemetry-instrumentation == 0.23.dev0
42+
opentelemetry-semantic-conventions == 0.23b0
43+
opentelemetry-instrumentation == 0.23b0
4444

4545
[options.extras_require]
4646
test =
4747
moto[all] ~= 2.0
48-
opentelemetry-test == 0.23.dev0
48+
opentelemetry-test == 0.23b0
4949

5050
[options.packages.find]
5151
where = src

instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/__init__.py

+13
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,13 @@
6868

6969
logger = logging.getLogger(__name__)
7070

71+
# A key to a context variable to avoid creating duplicate spans when instrumenting
72+
# both botocore.client and urllib3.connectionpool.HTTPConnectionPool.urlopen since
73+
# botocore calls urlopen
74+
_SUPPRESS_HTTP_INSTRUMENTATION_KEY = context_api.create_key(
75+
"suppress_http_instrumentation"
76+
)
77+
7178

7279
# pylint: disable=unused-argument
7380
def _patched_endpoint_prepare_request(wrapped, instance, args, kwargs):
@@ -161,10 +168,16 @@ def _patched_api_call(self, original_func, instance, args, kwargs):
161168
"aws.table_name", api_params["TableName"]
162169
)
163170

171+
token = context_api.attach(
172+
context_api.set_value(_SUPPRESS_HTTP_INSTRUMENTATION_KEY, True)
173+
)
174+
164175
try:
165176
result = original_func(*args, **kwargs)
166177
except ClientError as ex:
167178
error = ex
179+
finally:
180+
context_api.detach(token)
168181

169182
if error:
170183
result = error.response

instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "0.23.dev0"
15+
__version__ = "0.23b0"

instrumentation/opentelemetry-instrumentation-celery/setup.cfg

+3-3
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ package_dir=
3939
packages=find_namespace:
4040
install_requires =
4141
opentelemetry-api ~= 1.3
42-
opentelemetry-semantic-conventions == 0.23.dev0
43-
opentelemetry-instrumentation == 0.23.dev0
42+
opentelemetry-semantic-conventions == 0.23b0
43+
opentelemetry-instrumentation == 0.23b0
4444

4545
[options.extras_require]
4646
test =
4747
pytest
48-
opentelemetry-test == 0.23.dev0
48+
opentelemetry-test == 0.23b0
4949

5050
[options.packages.find]
5151
where = src

0 commit comments

Comments
 (0)