Skip to content

Commit 11df7e3

Browse files
committed
Update docs for entrypoints
1 parent 36ac612 commit 11df7e3

File tree

2 files changed

+78
-0
lines changed

2 files changed

+78
-0
lines changed

docs/sdk/entry_points.rst

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
Entry Points
2+
============
3+
4+
OpenTelemetry Python uses Python's **entry points** mechanism to provide a pluggable architecture. Entry points allow you to register custom components (exporters, samplers, etc.) that can be discovered and loaded at runtime.
5+
6+
Configuration
7+
-------------
8+
9+
Entry points are controlled via environment variables:
10+
11+
* ``OTEL_TRACES_EXPORTER`` - Trace exporters (e.g., ``console``, ``otlp_proto_grpc``)
12+
* ``OTEL_METRICS_EXPORTER`` - Metrics exporters (e.g., ``console``, ``prometheus``)
13+
* ``OTEL_LOGS_EXPORTER`` - Log exporters (e.g., ``console``, ``otlp_proto_http``)
14+
* ``OTEL_TRACES_SAMPLER`` - Trace samplers (e.g., ``always_on``, ``traceidratio``)
15+
* ``OTEL_PROPAGATORS`` - Context propagators (e.g., ``tracecontext,baggage``)
16+
17+
Available Entry Point Groups
18+
----------------------------
19+
20+
**Exporters** - Send telemetry data to backends:
21+
22+
* ``opentelemetry_traces_exporter`` - Trace exporters
23+
* ``opentelemetry_metrics_exporter`` - Metrics exporters
24+
* ``opentelemetry_logs_exporter`` - Log exporters
25+
26+
**Configuration** - Control telemetry behavior:
27+
28+
* ``opentelemetry_traces_sampler`` - Decide which traces to collect
29+
* ``opentelemetry_id_generator`` - Generate trace/span IDs
30+
* ``opentelemetry_resource_detector`` - Detect environment info
31+
32+
**Context** - Manage distributed tracing context:
33+
34+
* ``opentelemetry_propagator`` - Cross-service context propagation
35+
* ``opentelemetry_context`` - Context storage mechanism
36+
37+
**Providers** - Core telemetry factories:
38+
39+
* ``opentelemetry_tracer_provider`` - Create tracers
40+
* ``opentelemetry_meter_provider`` - Create meters
41+
* ``opentelemetry_logger_provider`` - Create loggers
42+
43+
Creating a Custom Exporter
44+
---------------------------
45+
46+
1. **Create your exporter class**:
47+
48+
.. code-block:: python
49+
50+
from opentelemetry.sdk.trace.export import SpanExporter
51+
52+
class MyExporter(SpanExporter):
53+
def export(self, spans):
54+
# Your export logic here
55+
for span in spans:
56+
print(f"Exporting: {span.name}")
57+
58+
2. **Register in pyproject.toml**:
59+
60+
.. code-block:: toml
61+
62+
[project.entry-points.opentelemetry_traces_exporter]
63+
my_exporter = "mypackage.exporters:MyExporter"
64+
65+
3. **Use it**:
66+
67+
.. code-block:: bash
68+
69+
export OTEL_TRACES_EXPORTER=my_exporter
70+
python your_app.py
71+
72+
See Also
73+
--------
74+
75+
* :doc:`trace` - Trace SDK documentation
76+
* :doc:`metrics` - Metrics SDK documentation
77+
* :doc:`environment_variables` - Environment variable reference

docs/sdk/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@ OpenTelemetry Python SDK
1212
metrics
1313
error_handler
1414
environment_variables
15+
entry_points

0 commit comments

Comments
 (0)