Commit Graph

142 Commits

Author SHA1 Message Date
HiveTraum 626cf89620 ext/django: django downgrade to 1.10 (#717)
Adding support for django 1.10+
2020-05-25 08:29:51 -07:00
Diego Hurtado 76e1362485 opencensus: Rename otcollector to opencensus (#695)
renaming otcollector to opencensus, as it's using opencensus under the hood. This was originally intended to be replaced by otlp, by a new package can be created for that instead. 

Co-authored-by: alrex <alrex.boten@gmail.com>
2020-05-22 21:01:05 -07:00
Connor Adams 62f9e464b8 SQLite3 Instrumentation (#719)
Adds instrumentation for python sqlite3 library.
2020-05-21 16:14:25 -07:00
alrex 4f4e278162 infra: accelerate builds (#693)
Some build time improvements:

- split lint/docker-tests/docs into their own steps. Since lint is usually the thing that fails anyways, it's good to have it run first. We could make the build depend on this step to prevent slowing other builds waiting in the pipeline (since we only have 5 workers)
- move all pip install commands into a single line per test environment. this reduces the overhead of calling the pip command separately multiple times per environment.
- removed pip upgrade command for pypy3 and py38
2020-05-21 13:15:12 -07:00
Mauricio Vásquez a8dc31188b docs: Consolidate getting started guide and remove duplicated examples (#658)
There are some examples that are duplicated in the getting started guide and in
the examples folder itself. This commit removes the duplicated examples and
updates the getting started guide to include then from real source files that
are passed through the linter and have tests.

Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
Co-authored-by: alrex <aboten@lightstep.com>
2020-05-21 12:11:59 -07:00
Connor Adams fd24b54e28 ext/psycopg2: Implement BaseInstrumentor interface (#694)
- Implemented BaseInstrumentor interface to enable auto-instrumentation
- Added integration tests (same tests as other db integrations)
2020-05-20 21:50:17 -07:00
Mauricio Vásquez 37c4016e4e docs: Fix warning and treat them as errors (#666)
The CI is not able to catch many documentation problems because we are ignoring
warnings. This commit fixes most of the warnings, ignores the rest and enables
a flag to treat them as errors.

Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
2020-05-14 20:27:16 -07:00
Tahir H. Butt 1767f5882c Add exporter to Datadog (#572)
Add an exporter to Datadog. This implementation makes use of ddtrace to handle the creation of Datadog traces and writing them to the Datadog agent.

Co-Authored-By: Mauricio Vásquez <mauricio@kinvolk.io>
2020-05-13 14:51:28 -07:00
Tahir H. Butt abb1fcfc05 jinja2: Add jinja2 instrumentation (#643)
Migrating the jinja2 plugin forked from ddtracepy.

Co-authored-by: Mauricio Vásquez <mauricio@kinvolk.io>
2020-05-11 09:33:06 -07:00
Mauricio Vásquez 5d79a27fe6 ext/mysql: Add instrumentor interface (#655)
Implement to helper methods to allow users to enable / disable instrumentation
in a single connection object.

Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
Co-authored-by: alrex <alrex.boten@gmail.com>
2020-05-08 19:04:36 -07:00
joshuahlang d551cc354b aiohttp: aiohttp client (#421)
Adding initial aiohttp client.

This module is only supported on Python3.5, which is the oldest supported by
aiohttp.

Co-authored-by: Yusuke Tsutsumi <yusuke@tsutsumi.io>
2020-05-06 20:40:47 -07:00
Diego Hurtado 988962d24e Add Django instrumentation (#593)
Initial Instrumentation

Co-authored-by: Mauricio Vásquez <mauricio@kinvolk.io>
Co-authored-by: Mathieu Hinderyckx <mathieu.hinderyckx@gmail.com>
Co-authored-by: alrex <alrex.boten@gmail.com>
Co-authored-by: Yusuke Tsutsumi <yusuke@tsutsumi.io>
2020-05-06 15:27:01 -07:00
Mauricio Vásquez ba030be66d requests: Rename http_requests to requests (#619)
The requests integration is named http-requests because at the time it was created there were some problems with pylint. 

other integrations are using opentelemetry.ext.integration without problems, tests are passing without issue, even renamed.
2020-05-02 21:31:15 -07:00
Mauricio Vásquez d9ad59bdbf Docs: fix docs dependencies (#625) 2020-04-30 16:35:15 -07:00
Mauricio Vásquez 4d7e590fa9 ext/pymysql: Add Instrumentor (#611)
Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
2020-04-29 14:30:58 -07:00
alrex b199df399f Porting sqlalchemy instrumentation from contrib repo (#591)
Porting the existing sqlalchemy instrumentation from
https://github.com/open-telemetry/opentelemetry-python-contrib/tree/master/reference/ddtrace/contrib/sqlalchemy

Co-authored-by: Mauricio Vásquez <mauricio@kinvolk.io>
Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
Co-authored-by: Chris Kleinknecht <libc@google.com>
2020-04-29 13:43:56 -07:00
Mauricio Vásquez d3e3dbdcab ext/pymongo: Add instrumentor (#612)
The current Pymongo integration uses the monitoring.register() [1] to hook
the different internal calls of Pymongo. This integration doesn't allow to
unregister a monitor. This commit workaround that limitation by adding an
enable flag to the CommandTracer class and adds a logic to disable the
integration.  This solution is not perfect becasue there will be some overhead
even when the instrumentation is disabled, but that's what we can do with
the current approach.

[1] https://api.mongodb.com/python/current/api/pymongo/monitoring.html#pymongo.monitoring.register

Co-authored-by: Alex Boten <aboten@lightstep.com>
2020-04-27 13:11:07 -07:00
Mauricio Vásquez b6fddf991b ext/requests: Add instrumentor (#597)
Implement the BaseInstrumentor interface to make this library compatible with the opentelemetry-auto-instr command.

There is an issue about getting the span when the global tracer provider hasn't been configured, this should be changed in the future once we extend the opentelemetry-auto-instr command to also configure the SDK.
2020-04-27 11:16:49 -07:00
alrex 1c6b9c0431 redis: Porting redis instrumentation from contrib repo (#595)
Porting the existing redis instrumentation from the contrib repo to using the OpenTelemetry API and the OpenTelemetry Auto-instrumentation Instrumentor interface.

Similiar to the sqlalchemy PR, the main thing that will need updating is to remove the patch/unpatch methods once the instrumentor interface changes have been merged.

This is replacing open-telemetry/opentelemetry-python-contrib#21

Co-authored-by: Mauricio Vásquez <mauricio@kinvolk.io>
Co-authored-by: Leighton Chen <lechen@microsoft.com>
Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
Co-authored-by: Chris Kleinknecht <libc@google.com>
2020-04-27 09:48:39 -07:00
Leighton Chen c7b98ead83 PyMySQL Integration (#504)
Integration for PyMySQL.

Fixes some documentation as well for other db integrations. Leverages dbapi.

Co-authored-by: Mauricio Vásquez <mauricio@kinvolk.io>
2020-04-24 13:18:02 -07:00
Mauricio Vásquez 437ff9af0d ext: Use TestBase (#586)
Update tests to use TestBase as described on #303.

Co-authored-by: Yusuke Tsutsumi <yusuke@tsutsumi.io>
Co-authored-by: Chris Kleinknecht <libc@google.com>
2020-04-20 13:58:49 -07:00
alrex e3827bb0f2 updating psycopg2 dependency (#588)
Without using binary here, users will need the tools to compile psycopg2 on
their systems.
2020-04-16 13:35:25 -07:00
Mauricio Vásquez 224301b1a5 requests: Improvements for requests integration (#573)
Adding a TestBase class which wraps a tracer provider that is configured with a memory span
exporter.  This class inherits from unitest.TestCase, hence other test classes
can inherit from it to get access to the underlying memory span exporter and
tracer provider.

Adding a mock propagator that could be used for testing propagation in different packages.
It was implemented in the opentracing-shim and this commit moves it to a generic
place.

Adding disable_session(), which can be used to disable the instrumentation on a single
requests' session object.
2020-04-14 20:20:54 -07:00
Chris Kleinknecht 8f4c470159 Move shared test code from ext/ to tests/ (#559)
opentelemetry-ext-testutil is a package with shared test classes used by ext packages (right now only opentelemetry-ext-flask). We don't release this package, just import it in other tests.

Right now, on each release, we build everything in ext/. This means whoever does the release has to remember to exclude this package when they push the others to PyPI.

This moves the files and package:

Move files ext/opentelemetry-ext-testutil -> tests/util
Move package opentelemetry.ext.testutil -> opentelemetry.test
This makes maintainers' lives easier, but it does mean that other packages that use testutils will have to install install the opentelemetry.test package from source. But this is already the case since we don't publish opentelemetry-ext-testutil.

we move shared test code back into the main repo until we move a package that depends on it into a separate repo, at which point we'll have to put this code in its own top-level package.
2020-04-14 18:19:02 -07:00
Hector Hernandez a800300cf8 test: Adding functional tests for MySQL integration (#526)
E2E verification for span creation using mysql and dbapi integrations
2020-04-13 09:01:01 -07:00
Hector Hernandez 9de5be3f82 Adding functional tests for psycopg2 integration (#528)
End to end verification for span creation using psycopg2 and dbapi integrations
2020-04-09 16:21:20 -07:00
Mauricio Vásquez fc4620c5b8
Add eachdist and move tox to root folder (#29)
Move tox and other configuration files to root folder. Add eachdist to make it
easier to handle operations with different packages.

The eachdist is taken from opentelemetry but slighty modified to avoid ignoring
a given path.
2020-04-09 10:06:59 -07:00
Chris Kleinknecht 0d4c5ffeb8 Require latest version of other packages in repo (#561)
Change unversioned requirements for packages in the same repo to ==0.7.dev0.

Co-authored-by: Mauricio Vásquez <mauricio@kinvolk.io>
2020-04-08 13:49:32 -07:00
Diego Hurtado 5aee3ce32e
Move DD code into its own directory (#6) 2020-04-08 10:39:44 -07:00
Diego Hurtado 7eacd3eab1 Fix Flask ext dependencies (#546)
Some Flask ext dependencies are missing or misplaced in the configuration file.

Fixes #545
2020-04-07 08:51:41 -07:00
Chris Kleinknecht 5c728bedab gRPC integration (#476)
This is a port of grpcio-opentracing, and borrows from opencensus-ext-grpc. It
adds client and server interceptors that wrap each request in a span and use
the new context API to inject/extract the traceparent header to/from gRPC
metadata.

Co-authored-by: alrex <alrex.boten@gmail.com>
Co-authored-by: Mauricio Vásquez <mauricio@kinvolk.io>
Co-authored-by: Mario Jonke <mario.jonke@dynatrace.com>
Co-authored-by: Daniel González <danielgonzalezlopes@gmail.com>
Co-authored-by: Alex Boten <aboten@lightstep.com>
Co-authored-by: Yusuke Tsutsumi <yusuke@tsutsumi.io>
2020-03-30 18:04:24 -07:00
Diego Hurtado d446cb5e22 Add an autoinstrumentation mechanism and an instrumentor for Flask (#327)
Adding an autoinstrumentation mechanism and a Flask instrumentor (an instrumentor is a class that implements the _instrument and _uninstrument methods).

It works like this:

A console command is defined. This makes it possible to run a command named opentelemetry-auto-instrumentation that will execute this function.

When the opentelemetry-auto-instrumentation command is executed, then the instrument method of the different instrumentors is called, which are made available via an entry-point.

2.In the case of the Flask instrumentor, the original flask.Flask gets replaced with _InstrumentedFlask (in this case, the Flask instrumentor uses monkey patching to perform the instrumentation, nevertheless, monkey patching is not always the method used to do this, so the name instrumentor is preferred over patcher).

Once all instrumentation is enabled, the app is executed.

Co-Authored-By: Mauricio Vásquez <mauricio@kinvolk.io>
Co-authored-by: Chris Kleinknecht <libc@google.com>
2020-03-30 12:44:43 -07:00
Daniel c108d15326 lint: Add test for package readme syntax errors (#492)
Add a test to ensure readmes render properly

Also adds README.rst for testutil package to pass new test.

Co-authored-by: Christian Neumüller <christian+github@neumueller.me>
2020-03-27 21:45:15 -07:00
Mauricio Vásquez c92e7e0444 docs: Reorganize examples and improve ext packages documentation (#483)
This commit moves the text on the readmes of the external packages to their
source code as a docstring. This improves the generated documentation and helps
to consolidate the documentation in a single place.

Also unify the readmes present on each package to include a 1 line description, installation instructions and a link to the online documentation. This small readme will be the one shown on Github and on PyPI.

Also change the examples structure to have the following examples:
- basic meter & tracer
- http integration
- jaeger, prometheus, otcollector{tracer, metrics}
- opentracing shim

Co-authored-by: alrex <alrex.boten@gmail.com>
Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
2020-03-24 14:45:54 -07:00
alrex ed6dd7f257
Removing support for python 2.7 (#2)
OpenTelemetry doesn't support Python 2.7. Removing it from the tests and removing contrib packages that don't support Python 3. In this change:

- removing pylons contrib
- removing mysqldb contrib
- updating minimum versions of flask (>=1.0), gevent (>=1.1)

Signed-off-by: Alex Boten <aboten@lightstep.com>
2020-03-23 09:43:03 -07:00
Mauricio Vásquez ef0536d34d Improve docs structure (#467)
- Creates a tree structure for documentation, it allows to organize it better
  from a developer point of view and also the rendered documentation should be
  easier to navigate.
- Moves partially the main readme to be included in the online docs, the main
  readme will be updated to have a link to avoid duplicated content)
- Moves the examples folder to the docs, so they can be accessed through the
  online documentation. Creates a new pair of "macros" to create links to
  specific versions, scm_web & scm_raw_web.

Co-authored-by: Chris Kleinknecht <libc@google.com>
2020-03-10 09:50:16 -07:00
Mauricio Vásquez 56fda78b27 sdk: Implement observer instrument (#425)
Observer instruments are used to capture a current set of values at a point in
time [1].

This commit extends the Meter interface to allow to register an observer
instrument by pasing a callback that will be executed at collection time.
The logic inside collection is updated to consider these instruments and
a new ObserverAggregator is implemented.

[1] https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/api-metrics.md#observer-instruments
2020-03-02 14:02:03 -08:00
Chris Kleinknecht 79a2ca277c Prepare to host on readthedocs.org (#452) 2020-03-02 11:42:24 -08:00
Hector Hernandez 21cbbb6990 OT Collector trace exporter (#405)
Based on the OpenCensus agent exporter.

Fixes #343

Co-authored-by: Chris Kleinknecht <libc@google.com>
2020-02-27 16:37:24 -08:00
Brett Langdon f13c716af6
Merge in latest from datadog/dd-trace-py (#1) 2020-02-26 08:57:16 -08:00
Hector Hernandez 2256f07e53 Prometheus metric exporter (#378)
prometheus-exporter: initial commit
2020-02-21 11:31:04 -08:00
joshuahlang b259e320a6 Clean up tox.ini (#417)
Remove redundant environments and separate environments into logical groupings
for maintainability.
2020-02-20 09:25:04 -08:00
Yusuke Tsutsumi 260ca25911 Upgrading tox envs to python3.8 (#426)
Python3.8 is now stable, and we should run the common tasks under 3.8
instead of 3.7
2020-02-18 10:33:30 -08:00
alrex 2b2a512724 Adding Context API (#395)
This change implements the Context API portion of OTEP #66. The
CorrelationContext API and Propagation API changes will come in future PRs.
We're leveraging entrypoints to support other implementations of the Context
API if/when necessary. For backwards compatibility, this change uses
aiocontextvars for Python versions older than 3.7.

Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
Co-authored-by: Mauricio Vásquez <mauricio@kinvolk.io>
2020-02-13 15:18:39 -08:00
Hector Hernandez 35001a0c69 Add pymongo functional tests (#340) 2020-02-07 13:55:09 -08:00
Hector Hernandez ee2796a924 Adding psycopg2 integration (#298) 2020-01-21 16:32:38 -08:00
Daniel González 8b08ed0e60 Remove pinned multidict (#364) 2020-01-13 11:52:23 -08:00
alrex e43ee892ef Using InMemorySpanExporter for wsgi/flask tests (#306)
The InMemorySpanExporter provides a friendly interface to retrieving span information, reducing the need for mocking in unit tests.

Signed-off-by: Alex Boten <aboten@lightstep.com>
2020-01-07 09:58:27 -08:00
Hector Hernandez f28e259eb5 Adding DB API integration + MySQL connector integration (#264)
Adding the ext.dbapi and ext.mysql package.
2020-01-05 09:41:15 -08:00
alrex 8b0cb2fa2f Adding Zipkin exporter (#320)
Signed-off-by: Alex Boten <aboten@lightstep.com>
2019-12-29 22:02:55 -08:00
alrex ee50e5073e Adding docs for sdk and integrations (#319)
Adding documentation that was previously missing for multiple sdks and integrations.

Signed-off-by: Alex Boten <aboten@lightstep.com>
2019-12-12 10:18:15 -08:00
Christian Neumüller 748339ce5c Work around build failures (#330) 2019-12-11 09:55:54 -08:00
Christian Neumüller f6d132f61d Add eachdist.py to simplify build (#291) 2019-12-09 17:54:56 -08:00
Christian Neumüller f5ca0bffad Do full Sphinx build every time to not hide errors (#322) 2019-12-09 15:39:26 -08:00
Diego Hurtado 0f88a05b5e Add posargs (#324)
Fixes #323
2019-12-09 15:26:42 -08:00
Chris Kleinknecht 95deb74b8b Remove obsolete version requirement for pytest (#317) 2019-12-06 10:49:16 -08:00
Leighton Chen 17b58d131d Implement LabelSet for metrics (#258)
The primary purpose of LabelSets are to have an optimal way of re-using handles
with the same label values. We achieve this by having the keys and values of
the labels encoded and stored in each LabelSet instance, so we can have an easy
lookup to the corresponding handle for each metric instrument.
2019-12-02 21:25:53 -08:00
alrex d79ca4c148 Always recreate lint env (#310) 2019-11-27 14:19:17 -08:00
Johannes Liebermann e985bec6ed Add documentation for the OpenTracing shim (#244) 2019-11-25 13:09:44 -08:00
Christian Neumüller aa0623b662 Add Flask integration based on WSGI ext (#206)
The flask integration has (only) two advantages over the plain WSGI middleware
approach:

- It can use the endpoint as span name (which is lower cardinality than the
  route; cf #270)
- It can set the http.route attribute.

In addition, it also has an easier syntax to enable (you don't have to know
about Flask.wsgi_app).
2019-11-22 16:27:55 -08:00
Leighton Chen 9fd4d2a84f Remove Azure Exporters out of main repo (master) (#272) 2019-11-21 08:13:14 -08:00
alrex 3b89d506d1 Adding more documentation around examples (#277) 2019-11-15 18:10:21 -08:00
alrex 5d00aeb550 Skip pytest 5.2.3 (#293) 2019-11-15 13:45:51 -08:00
Chris Kleinknecht f4433d9332 Bump sphinx-autodoc-typehints to 1.10.2 (#271) 2019-11-12 10:58:18 -08:00
Hector Hernandez c04bc874ae Adding pymongo integration (#232) 2019-11-07 15:13:18 -08:00
Aliaksei Urbanski ef96394c16 Add test coverage collecting (#128) 2019-11-06 16:11:45 -08:00
Hector Hernandez 4e505248db Do not use latest sphinx-autodoc-typehints (#267) 2019-11-04 14:57:02 -08:00
Yusuke Tsutsumi 38c8c0fbc7 Adding w3c tracecontext integration test (#228)
Verifying that our tracecontext is compliant with the w3c
tracecontext reference is valuable. Adding a tox command
to verify that the TraceContext propagator adheres to the
w3c spec.

The tracecontexthttptextformat is now completely compliant with the w3c
tracecontext test suite.
2019-10-29 11:01:59 -07:00
Johannes Liebermann 47bafab91b OpenTracing Bridge - Initial implementation (#211)
Initial implementation, without baggage support.
2019-10-24 16:46:23 +02:00
Johannes Liebermann 49b63f95a1 Fix mypy errors (#229)
In particular, the following errors are fixed in this commit:

* Don't return False in __exit__

Returning a literal causes a mypy error when combined with the
`typing.Optional[bool]` type hint. Furthermore, exception handling is
the same when returning `False` and when returning `None` (the
exception is re-raised). Therefore, it's simpler to remove the return
statement and change the type hint to `None`.

* Correctly initialize nested tuple

Tuples of length 1 should be initialized with a trailing comma to be
properly interpreted.

* Pass correct type to use_context() in test

* Add type annotations for test helper functions

Since we have `disallow_untyped_calls = True` in our mypy config for
tests, we must add type annotations to any function that is called
from a test.


Addditionally, bump minimal mypy version to 0.740 to consistently reproduce these errors.
2019-10-21 17:27:32 +02:00
Mauricio Vásquez 050ede7173 Add Jaeger exporter (#174)
This adds a Jeager exporter for OpenTelemetry.  This exporter is based
on https://github.com/census-instrumentation/opencensus-python/tree/master/contrib/opencensus-ext-jaeger.

The exporter uses thrift and can be configured to send data to the agent and
also to a remote collector.

There is a long discussion going on about how to include generated files
in the repo, so for now just put them here.
2019-10-08 12:24:23 +02:00
Reiley Yang d0bee00e1a Move example app to the examples folder (#172) 2019-09-25 12:46:41 -07:00
Reiley Yang 657c8fd39e Skeleton for azure monitor exporters (#151) 2019-09-24 20:12:56 -07:00
Christian Neumüller f6f8d55816 Ensure that type info is picked up from installed package. (#124)
* Ensure that type info is picked up from installed package.

This required moving all top-level modules to a sub-package, to not
create collisions with py.typed marker files.

See https://www.python.org/dev/peps/pep-0561/#packaging-type-information

* Add MANIFEST.in for SDK package.
2019-09-16 11:19:34 +02:00
Aliaksei Urbanski 6765f82ab0 Fix skipping tests for PyPy (#133) 2019-09-11 10:25:00 +02:00
Yusuke Tsutsumi 1e8e5dd923 Introducing an example app instrumented with opentelemetry (#129)
Creating an example app that showcases how an application integrates with opentelemetry.
2019-09-10 22:14:26 -07:00
Christian Neumüller 786430c16c Fix setup for ext packages. (#122)
* Fix setup for ext packages.

Previously the wheels would contain the metadata but not the actual
code.

* Check that all packages install properly in test.

* Document why we don't use -e.
2019-09-06 11:30:18 +02:00
Mauricio Vásquez cf13bbb94a tox: add --diff to isort (#118)
Sometimes it complains and it is difficult to understand what exactly it wants.
The --diff option allows to know what is the format it expects.
2019-09-02 13:23:40 +02:00
Allan Feldman 5b00ddcaed Add initial black formatting (#104)
Closes: #88
2019-08-29 10:20:42 -07:00
Christian Neumüller 5480b0eee6 Fix running tox on Windows. (#111) 2019-08-27 09:51:21 -07:00
Christian Neumüller 009de09c20 Requests integration (#94)
Adds requests integration. Two commits that might be of special interest (see #94):

* c66af2faa100b0f41afafdb6e4de9f4de4cc62bc requests test: Use actual Response object.

Co-Authored-By: Allan Feldman <6374032+a-feld@users.noreply.github.com>

* 1b90a0ddc286c936f7256b14e14ef36fd3c6a24f More tests, rename to http-requests to work around pylint bug (?)

See previous CI failure for pylint issue:

************* Module ext/opentelemetry-ext-requests/src/__init__.py
ext/opentelemetry-ext-requests/src/__init__.py:1:0: F0001: No module named ext/opentelemetry-ext-requests/src/__init__.py (fatal)

It seems that pylint gets confused when there is more than one "requests" module??
2019-08-27 16:01:23 +02:00
Aliaksei Urbanski 94be2dcd04 Improve testing (#95)
I believe it would be nice to have
tests on CI not only for Python 3.7,
but for all supported Python versions.

These changes:

 - fix compatibility with Python 3.5 and 3.4

 - add tests for various Python versions on CI

 - allow running tests for any branches
2019-08-26 12:48:04 +02:00
Allan Feldman db9fdb8a16 Implement WSGI middleware integration. (#84) 2019-08-19 11:10:15 -07:00
Chris Kleinknecht b6b1bc9a71 Lint SDK package (#65) 2019-07-26 16:53:07 -07:00
Chris Kleinknecht c150fb8c17 Add stub tracer SDK (#55) 2019-07-17 16:05:59 -07:00
Chris Kleinknecht e908d0eafa Add flake8 and isort lint checks (#46) 2019-07-16 10:34:40 -07:00
Christian Neumüller 981681a5dd Lint more files, relax some type checks (#43) 2019-07-15 16:03:02 -07:00
Christian Neumüller c1ee8c7777 Add unittest based unit-tests. (#42) 2019-07-12 14:28:47 +02:00
Christian Neumüller ab563ee34f Misc build improvements (build docs & more) (#38)
* Build docs.

* Minor tox.ini improvements.

* .gitignore mypy

* Fix doc build.

* Tell travis to build docs (with 3.7).
2019-07-08 10:28:34 +02:00
Reiley Yang 6205cfc0b3 Improve package layout (#37) 2019-07-01 13:40:06 -07:00
Chris Kleinknecht ef890d67eb Add type check to travis (#31) 2019-06-27 09:38:05 -07:00
Chris Kleinknecht cbf464cc99 Add tox and travis, run pylint on builds (#30) 2019-06-26 13:55:13 -07:00