Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
1c3bbf9
add initial scaffolding
herin049 Jul 1, 2026
e0b12fc
first phase of changes
herin049 Jul 1, 2026
32ca13c
add split metrics data helper
herin049 Jul 1, 2026
95dca87
add unit tests for helper functions
herin049 Jul 1, 2026
173d3b0
regenerate workflows
herin049 Jul 1, 2026
a34b628
fix type errors
herin049 Jul 1, 2026
d4fd154
update eachdist.ini
herin049 Jul 1, 2026
34a656c
fix bugs in helper functions
herin049 Jul 1, 2026
7b00709
update batch splitting unit tests
herin049 Jul 1, 2026
e9906be
add trace exporter unit tests
herin049 Jul 2, 2026
aecbfe1
fix formatting
herin049 Jul 2, 2026
0a9cc3f
add log exporter tests
herin049 Jul 2, 2026
5d56407
add remaining tests
herin049 Jul 2, 2026
e1360bf
update docs
herin049 Jul 2, 2026
0bab3ea
ignore tests for type checking
herin049 Jul 2, 2026
1a7f17c
update internal helpers
herin049 Jul 2, 2026
4413f7e
resolve subtle bug
herin049 Jul 2, 2026
e636f62
update package imports
herin049 Jul 2, 2026
319213b
fix docs build
herin049 Jul 2, 2026
e1a89a4
fix failing tests
herin049 Jul 2, 2026
5d9d40c
Merge branch 'main' into feat/otlp-json-exporter
herin049 Jul 11, 2026
2dcf617
Merge branch 'main' into feat/otlp-json-exporter
herin049 Jul 14, 2026
012dc19
update README.rst
herin049 Jul 14, 2026
cdeabfc
update docker tests
herin049 Jul 14, 2026
695bec8
switch to using nonlocal for tests
herin049 Jul 14, 2026
0a153ca
Merge branch 'main' into feat/otlp-json-exporter
herin049 Jul 14, 2026
5ab5f29
simplify metric spliting
herin049 Jul 15, 2026
c34bc66
update type annotations
herin049 Jul 15, 2026
0bbfeb0
Merge branch 'main' into feat/otlp-json-exporter
herin049 Jul 16, 2026
1095caa
merge main into branch
herin049 Jul 17, 2026
150a49c
update versions
herin049 Jul 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .changelog/5374.added
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
`opentelemetry-exporter-otlp-json-http`: add OTLP JSON HTTP exporter package
19 changes: 19 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,25 @@ jobs:
- name: Run tests
run: tox -e lint-opentelemetry-exporter-otlp-json-file

lint-opentelemetry-exporter-otlp-json-http:
name: opentelemetry-exporter-otlp-json-http
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.14
uses: actions/setup-python@v5
with:
python-version: "3.14"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e lint-opentelemetry-exporter-otlp-json-http

lint-opentelemetry-exporter-otlp-proto-grpc-latest:
name: opentelemetry-exporter-otlp-proto-grpc-latest
runs-on: ubuntu-latest
Expand Down
280 changes: 280 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2592,6 +2592,139 @@ jobs:
- name: Run tests
run: tox -e pypy3-test-opentelemetry-exporter-otlp-json-file -- -ra

py310-test-opentelemetry-exporter-otlp-json-http_ubuntu-latest:
name: opentelemetry-exporter-otlp-json-http 3.10 Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py310-test-opentelemetry-exporter-otlp-json-http -- -ra

py311-test-opentelemetry-exporter-otlp-json-http_ubuntu-latest:
name: opentelemetry-exporter-otlp-json-http 3.11 Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py311-test-opentelemetry-exporter-otlp-json-http -- -ra

py312-test-opentelemetry-exporter-otlp-json-http_ubuntu-latest:
name: opentelemetry-exporter-otlp-json-http 3.12 Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py312-test-opentelemetry-exporter-otlp-json-http -- -ra

py313-test-opentelemetry-exporter-otlp-json-http_ubuntu-latest:
name: opentelemetry-exporter-otlp-json-http 3.13 Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: "3.13"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py313-test-opentelemetry-exporter-otlp-json-http -- -ra

py314-test-opentelemetry-exporter-otlp-json-http_ubuntu-latest:
name: opentelemetry-exporter-otlp-json-http 3.14 Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.14
uses: actions/setup-python@v5
with:
python-version: "3.14"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py314-test-opentelemetry-exporter-otlp-json-http -- -ra

py314t-test-opentelemetry-exporter-otlp-json-http_ubuntu-latest:
name: opentelemetry-exporter-otlp-json-http 3.14t Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.14t
uses: actions/setup-python@v5
with:
python-version: "3.14t"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py314t-test-opentelemetry-exporter-otlp-json-http -- -ra

pypy3-test-opentelemetry-exporter-otlp-json-http_ubuntu-latest:
name: opentelemetry-exporter-otlp-json-http pypy-3.10 Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python pypy-3.10
uses: actions/setup-python@v5
with:
python-version: "pypy-3.10"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e pypy3-test-opentelemetry-exporter-otlp-json-http -- -ra

py310-test-opentelemetry-exporter-otlp-proto-grpc-oldest_ubuntu-latest:
name: opentelemetry-exporter-otlp-proto-grpc-oldest 3.10 Ubuntu
runs-on: ubuntu-latest
Expand Down Expand Up @@ -6691,6 +6824,153 @@ jobs:
- name: Run tests
run: tox -e pypy3-test-opentelemetry-exporter-otlp-json-file -- -ra

py310-test-opentelemetry-exporter-otlp-json-http_windows-latest:
name: opentelemetry-exporter-otlp-json-http 3.10 Windows
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: Configure git to support long filenames
run: git config --system core.longpaths true
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py310-test-opentelemetry-exporter-otlp-json-http -- -ra

py311-test-opentelemetry-exporter-otlp-json-http_windows-latest:
name: opentelemetry-exporter-otlp-json-http 3.11 Windows
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: Configure git to support long filenames
run: git config --system core.longpaths true
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py311-test-opentelemetry-exporter-otlp-json-http -- -ra

py312-test-opentelemetry-exporter-otlp-json-http_windows-latest:
name: opentelemetry-exporter-otlp-json-http 3.12 Windows
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: Configure git to support long filenames
run: git config --system core.longpaths true
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py312-test-opentelemetry-exporter-otlp-json-http -- -ra

py313-test-opentelemetry-exporter-otlp-json-http_windows-latest:
name: opentelemetry-exporter-otlp-json-http 3.13 Windows
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: Configure git to support long filenames
run: git config --system core.longpaths true
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: "3.13"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py313-test-opentelemetry-exporter-otlp-json-http -- -ra

py314-test-opentelemetry-exporter-otlp-json-http_windows-latest:
name: opentelemetry-exporter-otlp-json-http 3.14 Windows
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: Configure git to support long filenames
run: git config --system core.longpaths true
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.14
uses: actions/setup-python@v5
with:
python-version: "3.14"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py314-test-opentelemetry-exporter-otlp-json-http -- -ra

py314t-test-opentelemetry-exporter-otlp-json-http_windows-latest:
name: opentelemetry-exporter-otlp-json-http 3.14t Windows
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: Configure git to support long filenames
run: git config --system core.longpaths true
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python 3.14t
uses: actions/setup-python@v5
with:
python-version: "3.14t"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e py314t-test-opentelemetry-exporter-otlp-json-http -- -ra

pypy3-test-opentelemetry-exporter-otlp-json-http_windows-latest:
name: opentelemetry-exporter-otlp-json-http pypy-3.10 Windows
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: Configure git to support long filenames
run: git config --system core.longpaths true
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

- name: Set up Python pypy-3.10
uses: actions/setup-python@v5
with:
python-version: "pypy-3.10"

- name: Install tox
run: pip install tox-uv

- name: Run tests
run: tox -e pypy3-test-opentelemetry-exporter-otlp-json-http -- -ra

py310-test-opentelemetry-exporter-otlp-proto-grpc-oldest_windows-latest:
name: opentelemetry-exporter-otlp-proto-grpc-oldest 3.10 Windows
runs-on: windows-latest
Expand Down
5 changes: 5 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,11 @@
# ``from os import PathLike`` renders as the bare name ``PathLike`` in the
# file exporter type hints, which sphinx cannot resolve to os.PathLike.
("py:class", "PathLike"),
("py:class", "opentelemetry.exporter.otlp.common.http.Compression"),
(
"py:class",
"opentelemetry.exporter.http.transport._base.BaseHTTPTransport",
),
]

# Add any paths that contain templates here, relative to this directory.
Expand Down
22 changes: 22 additions & 0 deletions docs/exporter/otlp/otlp.rst
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,25 @@ opentelemetry.exporter.otlp.json.file
:members:
:undoc-members:
:show-inheritance:

opentelemetry.exporter.otlp.json.http
---------------------------------------

.. automodule:: opentelemetry.exporter.otlp.json.http
:no-members:
:no-undoc-members:

.. automodule:: opentelemetry.exporter.otlp.json.http.trace_exporter
:members:
:undoc-members:
:show-inheritance:

.. automodule:: opentelemetry.exporter.otlp.json.http.metric_exporter
:members:
:undoc-members:
:show-inheritance:

.. automodule:: opentelemetry.exporter.otlp.json.http._log_exporter
:members:
:undoc-members:
:show-inheritance:
1 change: 1 addition & 0 deletions eachdist.ini
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ packages=
opentelemetry-exporter-prometheus
opentelemetry-exporter-otlp-json-common
opentelemetry-exporter-otlp-json-file
opentelemetry-exporter-otlp-json-http
opentelemetry-exporter-otlp-common
opentelemetry-configuration
opentelemetry-proto-json
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ def headers(self) -> Mapping[str, str]:
keys. Headers with multiple values are represented as a single string
of comma separated values.
Implementations may raise an exception the returned headers are malformed.
Implementations may raise an exception if the returned headers are malformed.
"""

def text(self) -> str:
Expand Down
Loading
Loading