aice-observability 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. aice_observability-0.2.0/.gitignore +28 -0
  2. aice_observability-0.2.0/CHANGELOG.md +28 -0
  3. aice_observability-0.2.0/PKG-INFO +806 -0
  4. aice_observability-0.2.0/README.md +765 -0
  5. aice_observability-0.2.0/docs/dashboard-specs/database.md +143 -0
  6. aice_observability-0.2.0/docs/dashboard-specs/external-services.md +155 -0
  7. aice_observability-0.2.0/docs/dashboard-specs/http-api.md +111 -0
  8. aice_observability-0.2.0/docs/dashboard-specs/infrastructure.md +136 -0
  9. aice_observability-0.2.0/docs/dashboard-specs/logs.md +163 -0
  10. aice_observability-0.2.0/docs/dashboard-specs/service-overview.md +141 -0
  11. aice_observability-0.2.0/docs/dashboard-specs/traces.md +241 -0
  12. aice_observability-0.2.0/docs/metrics-catalogue.md +170 -0
  13. aice_observability-0.2.0/docs/promql-library.md +295 -0
  14. aice_observability-0.2.0/docs/standards.md +409 -0
  15. aice_observability-0.2.0/pyproject.toml +84 -0
  16. aice_observability-0.2.0/src/aice_observability/__init__.py +5 -0
  17. aice_observability-0.2.0/src/aice_observability/ai/__init__.py +0 -0
  18. aice_observability-0.2.0/src/aice_observability/ai/agents.py +169 -0
  19. aice_observability-0.2.0/src/aice_observability/ai/evaluation.py +0 -0
  20. aice_observability-0.2.0/src/aice_observability/ai/instrumentation/__init__.py +0 -0
  21. aice_observability-0.2.0/src/aice_observability/ai/instrumentation/anthropic.py +20 -0
  22. aice_observability-0.2.0/src/aice_observability/ai/instrumentation/base.py +25 -0
  23. aice_observability-0.2.0/src/aice_observability/ai/instrumentation/gemini.py +20 -0
  24. aice_observability-0.2.0/src/aice_observability/ai/instrumentation/langchain.py +16 -0
  25. aice_observability-0.2.0/src/aice_observability/ai/instrumentation/openai.py +19 -0
  26. aice_observability-0.2.0/src/aice_observability/ai/instrumentation/registry.py +53 -0
  27. aice_observability-0.2.0/src/aice_observability/ai/instrumentation/vertexai.py +18 -0
  28. aice_observability-0.2.0/src/aice_observability/ai/metrics.py +216 -0
  29. aice_observability-0.2.0/src/aice_observability/ai/rag.py +169 -0
  30. aice_observability-0.2.0/src/aice_observability/ai/registry.py +0 -0
  31. aice_observability-0.2.0/src/aice_observability/ai/tracing.py +281 -0
  32. aice_observability-0.2.0/src/aice_observability/builder.py +168 -0
  33. aice_observability-0.2.0/src/aice_observability/core/__init__.py +0 -0
  34. aice_observability-0.2.0/src/aice_observability/core/config.py +69 -0
  35. aice_observability-0.2.0/src/aice_observability/core/exporters.py +27 -0
  36. aice_observability-0.2.0/src/aice_observability/core/providers.py +58 -0
  37. aice_observability-0.2.0/src/aice_observability/core/resources.py +28 -0
  38. aice_observability-0.2.0/src/aice_observability/frameworks/__init__.py +0 -0
  39. aice_observability-0.2.0/src/aice_observability/frameworks/django.py +7 -0
  40. aice_observability-0.2.0/src/aice_observability/frameworks/fastapi.py +19 -0
  41. aice_observability-0.2.0/src/aice_observability/frameworks/flask.py +13 -0
  42. aice_observability-0.2.0/src/aice_observability/integrations/__init__.py +0 -0
  43. aice_observability-0.2.0/src/aice_observability/integrations/asyncpg.py +20 -0
  44. aice_observability-0.2.0/src/aice_observability/integrations/botocore.py +17 -0
  45. aice_observability-0.2.0/src/aice_observability/integrations/celery.py +23 -0
  46. aice_observability-0.2.0/src/aice_observability/integrations/httpx.py +19 -0
  47. aice_observability-0.2.0/src/aice_observability/integrations/psycopg.py +17 -0
  48. aice_observability-0.2.0/src/aice_observability/integrations/psycopg2.py +7 -0
  49. aice_observability-0.2.0/src/aice_observability/integrations/redis.py +17 -0
  50. aice_observability-0.2.0/src/aice_observability/integrations/sqlalchemy.py +7 -0
  51. aice_observability-0.2.0/src/aice_observability/propagation.py +82 -0
  52. aice_observability-0.2.0/src/aice_observability/py.typed +0 -0
  53. aice_observability-0.2.0/tests/conftest.py +34 -0
  54. aice_observability-0.2.0/tests/core/test_config.py +41 -0
  55. aice_observability-0.2.0/tests/test_builder.py +42 -0
  56. aice_observability-0.2.0/tests/test_fastapi_instrumentation.py +74 -0
  57. aice_observability-0.2.0/tests/test_integrations.py +76 -0
  58. aice_observability-0.2.0/tests/test_propagation.py +62 -0
  59. aice_observability-0.2.0/uv.lock +1212 -0
@@ -0,0 +1,28 @@
1
+ # Python bytecode / caches
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ .pytest_cache/
8
+ .mypy_cache/
9
+ .ruff_cache/
10
+
11
+ # Virtualenvs & editors
12
+ .venv/
13
+ .env
14
+ .env.*
15
+ !.env.example
16
+ .vscode/
17
+ .idea/
18
+ .DS_Store
19
+
20
+ # Build artifacts
21
+ build/
22
+ dist/
23
+ *.egg-info/
24
+ node_modules/
25
+ *.tsbuildinfo
26
+
27
+ # uv / pnpm lockfiles tracked per-package don't ignore them.
28
+ _skills
@@ -0,0 +1,28 @@
1
+ # Changelog aice-observability
2
+
3
+ Format loosely follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
4
+
5
+ ## 0.2.0
6
+
7
+ First release on PyPI. Earlier 0.1.x uploads were withdrawn and are not
8
+ available.
9
+
10
+ ### Added
11
+ - `Observability`, an OpenTelemetry bootstrap for Python services: traces,
12
+ metrics and logs over OTLP/HTTP, configured with `.service(name)` and the
13
+ standard `OTEL_*` environment variables. `OTEL_SERVICE_NAME`, when set,
14
+ overrides `.service(name)` and is enough on its own for `.start()`.
15
+ `OTEL_EXPORTER_OTLP_HEADERS` values are percent-decoded, as the OTel spec
16
+ requires.
17
+ - Instrumentation for FastAPI, Flask, Django, SQLAlchemy, httpx, Redis,
18
+ psycopg2, Psycopg 3, asyncpg, botocore (boto3 / S3 / MinIO), Celery,
19
+ logging and system metrics. Each integration skips quietly when the library
20
+ it instruments is absent. `instrument_fastapi()` and `instrument_flask()`
21
+ must run before the app serves its first request, and don't need `.start()`
22
+ first.
23
+ - `aice_observability.propagation`: `inject_context()`, `extract_context()`
24
+ and `continue_trace()` for carrying a trace across a hand-rolled queue (a
25
+ Postgres job table, pgmq). A missing or malformed carrier starts a new trace.
26
+ - AI telemetry: `ai.agents.invoke_agent()` / `execute_tool()` (with
27
+ `extra_attributes`) and `ai.metrics.record_budget_event(kind)`
28
+ (`gen_ai.budget.events` counter).