Skip to content

Commit 002279b

Browse files
author
Andrew Xue
committed
Add Cloud Trace Exporter
1 parent e91041f commit 002279b

File tree

22 files changed

+681
-556
lines changed

22 files changed

+681
-556
lines changed

docs-requirements.txt

+5
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,8 @@ redis>=2.6
1919
sqlalchemy>=1.0
2020
thrift>=0.10.0
2121
wrapt >=1.0.0,<2.0.0
22+
google-cloud-core >=1.3.0
23+
google-api-core >=1.17.0
24+
google-cloud-trace >=0.23.0
25+
google-cloud-monitoring >=0.36.0
26+
grpcio >=1.28.1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
Cloud Trace Exporter Example
2+
============================
3+
4+
These examples show how to use OpenTelemetry to send tracing data to Cloud Trace.
5+
6+
7+
Basic Example
8+
-------------
9+
10+
To use this exporter you first need to:
11+
* A Google Cloud project. You can `create one here. <https://console.cloud.google.com/projectcreate>`_
12+
* Enable Cloud Trace API (aka StackDriver Trace API) in the project `here. <https://console.cloud.google.com/apis/library?q=cloud_trace>`_
13+
* Enable `Default Application Credentials. <https://developers.google.com/identity/protocols/application-default-credentials>`_
14+
15+
* Installation
16+
17+
.. code-block:: sh
18+
19+
pip install opentelemetry-api
20+
pip install opentelemetry-sdk
21+
pip install opentelemetry-exporter-cloud-trace
22+
23+
* Run example
24+
25+
.. code-block:: sh
26+
27+
python basic_trace.py
28+
29+
Checking Output
30+
--------------------------
31+
32+
After running any of these examples, you can go to `Cloud Trace overview <https://console.cloud.google.com/traces/list>`_ to see the results.
33+
34+
* `More information about exporters in general <https://opentelemetry-python.readthedocs.io/en/stable/getting-started.html#configure-exporters-to-emit-spans-elsewhere>`_
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from opentelemetry import trace
2+
from opentelemetry.exporter.cloud_trace import CloudTraceSpanExporter
3+
from opentelemetry.sdk.trace import TracerProvider
4+
from opentelemetry.sdk.trace.export import SimpleExportSpanProcessor
5+
6+
trace.set_tracer_provider(TracerProvider())
7+
8+
cloud_trace_exporter = CloudTraceSpanExporter()
9+
trace.get_tracer_provider().add_span_processor(
10+
SimpleExportSpanProcessor(cloud_trace_exporter)
11+
)
12+
tracer = trace.get_tracer(__name__)
13+
with tracer.start_as_current_span("foo"):
14+
print("Hello world!")

docs/ext/cloud_trace/cloud_trace.rst

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
OpenTelemetry Cloud Trace Exporter
2+
==================================
3+
4+
.. automodule:: opentelemetry.exporter.cloud_trace
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
OpenTelemetry Cloud Trace Exporters
2+
===================================
3+
4+
This library provides classes for exporting trace data to Google Cloud Trace.
5+
6+
Installation
7+
------------
8+
9+
::
10+
11+
pip install opentelemetry-exporter-cloud-trace
12+
13+
Usage
14+
-----
15+
16+
.. code:: python
17+
18+
from opentelemetry import trace
19+
from opentelemetry.exporter.cloud_trace import CloudTraceSpanExporter
20+
from opentelemetry.sdk.trace import TracerProvider
21+
from opentelemetry.sdk.trace.export import (
22+
SimpleExportSpanProcessor,
23+
)
24+
25+
trace.set_tracer_provider(TracerProvider())
26+
27+
cloud_trace_exporter = CloudTraceSpanExporter(
28+
project_id='my-gcloud-project',
29+
)
30+
trace.get_tracer_provider().add_span_processor(
31+
SimpleExportSpanProcessor(cloud_trace_exporter)
32+
)
33+
tracer = trace.get_tracer(__name__)
34+
with tracer.start_as_current_span('foo'):
35+
print('Hello world!')
36+
37+
38+
39+
References
40+
----------
41+
42+
* `Cloud Trace <https://cloud.google.com/trace/>`_
43+
* `OpenTelemetry Project <https://opentelemetry.io/>`_

ext/opentelemetry-ext-stackdriver/setup.cfg renamed to ext/opentelemetry-exporter-cloud-trace/setup.cfg

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2019, OpenTelemetry Authors
1+
# Copyright OpenTelemetry Authors
22
#
33
# Licensed under the Apache License, Version 2.0 (the "License");
44
# you may not use this file except in compliance with the License.
@@ -13,17 +13,17 @@
1313
# limitations under the License.
1414
#
1515
[metadata]
16-
name = opentelemetry-ext-stackdriver
17-
description = Stackdriver integration for OpenTelemetry
16+
name = opentelemetry-exporter-cloud-trace
17+
description = Cloud Trace integration for OpenTelemetry
1818
long_description = file: README.rst
1919
long_description_content_type = text/x-rst
2020
author = OpenTelemetry Authors
2121
author_email = [email protected]
22-
url = https://github.com/open-telemetry/opentelemetry-python/ext/opentelemetry-ext-stackdriver
22+
url = https://github.com/open-telemetry/opentelemetry-python/ext/opentelemetry-exporter-cloud-trace
2323
platforms = any
2424
license = Apache-2.0
2525
classifiers =
26-
Development Status :: 3 - Alpha
26+
Development Status :: 4 - Beta
2727
Intended Audience :: Developers
2828
License :: OSI Approved :: Apache Software License
2929
Programming Language :: Python
@@ -41,7 +41,6 @@ packages=find_namespace:
4141
install_requires =
4242
opentelemetry-api
4343
opentelemetry-sdk
44-
google-cloud-monitoring
4544
google-cloud-trace
4645

4746
[options.packages.find]

ext/opentelemetry-ext-stackdriver/setup.py renamed to ext/opentelemetry-exporter-cloud-trace/setup.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2019, OpenTelemetry Authors
1+
# Copyright OpenTelemetry Authors
22
#
33
# Licensed under the Apache License, Version 2.0 (the "License");
44
# you may not use this file except in compliance with the License.
@@ -17,7 +17,7 @@
1717

1818
BASE_DIR = os.path.dirname(__file__)
1919
VERSION_FILENAME = os.path.join(
20-
BASE_DIR, "src", "opentelemetry", "ext", "stackdriver", "version.py"
20+
BASE_DIR, "src", "opentelemetry", "exporter", "cloud_trace", "version.py"
2121
)
2222
PACKAGE_INFO = {}
2323
with open(VERSION_FILENAME) as f:

0 commit comments

Comments
 (0)