Skip to content

Commit af3e553

Browse files
srikanthccvlzchen
authored andcommitted
Update SDK docs and Add example with OTEL collector logging (debug) exporter (#2050)
1 parent c01f308 commit af3e553

File tree

8 files changed

+162
-2
lines changed

8 files changed

+162
-2
lines changed

docs/examples/logs/README.rst

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
OpenTelemetry Logs SDK
2+
======================
3+
4+
Start the Collector locally to see data being exported. Write the following file:
5+
6+
.. code-block:: yaml
7+
8+
# otel-collector-config.yaml
9+
receivers:
10+
otlp:
11+
protocols:
12+
grpc:
13+
14+
exporters:
15+
logging:
16+
17+
processors:
18+
batch:
19+
20+
Then start the Docker container:
21+
22+
.. code-block:: sh
23+
24+
docker run \
25+
-p 4317:4317 \
26+
-v $(pwd)/otel-collector-config.yaml:/etc/otel/config.yaml \
27+
otel/opentelemetry-collector-contrib:latest
28+
29+
.. code-block:: sh
30+
31+
$ python example.py
32+
33+
The resulting logs will appear in the output from the collector and look similar to this:
34+
35+
.. code-block:: sh
36+
37+
ResourceLog #0
38+
Resource labels:
39+
-> telemetry.sdk.language: STRING(python)
40+
-> telemetry.sdk.name: STRING(opentelemetry)
41+
-> telemetry.sdk.version: STRING(1.5.0.dev0)
42+
-> service.name: STRING(unknown_service)
43+
InstrumentationLibraryLogs #0
44+
InstrumentationLibrary __main__ 0.1
45+
LogRecord #0
46+
Timestamp: 2021-08-18 08:26:53.837349888 +0000 UTC
47+
Severity: ERROR
48+
ShortName:
49+
Body: Exception while exporting logs.
50+
ResourceLog #1
51+
Resource labels:
52+
-> telemetry.sdk.language: STRING(python)
53+
-> telemetry.sdk.name: STRING(opentelemetry)
54+
-> telemetry.sdk.version: STRING(1.5.0.dev0)
55+
-> service.name: STRING(unknown_service)
56+
InstrumentationLibraryLogs #0
57+
InstrumentationLibrary __main__ 0.1
58+
LogRecord #0
59+
Timestamp: 2021-08-18 08:26:53.842546944 +0000 UTC
60+
Severity: ERROR
61+
ShortName:
62+
Body: The five boxing wizards jump quickly.
63+
ResourceLog #2
64+
Resource labels:
65+
-> telemetry.sdk.language: STRING(python)
66+
-> telemetry.sdk.name: STRING(opentelemetry)
67+
-> telemetry.sdk.version: STRING(1.5.0.dev0)
68+
-> service.name: STRING(unknown_service)
69+
InstrumentationLibraryLogs #0
70+
InstrumentationLibrary __main__ 0.1
71+
LogRecord #0
72+
Timestamp: 2021-08-18 08:26:53.843979008 +0000 UTC
73+
Severity: ERROR
74+
ShortName:
75+
Body: Hyderabad, we have a major problem.

docs/examples/logs/example.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import logging
2+
3+
from opentelemetry import trace
4+
from opentelemetry.exporter.otlp.proto.grpc.log_exporter import OTLPLogExporter
5+
from opentelemetry.sdk.logs import OTLPHandler, get_log_emitter_provider
6+
from opentelemetry.sdk.logs.export import SimpleLogProcessor
7+
from opentelemetry.sdk.trace import TracerProvider
8+
from opentelemetry.sdk.trace.export import (
9+
ConsoleSpanExporter,
10+
SimpleSpanProcessor,
11+
)
12+
13+
trace.set_tracer_provider(TracerProvider())
14+
trace.get_tracer_provider().add_span_processor(
15+
SimpleSpanProcessor(ConsoleSpanExporter())
16+
)
17+
18+
log_emitter_provider = get_log_emitter_provider()
19+
exporter = OTLPLogExporter(insecure=True)
20+
log_emitter_provider.add_log_processor(SimpleLogProcessor(exporter))
21+
log_emitter = log_emitter_provider.get_log_emitter(__name__, "0.1")
22+
handler = OTLPHandler(level=logging.NOTSET, log_emitter=log_emitter)
23+
24+
# Attach OTLP handler to root logger
25+
logging.getLogger("root").addHandler(handler)
26+
27+
# Log directly
28+
logging.info("Jackdaws love my big sphinx of quartz.")
29+
30+
# Create different namespaced loggers
31+
logger1 = logging.getLogger("myapp.area1")
32+
logger2 = logging.getLogger("myapp.area2")
33+
34+
logger1.debug("Quick zephyrs blow, vexing daft Jim.")
35+
logger1.info("How quickly daft jumping zebras vex.")
36+
logger2.warning("Jail zesty vixen who grabbed pay from quack.")
37+
logger2.error("The five boxing wizards jump quickly.")
38+
39+
40+
# Trace context correlation
41+
tracer = trace.get_tracer(__name__)
42+
with tracer.start_as_current_span("foo"):
43+
# Do something
44+
logger2.error("Hyderabad, we have a major problem.")
45+
46+
log_emitter_provider.shutdown()
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
receivers:
2+
otlp:
3+
protocols:
4+
grpc:
5+
6+
exporters:
7+
logging:
8+
9+
processors:
10+
batch:

docs/sdk/logs.export.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
opentelemetry.sdk.logs.export
2+
=============================
3+
4+
.. automodule:: opentelemetry.sdk.logs.export
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:

docs/sdk/logs.rst

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
opentelemetry.sdk.logs package
2+
===============================
3+
4+
Submodules
5+
----------
6+
7+
.. toctree::
8+
9+
logs.export
10+
logs.severity
11+
12+
.. automodule:: opentelemetry.sdk.logs
13+
:members:
14+
:undoc-members:
15+
:show-inheritance:

docs/sdk/logs.severity.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
opentelemetry.sdk.logs.severity
2+
===============================
3+
4+
.. automodule:: opentelemetry.sdk.logs.severity
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:

docs/sdk/sdk.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ OpenTelemetry Python SDK
88

99
resources
1010
trace
11+
logs
1112
error_handler
1213
environment_variables

opentelemetry-sdk/src/opentelemetry/sdk/logs/severity.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ class SeverityNumber(enum.Enum):
2525
See the `Log Data Model`_ spec for more info and how to map the
2626
severity from source format to OTLP Model.
2727
28-
.. _Log Data Model:
29-
https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-severitynumber
28+
.. _Log Data Model: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-severitynumber
3029
"""
3130

3231
UNSPECIFIED = 0

0 commit comments

Comments
 (0)