1364 Commits

Author SHA1 Message Date
671aea32f9 Add instrumentation for AWS Lambda Service - Implementation (Part 2/2) (#777)
* Add instrumentation for AWS Lambda Service - Implementation

* Lambda is CONSUMER SQS trace if 'Records' key in Lambda event

* More robust check of SQS by indexing and catching

* Explicitly catch errors we expect when determinig if SQS triggered Lambda
2021-11-01 20:02:58 +05:30
9dc3bbb8dc django: Fix instrumentation and tests for all Django major versions (#780) 2021-10-28 13:52:36 -07:00
6912c3963d Add setuptools instrumentation install requirement (#781)
The `setuptools` package is not part of the stdlib, but often available
in the system environment (it is a buildtime requirement).

`pkg_resources` (a package provided by `setuptools`) is used as
a runtime requirement in `opentelemetry-instrumentation`. Explicitly
listing `setuptools` as a requirement protects instrumentation from
breaking with import errors in cases where `setuptools` is not available
system-wide.

For example:

* A multi-stage Docker build where the final image does not contain
buildtime requirements.
* A build system that packages the runtime dependencies into a single
binary.

This commit pins `setuptools >= 16.0` because that is the first release
that included all 5 imports instrumentation currently relies on.

Co-authored-by: Matt Oberle <mattoberle@users.noreply.github.com>
2021-10-28 04:23:10 +05:30
335a14c682 adding CI testing for python 3.10 (#742) 2021-10-26 21:43:23 +00:00
76a5cda307 Don't set STATUS on SpanKind SERVER for 4XX status (#776) 2021-10-26 11:44:44 -07:00
dbc6a86bf1 Add instrumentation for AWS Lambda Service - pkg metadata files (Part 1/2) (#739)
* Add instrumentation for AWS Lambda Service

* Add AWS Lambda package metadata files
2021-10-26 20:58:12 +05:30
286f26bbed Pika - add publish_hook and consume_hook (#763) 2021-10-26 11:23:11 +02:00
4b9b6dc18e django: Fix carrier usage on ASGI requests (#767)
* django: Fix carrier usage on ASGI requests

For ASGI requests, we must use `request.scope` instead of
`request.META`. This is because `ASGIGetter` retrieves the `headers` key
from the carrier [0], which is only present in `request.scope`.

[0] https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/instrumentation/opentelemetry-instrumentation-asgi/src/opentelemetry/instrumentation/asgi/__init__.py#L133

* Add unit tests
2021-10-25 16:14:47 +00:00
3a78439307 falcon: Drop support for Python 3.4 (#774)
Remove unwanted support for Python versions <3.6.
This integration mistakenly lists Python 3.4 support, because it was
merged in
https://github.com/open-telemetry/opentelemetry-python/pull/1039,
after the merge of
https://github.com/open-telemetry/opentelemetry-python/pull/1099, so the
latter didn't consider `falcon`.

Python 3.4 is broken nevertheless, as this integration already includes
f-strings and other `opentelemetry` dependencies, which require Python 3.6.

Fixes #772.
2021-10-25 20:55:09 +05:30
07c52aad38 Refactor code using pyupgrade for Python 3.6 (#770)
* Refactor code using pyupgrade for Python 3.6

This diff is the result of applying the following command to the
project:

```shell
find . -type f -name "*.py" -exec pyupgrade --py36-plus '{}' +
```

* Simplify yield from
2021-10-24 07:04:06 +05:30
3ff06da2fb Bugfix: Pika basicConsume context propagation (#766) 2021-10-21 10:50:52 -07:00
ae7a415f47 Consolidate instrumentation documentation in docstrings (#754) 2021-10-21 09:54:30 -07:00
3049b4bfc5 Added asgiref depedency to opentelemetry-instrumentation-asgi (#765)
opentelemetry-instrumentaiton-asgi does not contain an instrumentor for
asgiref. Instead, it implements an ASGI middleware that other
instrumentors import and use. As such, other instrumentors can take a
dependency on this package without asgiref being installed locally. This
commit adds `asgiref` as a dependency to the
opentelemetry-instrumentation-asgi package so the middleware can
function properly when used by another instrumentation.
2021-10-21 02:10:03 +05:30
c24c77dd3a Bugfix/instrument basic publish in pika (#759) 2021-10-19 14:02:24 -07:00
433b8565da opentelemetry-instrument: Fix documented options (#747) 2021-10-19 19:18:11 +00:00
d158a5f3b8 Prepare release v1.6.2 and 0.25b2 (#762) v0.25b2 2021-10-20 00:00:28 +05:30
27e58e5e3a Re-enable CI generate check and generate bootstrap_gen (#757)
Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
2021-10-19 16:38:16 +00:00
22b069baae default value is invalid, was renamed (#755)
* default value is invalid, was renamed

* Update CHANGELOG.md

Co-authored-by: Owais Lone <owais@users.noreply.github.com>
2021-10-19 15:55:41 +00:00
f13b339a91 Check Request ID format on S3 call (#750) 2021-10-19 07:18:58 +00:00
9e57fbad8e Release AWS Python SDK Extension as 2.0.1 and AWS Propagator as 1.0.1 (#753) opentelemetry-propagator-aws-xray==1.0.1 opentelemetry-sdk-extension-aws==2.0.1 2021-10-18 14:51:52 -07:00
f3dde6b628 updating changelogs and version to 1.6.1-0.25b1 (#751) 0.25b1 2021-10-18 13:04:04 -07:00
c6ec4866ea Remove unnecessary deps on test pkgs (#752) 2021-10-18 19:39:27 +00:00
3058281f5e botocore: Add DynamoDB extension (#735)
* botocore: Add dynamodb extension

* extract addtional DynamoDB specific attributes according to the spec
* move DynamoDB tests to separate test module

* changelog

* add license info

Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
2021-10-18 11:53:06 +02:00
bf41b2e33f Bugfix/set default headers for properties in pika (#740)
* Bugfix the porperties.headers in the pika instrumentation, and write tests that ensure it

* Ensure that BasicProperties is called with headers={}

* Update CHANGELOG.md

* Update the span kind from SERVER/CLIENT to PRODUCER/CONSUMER

Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
2021-10-17 17:38:00 +05:30
4e3aaa51ec Fixed changelog (#746) 2021-10-15 19:02:33 +00:00
8ad84a56d0 Remove HTTPClientInstrumentor instrumentation entry point (#745)
Fixes #744

This is a temporary hotfix for the issue linked above. We'll need to
figure out a proper fix later.
2021-10-16 00:12:52 +05:30
f7256f5236 Fix build script to not release stable pkgs (#743) 2021-10-15 13:54:56 +02:00
b5d3074e8f Implement checking for suppression key in pymongo instrumentation (#736)
* Implement checking for suppression key


Add test for suppression key with pymongo


changelog update

* Linting

* pylint

* Bad reformat

* Update changelog with PR

Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
2021-10-15 00:27:30 +00:00
face2a3272 refactor common test code to use utility method (#700) 2021-10-14 22:19:02 +00:00
3ebfdb1a54 adding missing python 3.9 classifier (#741) 2021-10-14 21:52:44 +00:00
7cf3cb42cf Add instrumentation and distro packages (#738)
Now that SDK does not depend on opentelemetry-instrumentation
anymore and opentelemetry-instrumentation has actual build time
dependencies on the contrib repo, it makes maintanence a lot
easier if we move opentelemetry-instrumentation to contrib repo.
opentelemetry-distro depends on opentelemetry-instrumentation
and is being moved as well. Neither of the two packages are
really part of "core" Otel python anyway.
2021-10-14 20:35:28 +00:00
3f3de86df5 Fix RuntimeError: Working outside of request context. (#734) 2021-10-14 18:07:49 +00:00
9f6c97af9f Release/1.6.0 0.25b0 (#732) opentelemetry-sdk-extension-aws==2.0.0 v0.25b0 opentelemetry-propagator-aws-xray==1.0.0 2021-10-13 14:54:52 -07:00
cf718aab1f Path of AWS Propagator tests match src structure (#733) 2021-10-13 05:53:20 +05:30
1b75672e73 Don't create Elasticsearch span names containing document IDs (#705)
* Fix typo: _DEFALT_OP_NAME

* Extract ES document ID from URL, put in attributes

Elasticsearch creates URLs for index() and delete() before they hit
perform_request(). This means there would be many unique span names
containing unique document IDs, of the form
'Elasticsearch/indexname/_doc/documentid'.

This extracts the document ID from the URL and replaces it with ':id',
then puts it in the span's attributes.

* Add TODO comment with link to issue

* Add CHANGELOG entry

* Don't use custom doc types, deprecated in ES 7

* Update tests to match instrumentation
2021-10-13 04:00:00 +05:30
4046fdb0a2 Rename AWS X-Ray propagator test file for to change (#731) 2021-10-13 01:57:07 +05:30
78f887ef3d Better file naming for AWS XRay Propagator + Add NathanielRN as Propagator owner (#729) 2021-10-12 19:08:16 +00:00
e8af7a3339 Respect provided tracer provider when instrumenting SQLAlchemy (#728)
* respect provided tracer provider when instrumenting sqlalchemy

This change updates the SQLALchemyInstrumentor to respect the tracer
provider that is passed in through the kwargs when patching the
`create_engine` functionality provided by SQLAlchemy. Previously, it
would default to the global tracer provider.

* feedback: pass in tracer_provider directly rather than kwargs

* feedback: update changelog

* build: lint
2021-10-12 17:49:22 +00:00
5105820fff Add Django ASGI support (#391) 2021-10-12 10:28:03 -07:00
36275f3cbf Expand allowed versions for jinja2 instrumentation (#712)
* Expand allowed versions

The Jinja2 API hasn't changed the functions that have been wrapped in at least 8 years.
The version supported should be much more broad.

* don't include 4+

* Update changelog

* Fix test that depends on lru_cache now

* tox -e generate

* Make test setup backwards compatible

* Update for code review feedback

* Disable linting check

* Fix black formatting issue

* Update readme from tox -e generate

* Update core repo sha

Co-authored-by: alrex <aboten@lightstep.com>
Co-authored-by: Leighton Chen <lechen@microsoft.com>
Co-authored-by: Owais Lone <owais@users.noreply.github.com>
2021-10-12 16:15:16 +00:00
224780f38d Move AWS X-Ray Propagator into its own package (#720)
Co-authored-by: Owais Lone <owais@users.noreply.github.com>
Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
2021-10-12 15:44:03 +00:00
c3df816ad8 botocore: Introduce instrumentation extensions (#718)
* botocore: Introduce instrumentation extensions

* add extensions that are invoked before and after an AWS SDK
  service call to enrich the span with service specific request and
  response attirbutes
* move SQS specific parts to a separate extension

* changelog

Co-authored-by: Owais Lone <owais@users.noreply.github.com>
Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
2021-10-12 15:29:35 +00:00
b41a91713e Fix mssql docker tests v4 (#727)
* Remove unneded CI steps

These were not really needed and got in by mistake.

* Fix broken mssql integration tests

We were giving mssql server 10 seconds to start before creating the test
database. It now takes Github CI more than 10 seconds to start the mssql
server. Instead of increasing the leeway with guesses, this commit moves
the creation of test database from docker compose to the python test suite.
This allows the docker image to come up first and then create the DB
inside the test suite with proper retry mechanism that is already in
place.
2021-10-12 17:19:13 +02:00
cc2e7d276b Fix mssql docker tests v2 (#723)
* Pin ubuntu to 20.04 in CI

* Fix mssql docker tests
2021-10-12 01:43:32 +05:30
7f00fb88f2 Fix doc error in file-level code block (#710) 2021-10-11 09:51:52 -07:00
19e748f000 Revert "Pin ubuntu version in CI to 20.04"
This reverts commit d8373236da4c52392f6f243add68a5c64d1c16e2.
2021-10-11 22:05:03 +05:30
d8373236da Pin ubuntu version in CI to 20.04 2021-10-11 21:50:58 +05:30
492830f24f Bugfix/set default context in pika (#719)
* Add a default context when one does not exist

* Split the if to fit C0325: Unnecessary parens after 'not' keyword

* Split the context retrieving according to the function
2021-10-11 19:53:19 +05:30
5be20f9dc8 Adding tracked_url_callback to RequestsInstrumentor (#714)
* Adding `tracked_url_callback` to `RequestsInstrumentor`

* linting fixes and CHANGELOG update

* Switching to `get_excluded_urls`

* Update CHANGELOG.md

Co-authored-by: Leighton Chen <lechen@microsoft.com>

* Fixing linting

* Stop patch in tearDown

* Fixing lint

* Fixing lint

* Fixing lint

Co-authored-by: Leighton Chen <lechen@microsoft.com>
Co-authored-by: Owais Lone <owais@users.noreply.github.com>
2021-10-08 21:14:02 +00:00
c01aaa16fa Add oxeye-nikolay as codeowner for pika instrumentation (#717) 2021-10-06 13:20:11 -07:00