diff --git a/pkgs/development/python-modules/opentelemetry-instrumentation-wsgi/default.nix b/pkgs/development/python-modules/opentelemetry-instrumentation-wsgi/default.nix new file mode 100644 index 000000000000..b50674ea1b68 --- /dev/null +++ b/pkgs/development/python-modules/opentelemetry-instrumentation-wsgi/default.nix @@ -0,0 +1,53 @@ +{ lib +, buildPythonPackage +, pythonOlder +, fetchFromGitHub +, hatchling +, opentelemetry-api +, opentelemetry-instrumentation +, opentelemetry-semantic-conventions +, opentelemetry-test-utils +, opentelemetry-util-http +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "opentelemetry-instrumentation-wsgi"; + version = "0.39b0"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "open-telemetry"; + repo = "opentelemetry-python-contrib"; + rev = "refs/tags/v${version}"; + hash = "sha256-DBZGXY8Y208YC/guk0qUB04UA/JFAtiv3kjsikskTRs="; + sparseCheckout = [ "/instrumentation/${pname}" ]; + } + "/instrumentation/${pname}"; + + format = "pyproject"; + + nativeBuildInputs = [ + hatchling + ]; + + propagatedBuildInputs = [ + opentelemetry-instrumentation + opentelemetry-api + opentelemetry-semantic-conventions + opentelemetry-util-http + ]; + + nativeCheckInputs = [ + opentelemetry-test-utils + pytestCheckHook + ]; + + pythonImportsCheck = [ "opentelemetry.instrumentation.wsgi" ]; + + meta = with lib; { + homepage = "https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/instrumentation/opentelemetry-instrumentation-wsgi"; + description = "WSGI Middleware for OpenTelemetry"; + license = licenses.asl20; + maintainers = teams.deshaw.members; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1ad1f4df6719..fee4f669ab7e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7108,6 +7108,8 @@ self: super: with self; { opentelemetry-instrumentation = callPackage ../development/python-modules/opentelemetry-instrumentation { }; + opentelemetry-instrumentation-wsgi = callPackage ../development/python-modules/opentelemetry-instrumentation-wsgi { }; + opentelemetry-proto = callPackage ../development/python-modules/opentelemetry-proto { }; opentelemetry-semantic-conventions = callPackage ../development/python-modules/opentelemetry-semantic-conventions { };