Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
ece6bf3
Add a basic http OpAMP client
xrmx Jul 11, 2025
c161eff
Add some docs and hook it into the system
xrmx Jul 30, 2025
891b1b1
Add default value of 30 seconds to heartbeat message interval
xrmx Jul 30, 2025
a5325e7
Fix docs build
xrmx Jul 30, 2025
a80fb02
More docs improvements
xrmx Jul 30, 2025
dc138d4
Fix spellcheck
xrmx Jul 30, 2025
fbbaaec
Remove local workaround
xrmx Jul 30, 2025
bba2a33
Generate workflows and add to release script
xrmx Jul 30, 2025
f5d2a0f
Fix typos in opamp lint commands
xrmx Aug 1, 2025
4be53c6
Fix requirements for pylint
xrmx Aug 1, 2025
de63e15
Update opamp/opentelemetry-opamp-client/pyproject.toml
emdneto Aug 1, 2025
a82fb3f
Recreate requirements
xrmx Aug 1, 2025
27e4824
Add missing opentelemetry-api dependency
xrmx Aug 1, 2025
6862d21
Fix tox test commands
xrmx Aug 1, 2025
77e8f68
Fix tox
xrmx Aug 25, 2025
b5eafd8
Add baseline of vcrpy 7.0.0
xrmx Aug 25, 2025
e88639d
Ignore pb2 module in pylintrc
xrmx Aug 25, 2025
d7a4b51
Bump pylint to match the version in core
xrmx Aug 25, 2025
35745c6
Silence pylint warnings
xrmx Aug 25, 2025
c9a85af
Don't trace opamp client own http requests
xrmx Sep 11, 2025
9e98b6c
Permit to pass a custom transport to client
xrmx Sep 11, 2025
d2508ee
Don't bump pylint after all
xrmx Sep 11, 2025
8e63f7d
Fix pylint
xrmx Sep 11, 2025
8670a2e
Try to typecheck opamp client
xrmx Sep 12, 2025
d8156c7
Bump version after rebase
xrmx Sep 12, 2025
ec63945
Fix typecheck in client
xrmx Sep 12, 2025
cf479f2
Please pyright in strict mode
xrmx Sep 12, 2025
efe7664
Do not use underscore on private modules
Kludex Sep 12, 2025
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
60 changes: 60 additions & 0 deletions .github/workflows/core_contrib_test_0.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2962,3 +2962,63 @@ jobs:

- name: Run tests
run: tox -e py39-test-processor-baggage -- -ra

py39-test-opamp-client-latest:
name: opamp-client-latest
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout contrib repo @ SHA - ${{ env.CONTRIB_REPO_SHA }}
uses: actions/checkout@v4
with:
repository: open-telemetry/opentelemetry-python-contrib
ref: ${{ env.CONTRIB_REPO_SHA }}

- name: Checkout core repo @ SHA - ${{ env.CORE_REPO_SHA }}
uses: actions/checkout@v4
with:
repository: open-telemetry/opentelemetry-python
ref: ${{ env.CORE_REPO_SHA }}
path: opentelemetry-python

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

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

- name: Run tests
run: tox -e py39-test-opamp-client-latest -- -ra

py39-test-opamp-client-lowest:
name: opamp-client-lowest
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout contrib repo @ SHA - ${{ env.CONTRIB_REPO_SHA }}
uses: actions/checkout@v4
with:
repository: open-telemetry/opentelemetry-python-contrib
ref: ${{ env.CONTRIB_REPO_SHA }}

- name: Checkout core repo @ SHA - ${{ env.CORE_REPO_SHA }}
uses: actions/checkout@v4
with:
repository: open-telemetry/opentelemetry-python
ref: ${{ env.CORE_REPO_SHA }}
path: opentelemetry-python

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

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

- name: Run tests
run: tox -e py39-test-opamp-client-lowest -- -ra
19 changes: 19 additions & 0 deletions .github/workflows/lint_0.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1285,3 +1285,22 @@ jobs:

- name: Run tests
run: tox -e lint-processor-baggage

lint-opamp-client:
name: opamp-client
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 lint-opamp-client
190 changes: 190 additions & 0 deletions .github/workflows/test_2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1076,3 +1076,193 @@ jobs:

- name: Run tests
run: tox -e pypy3-test-processor-baggage -- -ra

py39-test-opamp-client-latest_ubuntu-latest:
name: opamp-client-latest 3.9 Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

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

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

- name: Run tests
run: tox -e py39-test-opamp-client-latest -- -ra

py39-test-opamp-client-lowest_ubuntu-latest:
name: opamp-client-lowest 3.9 Ubuntu
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo @ SHA - ${{ github.sha }}
uses: actions/checkout@v4

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

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

- name: Run tests
run: tox -e py39-test-opamp-client-lowest -- -ra

py310-test-opamp-client-latest_ubuntu-latest:
name: opamp-client-latest 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-opamp-client-latest -- -ra

py310-test-opamp-client-lowest_ubuntu-latest:
name: opamp-client-lowest 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-opamp-client-lowest -- -ra

py311-test-opamp-client-latest_ubuntu-latest:
name: opamp-client-latest 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-opamp-client-latest -- -ra

py311-test-opamp-client-lowest_ubuntu-latest:
name: opamp-client-lowest 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-opamp-client-lowest -- -ra

py312-test-opamp-client-latest_ubuntu-latest:
name: opamp-client-latest 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-opamp-client-latest -- -ra

py312-test-opamp-client-lowest_ubuntu-latest:
name: opamp-client-lowest 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-opamp-client-lowest -- -ra

py313-test-opamp-client-latest_ubuntu-latest:
name: opamp-client-latest 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-opamp-client-latest -- -ra

py313-test-opamp-client-lowest_ubuntu-latest:
name: opamp-client-lowest 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-opamp-client-lowest -- -ra
4 changes: 2 additions & 2 deletions .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ extension-pkg-whitelist=cassandra

# Add list of files or directories to be excluded. They should be base names, not
# paths.
ignore=CVS,gen,Dockerfile,docker-compose.yml,README.md,requirements.txt,docs,.venv,site-packages,.tox
ignore=CVS,gen,Dockerfile,docker-compose.yml,README.md,requirements.txt,docs,.venv,site-packages,.tox,proto

# Add files or directories matching the regex patterns to be excluded. The
# regex matches against base names, not paths.
Expand Down Expand Up @@ -179,7 +179,7 @@ contextmanager-decorators=contextlib.contextmanager
# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E1101 when accessed. Python regular
# expressions are accepted.
generated-members=types_pb2.*
generated-members=types_pb2.*,anyvalue_pb2.*,opamp_pb2.*

# Tells whether missing members accessed in mixin class should be ignored. A
# mixin class is detected if its name ends with "mixin" (case insensitive).
Expand Down
5 changes: 5 additions & 0 deletions docs-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ sqlalchemy>=1.0
tornado>=5.1.1
tortoise-orm>=0.17.0

# required by opamp
uuid_utils
protobuf>=5.0,< 7.0

# indirect dependency pins
markupsafe==2.0.1
itsdangerous==2.0.1

20 changes: 14 additions & 6 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,21 +28,21 @@

exp = "../exporter"
exp_dirs = [
os.path.abspath("/".join(["../exporter", f, "src"]))
os.path.abspath("/".join([exp, f, "src"]))
for f in listdir(exp)
if isdir(join(exp, f))
]

instr = "../instrumentation"
instr_dirs = [
os.path.abspath("/".join(["../instrumentation", f, "src"]))
os.path.abspath("/".join([instr, f, "src"]))
for f in listdir(instr)
if isdir(join(instr, f))
]

instr_genai = "../instrumentation-genai"
instr_genai_dirs = [
os.path.abspath("/".join(["../instrumentation-genai", f, "src"]))
os.path.abspath("/".join([instr_genai, f, "src"]))
for f in listdir(instr_genai)
if isdir(join(instr_genai, f))
]
Expand All @@ -56,24 +56,32 @@

sdk_ext = "../sdk-extension"
sdk_ext_dirs = [
os.path.abspath("/".join(["../sdk-extension", f, "src"]))
os.path.abspath("/".join([sdk_ext, f, "src"]))
for f in listdir(sdk_ext)
if isdir(join(sdk_ext, f))
]

resource = "../resource"
resource_dirs = [
os.path.abspath("/".join(["../resource", f, "src"]))
os.path.abspath("/".join([resource, f, "src"]))
for f in listdir(resource)
if isdir(join(resource, f))
]

opamp = "../opamp"
opamp_dirs = [
os.path.abspath("/".join([opamp, f, "src"]))
for f in listdir(opamp)
if isdir(join(opamp, f))
]
sys.path[:0] = (
exp_dirs
+ instr_dirs
+ instr_genai_dirs
+ sdk_ext_dirs
+ prop_dirs
+ resource_dirs
+ opamp_dirs
)

# -- Project information -----------------------------------------------------
Expand Down Expand Up @@ -115,7 +123,7 @@
"https://opentracing-python.readthedocs.io/en/latest/",
None,
),
"aiohttp": ("https://aiohttp.readthedocs.io/en/stable/", None),
"aiohttp": ("https://docs.aiohttp.org/en/stable/", None),
"wrapt": ("https://wrapt.readthedocs.io/en/latest/", None),
"pymongo": ("https://pymongo.readthedocs.io/en/stable/", None),
"opentelemetry": (
Expand Down
8 changes: 8 additions & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,14 @@ install <https://pip.pypa.io/en/stable/reference/pip_install/#editable-installs>

resource/**

.. toctree::
:maxdepth: 2
:caption: OpAMP
:name: OpAMP
:glob:

opamp/**

Indices and tables
------------------

Expand Down
Loading
Loading