diff --git a/pkgs/development/python-modules/opentelemetry-instrumentation-asgi/default.nix b/pkgs/development/python-modules/opentelemetry-instrumentation-asgi/default.nix new file mode 100644 index 000000000000..3fb18175ab22 --- /dev/null +++ b/pkgs/development/python-modules/opentelemetry-instrumentation-asgi/default.nix @@ -0,0 +1,55 @@ +{ lib +, buildPythonPackage +, pythonOlder +, fetchFromGitHub +, asgiref +, hatchling +, opentelemetry-api +, opentelemetry-instrumentation +, opentelemetry-semantic-conventions +, opentelemetry-test-utils +, opentelemetry-util-http +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "opentelemetry-instrumentation-asgi"; + version = "0.39b0"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "open-telemetry"; + repo = "opentelemetry-python-contrib"; + rev = "refs/tags/v${version}"; + hash = "sha256-BfNrbOQwyApdcKOVGF0LqzWOxzLkHZYiYdYVVPkGmdQ="; + sparseCheckout = [ "/instrumentation/${pname}" ]; + } + "/instrumentation/${pname}"; + + format = "pyproject"; + + nativeBuildInputs = [ + hatchling + ]; + + propagatedBuildInputs = [ + asgiref + opentelemetry-instrumentation + opentelemetry-api + opentelemetry-semantic-conventions + opentelemetry-util-http + ]; + + nativeCheckInputs = [ + opentelemetry-test-utils + pytestCheckHook + ]; + + pythonImportsCheck = [ "opentelemetry.instrumentation.asgi" ]; + + meta = with lib; { + homepage = "https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/instrumentation/opentelemetry-instrumentation-asgi"; + description = "ASGI instrumentation 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 fee4f669ab7e..0a26e6eca366 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-asgi = callPackage ../development/python-modules/opentelemetry-instrumentation-asgi { }; + opentelemetry-instrumentation-wsgi = callPackage ../development/python-modules/opentelemetry-instrumentation-wsgi { }; opentelemetry-proto = callPackage ../development/python-modules/opentelemetry-proto { };