diff --git a/changelog/68999.added.md b/changelog/68999.added.md new file mode 100644 index 000000000000..f7f5c32578d1 --- /dev/null +++ b/changelog/68999.added.md @@ -0,0 +1,8 @@ +Added OpenTelemetry distributed-tracing support across all Salt +inter-process hops (network and IPC). When `tracing.enabled` is true in the +master/minion config, salt emits W3C-TraceContext-propagated spans via an +OTLP exporter, covering the CLI, channel layer, master workers, minion +command execution, event bus, reactor, syndic forwarding, salt-ssh, and +salt-api. Trace context travels inside the AES-encrypted Salt envelope so +it remains opaque on the wire. Tracing is opt-in and a complete no-op when +disabled. diff --git a/doc/contents.rst b/doc/contents.rst index 8d8ea2a71b04..39f7847649b4 100644 --- a/doc/contents.rst +++ b/doc/contents.rst @@ -20,6 +20,7 @@ Salt Table of Contents topics/return_codes/index topics/utils/index topics/event/index + topics/tracing/index topics/orchestrate/index topics/solaris/index topics/ssh/index diff --git a/doc/topics/tracing/index.rst b/doc/topics/tracing/index.rst new file mode 100644 index 000000000000..f82179a5edea --- /dev/null +++ b/doc/topics/tracing/index.rst @@ -0,0 +1,160 @@ +.. _tracing: + +=================================== +Distributed Tracing (OpenTelemetry) +=================================== + +Salt can emit OpenTelemetry spans for every inter-process hop, so a single +job (``salt '*' test.ping``) becomes a single distributed trace that crosses +the CLI, the master, the minion, the return path, and any reactor or syndic +forwarding in between. + +The implementation uses standard W3C TraceContext (``traceparent`` / +``tracestate``) for propagation and ships spans through an OTLP exporter. +Jaeger ingests OTLP natively, as do most modern tracing backends +(Tempo, Honeycomb, Datadog OTLP, etc.). + +Trace context propagates **inside** the AES-encrypted Salt envelope: an +attacker on the wire cannot see the trace headers, and authenticated +participants (master / minion / syndic) decode them after AES decryption. + +Tracing is **disabled by default** and is a complete no-op when not +configured. No spans are created, no exporter is initialised, and no +background threads are started. + +Configuration +------------- + +Add a ``tracing`` block to the master and minion configs. The block is +identical on both daemons, and applies to ``salt-cli``, ``salt-call``, +``salt-api`` and ``salt-ssh`` as well. + +.. code-block:: yaml + + tracing: + enabled: true + exporter: otlp-http # otlp-http | otlp-grpc | console + endpoint: "" # OTel SDK default endpoint when empty + service_name: "" # auto-derived when empty + sampler: parent_based # parent_based | always_on | always_off | trace_id_ratio + sampler_arg: 1.0 + resource_attributes: {} + insecure: true # gRPC TLS disabled (ignored for HTTP) + headers: {} # OTLP authentication headers + +``enabled`` + Master switch. When ``false`` (the default), everything in this module + is a no-op. + +``exporter`` + ``otlp-http`` (default) sends spans via HTTP/protobuf to ``endpoint``. + Pure-Python; ships in salt's base requirements; works on every + interpreter. + ``otlp-grpc`` sends via gRPC. Requires + ``opentelemetry-exporter-otlp-proto-grpc`` to be installed separately + (it pulls in ``grpcio``, which lacks prebuilt wheels for some + platform / interpreter combinations). + ``console`` prints spans to stdout for debugging. + +``endpoint`` + OTLP collector URL. When empty, the OTel SDK default is used + (``http://localhost:4318/v1/traces`` for HTTP, + ``http://localhost:4317`` for gRPC). + +``service_name`` + The ``service.name`` resource attribute. When empty, Salt fills this in + automatically: ``salt-master``, ``salt-minion-``, ``salt-cli``, + ``salt-call``, ``salt-api``. + +``sampler`` + Which sampler to install on the ``TracerProvider``. + + - ``parent_based`` (default): follow the parent's sample decision; root + spans are sampled. Use ``sampler_arg`` < 1.0 to apply a ratio to + root spans. + - ``always_on``: sample every span. + - ``always_off``: drop every span (testing only). + - ``trace_id_ratio``: sample ``sampler_arg`` fraction of trace IDs. + +``resource_attributes`` + Extra attributes merged into the OTel Resource (e.g. ``deployment.environment: prod``). + +``insecure`` + Disable gRPC TLS to the collector. Ignored for the HTTP exporter. + +``headers`` + Additional headers sent on every OTLP request, e.g. + ``Authorization: Bearer `` for a hosted collector. + +Hops covered +------------ + +A single ``salt '*' test.ping`` produces a trace spanning at least: + +1. ``salt.cli.test.ping`` — root span on the CLI. +2. ``salt.req.send.publish`` — CLI → master request. +3. ``salt.req.recv.publish`` — master receives the request. +4. ``salt.pub.send`` — master publishes the job. +5. ``salt.minion.recv.test.ping`` — minion receives the published command. +6. ``salt.minion.exec.test.ping`` — minion executes the function. +7. ``salt.req.send._return`` — minion returns to master. +8. ``salt.req.recv._return`` — master receives the return. + +Other instrumented hops: + +- Event bus (``fire_event`` / ``get_event``) — every IPC and TCP-IPC event + carries trace context in its data dict. +- Reactor — extracts trace context from incoming events and parents the + reaction span correctly. +- Syndic forwarding — both inbound (from upstream master) and outbound (to + downstream minions). +- Salt-SSH — propagates trace context as the ``TRACEPARENT`` environment + variable on the remote shim. +- Salt-API — extracts the ``traceparent`` HTTP header from incoming + requests; webhooks inject context into the events they fire. + +Running a quick demo +-------------------- + +Spin up an all-in-one Jaeger: + +.. code-block:: bash + + docker run -d --name jaeger \ + -p 16686:16686 -p 4318:4318 \ + jaegertracing/all-in-one:latest + +Configure master + minion with: + +.. code-block:: yaml + + tracing: + enabled: true + exporter: otlp-http + endpoint: http://localhost:4318/v1/traces + sampler: always_on + +Start them, run ``salt '*' test.ping``, then visit +``http://localhost:16686`` and search for the ``salt-cli`` service. You +should see a single trace with spans hanging off three services: +``salt-cli``, ``salt-master`` and ``salt-minion-``. + +Fork handling +------------- + +The OTel ``BatchSpanProcessor`` runs a background thread that does not +survive ``fork()``. Salt rebuilds the provider in every forked child the +first time a tracing API is invoked, so worker processes spun up by the +master / minion get their own functioning exporter without any caller +action. Unflushed spans queued by the parent at the instant of fork may +be lost; for short-lived spans this is rarely visible, but if you observe +gaps consider lowering ``BatchSpanProcessor`` queue intervals via the OTel +environment variables. + +Payload overhead +---------------- + +When tracing is enabled and a recording span is active, every Salt request +and event grows by roughly 60 bytes (the W3C ``traceparent`` string). +When no recording span is active — for example, an internal periodic event +fired outside a request handler — no headers are added. diff --git a/requirements/base.txt b/requirements/base.txt index cde110102731..ec7b35ffc92f 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -30,6 +30,9 @@ MarkupSafe<3.0.0 more-itertools>=9.1.0 msgpack>=1.0.0 ; python_version < '3.13' msgpack>=1.1.0 ; python_version >= '3.13' +opentelemetry-api>=1.30.0 +opentelemetry-sdk>=1.30.0 +opentelemetry-exporter-otlp-proto-http>=1.30.0 xxhash>=3.0.0 # Packaging 24.1 imports annotations from __future__ which breaks salt ssh # tests on target hosts with older python versions. diff --git a/requirements/static/ci/py3.10/cloud.txt b/requirements/static/ci/py3.10/cloud.txt index b232c6635748..58c428778786 100644 --- a/requirements/static/ci/py3.10/cloud.txt +++ b/requirements/static/ci/py3.10/cloud.txt @@ -211,6 +211,11 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.10/linux.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -c requirements/static/pkg/py3.10/linux.txt + # opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -c requirements/static/ci/py3.10/linux.txt @@ -226,6 +231,7 @@ importlib-metadata==8.7.0 # -c requirements/static/pkg/py3.10/linux.txt # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api iniconfig==2.0.0 # via # -c requirements/static/ci/py3.10/linux.txt @@ -371,6 +377,41 @@ oauthlib==3.3.1 # via # -c requirements/static/ci/py3.10/linux.txt # requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -c requirements/static/pkg/py3.10/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -c requirements/static/pkg/py3.10/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -c requirements/static/pkg/py3.10/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -c requirements/static/pkg/py3.10/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -c requirements/static/pkg/py3.10/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -c requirements/static/pkg/py3.10/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via # -c requirements/static/ci/py3.10/linux.txt @@ -415,6 +456,12 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.10/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -c requirements/static/pkg/py3.10/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/ci/py3.10/linux.txt @@ -610,6 +657,7 @@ requests==2.31.0 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # profitbricks # pywinrm # requests-ntlm @@ -747,6 +795,10 @@ typing-extensions==4.15.0 # aiosignal # cryptography # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-system-statistics # virtualenv diff --git a/requirements/static/ci/py3.10/darwin.txt b/requirements/static/ci/py3.10/darwin.txt index cbbd0d6688c2..7f12c3ff74a9 100644 --- a/requirements/static/ci/py3.10/darwin.txt +++ b/requirements/static/ci/py3.10/darwin.txt @@ -159,6 +159,10 @@ gitpython==3.1.46 # -r requirements/base.txt # -r requirements/static/ci/common.in # -r requirements/static/ci/darwin.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.10/darwin.txt + # opentelemetry-exporter-otlp-proto-http hglib==2.6.2 # via -r requirements/static/ci/darwin.in idna==3.7 @@ -173,6 +177,7 @@ importlib-metadata==8.7.0 # via # -c requirements/static/pkg/py3.10/darwin.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.0.0 # via pytest invoke==2.2.1 @@ -272,6 +277,35 @@ ncclient==0.7.0 # junos-eznc oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.10/darwin.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.10/darwin.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.10/darwin.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.10/darwin.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.10/darwin.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.10/darwin.txt + # opentelemetry-sdk oscrypto==1.3.0 # via certvalidator packaging==24.0 @@ -304,6 +338,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.10/darwin.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.10/darwin.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/pkg/py3.10/darwin.txt @@ -440,6 +479,7 @@ requests==2.31.0 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # requests-oauthlib # responses # vcert @@ -519,6 +559,10 @@ typing-extensions==4.15.0 # aiosignal # cryptography # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-system-statistics # virtualenv diff --git a/requirements/static/ci/py3.10/docs.txt b/requirements/static/ci/py3.10/docs.txt index 8984f756d7d2..62581a0a3b1d 100644 --- a/requirements/static/ci/py3.10/docs.txt +++ b/requirements/static/ci/py3.10/docs.txt @@ -97,6 +97,10 @@ gitpython==3.1.46 # via # -c requirements/static/ci/py3.10/linux.txt # -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.10/linux.txt + # opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -c requirements/static/ci/py3.10/linux.txt @@ -109,6 +113,7 @@ importlib-metadata==8.7.0 # via # -c requirements/static/ci/py3.10/linux.txt # -r requirements/base.txt + # opentelemetry-api jaraco-collections==4.1.0 # via # -c requirements/static/ci/py3.10/linux.txt @@ -179,6 +184,35 @@ multidict==6.1.0 # yarl myst-docutils==1.0.0 # via -r requirements/static/ci/docs.in +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # opentelemetry-sdk packaging==24.0 # via # -c requirements/static/ci/py3.10/linux.txt @@ -198,6 +232,11 @@ propcache==0.4.1 # -c requirements/static/ci/py3.10/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.10/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/ci/py3.10/linux.txt @@ -256,6 +295,7 @@ requests==2.31.0 # -c requirements/static/ci/py3.10/linux.txt # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # sphinx # vultr rpm-vercmp==0.1.2 @@ -320,6 +360,10 @@ typing-extensions==4.15.0 # aiosignal # cryptography # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # virtualenv uc-micro-py==1.0.2 diff --git a/requirements/static/ci/py3.10/freebsd.txt b/requirements/static/ci/py3.10/freebsd.txt index dfb0de30c87a..a7eaab6aa5be 100644 --- a/requirements/static/ci/py3.10/freebsd.txt +++ b/requirements/static/ci/py3.10/freebsd.txt @@ -168,6 +168,10 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.10/freebsd.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.10/freebsd.txt + # opentelemetry-exporter-otlp-proto-http hglib==2.6.2 # via -r requirements/static/ci/freebsd.in idna==3.7 @@ -183,6 +187,7 @@ importlib-metadata==8.7.0 # -c requirements/static/pkg/py3.10/freebsd.txt # -r requirements/base.txt # -r requirements/static/pkg/freebsd.in + # opentelemetry-api iniconfig==2.0.0 # via pytest invoke==2.2.1 ; sys_platform != 'win32' @@ -288,6 +293,35 @@ ncclient==0.7.0 ; sys_platform != 'win32' # junos-eznc oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.10/freebsd.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.10/freebsd.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.10/freebsd.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.10/freebsd.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.10/freebsd.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.10/freebsd.txt + # opentelemetry-sdk oscrypto==1.3.0 ; sys_platform != 'win32' # via certvalidator packaging==24.0 @@ -321,6 +355,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.10/freebsd.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.10/freebsd.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/pkg/py3.10/freebsd.txt @@ -480,6 +519,7 @@ requests==2.31.0 ; python_full_version < '3.11' # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # requests-oauthlib # responses # vcert @@ -493,6 +533,7 @@ requests==2.32.5 ; python_full_version >= '3.11' # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # requests-oauthlib # responses # vcert @@ -579,6 +620,10 @@ typing-extensions==4.15.0 # aiosignal # cryptography # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-system-statistics # virtualenv diff --git a/requirements/static/ci/py3.10/lint.txt b/requirements/static/ci/py3.10/lint.txt index d746307452c6..5cd6a14e604c 100644 --- a/requirements/static/ci/py3.10/lint.txt +++ b/requirements/static/ci/py3.10/lint.txt @@ -222,6 +222,11 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.10/linux.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -c requirements/static/pkg/py3.10/linux.txt + # opentelemetry-exporter-otlp-proto-http h11==0.14.0 # via # -c requirements/static/ci/py3.10/linux.txt @@ -254,6 +259,7 @@ importlib-metadata==8.7.0 # -c requirements/static/pkg/py3.10/linux.txt # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api invoke==2.2.1 # via # -c requirements/static/ci/py3.10/linux.txt @@ -396,6 +402,41 @@ oauthlib==3.3.1 # via # -c requirements/static/ci/py3.10/linux.txt # requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -c requirements/static/pkg/py3.10/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -c requirements/static/pkg/py3.10/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -c requirements/static/pkg/py3.10/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -c requirements/static/pkg/py3.10/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -c requirements/static/pkg/py3.10/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -c requirements/static/pkg/py3.10/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via # -c requirements/static/ci/py3.10/linux.txt @@ -439,6 +480,12 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.10/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.10/linux.txt + # -c requirements/static/pkg/py3.10/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/ci/py3.10/linux.txt @@ -591,6 +638,7 @@ requests==2.31.0 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # python-consul # requests-oauthlib # responses @@ -744,6 +792,10 @@ typing-extensions==4.15.0 # astroid # cryptography # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # virtualenv urllib3==2.7.0 diff --git a/requirements/static/ci/py3.10/linux.txt b/requirements/static/ci/py3.10/linux.txt index 77ab3741e658..e8d478665c78 100644 --- a/requirements/static/ci/py3.10/linux.txt +++ b/requirements/static/ci/py3.10/linux.txt @@ -172,6 +172,10 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.10/linux.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.10/linux.txt + # opentelemetry-exporter-otlp-proto-http h11==0.14.0 # via httpcore hglib==2.6.2 @@ -194,6 +198,7 @@ importlib-metadata==8.7.0 # via # -c requirements/static/pkg/py3.10/linux.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.0.0 # via pytest invoke==2.2.1 @@ -298,6 +303,35 @@ ncclient==0.7.0 # junos-eznc oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.10/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.10/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.10/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.10/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.10/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.10/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via certvalidator packaging==24.0 @@ -332,6 +366,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.10/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.10/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/pkg/py3.10/linux.txt @@ -485,6 +524,7 @@ requests==2.31.0 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # python-consul # requests-oauthlib # responses @@ -585,6 +625,10 @@ typing-extensions==4.15.0 # aiosignal # cryptography # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-system-statistics # virtualenv diff --git a/requirements/static/ci/py3.10/windows.txt b/requirements/static/ci/py3.10/windows.txt index 560685c73166..c307f5a3430e 100644 --- a/requirements/static/ci/py3.10/windows.txt +++ b/requirements/static/ci/py3.10/windows.txt @@ -160,6 +160,10 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.10/windows.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.10/windows.txt + # opentelemetry-exporter-otlp-proto-http idna==3.11 # via # -c requirements/static/pkg/py3.10/windows.txt @@ -172,6 +176,7 @@ importlib-metadata==8.7.1 # via # -c requirements/static/pkg/py3.10/windows.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.0.0 # via pytest jaraco-collections==5.2.1 @@ -266,6 +271,35 @@ multidict==6.1.0 # yarl oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.10/windows.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.10/windows.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.10/windows.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.10/windows.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.10/windows.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.10/windows.txt + # opentelemetry-sdk packaging==24.0 # via # -c requirements/static/pkg/py3.10/windows.txt @@ -293,6 +327,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.10/windows.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.10/windows.txt + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via # -c requirements/static/pkg/py3.10/windows.txt @@ -437,6 +476,7 @@ requests==2.31.0 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # pywinrm # requests-ntlm # requests-oauthlib @@ -531,6 +571,10 @@ typing-extensions==4.15.0 # aiosignal # cryptography # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-system-statistics # virtualenv diff --git a/requirements/static/ci/py3.11/cloud.txt b/requirements/static/ci/py3.11/cloud.txt index f36d9c9f06fd..b9ab227feaba 100644 --- a/requirements/static/ci/py3.11/cloud.txt +++ b/requirements/static/ci/py3.11/cloud.txt @@ -201,6 +201,11 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.11/linux.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -c requirements/static/pkg/py3.11/linux.txt + # opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -c requirements/static/ci/py3.11/linux.txt @@ -216,6 +221,7 @@ importlib-metadata==8.7.0 # -c requirements/static/pkg/py3.11/linux.txt # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api iniconfig==2.0.0 # via # -c requirements/static/ci/py3.11/linux.txt @@ -361,6 +367,41 @@ oauthlib==3.3.1 # via # -c requirements/static/ci/py3.11/linux.txt # requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -c requirements/static/pkg/py3.11/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -c requirements/static/pkg/py3.11/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -c requirements/static/pkg/py3.11/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -c requirements/static/pkg/py3.11/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -c requirements/static/pkg/py3.11/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -c requirements/static/pkg/py3.11/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via # -c requirements/static/ci/py3.11/linux.txt @@ -405,6 +446,12 @@ propcache==0.3.2 # -c requirements/static/pkg/py3.11/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -c requirements/static/pkg/py3.11/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/ci/py3.11/linux.txt @@ -600,6 +647,7 @@ requests==2.32.5 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # profitbricks # pywinrm # requests-ntlm @@ -731,6 +779,10 @@ typing-extensions==4.14.1 # -c requirements/static/ci/py3.11/linux.txt # -c requirements/static/pkg/py3.11/linux.txt # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-system-statistics urllib3==2.7.0 diff --git a/requirements/static/ci/py3.11/darwin.txt b/requirements/static/ci/py3.11/darwin.txt index 18aded0c70db..8ab92f664816 100644 --- a/requirements/static/ci/py3.11/darwin.txt +++ b/requirements/static/ci/py3.11/darwin.txt @@ -152,6 +152,10 @@ gitpython==3.1.46 # -r requirements/base.txt # -r requirements/static/ci/common.in # -r requirements/static/ci/darwin.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.11/darwin.txt + # opentelemetry-exporter-otlp-proto-http hglib==2.6.2 # via -r requirements/static/ci/darwin.in idna==3.7 @@ -166,6 +170,7 @@ importlib-metadata==8.7.0 # via # -c requirements/static/pkg/py3.11/darwin.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.0.0 # via pytest invoke==2.2.1 @@ -265,6 +270,35 @@ ncclient==0.7.0 # junos-eznc oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.11/darwin.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.11/darwin.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.11/darwin.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.11/darwin.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.11/darwin.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.11/darwin.txt + # opentelemetry-sdk oscrypto==1.3.0 # via certvalidator packaging==24.0 @@ -297,6 +331,11 @@ propcache==0.3.2 # -c requirements/static/pkg/py3.11/darwin.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.11/darwin.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/pkg/py3.11/darwin.txt @@ -433,6 +472,7 @@ requests==2.32.5 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # requests-oauthlib # responses # vcert @@ -508,6 +548,10 @@ typing-extensions==4.14.1 # via # -c requirements/static/pkg/py3.11/darwin.txt # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-system-statistics urllib3==2.7.0 diff --git a/requirements/static/ci/py3.11/docs.txt b/requirements/static/ci/py3.11/docs.txt index 6cec13c481af..c1e9f4c8fc95 100644 --- a/requirements/static/ci/py3.11/docs.txt +++ b/requirements/static/ci/py3.11/docs.txt @@ -93,6 +93,10 @@ gitpython==3.1.46 # via # -c requirements/static/ci/py3.11/linux.txt # -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.11/linux.txt + # opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -c requirements/static/ci/py3.11/linux.txt @@ -105,6 +109,7 @@ importlib-metadata==8.7.0 # via # -c requirements/static/ci/py3.11/linux.txt # -r requirements/base.txt + # opentelemetry-api jaraco-collections==4.1.0 # via # -c requirements/static/ci/py3.11/linux.txt @@ -175,6 +180,35 @@ multidict==6.1.0 # yarl myst-docutils==1.0.0 # via -r requirements/static/ci/docs.in +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # opentelemetry-sdk packaging==24.0 # via # -c requirements/static/ci/py3.11/linux.txt @@ -194,6 +228,11 @@ propcache==0.3.2 # -c requirements/static/ci/py3.11/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.11/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/ci/py3.11/linux.txt @@ -252,6 +291,7 @@ requests==2.32.5 # -c requirements/static/ci/py3.11/linux.txt # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # sphinx # vultr rpm-vercmp==0.1.2 @@ -314,6 +354,10 @@ typing-extensions==4.14.1 # via # -c requirements/static/ci/py3.11/linux.txt # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl uc-micro-py==1.0.1 # via linkify-it-py diff --git a/requirements/static/ci/py3.11/freebsd.txt b/requirements/static/ci/py3.11/freebsd.txt index 417e72826814..8e8cd538b2e0 100644 --- a/requirements/static/ci/py3.11/freebsd.txt +++ b/requirements/static/ci/py3.11/freebsd.txt @@ -161,6 +161,10 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.11/freebsd.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.11/freebsd.txt + # opentelemetry-exporter-otlp-proto-http hglib==2.6.2 # via -r requirements/static/ci/freebsd.in idna==3.7 @@ -176,6 +180,7 @@ importlib-metadata==8.7.0 # -c requirements/static/pkg/py3.11/freebsd.txt # -r requirements/base.txt # -r requirements/static/pkg/freebsd.in + # opentelemetry-api iniconfig==2.0.0 # via pytest invoke==2.2.1 ; sys_platform != 'win32' @@ -281,6 +286,35 @@ ncclient==0.7.0 ; sys_platform != 'win32' # junos-eznc oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.11/freebsd.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.11/freebsd.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.11/freebsd.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.11/freebsd.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.11/freebsd.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.11/freebsd.txt + # opentelemetry-sdk oscrypto==1.3.0 ; sys_platform != 'win32' # via certvalidator packaging==24.0 @@ -314,6 +348,11 @@ propcache==0.3.2 # -c requirements/static/pkg/py3.11/freebsd.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.11/freebsd.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/pkg/py3.11/freebsd.txt @@ -469,6 +508,7 @@ requests==2.32.5 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # requests-oauthlib # responses # vcert @@ -551,6 +591,10 @@ typing-extensions==4.14.1 # via # -c requirements/static/pkg/py3.11/freebsd.txt # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-system-statistics urllib3==2.7.0 diff --git a/requirements/static/ci/py3.11/lint.txt b/requirements/static/ci/py3.11/lint.txt index 4985e35618a3..ef8242596c8d 100644 --- a/requirements/static/ci/py3.11/lint.txt +++ b/requirements/static/ci/py3.11/lint.txt @@ -213,6 +213,11 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.11/linux.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -c requirements/static/pkg/py3.11/linux.txt + # opentelemetry-exporter-otlp-proto-http h11==0.14.0 # via # -c requirements/static/ci/py3.11/linux.txt @@ -245,6 +250,7 @@ importlib-metadata==8.7.0 # -c requirements/static/pkg/py3.11/linux.txt # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api invoke==2.2.1 # via # -c requirements/static/ci/py3.11/linux.txt @@ -387,6 +393,41 @@ oauthlib==3.3.1 # via # -c requirements/static/ci/py3.11/linux.txt # requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -c requirements/static/pkg/py3.11/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -c requirements/static/pkg/py3.11/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -c requirements/static/pkg/py3.11/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -c requirements/static/pkg/py3.11/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -c requirements/static/pkg/py3.11/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -c requirements/static/pkg/py3.11/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via # -c requirements/static/ci/py3.11/linux.txt @@ -430,6 +471,12 @@ propcache==0.3.2 # -c requirements/static/pkg/py3.11/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.11/linux.txt + # -c requirements/static/pkg/py3.11/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/ci/py3.11/linux.txt @@ -582,6 +629,7 @@ requests==2.32.5 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # python-consul # requests-oauthlib # responses @@ -728,6 +776,10 @@ typing-extensions==4.14.1 # -c requirements/static/ci/py3.11/linux.txt # -c requirements/static/pkg/py3.11/linux.txt # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl urllib3==2.7.0 # via diff --git a/requirements/static/ci/py3.11/linux.txt b/requirements/static/ci/py3.11/linux.txt index c057c055f0ba..8e4c9006d29d 100644 --- a/requirements/static/ci/py3.11/linux.txt +++ b/requirements/static/ci/py3.11/linux.txt @@ -163,6 +163,10 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.11/linux.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.11/linux.txt + # opentelemetry-exporter-otlp-proto-http h11==0.14.0 # via httpcore hglib==2.6.2 @@ -185,6 +189,7 @@ importlib-metadata==8.7.0 # via # -c requirements/static/pkg/py3.11/linux.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.0.0 # via pytest invoke==2.2.1 @@ -289,6 +294,35 @@ ncclient==0.7.0 # junos-eznc oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.11/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.11/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.11/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.11/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.11/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.11/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via certvalidator packaging==24.0 @@ -323,6 +357,11 @@ propcache==0.3.2 # -c requirements/static/pkg/py3.11/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.11/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/pkg/py3.11/linux.txt @@ -476,6 +515,7 @@ requests==2.32.5 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # python-consul # requests-oauthlib # responses @@ -572,6 +612,10 @@ typing-extensions==4.14.1 # via # -c requirements/static/pkg/py3.11/linux.txt # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-system-statistics urllib3==2.7.0 diff --git a/requirements/static/ci/py3.11/windows.txt b/requirements/static/ci/py3.11/windows.txt index db641de05801..e8a72643fe5d 100644 --- a/requirements/static/ci/py3.11/windows.txt +++ b/requirements/static/ci/py3.11/windows.txt @@ -153,6 +153,10 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.11/windows.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.11/windows.txt + # opentelemetry-exporter-otlp-proto-http idna==3.11 # via # -c requirements/static/pkg/py3.11/windows.txt @@ -165,6 +169,7 @@ importlib-metadata==8.7.1 # via # -c requirements/static/pkg/py3.11/windows.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.0.0 # via pytest jaraco-collections==5.2.1 @@ -259,6 +264,35 @@ multidict==6.1.0 # yarl oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.11/windows.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.11/windows.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.11/windows.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.11/windows.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.11/windows.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.11/windows.txt + # opentelemetry-sdk packaging==24.0 # via # -c requirements/static/pkg/py3.11/windows.txt @@ -286,6 +320,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.11/windows.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.11/windows.txt + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via # -c requirements/static/pkg/py3.11/windows.txt @@ -430,6 +469,7 @@ requests==2.33.1 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # pywinrm # requests-ntlm # requests-oauthlib @@ -520,6 +560,10 @@ typing-extensions==4.15.0 # via # -c requirements/static/pkg/py3.11/windows.txt # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-system-statistics urllib3==2.7.0 diff --git a/requirements/static/ci/py3.12/cloud.txt b/requirements/static/ci/py3.12/cloud.txt index b43858e0910d..13acb864ac2a 100644 --- a/requirements/static/ci/py3.12/cloud.txt +++ b/requirements/static/ci/py3.12/cloud.txt @@ -196,6 +196,11 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.12/linux.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -c requirements/static/pkg/py3.12/linux.txt + # opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -c requirements/static/ci/py3.12/linux.txt @@ -211,6 +216,7 @@ importlib-metadata==8.7.0 # -c requirements/static/pkg/py3.12/linux.txt # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api iniconfig==2.0.0 # via # -c requirements/static/ci/py3.12/linux.txt @@ -356,6 +362,41 @@ oauthlib==3.3.1 # via # -c requirements/static/ci/py3.12/linux.txt # requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -c requirements/static/pkg/py3.12/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -c requirements/static/pkg/py3.12/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -c requirements/static/pkg/py3.12/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -c requirements/static/pkg/py3.12/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -c requirements/static/pkg/py3.12/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -c requirements/static/pkg/py3.12/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via # -c requirements/static/ci/py3.12/linux.txt @@ -400,6 +441,12 @@ propcache==0.3.2 # -c requirements/static/pkg/py3.12/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -c requirements/static/pkg/py3.12/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/ci/py3.12/linux.txt @@ -595,6 +642,7 @@ requests==2.32.5 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # profitbricks # pywinrm # requests-ntlm @@ -726,6 +774,10 @@ typing-extensions==4.14.1 # -c requirements/static/ci/py3.12/linux.txt # -c requirements/static/pkg/py3.12/linux.txt # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-system-statistics urllib3==2.7.0 diff --git a/requirements/static/ci/py3.12/darwin.txt b/requirements/static/ci/py3.12/darwin.txt index 71f78971a215..cf46cbf01272 100644 --- a/requirements/static/ci/py3.12/darwin.txt +++ b/requirements/static/ci/py3.12/darwin.txt @@ -148,6 +148,10 @@ gitpython==3.1.46 # -r requirements/base.txt # -r requirements/static/ci/common.in # -r requirements/static/ci/darwin.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.12/darwin.txt + # opentelemetry-exporter-otlp-proto-http hglib==2.6.2 # via -r requirements/static/ci/darwin.in idna==3.7 @@ -162,6 +166,7 @@ importlib-metadata==8.7.0 # via # -c requirements/static/pkg/py3.12/darwin.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.0.0 # via pytest invoke==2.2.1 @@ -261,6 +266,35 @@ ncclient==0.7.0 # junos-eznc oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.12/darwin.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.12/darwin.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.12/darwin.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.12/darwin.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.12/darwin.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.12/darwin.txt + # opentelemetry-sdk oscrypto==1.3.0 # via certvalidator packaging==24.0 @@ -293,6 +327,11 @@ propcache==0.3.2 # -c requirements/static/pkg/py3.12/darwin.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.12/darwin.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/pkg/py3.12/darwin.txt @@ -429,6 +468,7 @@ requests==2.32.5 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # requests-oauthlib # responses # vcert @@ -504,6 +544,10 @@ typing-extensions==4.14.1 # via # -c requirements/static/pkg/py3.12/darwin.txt # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-system-statistics urllib3==2.7.0 diff --git a/requirements/static/ci/py3.12/docs.txt b/requirements/static/ci/py3.12/docs.txt index d533f840b281..2cef5a17d8a0 100644 --- a/requirements/static/ci/py3.12/docs.txt +++ b/requirements/static/ci/py3.12/docs.txt @@ -89,6 +89,10 @@ gitpython==3.1.46 # via # -c requirements/static/ci/py3.12/linux.txt # -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.12/linux.txt + # opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -c requirements/static/ci/py3.12/linux.txt @@ -101,6 +105,7 @@ importlib-metadata==8.7.0 # via # -c requirements/static/ci/py3.12/linux.txt # -r requirements/base.txt + # opentelemetry-api jaraco-collections==4.1.0 # via # -c requirements/static/ci/py3.12/linux.txt @@ -171,6 +176,35 @@ multidict==6.1.0 # yarl myst-docutils==1.0.0 # via -r requirements/static/ci/docs.in +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # opentelemetry-sdk packaging==24.0 # via # -c requirements/static/ci/py3.12/linux.txt @@ -190,6 +224,11 @@ propcache==0.3.2 # -c requirements/static/ci/py3.12/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.12/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/ci/py3.12/linux.txt @@ -248,6 +287,7 @@ requests==2.32.5 # -c requirements/static/ci/py3.12/linux.txt # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # sphinx # vultr rpm-vercmp==0.1.2 @@ -310,6 +350,10 @@ typing-extensions==4.14.1 # via # -c requirements/static/ci/py3.12/linux.txt # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl uc-micro-py==1.0.1 # via linkify-it-py diff --git a/requirements/static/ci/py3.12/freebsd.txt b/requirements/static/ci/py3.12/freebsd.txt index fe2e953b9b27..783ce8c3d54e 100644 --- a/requirements/static/ci/py3.12/freebsd.txt +++ b/requirements/static/ci/py3.12/freebsd.txt @@ -157,6 +157,10 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.12/freebsd.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.12/freebsd.txt + # opentelemetry-exporter-otlp-proto-http hglib==2.6.2 # via -r requirements/static/ci/freebsd.in idna==3.7 @@ -172,6 +176,7 @@ importlib-metadata==8.7.0 # -c requirements/static/pkg/py3.12/freebsd.txt # -r requirements/base.txt # -r requirements/static/pkg/freebsd.in + # opentelemetry-api iniconfig==2.0.0 # via pytest invoke==2.2.1 ; sys_platform != 'win32' @@ -277,6 +282,35 @@ ncclient==0.7.0 ; sys_platform != 'win32' # junos-eznc oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.12/freebsd.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.12/freebsd.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.12/freebsd.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.12/freebsd.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.12/freebsd.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.12/freebsd.txt + # opentelemetry-sdk oscrypto==1.3.0 ; sys_platform != 'win32' # via certvalidator packaging==24.0 @@ -310,6 +344,11 @@ propcache==0.3.2 # -c requirements/static/pkg/py3.12/freebsd.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.12/freebsd.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/pkg/py3.12/freebsd.txt @@ -465,6 +504,7 @@ requests==2.32.5 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # requests-oauthlib # responses # vcert @@ -547,6 +587,10 @@ typing-extensions==4.14.1 # via # -c requirements/static/pkg/py3.12/freebsd.txt # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-system-statistics urllib3==2.7.0 diff --git a/requirements/static/ci/py3.12/lint.txt b/requirements/static/ci/py3.12/lint.txt index e97273ab4a93..452cabc5bac4 100644 --- a/requirements/static/ci/py3.12/lint.txt +++ b/requirements/static/ci/py3.12/lint.txt @@ -208,6 +208,11 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.12/linux.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -c requirements/static/pkg/py3.12/linux.txt + # opentelemetry-exporter-otlp-proto-http h11==0.14.0 # via # -c requirements/static/ci/py3.12/linux.txt @@ -240,6 +245,7 @@ importlib-metadata==8.7.0 # -c requirements/static/pkg/py3.12/linux.txt # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api invoke==2.2.1 # via # -c requirements/static/ci/py3.12/linux.txt @@ -382,6 +388,41 @@ oauthlib==3.3.1 # via # -c requirements/static/ci/py3.12/linux.txt # requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -c requirements/static/pkg/py3.12/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -c requirements/static/pkg/py3.12/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -c requirements/static/pkg/py3.12/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -c requirements/static/pkg/py3.12/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -c requirements/static/pkg/py3.12/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -c requirements/static/pkg/py3.12/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via # -c requirements/static/ci/py3.12/linux.txt @@ -425,6 +466,12 @@ propcache==0.3.2 # -c requirements/static/pkg/py3.12/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.12/linux.txt + # -c requirements/static/pkg/py3.12/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/ci/py3.12/linux.txt @@ -577,6 +624,7 @@ requests==2.32.5 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # python-consul # requests-oauthlib # responses @@ -723,6 +771,10 @@ typing-extensions==4.14.1 # -c requirements/static/ci/py3.12/linux.txt # -c requirements/static/pkg/py3.12/linux.txt # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl urllib3==2.7.0 # via diff --git a/requirements/static/ci/py3.12/linux.txt b/requirements/static/ci/py3.12/linux.txt index 44dce41e95dc..31f05a42cdcf 100644 --- a/requirements/static/ci/py3.12/linux.txt +++ b/requirements/static/ci/py3.12/linux.txt @@ -159,6 +159,10 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.12/linux.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.12/linux.txt + # opentelemetry-exporter-otlp-proto-http h11==0.14.0 # via httpcore hglib==2.6.2 @@ -181,6 +185,7 @@ importlib-metadata==8.7.0 # via # -c requirements/static/pkg/py3.12/linux.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.0.0 # via pytest invoke==2.2.1 @@ -285,6 +290,35 @@ ncclient==0.7.0 # junos-eznc oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.12/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.12/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.12/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.12/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.12/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.12/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via certvalidator packaging==24.0 @@ -319,6 +353,11 @@ propcache==0.3.2 # -c requirements/static/pkg/py3.12/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.12/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/pkg/py3.12/linux.txt @@ -472,6 +511,7 @@ requests==2.32.5 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # python-consul # requests-oauthlib # responses @@ -568,6 +608,10 @@ typing-extensions==4.14.1 # via # -c requirements/static/pkg/py3.12/linux.txt # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-system-statistics urllib3==2.7.0 diff --git a/requirements/static/ci/py3.12/windows.txt b/requirements/static/ci/py3.12/windows.txt index 38e34c5715b4..f632b06fe588 100644 --- a/requirements/static/ci/py3.12/windows.txt +++ b/requirements/static/ci/py3.12/windows.txt @@ -147,6 +147,10 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.12/windows.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.12/windows.txt + # opentelemetry-exporter-otlp-proto-http idna==3.11 # via # -c requirements/static/pkg/py3.12/windows.txt @@ -159,6 +163,7 @@ importlib-metadata==8.7.1 # via # -c requirements/static/pkg/py3.12/windows.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.0.0 # via pytest jaraco-collections==5.2.1 @@ -253,6 +258,35 @@ multidict==6.1.0 # yarl oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.12/windows.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.12/windows.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.12/windows.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.12/windows.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.12/windows.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.12/windows.txt + # opentelemetry-sdk packaging==24.0 # via # -c requirements/static/pkg/py3.12/windows.txt @@ -280,6 +314,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.12/windows.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.12/windows.txt + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via # -c requirements/static/pkg/py3.12/windows.txt @@ -424,6 +463,7 @@ requests==2.33.1 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # pywinrm # requests-ntlm # requests-oauthlib @@ -513,6 +553,10 @@ typing-extensions==4.15.0 # via # -c requirements/static/pkg/py3.12/windows.txt # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-system-statistics urllib3==2.7.0 diff --git a/requirements/static/ci/py3.13/cloud.txt b/requirements/static/ci/py3.13/cloud.txt index e06b20751362..d627a1a48be7 100644 --- a/requirements/static/ci/py3.13/cloud.txt +++ b/requirements/static/ci/py3.13/cloud.txt @@ -198,6 +198,11 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.13/linux.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # opentelemetry-exporter-otlp-proto-http idna==3.10 # via # -c requirements/static/ci/py3.13/linux.txt @@ -213,6 +218,7 @@ importlib-metadata==8.7.0 # -c requirements/static/pkg/py3.13/linux.txt # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api iniconfig==2.0.0 # via # -c requirements/static/ci/py3.13/linux.txt @@ -358,6 +364,41 @@ oauthlib==3.3.1 # via # -c requirements/static/ci/py3.13/linux.txt # requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via # -c requirements/static/ci/py3.13/linux.txt @@ -401,6 +442,12 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.13/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==6.1.0 # via # -c requirements/static/ci/py3.13/linux.txt @@ -596,6 +643,7 @@ requests==2.32.5 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # profitbricks # pywinrm # requests-ntlm @@ -721,9 +769,14 @@ truststore==0.10.4 # -c requirements/static/ci/py3.13/linux.txt # -c requirements/static/pkg/py3.13/linux.txt # -r requirements/base.txt -typing-extensions==4.12.2 +typing-extensions==4.15.0 # via # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pytest-system-statistics urllib3==2.7.0 # via diff --git a/requirements/static/ci/py3.13/darwin.txt b/requirements/static/ci/py3.13/darwin.txt index c8f8676fd0c1..dad1becebde2 100644 --- a/requirements/static/ci/py3.13/darwin.txt +++ b/requirements/static/ci/py3.13/darwin.txt @@ -150,6 +150,10 @@ gitpython==3.1.46 # -r requirements/base.txt # -r requirements/static/ci/common.in # -r requirements/static/ci/darwin.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.13/darwin.txt + # opentelemetry-exporter-otlp-proto-http hglib==2.6.2 # via -r requirements/static/ci/darwin.in idna==3.10 @@ -164,6 +168,7 @@ importlib-metadata==8.7.0 # via # -c requirements/static/pkg/py3.13/darwin.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.0.0 # via pytest jaraco-collections==5.1.0 @@ -263,6 +268,35 @@ ncclient==0.6.16 # junos-eznc oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.13/darwin.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.13/darwin.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.13/darwin.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.13/darwin.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.13/darwin.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.13/darwin.txt + # opentelemetry-sdk oscrypto==1.3.0 # via certvalidator packaging==24.0 @@ -294,6 +328,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.13/darwin.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.13/darwin.txt + # googleapis-common-protos + # opentelemetry-proto psutil==6.1.0 # via # -c requirements/static/pkg/py3.13/darwin.txt @@ -431,6 +470,7 @@ requests==2.32.5 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # requests-oauthlib # responses # vcert @@ -504,8 +544,14 @@ truststore==0.10.4 # via # -c requirements/static/pkg/py3.13/darwin.txt # -r requirements/base.txt -typing-extensions==4.12.2 - # via pytest-system-statistics +typing-extensions==4.15.0 + # via + # -c requirements/static/pkg/py3.13/darwin.txt + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions + # pytest-system-statistics urllib3==2.7.0 # via # -c requirements/static/pkg/py3.13/darwin.txt diff --git a/requirements/static/ci/py3.13/docs.txt b/requirements/static/ci/py3.13/docs.txt index 7fedab12688c..3d8809f6387d 100644 --- a/requirements/static/ci/py3.13/docs.txt +++ b/requirements/static/ci/py3.13/docs.txt @@ -89,6 +89,10 @@ gitpython==3.1.46 # via # -c requirements/static/ci/py3.13/linux.txt # -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.13/linux.txt + # opentelemetry-exporter-otlp-proto-http idna==3.10 # via # -c requirements/static/ci/py3.13/linux.txt @@ -101,6 +105,7 @@ importlib-metadata==8.7.0 # via # -c requirements/static/ci/py3.13/linux.txt # -r requirements/base.txt + # opentelemetry-api jaraco-collections==5.1.0 # via # -c requirements/static/ci/py3.13/linux.txt @@ -171,6 +176,35 @@ multidict==6.1.0 # yarl myst-docutils==4.0.0 # via -r requirements/static/ci/docs.in +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # opentelemetry-sdk packaging==24.0 # via # -c requirements/static/ci/py3.13/linux.txt @@ -190,6 +224,11 @@ propcache==0.4.1 # -c requirements/static/ci/py3.13/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.13/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==6.1.0 # via # -c requirements/static/ci/py3.13/linux.txt @@ -248,6 +287,7 @@ requests==2.32.5 # -c requirements/static/ci/py3.13/linux.txt # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # sphinx # vultr rpm-vercmp==0.1.2 @@ -306,6 +346,13 @@ truststore==0.10.4 # via # -c requirements/static/ci/py3.13/linux.txt # -r requirements/base.txt +typing-extensions==4.15.0 + # via + # -c requirements/static/ci/py3.13/linux.txt + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions uc-micro-py==1.0.3 # via linkify-it-py urllib3==2.7.0 diff --git a/requirements/static/ci/py3.13/freebsd.txt b/requirements/static/ci/py3.13/freebsd.txt index 4363734650b9..fbec8352744c 100644 --- a/requirements/static/ci/py3.13/freebsd.txt +++ b/requirements/static/ci/py3.13/freebsd.txt @@ -159,6 +159,10 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.13/freebsd.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.13/freebsd.txt + # opentelemetry-exporter-otlp-proto-http hglib==2.6.2 # via -r requirements/static/ci/freebsd.in idna==3.10 @@ -174,6 +178,7 @@ importlib-metadata==8.7.0 # -c requirements/static/pkg/py3.13/freebsd.txt # -r requirements/base.txt # -r requirements/static/pkg/freebsd.in + # opentelemetry-api iniconfig==2.0.0 # via pytest jaraco-collections==5.1.0 @@ -279,6 +284,35 @@ ncclient==0.6.16 ; sys_platform != 'win32' # junos-eznc oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.13/freebsd.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.13/freebsd.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.13/freebsd.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.13/freebsd.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.13/freebsd.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.13/freebsd.txt + # opentelemetry-sdk oscrypto==1.3.0 ; sys_platform != 'win32' # via certvalidator packaging==24.0 @@ -311,6 +345,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.13/freebsd.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.13/freebsd.txt + # googleapis-common-protos + # opentelemetry-proto psutil==6.1.0 # via # -c requirements/static/pkg/py3.13/freebsd.txt @@ -467,6 +506,7 @@ requests==2.32.5 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # requests-oauthlib # responses # vcert @@ -546,8 +586,14 @@ truststore==0.10.4 # via # -c requirements/static/pkg/py3.13/freebsd.txt # -r requirements/base.txt -typing-extensions==4.12.2 - # via pytest-system-statistics +typing-extensions==4.15.0 + # via + # -c requirements/static/pkg/py3.13/freebsd.txt + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions + # pytest-system-statistics urllib3==2.7.0 # via # -c requirements/static/pkg/py3.13/freebsd.txt diff --git a/requirements/static/ci/py3.13/lint.txt b/requirements/static/ci/py3.13/lint.txt index 3b242be7f74d..3e3dfc236683 100644 --- a/requirements/static/ci/py3.13/lint.txt +++ b/requirements/static/ci/py3.13/lint.txt @@ -209,6 +209,11 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.13/linux.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # opentelemetry-exporter-otlp-proto-http h11==0.14.0 # via # -c requirements/static/ci/py3.13/linux.txt @@ -241,6 +246,7 @@ importlib-metadata==8.7.0 # -c requirements/static/pkg/py3.13/linux.txt # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api isort==5.13.2 # via pylint jaraco-collections==5.1.0 @@ -383,6 +389,41 @@ oauthlib==3.3.1 # via # -c requirements/static/ci/py3.13/linux.txt # requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via # -c requirements/static/ci/py3.13/linux.txt @@ -425,6 +466,12 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.13/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==6.1.0 # via # -c requirements/static/ci/py3.13/linux.txt @@ -577,6 +624,7 @@ requests==2.32.5 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # python-consul # requests-oauthlib # responses @@ -717,6 +765,14 @@ twilio==9.10.5 # via # -c requirements/static/ci/py3.13/linux.txt # -r requirements/static/ci/linux.in +typing-extensions==4.15.0 + # via + # -c requirements/static/ci/py3.13/linux.txt + # -c requirements/static/pkg/py3.13/linux.txt + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions urllib3==2.7.0 # via # -c requirements/static/ci/py3.13/linux.txt diff --git a/requirements/static/ci/py3.13/linux.txt b/requirements/static/ci/py3.13/linux.txt index 480807a9bc9c..efa48f179301 100644 --- a/requirements/static/ci/py3.13/linux.txt +++ b/requirements/static/ci/py3.13/linux.txt @@ -161,6 +161,10 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.13/linux.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.13/linux.txt + # opentelemetry-exporter-otlp-proto-http h11==0.14.0 # via httpcore hglib==2.6.2 @@ -183,6 +187,7 @@ importlib-metadata==8.7.0 # via # -c requirements/static/pkg/py3.13/linux.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.0.0 # via pytest jaraco-collections==5.1.0 @@ -287,6 +292,35 @@ ncclient==0.6.16 # junos-eznc oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.13/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.13/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.13/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.13/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.13/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.13/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via certvalidator packaging==24.0 @@ -320,6 +354,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.13/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.13/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==6.1.0 # via # -c requirements/static/pkg/py3.13/linux.txt @@ -474,6 +513,7 @@ requests==2.32.5 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # python-consul # requests-oauthlib # responses @@ -566,8 +606,14 @@ truststore==0.10.4 # -r requirements/base.txt twilio==9.10.5 # via -r requirements/static/ci/linux.in -typing-extensions==4.12.2 - # via pytest-system-statistics +typing-extensions==4.15.0 + # via + # -c requirements/static/pkg/py3.13/linux.txt + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions + # pytest-system-statistics urllib3==2.7.0 # via # -c requirements/static/pkg/py3.13/linux.txt diff --git a/requirements/static/ci/py3.13/windows.txt b/requirements/static/ci/py3.13/windows.txt index 5ac69524bbed..fbeb7641fe8b 100644 --- a/requirements/static/ci/py3.13/windows.txt +++ b/requirements/static/ci/py3.13/windows.txt @@ -149,6 +149,10 @@ gitpython==3.1.46 # -c requirements/static/pkg/py3.13/windows.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.13/windows.txt + # opentelemetry-exporter-otlp-proto-http idna==3.11 # via # -c requirements/static/pkg/py3.13/windows.txt @@ -161,6 +165,7 @@ importlib-metadata==8.7.1 # via # -c requirements/static/pkg/py3.13/windows.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.0.0 # via pytest jaraco-collections==5.2.1 @@ -257,6 +262,35 @@ multidict==6.1.0 # yarl oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.13/windows.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.13/windows.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.13/windows.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.13/windows.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.13/windows.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.13/windows.txt + # opentelemetry-sdk packaging==24.0 # via # -c requirements/static/pkg/py3.13/windows.txt @@ -284,6 +318,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.13/windows.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.13/windows.txt + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via # -c requirements/static/pkg/py3.13/windows.txt @@ -430,6 +469,7 @@ requests==2.33.1 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # pywinrm # requests-ntlm # requests-oauthlib @@ -517,8 +557,14 @@ typer-slim==0.24.0 # via # -c requirements/static/pkg/py3.13/windows.txt # jaraco-text -typing-extensions==4.12.2 - # via pytest-system-statistics +typing-extensions==4.15.0 + # via + # -c requirements/static/pkg/py3.13/windows.txt + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions + # pytest-system-statistics urllib3==2.7.0 # via # -c requirements/static/pkg/py3.13/windows.txt diff --git a/requirements/static/ci/py3.14/cloud.txt b/requirements/static/ci/py3.14/cloud.txt index c84409983b38..2f4ae9f88bdd 100644 --- a/requirements/static/ci/py3.14/cloud.txt +++ b/requirements/static/ci/py3.14/cloud.txt @@ -199,6 +199,11 @@ gitpython==3.1.49 # -c requirements/static/pkg/py3.14/linux.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # opentelemetry-exporter-otlp-proto-http idna==3.13 # via # -c requirements/static/ci/py3.14/linux.txt @@ -208,12 +213,13 @@ idna==3.13 # requests # trustme # yarl -importlib-metadata==9.0.0 +importlib-metadata==8.7.1 # via # -c requirements/static/ci/py3.14/linux.txt # -c requirements/static/pkg/py3.14/linux.txt # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api iniconfig==2.3.0 # via # -c requirements/static/ci/py3.14/linux.txt @@ -375,6 +381,41 @@ oauthlib==3.3.1 # via # -c requirements/static/ci/py3.14/linux.txt # requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via # -c requirements/static/ci/py3.14/linux.txt @@ -419,6 +460,12 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.14/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via # -c requirements/static/ci/py3.14/linux.txt @@ -615,6 +662,7 @@ requests==2.33.1 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # profitbricks # pywinrm # requests-ntlm @@ -759,6 +807,11 @@ typer-slim==0.24.0 typing-extensions==4.15.0 # via # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pytest-system-statistics urllib3==2.7.0 # via diff --git a/requirements/static/ci/py3.14/darwin.txt b/requirements/static/ci/py3.14/darwin.txt index b9b461a40346..9406d680dfde 100644 --- a/requirements/static/ci/py3.14/darwin.txt +++ b/requirements/static/ci/py3.14/darwin.txt @@ -152,6 +152,10 @@ gitpython==3.1.49 # -r requirements/base.txt # -r requirements/static/ci/common.in # -r requirements/static/ci/darwin.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.14/darwin.txt + # opentelemetry-exporter-otlp-proto-http hglib==2.6.2 # via -r requirements/static/ci/darwin.in idna==3.13 @@ -162,10 +166,11 @@ idna==3.13 # requests # trustme # yarl -importlib-metadata==9.0.0 +importlib-metadata==8.7.1 # via # -c requirements/static/pkg/py3.14/darwin.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.3.0 # via pytest invoke==3.0.3 @@ -277,6 +282,35 @@ ncclient==0.7.0 # junos-eznc oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.14/darwin.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.14/darwin.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.14/darwin.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.14/darwin.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.14/darwin.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.14/darwin.txt + # opentelemetry-sdk oscrypto==1.3.0 # via certvalidator packaging==24.0 @@ -309,6 +343,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.14/darwin.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.14/darwin.txt + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via # -c requirements/static/pkg/py3.14/darwin.txt @@ -447,6 +486,7 @@ requests==2.33.1 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # requests-oauthlib # responses # vcert @@ -533,7 +573,13 @@ typer-slim==0.24.0 # -c requirements/static/pkg/py3.14/darwin.txt # jaraco-text typing-extensions==4.15.0 - # via pytest-system-statistics + # via + # -c requirements/static/pkg/py3.14/darwin.txt + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions + # pytest-system-statistics urllib3==2.7.0 # via # -c requirements/static/pkg/py3.14/darwin.txt diff --git a/requirements/static/ci/py3.14/docs.txt b/requirements/static/ci/py3.14/docs.txt index 8fdf6d4216a4..7e8900e54fb2 100644 --- a/requirements/static/ci/py3.14/docs.txt +++ b/requirements/static/ci/py3.14/docs.txt @@ -93,6 +93,10 @@ gitpython==3.1.49 # via # -c requirements/static/ci/py3.14/linux.txt # -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.14/linux.txt + # opentelemetry-exporter-otlp-proto-http idna==3.13 # via # -c requirements/static/ci/py3.14/linux.txt @@ -101,10 +105,11 @@ idna==3.13 # yarl imagesize==2.0.0 # via sphinx -importlib-metadata==9.0.0 +importlib-metadata==8.7.1 # via # -c requirements/static/ci/py3.14/linux.txt # -r requirements/base.txt + # opentelemetry-api jaraco-collections==5.2.1 # via # -c requirements/static/ci/py3.14/linux.txt @@ -182,6 +187,35 @@ multidict==6.7.1 # yarl myst-docutils==5.0.0 # via -r requirements/static/ci/docs.in +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # opentelemetry-sdk packaging==24.0 # via # -c requirements/static/ci/py3.14/linux.txt @@ -201,6 +235,11 @@ propcache==0.4.1 # -c requirements/static/ci/py3.14/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.14/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via # -c requirements/static/ci/py3.14/linux.txt @@ -258,6 +297,7 @@ requests==2.33.1 # -c requirements/static/ci/py3.14/linux.txt # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # sphinx # sphinxcontrib-spelling # vultr @@ -334,6 +374,13 @@ typer-slim==0.24.0 # via # -c requirements/static/ci/py3.14/linux.txt # jaraco-text +typing-extensions==4.15.0 + # via + # -c requirements/static/ci/py3.14/linux.txt + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions uc-micro-py==2.0.0 # via linkify-it-py urllib3==2.7.0 diff --git a/requirements/static/ci/py3.14/freebsd.txt b/requirements/static/ci/py3.14/freebsd.txt index 75e92099339a..8a625ffd658a 100644 --- a/requirements/static/ci/py3.14/freebsd.txt +++ b/requirements/static/ci/py3.14/freebsd.txt @@ -164,6 +164,10 @@ gitpython==3.1.49 # -c requirements/static/pkg/py3.14/freebsd.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.14/freebsd.txt + # opentelemetry-exporter-otlp-proto-http hglib==2.6.2 # via -r requirements/static/ci/freebsd.in idna==3.13 @@ -174,11 +178,12 @@ idna==3.13 # requests # trustme # yarl -importlib-metadata==9.0.0 +importlib-metadata==8.7.1 # via # -c requirements/static/pkg/py3.14/freebsd.txt # -r requirements/base.txt # -r requirements/static/pkg/freebsd.in + # opentelemetry-api iniconfig==2.3.0 # via pytest invoke==3.0.3 ; sys_platform != 'win32' @@ -297,6 +302,35 @@ ncclient==0.7.0 ; sys_platform != 'win32' # junos-eznc oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.14/freebsd.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.14/freebsd.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.14/freebsd.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.14/freebsd.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.14/freebsd.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.14/freebsd.txt + # opentelemetry-sdk oscrypto==1.3.0 ; sys_platform != 'win32' # via certvalidator packaging==24.0 @@ -330,6 +364,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.14/freebsd.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.14/freebsd.txt + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via # -c requirements/static/pkg/py3.14/freebsd.txt @@ -487,6 +526,7 @@ requests==2.33.1 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # requests-oauthlib # responses # vcert @@ -579,7 +619,13 @@ typer-slim==0.24.0 # -c requirements/static/pkg/py3.14/freebsd.txt # jaraco-text typing-extensions==4.15.0 - # via pytest-system-statistics + # via + # -c requirements/static/pkg/py3.14/freebsd.txt + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions + # pytest-system-statistics urllib3==2.7.0 # via # -c requirements/static/pkg/py3.14/freebsd.txt diff --git a/requirements/static/ci/py3.14/lint.txt b/requirements/static/ci/py3.14/lint.txt index 76b504710029..a017eef2ee26 100644 --- a/requirements/static/ci/py3.14/lint.txt +++ b/requirements/static/ci/py3.14/lint.txt @@ -210,6 +210,11 @@ gitpython==3.1.49 # -c requirements/static/pkg/py3.14/linux.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # opentelemetry-exporter-otlp-proto-http h11==0.16.0 # via # -c requirements/static/ci/py3.14/linux.txt @@ -237,12 +242,13 @@ idna==3.13 # httpx # requests # yarl -importlib-metadata==9.0.0 +importlib-metadata==8.7.1 # via # -c requirements/static/ci/py3.14/linux.txt # -c requirements/static/pkg/py3.14/linux.txt # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api invoke==3.0.3 # via # -c requirements/static/ci/py3.14/linux.txt @@ -401,6 +407,41 @@ oauthlib==3.3.1 # via # -c requirements/static/ci/py3.14/linux.txt # requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via # -c requirements/static/ci/py3.14/linux.txt @@ -444,6 +485,12 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.14/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via # -c requirements/static/ci/py3.14/linux.txt @@ -596,6 +643,7 @@ requests==2.33.1 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # python-consul # requests-oauthlib # responses @@ -747,6 +795,14 @@ typer-slim==0.24.0 # -c requirements/static/ci/py3.14/linux.txt # -c requirements/static/pkg/py3.14/linux.txt # jaraco-text +typing-extensions==4.15.0 + # via + # -c requirements/static/ci/py3.14/linux.txt + # -c requirements/static/pkg/py3.14/linux.txt + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions urllib3==2.7.0 # via # -c requirements/static/ci/py3.14/linux.txt diff --git a/requirements/static/ci/py3.14/linux.txt b/requirements/static/ci/py3.14/linux.txt index 68adca362a1a..186cac76ea15 100644 --- a/requirements/static/ci/py3.14/linux.txt +++ b/requirements/static/ci/py3.14/linux.txt @@ -163,6 +163,10 @@ gitpython==3.1.49 # -c requirements/static/pkg/py3.14/linux.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.14/linux.txt + # opentelemetry-exporter-otlp-proto-http h11==0.16.0 # via httpcore hglib==2.6.2 @@ -183,10 +187,11 @@ idna==3.13 # requests # trustme # yarl -importlib-metadata==9.0.0 +importlib-metadata==8.7.1 # via # -c requirements/static/pkg/py3.14/linux.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.3.0 # via pytest invoke==3.0.3 @@ -303,6 +308,35 @@ ncclient==0.7.0 # junos-eznc oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.14/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.14/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.14/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.14/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.14/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.14/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via certvalidator packaging==24.0 @@ -337,6 +371,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.14/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.14/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via # -c requirements/static/pkg/py3.14/linux.txt @@ -492,6 +531,7 @@ requests==2.33.1 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # python-consul # requests-oauthlib # responses @@ -593,7 +633,13 @@ typer-slim==0.24.0 # -c requirements/static/pkg/py3.14/linux.txt # jaraco-text typing-extensions==4.15.0 - # via pytest-system-statistics + # via + # -c requirements/static/pkg/py3.14/linux.txt + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions + # pytest-system-statistics urllib3==2.7.0 # via # -c requirements/static/pkg/py3.14/linux.txt diff --git a/requirements/static/ci/py3.14/windows.txt b/requirements/static/ci/py3.14/windows.txt index a861e4f907ad..b93bc946fd4e 100644 --- a/requirements/static/ci/py3.14/windows.txt +++ b/requirements/static/ci/py3.14/windows.txt @@ -149,6 +149,10 @@ gitpython==3.1.49 # -c requirements/static/pkg/py3.14/windows.txt # -r requirements/base.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.14/windows.txt + # opentelemetry-exporter-otlp-proto-http idna==3.13 # via # -c requirements/static/pkg/py3.14/windows.txt @@ -157,10 +161,11 @@ idna==3.13 # requests # trustme # yarl -importlib-metadata==9.0.0 +importlib-metadata==8.7.1 # via # -c requirements/static/pkg/py3.14/windows.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.3.0 # via pytest jaraco-collections==5.2.1 @@ -259,6 +264,35 @@ multidict==6.7.1 # yarl oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.14/windows.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.14/windows.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.14/windows.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.14/windows.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.14/windows.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.14/windows.txt + # opentelemetry-sdk packaging==24.0 # via # -c requirements/static/pkg/py3.14/windows.txt @@ -286,6 +320,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.14/windows.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.14/windows.txt + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via # -c requirements/static/pkg/py3.14/windows.txt @@ -432,6 +471,7 @@ requests==2.33.1 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # pywinrm # requests-ntlm # requests-oauthlib @@ -518,7 +558,13 @@ typer-slim==0.24.0 # -c requirements/static/pkg/py3.14/windows.txt # jaraco-text typing-extensions==4.15.0 - # via pytest-system-statistics + # via + # -c requirements/static/pkg/py3.14/windows.txt + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions + # pytest-system-statistics urllib3==2.7.0 # via # -c requirements/static/pkg/py3.14/windows.txt diff --git a/requirements/static/ci/py3.9/cloud.txt b/requirements/static/ci/py3.9/cloud.txt index 320b0ae57bc9..69295d4626ba 100644 --- a/requirements/static/ci/py3.9/cloud.txt +++ b/requirements/static/ci/py3.9/cloud.txt @@ -221,6 +221,11 @@ google-auth==2.35.0 # via # -c requirements/static/ci/py3.9/linux.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -c requirements/static/pkg/py3.9/linux.txt + # opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -c requirements/static/ci/py3.9/linux.txt @@ -236,6 +241,7 @@ importlib-metadata==8.7.0 # -c requirements/static/pkg/py3.9/linux.txt # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api iniconfig==2.0.0 # via # -c requirements/static/ci/py3.9/linux.txt @@ -405,6 +411,41 @@ oauthlib==3.3.1 # via # -c requirements/static/ci/py3.9/linux.txt # requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -c requirements/static/pkg/py3.9/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -c requirements/static/pkg/py3.9/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -c requirements/static/pkg/py3.9/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -c requirements/static/pkg/py3.9/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -c requirements/static/pkg/py3.9/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -c requirements/static/pkg/py3.9/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via # -c requirements/static/ci/py3.9/linux.txt @@ -451,6 +492,12 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.9/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -c requirements/static/pkg/py3.9/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/ci/py3.9/linux.txt @@ -661,6 +708,7 @@ requests==2.31.0 # kubernetes # moto # napalm + # opentelemetry-exporter-otlp-proto-http # profitbricks # pywinrm # requests-ntlm @@ -809,6 +857,10 @@ typing-extensions==4.15.0 # gitpython # multidict # napalm + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-shell-utilities # pytest-system-statistics diff --git a/requirements/static/ci/py3.9/darwin.txt b/requirements/static/ci/py3.9/darwin.txt index 400f93ea0d03..43ad84834deb 100644 --- a/requirements/static/ci/py3.9/darwin.txt +++ b/requirements/static/ci/py3.9/darwin.txt @@ -166,6 +166,10 @@ gitpython==3.1.46 # -r requirements/static/ci/darwin.in google-auth==2.35.0 # via -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.9/darwin.txt + # opentelemetry-exporter-otlp-proto-http hglib==2.6.2 # via -r requirements/static/ci/darwin.in idna==3.7 @@ -180,6 +184,7 @@ importlib-metadata==8.7.0 # via # -c requirements/static/pkg/py3.9/darwin.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.0.0 # via pytest invoke==2.2.1 @@ -296,6 +301,35 @@ ntc-templates==4.0.1 # via netmiko oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.9/darwin.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.9/darwin.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.9/darwin.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.9/darwin.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.9/darwin.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.9/darwin.txt + # opentelemetry-sdk oscrypto==1.3.0 # via certvalidator packaging==24.0 @@ -330,6 +364,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.9/darwin.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.9/darwin.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/pkg/py3.9/darwin.txt @@ -479,6 +518,7 @@ requests==2.31.0 # kubernetes # moto # napalm + # opentelemetry-exporter-otlp-proto-http # requests-oauthlib # responses # vcert @@ -571,6 +611,10 @@ typing-extensions==4.15.0 # gitpython # multidict # napalm + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-shell-utilities # pytest-system-statistics diff --git a/requirements/static/ci/py3.9/docs.txt b/requirements/static/ci/py3.9/docs.txt index b207ab7fa08a..6e8bd9e1f46d 100644 --- a/requirements/static/ci/py3.9/docs.txt +++ b/requirements/static/ci/py3.9/docs.txt @@ -97,6 +97,10 @@ gitpython==3.1.46 # via # -c requirements/static/ci/py3.9/linux.txt # -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -c requirements/static/ci/py3.9/linux.txt @@ -109,6 +113,7 @@ importlib-metadata==8.7.0 # via # -c requirements/static/ci/py3.9/linux.txt # -r requirements/base.txt + # opentelemetry-api # sphinx jaraco-collections==4.1.0 # via @@ -181,6 +186,35 @@ multidict==6.1.0 # yarl myst-docutils==1.0.0 # via -r requirements/static/ci/docs.in +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # opentelemetry-sdk packaging==24.0 # via # -c requirements/static/ci/py3.9/linux.txt @@ -200,6 +234,11 @@ propcache==0.4.1 # -c requirements/static/ci/py3.9/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.9/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/ci/py3.9/linux.txt @@ -258,6 +297,7 @@ requests==2.31.0 # -c requirements/static/ci/py3.9/linux.txt # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # sphinx # vultr rpm-vercmp==0.1.2 @@ -319,6 +359,10 @@ typing-extensions==4.15.0 # cryptography # gitpython # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # virtualenv uc-micro-py==1.0.2 diff --git a/requirements/static/ci/py3.9/freebsd.txt b/requirements/static/ci/py3.9/freebsd.txt index d70ded723f65..62315fa597f8 100644 --- a/requirements/static/ci/py3.9/freebsd.txt +++ b/requirements/static/ci/py3.9/freebsd.txt @@ -186,6 +186,10 @@ gitpython==3.1.46 # -r requirements/static/ci/common.in google-auth==2.35.0 ; python_full_version < '3.10' # via -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.9/freebsd.txt + # opentelemetry-exporter-otlp-proto-http hglib==2.6.2 # via -r requirements/static/ci/freebsd.in idna==3.7 @@ -201,6 +205,7 @@ importlib-metadata==8.7.0 # -c requirements/static/pkg/py3.9/freebsd.txt # -r requirements/base.txt # -r requirements/static/pkg/freebsd.in + # opentelemetry-api iniconfig==2.0.0 # via pytest invoke==2.2.1 ; sys_platform != 'win32' @@ -323,6 +328,35 @@ ntc-templates==4.0.1 ; python_full_version < '3.10' and sys_platform != 'win32' # via netmiko oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.9/freebsd.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.9/freebsd.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.9/freebsd.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.9/freebsd.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.9/freebsd.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.9/freebsd.txt + # opentelemetry-sdk oscrypto==1.3.0 ; sys_platform != 'win32' # via certvalidator packaging==24.0 @@ -363,6 +397,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.9/freebsd.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.9/freebsd.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/pkg/py3.9/freebsd.txt @@ -543,6 +582,7 @@ requests==2.31.0 ; python_full_version == '3.10.*' # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # requests-oauthlib # responses # vcert @@ -557,6 +597,7 @@ requests==2.32.5 ; python_full_version != '3.10.*' # kubernetes # moto # napalm + # opentelemetry-exporter-otlp-proto-http # requests-oauthlib # responses # vcert @@ -660,6 +701,10 @@ typing-extensions==4.15.0 # gitpython # multidict # napalm + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-shell-utilities # pytest-system-statistics diff --git a/requirements/static/ci/py3.9/lint.txt b/requirements/static/ci/py3.9/lint.txt index adeed3d9cb66..22687d060d77 100644 --- a/requirements/static/ci/py3.9/lint.txt +++ b/requirements/static/ci/py3.9/lint.txt @@ -232,6 +232,11 @@ google-auth==2.35.0 # via # -c requirements/static/ci/py3.9/linux.txt # -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -c requirements/static/pkg/py3.9/linux.txt + # opentelemetry-exporter-otlp-proto-http h11==0.14.0 # via # -c requirements/static/ci/py3.9/linux.txt @@ -264,6 +269,7 @@ importlib-metadata==8.7.0 # -c requirements/static/pkg/py3.9/linux.txt # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api importlib-resources==5.0.7 # via # -c requirements/static/ci/py3.9/linux.txt @@ -435,6 +441,41 @@ oauthlib==3.3.1 # via # -c requirements/static/ci/py3.9/linux.txt # requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -c requirements/static/pkg/py3.9/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -c requirements/static/pkg/py3.9/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -c requirements/static/pkg/py3.9/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -c requirements/static/pkg/py3.9/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -c requirements/static/pkg/py3.9/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -c requirements/static/pkg/py3.9/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via # -c requirements/static/ci/py3.9/linux.txt @@ -480,6 +521,12 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.9/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -c requirements/static/pkg/py3.9/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/ci/py3.9/linux.txt @@ -647,6 +694,7 @@ requests==2.31.0 # kubernetes # moto # napalm + # opentelemetry-exporter-otlp-proto-http # python-consul # requests-oauthlib # responses @@ -811,6 +859,10 @@ typing-extensions==4.15.0 # gitpython # multidict # napalm + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pylint # pyopenssl # virtualenv diff --git a/requirements/static/ci/py3.9/linux.txt b/requirements/static/ci/py3.9/linux.txt index e9f409982030..25a0dd0600d6 100644 --- a/requirements/static/ci/py3.9/linux.txt +++ b/requirements/static/ci/py3.9/linux.txt @@ -179,6 +179,10 @@ gitpython==3.1.46 # -r requirements/static/ci/common.in google-auth==2.35.0 # via -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.9/linux.txt + # opentelemetry-exporter-otlp-proto-http h11==0.14.0 # via httpcore hglib==2.6.2 @@ -201,6 +205,7 @@ importlib-metadata==8.7.0 # via # -c requirements/static/pkg/py3.9/linux.txt # -r requirements/base.txt + # opentelemetry-api importlib-resources==5.0.7 # via ansible-core iniconfig==2.0.0 @@ -324,6 +329,35 @@ ntc-templates==4.0.1 # via netmiko oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.9/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.9/linux.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.9/linux.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.9/linux.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.9/linux.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.9/linux.txt + # opentelemetry-sdk oscrypto==1.3.0 # via certvalidator packaging==24.0 @@ -360,6 +394,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.9/linux.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.9/linux.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via # -c requirements/static/pkg/py3.9/linux.txt @@ -526,6 +565,7 @@ requests==2.31.0 # kubernetes # moto # napalm + # opentelemetry-exporter-otlp-proto-http # python-consul # requests-oauthlib # responses @@ -637,6 +677,10 @@ typing-extensions==4.15.0 # gitpython # multidict # napalm + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-shell-utilities # pytest-system-statistics diff --git a/requirements/static/ci/py3.9/windows.txt b/requirements/static/ci/py3.9/windows.txt index 8a077e6caba9..d7471a974655 100644 --- a/requirements/static/ci/py3.9/windows.txt +++ b/requirements/static/ci/py3.9/windows.txt @@ -162,6 +162,10 @@ gitpython==3.1.46 # -r requirements/static/ci/common.in google-auth==2.35.0 # via -r requirements/static/ci/common.in +googleapis-common-protos==1.75.0 + # via + # -c requirements/static/pkg/py3.9/windows.txt + # opentelemetry-exporter-otlp-proto-http idna==3.11 # via # -c requirements/static/pkg/py3.9/windows.txt @@ -174,6 +178,7 @@ importlib-metadata==8.7.1 # via # -c requirements/static/pkg/py3.9/windows.txt # -r requirements/base.txt + # opentelemetry-api iniconfig==2.0.0 # via pytest jaraco-collections==5.2.1 @@ -269,6 +274,35 @@ multidict==6.1.0 # yarl oauthlib==3.3.1 # via requests-oauthlib +opentelemetry-api==1.41.1 + # via + # -c requirements/static/pkg/py3.9/windows.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via + # -c requirements/static/pkg/py3.9/windows.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via + # -c requirements/static/pkg/py3.9/windows.txt + # -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # -c requirements/static/pkg/py3.9/windows.txt + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -c requirements/static/pkg/py3.9/windows.txt + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via + # -c requirements/static/pkg/py3.9/windows.txt + # opentelemetry-sdk packaging==24.0 # via # -c requirements/static/pkg/py3.9/windows.txt @@ -296,6 +330,11 @@ propcache==0.4.1 # -c requirements/static/pkg/py3.9/windows.txt # aiohttp # yarl +protobuf==6.33.6 + # via + # -c requirements/static/pkg/py3.9/windows.txt + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.8 # via # -c requirements/static/pkg/py3.9/windows.txt @@ -447,6 +486,7 @@ requests==2.32.5 # etcd3-py # kubernetes # moto + # opentelemetry-exporter-otlp-proto-http # pywinrm # requests-ntlm # requests-oauthlib @@ -539,6 +579,10 @@ typing-extensions==4.15.0 # cryptography # gitpython # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # pytest-shell-utilities # pytest-system-statistics diff --git a/requirements/static/pkg/py3.10/darwin.txt b/requirements/static/pkg/py3.10/darwin.txt index 5b0059a587a7..3cc824f5a0c9 100644 --- a/requirements/static/pkg/py3.10/darwin.txt +++ b/requirements/static/pkg/py3.10/darwin.txt @@ -53,13 +53,17 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -r requirements/base.txt # requests # yarl importlib-metadata==8.7.0 - # via -r requirements/base.txt + # via + # -r requirements/base.txt + # opentelemetry-api jaraco-collections==4.1.0 # via cherrypy jaraco-context==6.1.1 @@ -99,6 +103,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.4 @@ -111,6 +135,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via -r requirements/base.txt pyasn1==0.6.3 @@ -145,6 +173,7 @@ requests==2.31.0 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr setproctitle==1.3.2 # via -r requirements/base.txt @@ -171,6 +200,10 @@ typing-extensions==4.15.0 # aiosignal # cryptography # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # virtualenv urllib3==2.7.0 diff --git a/requirements/static/pkg/py3.10/freebsd.txt b/requirements/static/pkg/py3.10/freebsd.txt index d587550d3c26..8bf17761d344 100644 --- a/requirements/static/pkg/py3.10/freebsd.txt +++ b/requirements/static/pkg/py3.10/freebsd.txt @@ -63,6 +63,8 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -r requirements/base.txt @@ -72,6 +74,7 @@ importlib-metadata==8.7.0 # via # -r requirements/base.txt # -r requirements/static/pkg/freebsd.in + # opentelemetry-api jaraco-collections==4.1.0 # via cherrypy jaraco-context==6.1.1 @@ -113,6 +116,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.4 @@ -125,6 +148,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via -r requirements/base.txt pyasn1==0.6.3 @@ -175,11 +202,13 @@ requests==2.31.0 ; python_full_version < '3.11' # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr requests==2.32.5 ; python_full_version >= '3.11' # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rpm-vercmp==0.1.2 ; sys_platform == 'linux' # via -r requirements/base.txt @@ -205,11 +234,15 @@ tornado==6.5.5 # via -r requirements/base.txt truststore==0.10.4 # via -r requirements/base.txt -typing-extensions==4.15.0 ; python_full_version < '3.13' +typing-extensions==4.15.0 # via # aiosignal # cryptography # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # virtualenv urllib3==2.7.0 diff --git a/requirements/static/pkg/py3.10/linux.txt b/requirements/static/pkg/py3.10/linux.txt index 76a90e739a37..3b9f93a29332 100644 --- a/requirements/static/pkg/py3.10/linux.txt +++ b/requirements/static/pkg/py3.10/linux.txt @@ -57,6 +57,8 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -r requirements/base.txt @@ -66,6 +68,7 @@ importlib-metadata==8.7.0 # via # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api jaraco-collections==4.1.0 # via cherrypy jaraco-context==6.1.1 @@ -106,6 +109,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.4 @@ -118,6 +141,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via -r requirements/base.txt pyasn1==0.6.3 @@ -158,6 +185,7 @@ requests==2.31.0 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rpm-vercmp==0.1.2 # via @@ -190,6 +218,10 @@ typing-extensions==4.15.0 # aiosignal # cryptography # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # virtualenv urllib3==2.7.0 diff --git a/requirements/static/pkg/py3.10/windows.txt b/requirements/static/pkg/py3.10/windows.txt index 2fb30851f4a0..d2660cdc5487 100644 --- a/requirements/static/pkg/py3.10/windows.txt +++ b/requirements/static/pkg/py3.10/windows.txt @@ -58,13 +58,17 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.11 # via # -r requirements/base.txt # requests # yarl importlib-metadata==8.7.1 - # via -r requirements/base.txt + # via + # -r requirements/base.txt + # opentelemetry-api jaraco-collections==5.2.1 # via cherrypy jaraco-context==6.1.0 @@ -110,6 +114,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.2 @@ -122,6 +146,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via -r requirements/base.txt pyasn1==0.6.3 @@ -162,6 +190,7 @@ requests==2.31.0 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rich==14.3.3 # via typer @@ -196,6 +225,10 @@ typing-extensions==4.15.0 # aiosignal # cryptography # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # virtualenv urllib3==2.7.0 diff --git a/requirements/static/pkg/py3.11/darwin.txt b/requirements/static/pkg/py3.11/darwin.txt index af3fb962a5c4..b54263acbb48 100644 --- a/requirements/static/pkg/py3.11/darwin.txt +++ b/requirements/static/pkg/py3.11/darwin.txt @@ -51,13 +51,17 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -r requirements/base.txt # requests # yarl importlib-metadata==8.7.0 - # via -r requirements/base.txt + # via + # -r requirements/base.txt + # opentelemetry-api jaraco-collections==4.1.0 # via cherrypy jaraco-context==6.1.1 @@ -97,6 +101,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.4 @@ -109,6 +133,10 @@ propcache==0.3.2 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via -r requirements/base.txt pyasn1==0.6.3 @@ -143,6 +171,7 @@ requests==2.32.5 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr setproctitle==1.3.2 # via -r requirements/base.txt @@ -167,6 +196,10 @@ truststore==0.10.4 typing-extensions==4.14.1 # via # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl urllib3==2.7.0 # via diff --git a/requirements/static/pkg/py3.11/freebsd.txt b/requirements/static/pkg/py3.11/freebsd.txt index 99dacfd5c6d7..71c528151249 100644 --- a/requirements/static/pkg/py3.11/freebsd.txt +++ b/requirements/static/pkg/py3.11/freebsd.txt @@ -61,6 +61,8 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -r requirements/base.txt @@ -70,6 +72,7 @@ importlib-metadata==8.7.0 # via # -r requirements/base.txt # -r requirements/static/pkg/freebsd.in + # opentelemetry-api jaraco-collections==4.1.0 # via cherrypy jaraco-context==6.1.1 @@ -111,6 +114,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.4 @@ -123,6 +146,10 @@ propcache==0.3.2 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via -r requirements/base.txt pyasn1==0.6.3 @@ -171,6 +198,7 @@ requests==2.32.5 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rpm-vercmp==0.1.2 ; sys_platform == 'linux' # via -r requirements/base.txt @@ -196,9 +224,13 @@ tornado==6.5.5 # via -r requirements/base.txt truststore==0.10.4 # via -r requirements/base.txt -typing-extensions==4.14.1 ; python_full_version < '3.13' +typing-extensions==4.14.1 # via # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl urllib3==2.7.0 # via diff --git a/requirements/static/pkg/py3.11/linux.txt b/requirements/static/pkg/py3.11/linux.txt index f16bc1789572..61510f163b81 100644 --- a/requirements/static/pkg/py3.11/linux.txt +++ b/requirements/static/pkg/py3.11/linux.txt @@ -55,6 +55,8 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -r requirements/base.txt @@ -64,6 +66,7 @@ importlib-metadata==8.7.0 # via # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api jaraco-collections==4.1.0 # via cherrypy jaraco-context==6.1.1 @@ -104,6 +107,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.4 @@ -116,6 +139,10 @@ propcache==0.3.2 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via -r requirements/base.txt pyasn1==0.6.3 @@ -156,6 +183,7 @@ requests==2.32.5 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rpm-vercmp==0.1.2 # via @@ -186,6 +214,10 @@ truststore==0.10.4 typing-extensions==4.14.1 # via # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl urllib3==2.7.0 # via diff --git a/requirements/static/pkg/py3.11/windows.txt b/requirements/static/pkg/py3.11/windows.txt index d1b128a00bd7..3eedd59b420d 100644 --- a/requirements/static/pkg/py3.11/windows.txt +++ b/requirements/static/pkg/py3.11/windows.txt @@ -56,13 +56,17 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.11 # via # -r requirements/base.txt # requests # yarl importlib-metadata==8.7.1 - # via -r requirements/base.txt + # via + # -r requirements/base.txt + # opentelemetry-api jaraco-collections==5.2.1 # via cherrypy jaraco-context==6.1.0 @@ -108,6 +112,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.2 @@ -120,6 +144,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via -r requirements/base.txt pyasn1==0.6.3 @@ -160,6 +188,7 @@ requests==2.33.1 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rich==14.3.3 # via typer @@ -192,6 +221,10 @@ typer-slim==0.24.0 typing-extensions==4.15.0 # via # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl urllib3==2.7.0 # via diff --git a/requirements/static/pkg/py3.12/darwin.txt b/requirements/static/pkg/py3.12/darwin.txt index c5291e1427aa..ef938e3c7834 100644 --- a/requirements/static/pkg/py3.12/darwin.txt +++ b/requirements/static/pkg/py3.12/darwin.txt @@ -49,13 +49,17 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -r requirements/base.txt # requests # yarl importlib-metadata==8.7.0 - # via -r requirements/base.txt + # via + # -r requirements/base.txt + # opentelemetry-api jaraco-collections==4.1.0 # via cherrypy jaraco-context==6.1.1 @@ -95,6 +99,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.4 @@ -107,6 +131,10 @@ propcache==0.3.2 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via -r requirements/base.txt pyasn1==0.6.3 @@ -141,6 +169,7 @@ requests==2.32.5 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr setproctitle==1.3.2 # via -r requirements/base.txt @@ -165,6 +194,10 @@ truststore==0.10.4 typing-extensions==4.14.1 # via # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl urllib3==2.7.0 # via diff --git a/requirements/static/pkg/py3.12/freebsd.txt b/requirements/static/pkg/py3.12/freebsd.txt index 888ca4b4f7d2..bc654fb3aacb 100644 --- a/requirements/static/pkg/py3.12/freebsd.txt +++ b/requirements/static/pkg/py3.12/freebsd.txt @@ -59,6 +59,8 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -r requirements/base.txt @@ -68,6 +70,7 @@ importlib-metadata==8.7.0 # via # -r requirements/base.txt # -r requirements/static/pkg/freebsd.in + # opentelemetry-api jaraco-collections==4.1.0 # via cherrypy jaraco-context==6.1.1 @@ -109,6 +112,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.4 @@ -121,6 +144,10 @@ propcache==0.3.2 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via -r requirements/base.txt pyasn1==0.6.3 @@ -169,6 +196,7 @@ requests==2.32.5 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rpm-vercmp==0.1.2 ; sys_platform == 'linux' # via -r requirements/base.txt @@ -194,9 +222,13 @@ tornado==6.5.5 # via -r requirements/base.txt truststore==0.10.4 # via -r requirements/base.txt -typing-extensions==4.14.1 ; python_full_version < '3.13' +typing-extensions==4.14.1 # via # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl urllib3==2.7.0 # via diff --git a/requirements/static/pkg/py3.12/linux.txt b/requirements/static/pkg/py3.12/linux.txt index fbd082203fc0..3bc5e6b55a7a 100644 --- a/requirements/static/pkg/py3.12/linux.txt +++ b/requirements/static/pkg/py3.12/linux.txt @@ -53,6 +53,8 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -r requirements/base.txt @@ -62,6 +64,7 @@ importlib-metadata==8.7.0 # via # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api jaraco-collections==4.1.0 # via cherrypy jaraco-context==6.1.1 @@ -102,6 +105,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.4 @@ -114,6 +137,10 @@ propcache==0.3.2 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via -r requirements/base.txt pyasn1==0.6.3 @@ -154,6 +181,7 @@ requests==2.32.5 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rpm-vercmp==0.1.2 # via @@ -184,6 +212,10 @@ truststore==0.10.4 typing-extensions==4.14.1 # via # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl urllib3==2.7.0 # via diff --git a/requirements/static/pkg/py3.12/windows.txt b/requirements/static/pkg/py3.12/windows.txt index 54af1dcddd63..37f5c067ac18 100644 --- a/requirements/static/pkg/py3.12/windows.txt +++ b/requirements/static/pkg/py3.12/windows.txt @@ -54,13 +54,17 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.11 # via # -r requirements/base.txt # requests # yarl importlib-metadata==8.7.1 - # via -r requirements/base.txt + # via + # -r requirements/base.txt + # opentelemetry-api jaraco-collections==5.2.1 # via cherrypy jaraco-context==6.1.0 @@ -106,6 +110,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.2 @@ -118,6 +142,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via -r requirements/base.txt pyasn1==0.6.3 @@ -158,6 +186,7 @@ requests==2.33.1 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rich==14.3.3 # via typer @@ -190,6 +219,10 @@ typer-slim==0.24.0 typing-extensions==4.15.0 # via # aiosignal + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl urllib3==2.7.0 # via diff --git a/requirements/static/pkg/py3.13/darwin.txt b/requirements/static/pkg/py3.13/darwin.txt index c1d4a7f2154b..901e7e10f8c6 100644 --- a/requirements/static/pkg/py3.13/darwin.txt +++ b/requirements/static/pkg/py3.13/darwin.txt @@ -49,13 +49,17 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.10 # via # -r requirements/base.txt # requests # yarl importlib-metadata==8.7.0 - # via -r requirements/base.txt + # via + # -r requirements/base.txt + # opentelemetry-api jaraco-collections==5.1.0 # via cherrypy jaraco-context==6.1.1 @@ -95,6 +99,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.4 @@ -107,6 +131,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==6.1.0 # via -r requirements/base.txt pyasn1==0.6.3 @@ -140,6 +168,7 @@ requests==2.32.5 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr setproctitle==1.3.3 # via -r requirements/base.txt @@ -161,6 +190,12 @@ tornado==6.5.5 # via -r requirements/base.txt truststore==0.10.4 # via -r requirements/base.txt +typing-extensions==4.15.0 + # via + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions urllib3==2.7.0 # via # -r requirements/base.txt diff --git a/requirements/static/pkg/py3.13/freebsd.txt b/requirements/static/pkg/py3.13/freebsd.txt index b390216d7eab..429a866a9f7d 100644 --- a/requirements/static/pkg/py3.13/freebsd.txt +++ b/requirements/static/pkg/py3.13/freebsd.txt @@ -59,6 +59,8 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.10 # via # -r requirements/base.txt @@ -68,6 +70,7 @@ importlib-metadata==8.7.0 # via # -r requirements/base.txt # -r requirements/static/pkg/freebsd.in + # opentelemetry-api jaraco-collections==5.1.0 # via cherrypy jaraco-context==6.1.1 @@ -109,6 +112,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.4 @@ -121,6 +144,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==6.1.0 # via -r requirements/base.txt pyasn1==0.6.3 @@ -168,6 +195,7 @@ requests==2.32.5 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rpm-vercmp==0.1.2 ; sys_platform == 'linux' # via -r requirements/base.txt @@ -193,6 +221,12 @@ tornado==6.5.5 # via -r requirements/base.txt truststore==0.10.4 # via -r requirements/base.txt +typing-extensions==4.15.0 + # via + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions urllib3==2.7.0 # via # -r requirements/base.txt diff --git a/requirements/static/pkg/py3.13/linux.txt b/requirements/static/pkg/py3.13/linux.txt index 006ce92d2222..5933bba49251 100644 --- a/requirements/static/pkg/py3.13/linux.txt +++ b/requirements/static/pkg/py3.13/linux.txt @@ -53,6 +53,8 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.10 # via # -r requirements/base.txt @@ -62,6 +64,7 @@ importlib-metadata==8.7.0 # via # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api jaraco-collections==5.1.0 # via cherrypy jaraco-context==6.1.1 @@ -102,6 +105,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.4 @@ -114,6 +137,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==6.1.0 # via -r requirements/base.txt pyasn1==0.6.3 @@ -153,6 +180,7 @@ requests==2.32.5 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rpm-vercmp==0.1.2 # via @@ -180,6 +208,12 @@ tornado==6.5.5 # via -r requirements/base.txt truststore==0.10.4 # via -r requirements/base.txt +typing-extensions==4.15.0 + # via + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions urllib3==2.7.0 # via # -r requirements/base.txt diff --git a/requirements/static/pkg/py3.13/windows.txt b/requirements/static/pkg/py3.13/windows.txt index 257e3fc67aaa..1bd32ff8ca00 100644 --- a/requirements/static/pkg/py3.13/windows.txt +++ b/requirements/static/pkg/py3.13/windows.txt @@ -54,13 +54,17 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.11 # via # -r requirements/base.txt # requests # yarl importlib-metadata==8.7.1 - # via -r requirements/base.txt + # via + # -r requirements/base.txt + # opentelemetry-api jaraco-collections==5.2.1 # via cherrypy jaraco-context==6.1.0 @@ -106,6 +110,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.2 @@ -118,6 +142,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via -r requirements/base.txt pyasn1==0.6.3 @@ -158,6 +186,7 @@ requests==2.33.1 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rich==14.3.3 # via typer @@ -187,6 +216,12 @@ typer==0.24.1 # via typer-slim typer-slim==0.24.0 # via jaraco-text +typing-extensions==4.15.0 + # via + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions urllib3==2.7.0 # via # -r requirements/base.txt diff --git a/requirements/static/pkg/py3.14/darwin.txt b/requirements/static/pkg/py3.14/darwin.txt index e98208570ca1..10f51d1bd188 100644 --- a/requirements/static/pkg/py3.14/darwin.txt +++ b/requirements/static/pkg/py3.14/darwin.txt @@ -51,13 +51,17 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.49 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.13 # via # -r requirements/base.txt # requests # yarl -importlib-metadata==9.0.0 - # via -r requirements/base.txt +importlib-metadata==8.7.1 + # via + # -r requirements/base.txt + # opentelemetry-api jaraco-collections==5.2.1 # via # cherrypy @@ -105,6 +109,26 @@ multidict==6.7.1 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.6 @@ -117,6 +141,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via -r requirements/base.txt pyasn1==0.6.3 @@ -150,6 +178,7 @@ requests==2.33.1 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rich==15.0.0 # via typer @@ -179,6 +208,12 @@ typer==0.25.1 # via typer-slim typer-slim==0.24.0 # via jaraco-text +typing-extensions==4.15.0 + # via + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions urllib3==2.7.0 # via # -r requirements/base.txt diff --git a/requirements/static/pkg/py3.14/freebsd.txt b/requirements/static/pkg/py3.14/freebsd.txt index 0423c827d42a..52e341b3b935 100644 --- a/requirements/static/pkg/py3.14/freebsd.txt +++ b/requirements/static/pkg/py3.14/freebsd.txt @@ -63,15 +63,18 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.49 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.13 # via # -r requirements/base.txt # requests # yarl -importlib-metadata==9.0.0 +importlib-metadata==8.7.1 # via # -r requirements/base.txt # -r requirements/static/pkg/freebsd.in + # opentelemetry-api jaraco-collections==5.2.1 # via # cherrypy @@ -123,6 +126,26 @@ multidict==6.7.1 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.6 @@ -135,6 +158,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via -r requirements/base.txt pyasn1==0.6.3 @@ -182,6 +209,7 @@ requests==2.33.1 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rich==15.0.0 # via typer @@ -215,6 +243,12 @@ typer==0.25.1 # via typer-slim typer-slim==0.24.0 # via jaraco-text +typing-extensions==4.15.0 + # via + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions urllib3==2.7.0 # via # -r requirements/base.txt diff --git a/requirements/static/pkg/py3.14/linux.txt b/requirements/static/pkg/py3.14/linux.txt index 7ce289412dbb..00a578cc8261 100644 --- a/requirements/static/pkg/py3.14/linux.txt +++ b/requirements/static/pkg/py3.14/linux.txt @@ -55,15 +55,18 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.49 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.13 # via # -r requirements/base.txt # requests # yarl -importlib-metadata==9.0.0 +importlib-metadata==8.7.1 # via # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api jaraco-collections==5.2.1 # via # cherrypy @@ -112,6 +115,26 @@ multidict==6.7.1 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.6 @@ -124,6 +147,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via -r requirements/base.txt pyasn1==0.6.3 @@ -163,6 +190,7 @@ requests==2.33.1 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rich==15.0.0 # via typer @@ -198,6 +226,12 @@ typer==0.25.1 # via typer-slim typer-slim==0.24.0 # via jaraco-text +typing-extensions==4.15.0 + # via + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions urllib3==2.7.0 # via # -r requirements/base.txt diff --git a/requirements/static/pkg/py3.14/windows.txt b/requirements/static/pkg/py3.14/windows.txt index 73dc79110640..82f8e86e320f 100644 --- a/requirements/static/pkg/py3.14/windows.txt +++ b/requirements/static/pkg/py3.14/windows.txt @@ -54,13 +54,17 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.49 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.13 # via # -r requirements/base.txt # requests # yarl -importlib-metadata==9.0.0 - # via -r requirements/base.txt +importlib-metadata==8.7.1 + # via + # -r requirements/base.txt + # opentelemetry-api jaraco-collections==5.2.1 # via # cherrypy @@ -110,6 +114,26 @@ multidict==6.7.1 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.9.6 @@ -122,6 +146,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==7.2.2 # via -r requirements/base.txt pyasn1==0.6.3 @@ -162,6 +190,7 @@ requests==2.33.1 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rich==15.0.0 # via typer @@ -191,6 +220,12 @@ typer==0.25.1 # via typer-slim typer-slim==0.24.0 # via jaraco-text +typing-extensions==4.15.0 + # via + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions urllib3==2.7.0 # via # -r requirements/base.txt diff --git a/requirements/static/pkg/py3.9/darwin.txt b/requirements/static/pkg/py3.9/darwin.txt index 65c8da6f8587..562c10919785 100644 --- a/requirements/static/pkg/py3.9/darwin.txt +++ b/requirements/static/pkg/py3.9/darwin.txt @@ -53,13 +53,17 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -r requirements/base.txt # requests # yarl importlib-metadata==8.7.0 - # via -r requirements/base.txt + # via + # -r requirements/base.txt + # opentelemetry-api jaraco-collections==4.1.0 # via cherrypy jaraco-context==6.1.1 @@ -99,6 +103,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.4.0 @@ -111,6 +135,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via -r requirements/base.txt pyasn1==0.6.3 @@ -145,6 +173,7 @@ requests==2.31.0 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr setproctitle==1.3.2 # via -r requirements/base.txt @@ -170,6 +199,10 @@ typing-extensions==4.15.0 # cryptography # gitpython # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # virtualenv urllib3==1.26.20 diff --git a/requirements/static/pkg/py3.9/freebsd.txt b/requirements/static/pkg/py3.9/freebsd.txt index a4eadf09fd2f..279944b31628 100644 --- a/requirements/static/pkg/py3.9/freebsd.txt +++ b/requirements/static/pkg/py3.9/freebsd.txt @@ -69,6 +69,8 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -r requirements/base.txt @@ -78,6 +80,7 @@ importlib-metadata==8.7.0 # via # -r requirements/base.txt # -r requirements/static/pkg/freebsd.in + # opentelemetry-api jaraco-collections==4.1.0 # via cherrypy jaraco-context==6.1.1 @@ -119,6 +122,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.4.0 ; python_full_version < '3.10' @@ -135,6 +158,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via -r requirements/base.txt pyasn1==0.6.3 @@ -188,11 +215,13 @@ requests==2.31.0 ; python_full_version == '3.10.*' # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr requests==2.32.5 ; python_full_version != '3.10.*' # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rpm-vercmp==0.1.2 ; sys_platform == 'linux' # via -r requirements/base.txt @@ -218,12 +247,16 @@ tornado==6.5.5 # via -r requirements/base.txt truststore==0.10.4 ; python_full_version >= '3.10' # via -r requirements/base.txt -typing-extensions==4.15.0 ; python_full_version < '3.13' +typing-extensions==4.15.0 # via # aiosignal # cryptography # gitpython # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # virtualenv urllib3==1.26.20 ; python_full_version < '3.10' diff --git a/requirements/static/pkg/py3.9/linux.txt b/requirements/static/pkg/py3.9/linux.txt index 6707f8636065..b54d81a9fe80 100644 --- a/requirements/static/pkg/py3.9/linux.txt +++ b/requirements/static/pkg/py3.9/linux.txt @@ -57,6 +57,8 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.7 # via # -r requirements/base.txt @@ -66,6 +68,7 @@ importlib-metadata==8.7.0 # via # -r requirements/base.txt # -r requirements/static/pkg/linux.in + # opentelemetry-api jaraco-collections==4.1.0 # via cherrypy jaraco-context==6.1.1 @@ -106,6 +109,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.4.0 @@ -118,6 +141,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.6 # via -r requirements/base.txt pyasn1==0.6.3 @@ -158,6 +185,7 @@ requests==2.31.0 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rpm-vercmp==0.1.2 # via @@ -189,6 +217,10 @@ typing-extensions==4.15.0 # cryptography # gitpython # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # virtualenv urllib3==1.26.20 diff --git a/requirements/static/pkg/py3.9/windows.txt b/requirements/static/pkg/py3.9/windows.txt index b2c2b9ba9b56..25537aec1b8f 100644 --- a/requirements/static/pkg/py3.9/windows.txt +++ b/requirements/static/pkg/py3.9/windows.txt @@ -58,13 +58,17 @@ gitdb==4.0.12 # via gitpython gitpython==3.1.46 # via -r requirements/base.txt +googleapis-common-protos==1.75.0 + # via opentelemetry-exporter-otlp-proto-http idna==3.11 # via # -r requirements/base.txt # requests # yarl importlib-metadata==8.7.1 - # via -r requirements/base.txt + # via + # -r requirements/base.txt + # opentelemetry-api jaraco-collections==5.2.1 # via cherrypy jaraco-context==6.1.0 @@ -112,6 +116,26 @@ multidict==6.1.0 # via # aiohttp # yarl +opentelemetry-api==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-otlp-proto-common==1.41.1 + # via opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-http==1.41.1 + # via -r requirements/base.txt +opentelemetry-proto==1.41.1 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-http +opentelemetry-sdk==1.41.1 + # via + # -r requirements/base.txt + # opentelemetry-exporter-otlp-proto-http +opentelemetry-semantic-conventions==0.62b1 + # via opentelemetry-sdk packaging==24.0 # via -r requirements/base.txt platformdirs==4.4.0 @@ -124,6 +148,10 @@ propcache==0.4.1 # via # aiohttp # yarl +protobuf==6.33.6 + # via + # googleapis-common-protos + # opentelemetry-proto psutil==5.9.8 # via -r requirements/base.txt pyasn1==0.6.3 @@ -165,6 +193,7 @@ requests==2.32.5 # via # -r requirements/base.txt # apache-libcloud + # opentelemetry-exporter-otlp-proto-http # vultr rich==14.3.3 # via typer @@ -198,6 +227,10 @@ typing-extensions==4.15.0 # cryptography # gitpython # multidict + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-sdk + # opentelemetry-semantic-conventions # pyopenssl # virtualenv urllib3==1.26.20 diff --git a/salt/channel/client.py b/salt/channel/client.py index a787da17fd81..07bea3414d77 100644 --- a/salt/channel/client.py +++ b/salt/channel/client.py @@ -19,6 +19,7 @@ import salt.utils.event import salt.utils.files import salt.utils.stringutils +import salt.utils.tracing import salt.utils.verify from salt.utils.asynchronous import SyncWrapper, aioloop @@ -137,6 +138,7 @@ def _package_load(self, load, nonce=None): load["ts"] = int(time.time()) load["tok"] = self.auth.gen_token(b"salt") load["id"] = self.opts["id"] + salt.utils.tracing.inject(load) except TypeError: # Backwards compatability for non dict loads, let the load get # sent and fail to authenticate. @@ -146,6 +148,8 @@ def _package_load(self, load, nonce=None): ) load = self.auth.session_crypticle.dumps(load) + elif isinstance(load, dict): + salt.utils.tracing.inject(load) ret = { "enc": self.crypt, @@ -313,28 +317,39 @@ async def send(self, load, tries=None, timeout=None, raw=False): :param int tries: The number of times to make before failure :param int timeout: The number of seconds on a response before failing """ - if timeout is None: - timeout = self.timeout - if tries is None: - tries = self.tries - _try = 1 - while True: - try: - if self.crypt == "clear": - log.trace("ReqChannel send clear load=%r", load) - ret = await self._uncrypted_transfer(load, timeout=timeout) - else: - log.trace("ReqChannel send crypt load=%r", load) - ret = await self._crypted_transfer(load, timeout=timeout, raw=raw) - break - except Exception as exc: # pylint: disable=broad-except - log.trace("Failed to send msg %r", exc) - if _try >= tries: - raise - else: - _try += 1 - continue - return ret + cmd = load.get("cmd") if isinstance(load, dict) else None + span_name = f"salt.req.send.{cmd}" if cmd else "salt.req.send" + with salt.utils.tracing.start_span( + span_name, + attributes={ + "salt.req.cmd": cmd or "", + "salt.transport": self.transport.ttype, + }, + ): + if timeout is None: + timeout = self.timeout + if tries is None: + tries = self.tries + _try = 1 + while True: + try: + if self.crypt == "clear": + log.trace("ReqChannel send clear load=%r", load) + ret = await self._uncrypted_transfer(load, timeout=timeout) + else: + log.trace("ReqChannel send crypt load=%r", load) + ret = await self._crypted_transfer( + load, timeout=timeout, raw=raw + ) + break + except Exception as exc: # pylint: disable=broad-except + log.trace("Failed to send msg %r", exc) + if _try >= tries: + raise + else: + _try += 1 + continue + return ret def close(self): """ diff --git a/salt/channel/server.py b/salt/channel/server.py index 9ddf2dbbb9a4..6514f5809578 100644 --- a/salt/channel/server.py +++ b/salt/channel/server.py @@ -32,6 +32,7 @@ import salt.utils.minions import salt.utils.platform import salt.utils.stringutils +import salt.utils.tracing from salt.exceptions import SaltDeserializationError from salt.utils.cache import CacheCli @@ -424,7 +425,24 @@ async def handle_message(self, payload): # Take the payload_handler function that was registered when we created the channel # and call it, returning control to the caller until it completes - ret, req_opts = await self.payload_handler(payload) + load = payload.get("load") if isinstance(payload, dict) else None + trace_ctx = ( + salt.utils.tracing.extract(load) if isinstance(load, dict) else None + ) + cmd = load.get("cmd") if isinstance(load, dict) else None + span_name = f"salt.req.recv.{cmd}" if cmd else "salt.req.recv" + with salt.utils.tracing.start_span( + span_name, + kind=salt.utils.tracing.SpanKind.SERVER, + attributes={ + "salt.req.cmd": cmd or "", + "salt.req.minion_id": ( + payload.get("id", "") if isinstance(payload, dict) else "" + ), + }, + context=trace_ctx, + ): + ret, req_opts = await self.payload_handler(payload) req_fun = req_opts.get("fun", "send") if req_fun == "send_clear": @@ -1480,8 +1498,22 @@ async def publish(self, load): load.get("jid", None), repr(load)[:40], ) - payload = salt.payload.dumps(load) - await self.transport.publish(payload) + if isinstance(load, dict): + salt.utils.tracing.inject(load) + with salt.utils.tracing.start_span( + "salt.pub.send", + attributes={ + "salt.pub.jid": ( + str(load.get("jid", "")) if isinstance(load, dict) else "" + ), + "salt.pub.fun": load.get("fun", "") if isinstance(load, dict) else "", + "salt.pub.tgt_type": ( + load.get("tgt_type", "") if isinstance(load, dict) else "" + ), + }, + ): + payload = salt.payload.dumps(load) + await self.transport.publish(payload) class MasterPubServerChannel: diff --git a/salt/cli/call.py b/salt/cli/call.py index 3c2d62272146..0239e0e0e6f4 100644 --- a/salt/cli/call.py +++ b/salt/cli/call.py @@ -3,6 +3,7 @@ import salt.cli.caller import salt.defaults.exitcodes import salt.utils.parsers +import salt.utils.tracing import salt.utils.verify from salt.config import _expand_glob_path, prepend_root_dir @@ -101,4 +102,26 @@ def run(self): caller.print_grains() self.exit(salt.defaults.exitcodes.EX_OK) - caller.run() + salt.utils.tracing.configure({**self.config, "__role": "minion"}) + env_carrier = { + k: v + for k, v in ( + ("traceparent", os.environ.get("TRACEPARENT", "")), + ("tracestate", os.environ.get("TRACESTATE", "")), + ) + if v + } + trace_ctx = salt.utils.tracing.extract(env_carrier) + with salt.utils.tracing.start_span( + ( + f"salt-call.{self.config.get('fun', '')}" + if self.config.get("fun") + else "salt-call" + ), + attributes={"salt.fun": self.config.get("fun", "")}, + context=trace_ctx, + ): + try: + caller.run() + finally: + salt.utils.tracing.shutdown() diff --git a/salt/cli/salt.py b/salt/cli/salt.py index 6609628a2e30..2dda782e57b9 100644 --- a/salt/cli/salt.py +++ b/salt/cli/salt.py @@ -8,6 +8,7 @@ import salt.defaults.exitcodes import salt.utils.parsers import salt.utils.stringutils +import salt.utils.tracing from salt.exceptions import ( AuthenticationError, AuthorizationError, @@ -29,9 +30,29 @@ def run(self): """ Execute the salt command line """ - import salt.client + import salt.client # noqa: F401 self.parse_args() + salt.utils.tracing.configure({**self.config, "__role": "cli"}) + span_name = ( + f"salt.cli.{self.config.get('fun', '')}" + if self.config.get("fun") + else "salt.cli" + ) + with salt.utils.tracing.start_span( + span_name, + attributes={ + "salt.cli.tgt": str(self.config.get("tgt", "")), + "salt.cli.fun": self.config.get("fun", ""), + }, + ): + try: + self._run() + finally: + salt.utils.tracing.shutdown() + + def _run(self): + import salt.client try: # We don't need to bail on config file permission errors diff --git a/salt/client/ssh/__init__.py b/salt/client/ssh/__init__.py index d924dc80e7e1..2bed01bae6c6 100644 --- a/salt/client/ssh/__init__.py +++ b/salt/client/ssh/__init__.py @@ -47,6 +47,7 @@ import salt.utils.stringutils import salt.utils.thin import salt.utils.timeutil +import salt.utils.tracing import salt.utils.url import salt.utils.verify from salt._logging import LOG_LEVELS @@ -2146,6 +2147,13 @@ def cmd_block(self, is_retry=False): self.deploy_ext() cmd_str = self._cmd_str() + trace_carrier = {} + salt.utils.tracing.inject(trace_carrier) + if trace_carrier: + trace_prefix = " ".join( + f"{k.upper()}={shlex.quote(v)}" for k, v in trace_carrier.items() + ) + cmd_str = f"{trace_prefix} {cmd_str}" stdout, stderr, retcode = self.shim_cmd(cmd_str) log.trace("STDOUT %s\n%s", self.target["host"], stdout) diff --git a/salt/config/__init__.py b/salt/config/__init__.py index 369ea11268c5..ed02d94f9e35 100644 --- a/salt/config/__init__.py +++ b/salt/config/__init__.py @@ -1103,6 +1103,10 @@ def _gather_buffer_space(): "eauth_tokens.cache_driver": (type(None), str), # eauth tokens cluster id override "eauth_tokens.cluster_id": (type(None), str), + # OpenTelemetry tracing configuration block. Disabled by default; + # when enabled, salt daemons emit W3C-TraceContext-propagated spans + # via an OTLP exporter. + "tracing": dict, } ) @@ -1428,6 +1432,17 @@ def _gather_buffer_space(): "signing_algorithm": "PKCS1v15-SHA1", "keys.cache_driver": "localfs_key", "pillar.cache_driver": None, + "tracing": { + "enabled": False, + "exporter": "otlp-http", + "endpoint": "", + "service_name": "", + "sampler": "parent_based", + "sampler_arg": 1.0, + "resource_attributes": {}, + "insecure": True, + "headers": {}, + }, } ) @@ -1819,6 +1834,17 @@ def _gather_buffer_space(): "pillar.cache_driver": None, "eauth_tokens.cache_driver": None, "eauth_tokens.cluster_id": None, + "tracing": { + "enabled": False, + "exporter": "otlp-http", + "endpoint": "", + "service_name": "", + "sampler": "parent_based", + "sampler_arg": 1.0, + "resource_attributes": {}, + "insecure": True, + "headers": {}, + }, } ) diff --git a/salt/master.py b/salt/master.py index 5b1da474d0c8..3bd60a711f99 100644 --- a/salt/master.py +++ b/salt/master.py @@ -61,6 +61,7 @@ import salt.utils.schedule import salt.utils.ssdp import salt.utils.stringutils +import salt.utils.tracing import salt.utils.user import salt.utils.verify import salt.utils.zeromq @@ -1836,6 +1837,7 @@ def run(self): """ Start a Master Worker """ + salt.utils.tracing.configure(self.opts) # if we inherit req_server level without our own, reset it if not salt.utils.platform.is_windows(): enforce_mworker_niceness = True diff --git a/salt/minion.py b/salt/minion.py index 99f9251c0664..e3a3fc3a1908 100644 --- a/salt/minion.py +++ b/salt/minion.py @@ -63,6 +63,7 @@ import salt.utils.schedule import salt.utils.ssdp import salt.utils.state +import salt.utils.tracing import salt.utils.user import salt.utils.zeromq from salt._compat import ipaddress @@ -2034,7 +2035,16 @@ async def _handle_decoded_payload(self, data): Override this method if you wish to handle the decoded data differently. """ - await self._handle_decoded_payload_impl(data) + trace_ctx = salt.utils.tracing.extract(data) if isinstance(data, dict) else None + fun = data.get("fun", "") if isinstance(data, dict) else "" + jid = data.get("jid", "") if isinstance(data, dict) else "" + with salt.utils.tracing.start_span( + f"salt.minion.recv.{fun}" if fun else "salt.minion.recv", + kind=salt.utils.tracing.SpanKind.SERVER, + attributes={"salt.fun": fun, "salt.jid": str(jid)}, + context=trace_ctx, + ): + await self._handle_decoded_payload_impl(data) async def _handle_decoded_payload_impl(self, data): """ @@ -2663,6 +2673,24 @@ def _thread_return(cls, minion_instance, opts, data): loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) + salt.utils.tracing.configure(opts) + _exec_trace_ctx = ( + salt.utils.tracing.extract(data) if isinstance(data, dict) else None + ) + _exec_fun = data.get("fun", "") if isinstance(data, dict) else "" + _exec_span_cm = salt.utils.tracing.start_span( + f"salt.minion.exec.{_exec_fun}" if _exec_fun else "salt.minion.exec", + attributes={ + "salt.fun": _exec_fun, + "salt.jid": str(data.get("jid", "")) if isinstance(data, dict) else "", + }, + context=_exec_trace_ctx, + ) + # The span needs to outlive the existing try/finally below, which + # makes a plain ``with`` block awkward; enter / exit manually. + _exec_span_cm.__enter__() # pylint: disable=unnecessary-dunder-call + _exec_span_exit_called = False + minion_instance.gen_modules() fn_ = os.path.join(minion_instance.proc_dir, str(data["jid"])) @@ -3114,6 +3142,11 @@ def _thread_return(cls, minion_instance, opts, data): loop.close() except Exception as exc: # pylint: disable=broad-except log.warning("Error closing event loop for job %s: %s", data["jid"], exc) + if not _exec_span_exit_called: + _exec_span_exit_called = True + _exec_span_cm.__exit__( # pylint: disable=unnecessary-dunder-call + None, None, None + ) @classmethod def _thread_multi_return(cls, minion_instance, opts, data): @@ -4622,6 +4655,7 @@ def tune_in(self, start=True): """ self._pre_tune() + salt.utils.tracing.configure(self.opts) log.debug("Minion '%s' trying to tune in", self.opts["id"]) if start: @@ -5138,11 +5172,21 @@ async def _handle_decoded_payload(self, data): Override this method if you wish to handle the decoded data differently. """ + trace_ctx = salt.utils.tracing.extract(data) if isinstance(data, dict) else None # TODO: even do this?? data["to"] = int(data.get("to", self.opts["timeout"])) - 1 # Only forward the command if it didn't originate from ourselves if data.get("master_id", 0) != self.opts.get("master_id", 1): - await self.syndic_cmd(data) + with salt.utils.tracing.start_span( + "salt.syndic.forward", + kind=salt.utils.tracing.SpanKind.SERVER, + attributes={ + "salt.fun": data.get("fun", ""), + "salt.jid": str(data.get("jid", "")), + }, + context=trace_ctx, + ): + await self.syndic_cmd(data) async def syndic_cmd(self, data): """ diff --git a/salt/netapi/rest_cherrypy/app.py b/salt/netapi/rest_cherrypy/app.py index 57443796ffed..6bb68e043282 100644 --- a/salt/netapi/rest_cherrypy/app.py +++ b/salt/netapi/rest_cherrypy/app.py @@ -606,6 +606,7 @@ import salt.utils.event import salt.utils.json import salt.utils.stringutils +import salt.utils.tracing import salt.utils.versions import salt.utils.yaml @@ -1196,6 +1197,20 @@ def exec_lowstate(self, client=None, token=None): if not isinstance(lowstate, list): raise cherrypy.HTTPError(400, "Lowstates must be a list") + salt.utils.tracing.configure({**self.opts, "__role": "api"}) + header_carrier = { + k.lower(): v for k, v in (cherrypy.request.headers or {}).items() + } + trace_ctx = salt.utils.tracing.extract(header_carrier) + with salt.utils.tracing.start_span( + "salt.api.exec_lowstate", + kind=salt.utils.tracing.SpanKind.SERVER, + attributes={"salt.api.client": client or ""}, + context=trace_ctx, + ): + yield from self._exec_lowstate_chunks(lowstate, client, token) + + def _exec_lowstate_chunks(self, lowstate, client, token): # Make any requested additions or modifications to each lowstate, then # execute each one and yield the result. for chunk in lowstate: @@ -2749,9 +2764,18 @@ def POST(self, *args, **kwargs): raw_body = getattr(cherrypy.serving.request, "raw_body", "") headers = dict(cherrypy.request.headers) - ret = self.event.fire_event( - {"body": raw_body, "post": data, "headers": headers}, tag - ) + salt.utils.tracing.configure({**cherrypy.config["saltopts"], "__role": "api"}) + header_carrier = {k.lower(): v for k, v in headers.items()} + trace_ctx = salt.utils.tracing.extract(header_carrier) + with salt.utils.tracing.start_span( + f"salt.webhook.{tag}", + kind=salt.utils.tracing.SpanKind.SERVER, + attributes={"salt.webhook.tag": tag}, + context=trace_ctx, + ): + ret = self.event.fire_event( + {"body": raw_body, "post": data, "headers": headers}, tag + ) return {"success": ret} diff --git a/salt/utils/event.py b/salt/utils/event.py index 512bf3ed20fd..cc7cfafe6cba 100644 --- a/salt/utils/event.py +++ b/salt/utils/event.py @@ -72,6 +72,7 @@ import salt.utils.platform import salt.utils.process import salt.utils.stringutils +import salt.utils.tracing import salt.utils.zeromq from salt.exceptions import SaltDeserializationError, SaltInvocationError from salt.utils.versions import warn_until @@ -790,6 +791,7 @@ async def fire_event_async(self, data, tag, cb=None, timeout=1000): return False data["_stamp"] = datetime.datetime.now(datetime.timezone.utc).isoformat() + salt.utils.tracing.inject(data) event = self.pack(tag, data, max_size=self.opts["max_event_size"]) msg = salt.utils.stringutils.to_bytes(event, "utf-8") if self._run_io_loop_sync: @@ -829,6 +831,7 @@ def fire_event(self, data, tag, timeout=1000): return False data["_stamp"] = datetime.datetime.now(datetime.timezone.utc).isoformat() + salt.utils.tracing.inject(data) event = self.pack(tag, data, max_size=self.opts["max_event_size"]) msg = salt.utils.stringutils.to_bytes(event, "utf-8") if self._run_io_loop_sync: diff --git a/salt/utils/reactor.py b/salt/utils/reactor.py index 10ba329637ea..e7b0ca0fa5d2 100644 --- a/salt/utils/reactor.py +++ b/salt/utils/reactor.py @@ -18,6 +18,7 @@ import salt.utils.files import salt.utils.master import salt.utils.process +import salt.utils.tracing import salt.utils.yaml import salt.wheel @@ -215,6 +216,7 @@ def run(self): """ Enter into the server loop """ + salt.utils.tracing.configure(self.opts) if self.opts["reactor_niceness"] and not salt.utils.platform.is_windows(): log.info("Reactor setting niceness to %i", self.opts["reactor_niceness"]) os.nice(self.opts["reactor_niceness"]) @@ -283,10 +285,20 @@ def run(self): continue chunks = self.reactions(data["tag"], data["data"], reactors) if chunks: - try: - self.call_reactions(chunks) - except SystemExit: - log.warning("Exit ignored by reactor") + trace_ctx = salt.utils.tracing.extract(data.get("data", {})) + with salt.utils.tracing.start_span( + f"salt.reactor.{data['tag']}", + kind=salt.utils.tracing.SpanKind.CONSUMER, + attributes={ + "salt.reactor.tag": data["tag"], + "salt.reactor.chunks": len(chunks), + }, + context=trace_ctx, + ): + try: + self.call_reactions(chunks) + except SystemExit: + log.warning("Exit ignored by reactor") class ReactWrap: diff --git a/salt/utils/tracing.py b/salt/utils/tracing.py new file mode 100644 index 000000000000..0ee1846f12df --- /dev/null +++ b/salt/utils/tracing.py @@ -0,0 +1,423 @@ +""" +OpenTelemetry tracing integration for Salt. + +This module exposes a small, opinionated wrapper over the OpenTelemetry SDK +so that the rest of the codebase can call ``start_span``, ``inject`` and +``extract`` unconditionally regardless of whether tracing is enabled. + +When ``opts['tracing']['enabled']`` is false (the default), every public +function short-circuits and ``start_span`` returns a :class:`_NoopSpan`. No +spans are created, no exporter is initialised and no background threads are +started. + +The carrier format on the wire is W3C TraceContext: a ``traceparent`` (and +optional ``tracestate``) string injected into the appropriate dict / header +/ env var by the caller. + +The provider is rebuilt per-PID. ``BatchSpanProcessor`` runs a background +thread that is not preserved across ``fork``, so every public entry point +calls :func:`_ensure_tracer` which detects a PID change and rebuilds the +provider, processor and exporter in the child. + +Configuration lives in ``opts['tracing']``:: + + tracing: + enabled: false + exporter: otlp-http # otlp-http | otlp-grpc | console + endpoint: "" # OTel SDK default (4318/v1/traces for http, 4317 for grpc) + service_name: "" # auto-derived when empty + sampler: parent_based # parent_based | always_on | always_off | trace_id_ratio + sampler_arg: 1.0 + resource_attributes: {} + insecure: true + headers: {} + +The default ``otlp-http`` exporter is pure-Python and ships in salt's base +requirements. The ``otlp-grpc`` exporter is opt-in: install +``opentelemetry-exporter-otlp-proto-grpc`` separately to use it. +""" + +import atexit +import contextlib +import logging +import os +import threading + +log = logging.getLogger(__name__) + +_INSTRUMENTATION_NAME = "salt" + +# OpenTelemetry is optional. It is not shipped in the salt-ssh thin +# tarball, may be absent from older installed onedirs that the upgrade / +# downgrade tests still exercise, and may be intentionally uninstalled by +# operators who want a minimal footprint. When opentelemetry is missing, +# every public function in this module short-circuits to a no-op, exactly +# as if ``opts['tracing']['enabled']`` were false. +try: + from opentelemetry import context as otel_context + from opentelemetry import trace + from opentelemetry.exporter.otlp.proto.http.trace_exporter import ( + OTLPSpanExporter as _OTLPSpanExporterHTTP, + ) + from opentelemetry.sdk.resources import Resource + from opentelemetry.sdk.trace import TracerProvider + from opentelemetry.sdk.trace.export import BatchSpanProcessor, ConsoleSpanExporter + from opentelemetry.sdk.trace.sampling import ( + ALWAYS_OFF, + ALWAYS_ON, + ParentBased, + TraceIdRatioBased, + ) + from opentelemetry.trace.propagation.tracecontext import ( + TraceContextTextMapPropagator, + ) + + _OTEL_AVAILABLE = True + SpanKind = trace.SpanKind +except ImportError: # pragma: no cover - exercised when opentelemetry is absent + _OTEL_AVAILABLE = False + otel_context = None # type: ignore[assignment] + trace = None # type: ignore[assignment] + _OTLPSpanExporterHTTP = None # type: ignore[assignment] + Resource = None # type: ignore[assignment] + TracerProvider = None # type: ignore[assignment] + BatchSpanProcessor = None # type: ignore[assignment] + ConsoleSpanExporter = None # type: ignore[assignment] + ALWAYS_OFF = ALWAYS_ON = ParentBased = TraceIdRatioBased = None # type: ignore[assignment] + TraceContextTextMapPropagator = None # type: ignore[assignment] + + class _SpanKindStub: + """Duck-typed ``trace.SpanKind`` used when opentelemetry is missing.""" + + INTERNAL = "INTERNAL" + SERVER = "SERVER" + CLIENT = "CLIENT" + PRODUCER = "PRODUCER" + CONSUMER = "CONSUMER" + + SpanKind = _SpanKindStub() # type: ignore[assignment] + + +_lock = threading.Lock() +_last_pid = None +_provider = None +_tracer = None +_cached_opts = None +_propagator = TraceContextTextMapPropagator() if _OTEL_AVAILABLE else None +_atexit_registered = False + + +class _InvalidSpanContext: + """Minimal stand-in for ``trace.INVALID_SPAN_CONTEXT`` when otel is absent.""" + + trace_id = 0 + span_id = 0 + is_valid = False + is_remote = False + trace_flags = 0 + trace_state = None + + +_INVALID_SPAN_CONTEXT_FALLBACK = _InvalidSpanContext() + + +class _NoopSpan: + """Stand-in returned when tracing is disabled or opentelemetry is absent.""" + + is_recording = False + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc, tb): + return False + + def set_attribute(self, key, value): # noqa: ARG002 + return None + + def set_attributes(self, attributes): # noqa: ARG002 + return None + + def add_event(self, name, attributes=None, timestamp=None): # noqa: ARG002 + return None + + def record_exception(self, exception, attributes=None): # noqa: ARG002 + return None + + def set_status(self, status, description=None): # noqa: ARG002 + return None + + def update_name(self, name): # noqa: ARG002 + return None + + def end(self, end_time=None): # noqa: ARG002 + return None + + def get_span_context(self): + if _OTEL_AVAILABLE: + return trace.INVALID_SPAN_CONTEXT + return _INVALID_SPAN_CONTEXT_FALLBACK + + +_NOOP_SPAN = _NoopSpan() + + +def is_enabled(): + """Return True if tracing is configured and enabled.""" + if not _OTEL_AVAILABLE: + return False + return bool(_cached_opts and _cached_opts.get("enabled")) + + +def configure(opts): + """ + Initialise tracing for this process. + + ``opts`` is the full Salt opts dict; the ``tracing`` block is read out of + it. Safe to call multiple times; the provider is rebuilt only when the + PID changes or the cached configuration is empty. + + When tracing is disabled — or when opentelemetry is not installed — + this is a cheap no-op that just caches the opts so that subsequent + calls in fork children can pick up the same setting. + """ + global _cached_opts, _atexit_registered + tracing_opts = (opts or {}).get("tracing") or {} + _cached_opts = dict(tracing_opts) + _cached_opts.setdefault("service_name", _default_service_name(opts)) + if not _OTEL_AVAILABLE: + if _cached_opts.get("enabled"): + log.warning( + "tracing.enabled is true but opentelemetry is not installed; " + "tracing remains disabled in this process." + ) + return + if not _atexit_registered: + atexit.register(shutdown) + _atexit_registered = True + if not _cached_opts.get("enabled"): + return + _ensure_tracer() + + +def shutdown(): + """Flush and tear down the active provider.""" + global _provider, _tracer, _last_pid + with _lock: + provider = _provider + _provider = None + _tracer = None + _last_pid = None + if provider is not None: + try: + provider.shutdown() + except Exception: # pylint: disable=broad-except + log.debug("tracing provider shutdown raised", exc_info=True) + + +def start_span(name, *, kind=None, attributes=None, links=None, context=None): + """ + Open a span as a context manager. + + Returns a no-op context manager when tracing is disabled. ``context`` + is an opaque value previously returned from :func:`extract` and is used + to link the new span as a child of a remote parent. + """ + if not is_enabled(): + return _NOOP_SPAN + _ensure_tracer() + if _tracer is None: + return _NOOP_SPAN + if context is not None: + return _start_with_context(name, context, kind, attributes, links) + return _tracer.start_as_current_span( + name, + kind=kind or trace.SpanKind.INTERNAL, + attributes=attributes, + links=links, + ) + + +@contextlib.contextmanager +def _start_with_context(name, ctx, kind, attributes, links): + token = otel_context.attach(ctx) + try: + with _tracer.start_as_current_span( + name, + kind=kind or trace.SpanKind.INTERNAL, + attributes=attributes, + links=links, + ) as span: + yield span + finally: + otel_context.detach(token) + + +def current_span(): + """Return the currently active span, or a :class:`_NoopSpan`.""" + if not is_enabled(): + return _NOOP_SPAN + return trace.get_current_span() + + +def set_attribute(key, value): + """Set an attribute on the current span (no-op when disabled).""" + if not is_enabled(): + return + span = trace.get_current_span() + if span is not None and span.is_recording(): + span.set_attribute(key, value) + + +def record_exception(exc): + """Record an exception on the current span (no-op when disabled).""" + if not is_enabled(): + return + span = trace.get_current_span() + if span is not None and span.is_recording(): + span.record_exception(exc) + + +def inject(carrier): + """ + Inject the current trace context into ``carrier``. + + ``carrier`` is any ``MutableMapping`` (e.g. the inner ``load`` dict of a + Salt request, an event ``data`` dict, an HTTP header mapping or an env + var dict). When there is no recording span — or when opentelemetry is + not installed — this is a no-op so the on-the-wire payload is not + bloated with empty headers. + """ + if not is_enabled() or _propagator is None: + return + span = trace.get_current_span() + if span is None or not span.is_recording(): + return + _propagator.inject(carrier) + + +def extract(carrier): + """ + Extract a context from ``carrier``. + + Returns an opaque context object suitable for passing to + :func:`start_span` as ``context=...``, or ``None`` when no context was + found, tracing is disabled, or opentelemetry is not installed. + """ + if not is_enabled() or not carrier or _propagator is None: + return None + ctx = _propagator.extract(carrier) + if ctx is otel_context.Context(): + return None + return ctx + + +def _ensure_tracer(): + global _last_pid # pylint: disable=global-statement + pid = os.getpid() + if _last_pid == pid and _provider is not None: + return + with _lock: + if _last_pid == pid and _provider is not None: + return + if _cached_opts is None or not _cached_opts.get("enabled"): + return + _build_provider() + _last_pid = pid + + +def _build_provider(): + global _provider, _tracer + opts = _cached_opts or {} + resource = _build_resource(opts) + sampler = _build_sampler(opts) + provider = TracerProvider(resource=resource, sampler=sampler) + exporter = _build_exporter(opts) + if exporter is not None: + provider.add_span_processor(BatchSpanProcessor(exporter)) + _provider = provider + _tracer = provider.get_tracer(_INSTRUMENTATION_NAME) + + +def _build_resource(opts): + attrs = {"service.name": opts.get("service_name") or "salt"} + extra = opts.get("resource_attributes") or {} + if isinstance(extra, dict): + attrs.update(extra) + return Resource.create(attrs) + + +def _build_sampler(opts): + name = (opts.get("sampler") or "parent_based").lower() + arg = opts.get("sampler_arg", 1.0) + if name == "always_on": + return ALWAYS_ON + if name == "always_off": + return ALWAYS_OFF + if name == "trace_id_ratio": + return TraceIdRatioBased(float(arg)) + if name == "parent_based": + try: + ratio = float(arg) + except (TypeError, ValueError): + ratio = 1.0 + root = ALWAYS_ON if ratio >= 1.0 else TraceIdRatioBased(ratio) + return ParentBased(root=root) + log.warning( + "Unknown tracing sampler %r; defaulting to parent_based+always_on", name + ) + return ParentBased(root=ALWAYS_ON) + + +def _build_exporter(opts): + name = (opts.get("exporter") or "otlp-http").lower() + endpoint = opts.get("endpoint") or None + headers = opts.get("headers") or None + insecure = opts.get("insecure", True) + try: + if name == "console": + return ConsoleSpanExporter() + if name == "otlp-http": + kwargs = {} + if endpoint: + kwargs["endpoint"] = endpoint + if headers: + kwargs["headers"] = headers + return _OTLPSpanExporterHTTP(**kwargs) + if name == "otlp-grpc": + # The gRPC exporter pulls in grpcio which has no wheel for some + # interpreter / platform combinations. Import lazily so the + # default HTTP path works even when grpc isn't installed. + try: + from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import ( + OTLPSpanExporter as _OTLPSpanExporterGRPC, + ) + except ImportError: + log.error( + "opentelemetry-exporter-otlp-proto-grpc is not installed; " + "either install it or set tracing.exporter to 'otlp-http'." + ) + return None + kwargs = {"insecure": bool(insecure)} + if endpoint: + kwargs["endpoint"] = endpoint + if headers: + kwargs["headers"] = headers + return _OTLPSpanExporterGRPC(**kwargs) + except Exception: # pylint: disable=broad-except + log.exception("Failed to build tracing exporter %r", name) + return None + log.warning("Unknown tracing exporter %r; tracing will be a no-op", name) + return None + + +def _default_service_name(opts): + if not opts: + return "salt" + role = opts.get("__role") + if role == "master": + return "salt-master" + if role == "minion": + minion_id = opts.get("id") or "" + return f"salt-minion-{minion_id}" if minion_id else "salt-minion" + return "salt" diff --git a/tests/pytests/unit/channel/test_tracing_propagation.py b/tests/pytests/unit/channel/test_tracing_propagation.py new file mode 100644 index 000000000000..e089b40020c1 --- /dev/null +++ b/tests/pytests/unit/channel/test_tracing_propagation.py @@ -0,0 +1,112 @@ +""" +Verify trace context propagates through the channel layer: +* injection happens inside the AES envelope, not on the outer wrapper. +* the receive side can extract the context and link a child span. +""" + +import pytest + +import salt.channel.client +import salt.utils.tracing as tracing + + +@pytest.fixture(autouse=True) +def _reset_tracing(monkeypatch): + tracing.shutdown() + monkeypatch.setattr(tracing, "_cached_opts", None) + yield + tracing.shutdown() + + +@pytest.fixture +def in_memory_exporter(monkeypatch): + from opentelemetry.sdk.trace.export.in_memory_span_exporter import ( + InMemorySpanExporter, + ) + + exporter = InMemorySpanExporter() + monkeypatch.setattr(tracing, "_build_exporter", lambda _opts: exporter) + return exporter + + +class _FakeCrypticle: + """Capture the cleartext load handed to dumps() for assertion.""" + + captured: dict = {} + + def dumps(self, load): + type(self).captured = dict(load) + return b"" + + +class _FakeAuth: + def __init__(self): + self.session_crypticle = _FakeCrypticle() + self.authenticated = True + + def gen_token(self, _salt): + return b"tok" + + +def _make_channel(): + channel = salt.channel.client.AsyncReqChannel.__new__( + salt.channel.client.AsyncReqChannel + ) + channel.auth = _FakeAuth() + channel.opts = { + "id": "minion-x", + "encryption_algorithm": "OAEP-SHA1", + "signing_algorithm": "PKCS1v15-SHA1", + } + return channel + + +def test_package_load_injects_into_encrypted_load(in_memory_exporter): + """traceparent must be inside the load before AES, not on the outer envelope.""" + tracing.configure( + {"tracing": {"enabled": True, "exporter": "console", "sampler": "always_on"}} + ) + channel = _make_channel() + with tracing.start_span("outer"): + envelope = channel._package_load({"cmd": "test.ping"}) + + # Outer envelope must NOT carry the trace headers. + assert "traceparent" not in envelope + assert "_trace" not in envelope + + # The crypticle saw the cleartext load WITH traceparent inside. + captured: dict = _FakeCrypticle.captured + assert captured, "expected the crypticle to capture a load dict" + assert "traceparent" in captured + # Salt's auth fields are also present. + assert captured["cmd"] == "test.ping" + assert captured["id"] == "minion-x" + + +def test_package_load_skipped_when_no_span(in_memory_exporter): + """No active span ⇒ no trace headers in the load (avoid bloat).""" + tracing.configure( + {"tracing": {"enabled": True, "exporter": "console", "sampler": "always_on"}} + ) + channel = _make_channel() + channel._package_load({"cmd": "test.ping"}) + captured: dict = _FakeCrypticle.captured + assert "traceparent" not in captured + + +def test_extract_from_inner_load_links_child_span(in_memory_exporter): + """The receive-side flow: extract from cleartext load gives a usable context.""" + tracing.configure( + {"tracing": {"enabled": True, "exporter": "console", "sampler": "always_on"}} + ) + channel = _make_channel() + with tracing.start_span("client") as client_span: + client_trace_id = client_span.get_span_context().trace_id + channel._package_load({"cmd": "test.ping"}) + cleartext_load = _FakeCrypticle.captured + + # Simulate the server side decoding & extracting. + ctx = tracing.extract(cleartext_load) + assert ctx is not None + with tracing.start_span("server", context=ctx) as server_span: + assert server_span.get_span_context().trace_id == client_trace_id diff --git a/tests/pytests/unit/utils/event/test_tracing.py b/tests/pytests/unit/utils/event/test_tracing.py new file mode 100644 index 000000000000..8b9e20d6d854 --- /dev/null +++ b/tests/pytests/unit/utils/event/test_tracing.py @@ -0,0 +1,89 @@ +""" +Event bus tracing: fire_event must inject the current trace context into the +event data dict, and downstream consumers must be able to extract it as the +parent for a child span. +""" + +import pytest + +import salt.utils.event +import salt.utils.tracing as tracing + + +@pytest.fixture(autouse=True) +def _reset_tracing(monkeypatch): + tracing.shutdown() + monkeypatch.setattr(tracing, "_cached_opts", None) + yield + tracing.shutdown() + + +@pytest.fixture +def in_memory_exporter(monkeypatch): + from opentelemetry.sdk.trace.export.in_memory_span_exporter import ( + InMemorySpanExporter, + ) + + exporter = InMemorySpanExporter() + monkeypatch.setattr(tracing, "_build_exporter", lambda _opts: exporter) + return exporter + + +def _make_event_stub(): + """Build a SaltEvent without touching IPC sockets; only fire_event() runs.""" + event = salt.utils.event.SaltEvent.__new__(salt.utils.event.SaltEvent) + event.opts = {"max_event_size": 100000, "subproxy": False} + event.cpush = True + event._run_io_loop_sync = True + + sent = [] + + class _FakePusher: + @staticmethod + def publish(msg): + sent.append(msg) + + event.pusher = _FakePusher + return event, sent + + +def test_fire_event_injects_when_span_active(in_memory_exporter): + tracing.configure( + {"tracing": {"enabled": True, "exporter": "console", "sampler": "always_on"}} + ) + event, sent = _make_event_stub() + + with tracing.start_span("client"): + event.fire_event({"hello": "world"}, "salt/test/tag") + + assert sent, "expected one event published" + raw = sent[0] + _tag, data = salt.utils.event.SaltEvent.unpack(raw) + assert "traceparent" in data, "event payload must carry traceparent" + + +def test_fire_event_skipped_when_no_span(in_memory_exporter): + tracing.configure( + {"tracing": {"enabled": True, "exporter": "console", "sampler": "always_on"}} + ) + event, sent = _make_event_stub() + event.fire_event({"hello": "world"}, "salt/test/tag") + + _tag, data = salt.utils.event.SaltEvent.unpack(sent[0]) + assert "traceparent" not in data + + +def test_event_round_trip_creates_child_span(in_memory_exporter): + tracing.configure( + {"tracing": {"enabled": True, "exporter": "console", "sampler": "always_on"}} + ) + event, sent = _make_event_stub() + with tracing.start_span("publisher") as pub_span: + pub_trace_id = pub_span.get_span_context().trace_id + event.fire_event({"x": 1}, "salt/test/round_trip") + + _tag, data = salt.utils.event.SaltEvent.unpack(sent[0]) + ctx = tracing.extract(data) + assert ctx is not None + with tracing.start_span("consumer", context=ctx) as cons_span: + assert cons_span.get_span_context().trace_id == pub_trace_id diff --git a/tests/pytests/unit/utils/test_tracing.py b/tests/pytests/unit/utils/test_tracing.py new file mode 100644 index 000000000000..99231234b8b0 --- /dev/null +++ b/tests/pytests/unit/utils/test_tracing.py @@ -0,0 +1,280 @@ +""" +Unit tests for salt.utils.tracing — the OpenTelemetry wrapper. +""" + +import multiprocessing +import os + +import pytest + +import salt.utils.tracing as tracing + + +@pytest.fixture(autouse=True) +def _reset_tracing_state(monkeypatch): + """Reset module-level state between tests so they are isolated.""" + tracing.shutdown() + monkeypatch.setattr(tracing, "_cached_opts", None) + yield + tracing.shutdown() + + +@pytest.fixture +def in_memory_exporter(monkeypatch): + """Replace the exporter builder so all spans land in an InMemorySpanExporter.""" + from opentelemetry.sdk.trace.export.in_memory_span_exporter import ( + InMemorySpanExporter, + ) + + exporter = InMemorySpanExporter() + monkeypatch.setattr(tracing, "_build_exporter", lambda _opts: exporter) + return exporter + + +def _flush(): + """Force the BatchSpanProcessor to flush pending spans.""" + if tracing._provider is not None: + tracing._provider.force_flush() + + +def test_disabled_is_noop(): + """When tracing is disabled, every API call short-circuits.""" + assert tracing.is_enabled() is False + + with tracing.start_span("foo") as span: + assert span is tracing._NOOP_SPAN + span.set_attribute("k", "v") # must not raise + carrier = {} + tracing.inject(carrier) + assert carrier == {} + assert tracing.extract({"traceparent": "00-x-x-01"}) is None + + +def test_configure_disabled_remains_noop(): + tracing.configure({"tracing": {"enabled": False}}) + assert tracing.is_enabled() is False + + with tracing.start_span("foo") as span: + assert span is tracing._NOOP_SPAN + + +def test_configure_enabled_starts_real_span(in_memory_exporter): + tracing.configure( + {"tracing": {"enabled": True, "exporter": "console", "sampler": "always_on"}} + ) + assert tracing.is_enabled() is True + + with tracing.start_span("test") as span: + assert span is not tracing._NOOP_SPAN + assert span.is_recording + + _flush() + spans = in_memory_exporter.get_finished_spans() + assert len(spans) == 1 + assert spans[0].name == "test" + + +def test_inject_skipped_when_no_recording_span(in_memory_exporter): + """inject() must be a no-op when no recording span is active.""" + tracing.configure( + {"tracing": {"enabled": True, "exporter": "console", "sampler": "always_on"}} + ) + carrier = {} + tracing.inject(carrier) + assert "traceparent" not in carrier + + +def test_inject_extract_round_trip(in_memory_exporter): + tracing.configure( + {"tracing": {"enabled": True, "exporter": "console", "sampler": "always_on"}} + ) + carrier = {} + with tracing.start_span("outer") as outer: + outer_trace_id = outer.get_span_context().trace_id + tracing.inject(carrier) + assert "traceparent" in carrier + + ctx = tracing.extract(carrier) + assert ctx is not None + + with tracing.start_span("child", context=ctx) as child: + assert child.get_span_context().trace_id == outer_trace_id + + +def test_sampler_parent_based_default(in_memory_exporter): + tracing.configure({"tracing": {"enabled": True, "exporter": "console"}}) + sampler = tracing._provider.sampler + assert "ParentBased" in type(sampler).__name__ + + +def test_sampler_always_off(in_memory_exporter): + tracing.configure( + {"tracing": {"enabled": True, "exporter": "console", "sampler": "always_off"}} + ) + with tracing.start_span("dropped"): + pass + _flush() + assert in_memory_exporter.get_finished_spans() == () + + +def test_service_name_auto_master(): + tracing.configure({"__role": "master", "tracing": {"enabled": False}}) + assert tracing._cached_opts["service_name"] == "salt-master" + + +def test_service_name_auto_minion(): + tracing.configure({"__role": "minion", "id": "m1", "tracing": {"enabled": False}}) + assert tracing._cached_opts["service_name"] == "salt-minion-m1" + + +def test_service_name_override(): + tracing.configure( + { + "__role": "master", + "tracing": {"enabled": False, "service_name": "custom-svc"}, + } + ) + assert tracing._cached_opts["service_name"] == "custom-svc" + + +def _child_emit(queue, opts): + """Child entry point for the fork test.""" + import opentelemetry.sdk.trace as sdk_trace + from opentelemetry.sdk.trace.export import SimpleSpanProcessor + from opentelemetry.sdk.trace.export.in_memory_span_exporter import ( + InMemorySpanExporter, + ) + + import salt.utils.tracing as t + + exporter = InMemorySpanExporter() + + # Build a provider directly inside the child to avoid depending on + # the parent's BatchSpanProcessor configuration surviving the fork. + provider = sdk_trace.TracerProvider() + provider.add_span_processor(SimpleSpanProcessor(exporter)) + setattr(t, "_provider", provider) + setattr(t, "_tracer", provider.get_tracer("salt")) + setattr(t, "_last_pid", os.getpid()) + setattr(t, "_cached_opts", (opts or {}).get("tracing") or {}) + + with t.start_span("child"): + pass + spans = exporter.get_finished_spans() + queue.put([s.name for s in spans]) + + +def test_fork_isolation(): + """The provider rebuilds in a forked child; the child can emit spans.""" + if not hasattr(os, "fork"): + pytest.skip("fork not available on this platform") + ctx = multiprocessing.get_context("fork") + queue = ctx.Queue() + opts = {"tracing": {"enabled": True, "exporter": "console", "sampler": "always_on"}} + proc = ctx.Process(target=_child_emit, args=(queue, opts)) + proc.start() + proc.join(timeout=15) + assert proc.exitcode == 0 + names = queue.get(timeout=5) + assert names == ["child"] + + +def test_grpc_exporter_missing_is_graceful(monkeypatch, caplog): + """ + Picking ``otlp-grpc`` without the optional grpc package installed must + not raise; it should log an error and degrade to an exporter-less + provider so the rest of the process keeps working. + """ + import logging + + monkeypatch.setattr(tracing, "_build_exporter", tracing._build_exporter) + + def _no_grpc_import(name, *args, **kwargs): + if name.startswith("opentelemetry.exporter.otlp.proto.grpc"): + raise ImportError("simulated: no grpcio in environment") + return __import__(name, *args, **kwargs) + + monkeypatch.setattr("builtins.__import__", _no_grpc_import) + + with caplog.at_level(logging.ERROR, logger="salt.utils.tracing"): + exporter = tracing._build_exporter({"enabled": True, "exporter": "otlp-grpc"}) + assert exporter is None + assert any( + "opentelemetry-exporter-otlp-proto-grpc is not installed" in rec.message + for rec in caplog.records + ) + + +def test_module_works_when_opentelemetry_missing(): + """ + In a fresh subprocess with ``opentelemetry`` blocked at import time, + assert that every public API of ``salt.utils.tracing`` still works as a + complete no-op. + + This is the scenario hit by: + * the salt-ssh thin tarball (no 3rd-party deps), + * older installed onedirs exercised by upgrade / downgrade tests, + * minimal operator-built environments. + + Runs in a subprocess so the ``opentelemetry`` import block doesn't + leak into other tests that depend on a working tracer. + """ + import subprocess + import sys + import textwrap + + script = textwrap.dedent( + """ + import sys + + class _BlockOtel: + def find_spec(self, name, path=None, target=None): + if name == 'opentelemetry' or name.startswith('opentelemetry.'): + raise ImportError('simulated: opentelemetry not installed') + return None + + sys.meta_path.insert(0, _BlockOtel()) + for cached in [k for k in sys.modules if k.startswith('opentelemetry')]: + del sys.modules[cached] + + import salt.utils.tracing as t + assert t._OTEL_AVAILABLE is False, 'expected otel to look absent' + assert t.SpanKind.SERVER == 'SERVER' + t.configure({'tracing': {'enabled': True}, '__role': 'master'}) + assert t.is_enabled() is False, 'enabled must stay false without otel' + with t.start_span('foo', kind=t.SpanKind.SERVER, attributes={'a': 'b'}) as s: + assert s is t._NOOP_SPAN + t.set_attribute('k', 'v') + t.record_exception(RuntimeError('ignored')) + carrier = {} + t.inject(carrier) + assert carrier == {}, carrier + assert t.extract({'traceparent': 'x'}) is None + t.shutdown() + print('OK') + """ + ) + result = subprocess.run( + [sys.executable, "-c", script], + check=False, + capture_output=True, + text=True, + timeout=60, + ) + assert result.returncode == 0, ( + f"subprocess failed (rc={result.returncode}):\n" + f"stdout={result.stdout}\nstderr={result.stderr}" + ) + assert "OK" in result.stdout + + +def test_configure_idempotent(in_memory_exporter): + tracing.configure( + {"tracing": {"enabled": True, "exporter": "console", "sampler": "always_on"}} + ) + first = tracing._provider + tracing.configure( + {"tracing": {"enabled": True, "exporter": "console", "sampler": "always_on"}} + ) + # Configure does not rebuild when PID + opts are still valid. + assert tracing._provider is first diff --git a/tools/pkg/build.py b/tools/pkg/build.py index cef5b2f066c0..153ccf5f6f8d 100644 --- a/tools/pkg/build.py +++ b/tools/pkg/build.py @@ -808,7 +808,11 @@ def onedir_dependencies( # are never linked into runtime artifacts. Force wheels for them so # --no-binary :all: below does not trigger a CMake source build, # which fails under the relenv toolchain (missing pid_t/mode_t/etc). - "--only-binary=maturin,apache-libcloud,pymssql,hatchling,cmake,ninja", + # protobuf ships cp39-abi3 wheels that work for every supported + # Python; a source build pulls in BoringSSL ASM that uses the + # ARMv8.5 ``bti`` mnemonic, which the relenv toolchain's assembler + # does not recognise. + "--only-binary=maturin,apache-libcloud,pymssql,hatchling,cmake,ninja,protobuf", ] if platform == "windows": python_bin = env_scripts_dir / "python" @@ -817,7 +821,7 @@ def onedir_dependencies( python_bin = env_scripts_dir / "python3" install_args.append("--no-binary=:all:") install_args.append( - "--only-binary=maturin,apache-libcloud,pymssql,cassandra-driver,hatchling,cmake,ninja" + "--only-binary=maturin,apache-libcloud,pymssql,cassandra-driver,hatchling,cmake,ninja,protobuf" ) # CMake 4.x removed support for cmake_minimum_required(VERSION < 3.5). # pyzmq's bundled libzmq still declares an older floor; set the policy