Python: Add OpenTelemetry to Python SK
Motivation and Context
We want observability into usage of SK
Description
Add OpenTelemetry to Python SK
Contribution Checklist
- [ ] The code builds clean without any errors or warnings
- [ ] The PR follows the SK Contribution Guidelines and the pre-submission formatting script raises no violations
Python 3.10 Test Coverage Report
File Stmts Miss Cover Missing semantic_kernel kernel.py 157 9 94% 145, 156, 160, 200–201, 310–313, 422 semantic_kernel/connectors/ai/azure_ai_inference/services azure_ai_inference_chat_completion.py 149 4 97% 169, 312, 416, 430 semantic_kernel/connectors/ai/embeddings embedding_generator_base.py 8 1 88% 50 semantic_kernel/connectors/ai/hugging_face/services hf_text_completion.py 54 3 94% 95, 103, 134 hf_text_embedding.py 32 5 84% 77–81 semantic_kernel/connectors/openapi_plugin openapi_manager.py 58 2 97% 110–111 openapi_parser.py 88 1 99% 127 openapi_runner.py 105 2 98% 181–182 semantic_kernel/connectors/openapi_plugin/models rest_api_operation.py 129 1 99% 240 semantic_kernel/functions kernel_function_decorator.py 98 1 99% 102 kernel_function_from_method.py 96 1 99% 153 kernel_function_from_prompt.py 154 7 95% 165–166, 180, 201, 219, 239, 322 kernel_plugin.py 187 2 99% 472, 475 semantic_kernel/planners plan.py 234 45 81% 52, 161–163, 195, 212–225, 262, 267, 275–276, 286–289, 306, 311, 327, 330–335, 353, 358, 361, 363, 370, 384–386, 391–395 semantic_kernel/planners/function_calling_stepwise_planner function_calling_stepwise_planner.py 116 4 97% 143, 187–188, 196 semantic_kernel/planners/sequential_planner sequential_planner.py 64 6 91% 69, 73, 107, 123, 132–133 sequential_planner_extensions.py 50 9 82% 29–30, 52, 106–120 sequential_planner_parser.py 77 12 84% 64–72, 91, 115–118 semantic_kernel/schema kernel_json_schema_builder.py 119 5 96% 48, 82, 204, 208–209 semantic_kernel/template_engine/blocks code_block.py 77 1 99% 119 named_arg_block.py 43 1 98% 98 semantic_kernel/utils/telemetry decorators.py 113 4 96% 232, 240, 243, 252 user_agent.py 16 2 88% 18–19 TOTAL 7471 128 98%
Python 3.10 Unit Test Overview
| Tests | Skipped | Failures | Errors | Time |
|---|---|---|---|---|
| 1940 | 1 :zzz: | 0 :x: | 0 :fire: | 33.706s :stopwatch: |
Related to #5891
Also just noticed that there are a bunch of lines in decorators.py not covered by tests, have a look at those please, @glahaye
Also just noticed that there are a bunch of lines in decorators.py not covered by tests, have a look at those please, @glahaye
Oh, yes, I didn't know I needed "@pytest.mark.asyncio" for async tests.
Fixed.