Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
bbaa9e1
commit
herin049 May 14, 2026
4715df2
finish added file exporters
herin049 May 14, 2026
8c51abd
update license headers
herin049 May 14, 2026
475c68c
add changelog fragment
herin049 May 14, 2026
682e3ea
add test tox environments
herin049 May 15, 2026
12fe634
commit
herin049 May 16, 2026
36bb3bc
simplify tests
herin049 May 16, 2026
7b81997
test improvements
herin049 May 16, 2026
5f88b29
fix lint errors
herin049 May 16, 2026
68dfd7f
Merge branch 'main' into feat/file-exporter
herin049 May 16, 2026
a869322
Merge branch 'main' into feat/file-exporter
herin049 May 19, 2026
41b35de
Merge branch 'main' into feat/file-exporter
herin049 May 19, 2026
e84fd35
apply suggstions from ocelotl
herin049 May 20, 2026
435bf34
Merge branch 'main' into feat/file-exporter
herin049 May 20, 2026
5a49103
update dependencies
herin049 May 20, 2026
3901bc0
update package version
herin049 May 20, 2026
234163e
Merge branch 'main' into feat/file-exporter
herin049 May 20, 2026
5caa222
update exporter to write one line for each batch of telemetry
herin049 May 20, 2026
fb528a6
introduce generic FileExporter class to reduce code duplication
herin049 May 24, 2026
325c94b
Merge branch 'main' into feat/file-exporter
herin049 May 28, 2026
c5ca594
tweak generic FileExporter class
herin049 May 28, 2026
4bc0cb7
Merge branch 'main' into feat/file-exporter
lzchen Jun 4, 2026
79ea3b1
add 'force_flush' method to log exporter
herin049 Jun 5, 2026
bf39e52
move temporality and aggregation helper functions to json common package
herin049 Jun 5, 2026
a2db9c4
update documentation for file exporter
herin049 Jun 6, 2026
7d1aae5
fix docs build error
herin049 Jun 6, 2026
9903210
Merge branch 'main' into feat/file-exporter
herin049 Jun 6, 2026
d92db8f
Merge branch 'main' into feat/file-exporter
herin049 Jun 10, 2026
a3ff841
Merge branch 'main' into feat/file-exporter
herin049 Jun 10, 2026
54beaf2
Merge branch 'main' into feat/file-exporter
herin049 Jun 11, 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/5207.added
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
`opentelemetry-exporter-otlp-json-file`: Add OTLP JSON File exporter implementation
Comment thread
herin049 marked this conversation as resolved.
19 changes: 19 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,25 @@ jobs:
- name: Run tests
run: tox -e lint-opentelemetry-exporter-otlp-combined

lint-opentelemetry-exporter-otlp-json-file:
name: opentelemetry-exporter-otlp-json-file
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-file

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 @@ -1870,6 +1870,139 @@ jobs:
- name: Run tests
run: tox -e py314-test-opentelemetry-exporter-otlp-combined -- -ra

py310-test-opentelemetry-exporter-otlp-json-file_ubuntu-latest:
name: opentelemetry-exporter-otlp-json-file 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-file -- -ra

py311-test-opentelemetry-exporter-otlp-json-file_ubuntu-latest:
name: opentelemetry-exporter-otlp-json-file 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-file -- -ra

py312-test-opentelemetry-exporter-otlp-json-file_ubuntu-latest:
name: opentelemetry-exporter-otlp-json-file 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-file -- -ra

py313-test-opentelemetry-exporter-otlp-json-file_ubuntu-latest:
name: opentelemetry-exporter-otlp-json-file 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-file -- -ra

py314-test-opentelemetry-exporter-otlp-json-file_ubuntu-latest:
name: opentelemetry-exporter-otlp-json-file 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-file -- -ra

py314t-test-opentelemetry-exporter-otlp-json-file_ubuntu-latest:
name: opentelemetry-exporter-otlp-json-file 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-file -- -ra

pypy3-test-opentelemetry-exporter-otlp-json-file_ubuntu-latest:
name: opentelemetry-exporter-otlp-json-file 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-file -- -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 @@ -5171,6 +5304,153 @@ jobs:
- name: Run tests
run: tox -e py314-test-opentelemetry-exporter-otlp-combined -- -ra

py310-test-opentelemetry-exporter-otlp-json-file_windows-latest:
name: opentelemetry-exporter-otlp-json-file 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-file -- -ra

py311-test-opentelemetry-exporter-otlp-json-file_windows-latest:
name: opentelemetry-exporter-otlp-json-file 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-file -- -ra

py312-test-opentelemetry-exporter-otlp-json-file_windows-latest:
name: opentelemetry-exporter-otlp-json-file 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-file -- -ra

py313-test-opentelemetry-exporter-otlp-json-file_windows-latest:
name: opentelemetry-exporter-otlp-json-file 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-file -- -ra

py314-test-opentelemetry-exporter-otlp-json-file_windows-latest:
name: opentelemetry-exporter-otlp-json-file 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-file -- -ra

py314t-test-opentelemetry-exporter-otlp-json-file_windows-latest:
name: opentelemetry-exporter-otlp-json-file 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-file -- -ra

pypy3-test-opentelemetry-exporter-otlp-json-file_windows-latest:
name: opentelemetry-exporter-otlp-json-file 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-file -- -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
1 change: 1 addition & 0 deletions docs-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ sphinx-jekyll-builder==0.3.0
./opentelemetry-semantic-conventions
./opentelemetry-sdk
./opentelemetry-proto
./opentelemetry-proto-json
./shim/opentelemetry-opencensus-shim
./shim/opentelemetry-opentracing-shim
./exporter/opentelemetry-exporter-otlp-proto-common
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 @@ -50,3 +50,25 @@ opentelemetry.exporter.otlp.proto.grpc
:members:
:undoc-members:
:show-inheritance:

opentelemetry.exporter.otlp.json.file
---------------------------------------

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

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

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

.. automodule:: opentelemetry.exporter.otlp.json.file._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 @@ -35,6 +35,7 @@ packages=
opentelemetry-exporter-opencensus
opentelemetry-exporter-prometheus
opentelemetry-exporter-otlp-json-common
opentelemetry-exporter-otlp-json-file
opentelemetry-distro
opentelemetry-proto-json
opentelemetry-semantic-conventions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@ OpenTelemetry JSON Encoding
.. |pypi| image:: https://badge.fury.io/py/opentelemetry-exporter-otlp-json-common.svg
:target: https://pypi.org/project/opentelemetry-exporter-otlp-json-common/

This library is provided as a convenience to encode to OTLP JSON. Currently used by:

-
This library is provided as a convenience to encode to OTLP JSON.

Installation
------------
Expand Down
Loading
Loading