Skip to content

Commit 8613eea

Browse files
committed
Remove redundancy, add names with poss values
1 parent 11df7e3 commit 8613eea

File tree

1 file changed

+62
-63
lines changed

1 file changed

+62
-63
lines changed

docs/sdk/entry_points.rst

Lines changed: 62 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,72 @@
11
Entry Points
22
============
33

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.
4+
OpenTelemetry Python uses Python's `entry points <https://setuptools.pypa.io/en/stable/userguide/entry_point.html>`_ 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.
55

66
Configuration
77
-------------
88

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
9+
The SDK supports configuring entry points via environment variables by specifying the entry point name. For a complete list of supported environment variables, see :doc:`../api/environment_variables`.
10+
11+
Entry Point Configuration Reference
12+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13+
14+
.. list-table::
15+
:header-rows: 1
16+
:widths: 20 20 40 20
17+
18+
* - Environment Variable
19+
- Entry Point Group
20+
- Available Entrypoint Names
21+
- Base Type
22+
* - OTEL_LOGS_EXPORTER
23+
- opentelemetry_logs_exporter
24+
- ``console``, ``otlp_proto_grpc``, ``otlp_proto_http``
25+
- LogExporter
26+
* - OTEL_METRICS_EXPORTER
27+
- opentelemetry_metrics_exporter
28+
- ``console``, ``otlp``, ``otlp_proto_grpc``,
29+
``otlp_proto_http``, ``prometheus``
30+
- :class:`MetricExporter <opentelemetry.sdk.metrics.export.MetricExporter>` or :class:`MetricReader <opentelemetry.sdk.metrics.export.MetricReader>`
31+
* - OTEL_PROPAGATORS
32+
- opentelemetry_propagator
33+
- ``b3``, ``b3multi``, ``baggage``,
34+
``jaeger``, ``tracecontext``
35+
- :class:`TextMapPropagator <opentelemetry.propagators.textmap.TextMapPropagator>`
36+
* - OTEL_TRACES_SAMPLER
37+
- opentelemetry_traces_sampler
38+
- ``always_off``, ``always_on``, ``parentbased_always_off``,
39+
``parentbased_always_on``, ``parentbased_traceidratio``, ``traceidratio``
40+
- :class:`Sampler <opentelemetry.sdk.trace.sampling.Sampler>`
41+
* - OTEL_EXPERIMENTAL_RESOURCE_DETECTORS
42+
- opentelemetry_resource_detector
43+
- ``host``, ``os``, ``otel``, ``process``
44+
- :class:`ResourceDetector <opentelemetry.sdk.resources.ResourceDetector>`
45+
* - OTEL_PYTHON_ID_GENERATOR
46+
- opentelemetry_id_generator
47+
- ``random``
48+
- :class:`IdGenerator <opentelemetry.sdk.trace.id_generator.IdGenerator>`
49+
* - OTEL_TRACES_EXPORTER
50+
- opentelemetry_traces_exporter
51+
- ``console``, ``otlp``, ``otlp_proto_grpc``, ``otlp_proto_http``,
52+
``zipkin``, ``zipkin_json``, ``zipkin_proto``
53+
- :class:`SpanExporter <opentelemetry.sdk.trace.export.SpanExporter>`
54+
* - OTEL_PYTHON_TRACER_PROVIDER
55+
- opentelemetry_tracer_provider
56+
- ``default_tracer_provider``, ``sdk_tracer_provider``
57+
- :class:`TracerProvider <opentelemetry.trace.TracerProvider>`
58+
* - OTEL_PYTHON_METER_PROVIDER
59+
- opentelemetry_meter_provider
60+
- ``default_meter_provider``, ``sdk_meter_provider``
61+
- :class:`MeterProvider <opentelemetry.metrics.MeterProvider>`
62+
* - OTEL_PYTHON_LOGGER_PROVIDER
63+
- opentelemetry_logger_provider
64+
- ``default_logger_provider``, ``sdk_logger_provider``
65+
- :class:`LoggerProvider <opentelemetry._logs.LoggerProvider>`
66+
* - OTEL_PYTHON_EVENT_LOGGER_PROVIDER
67+
- opentelemetry_event_logger_provider
68+
- ``default_event_logger_provider``
69+
- *No implementations available*
7170

7271
See Also
7372
--------

0 commit comments

Comments
 (0)