netra-sdk 0.1.12__tar.gz → 0.1.13__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.
Potentially problematic release.
This version of netra-sdk might be problematic. Click here for more details.
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/PKG-INFO +4 -1
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/README.md +3 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/span_wrapper.py +2 -0
- netra_sdk-0.1.13/netra/version.py +2 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/pyproject.toml +1 -1
- netra_sdk-0.1.12/netra/version.py +0 -2
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/LICENCE +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/__init__.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/anonymizer/__init__.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/anonymizer/anonymizer.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/anonymizer/base.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/anonymizer/fp_anonymizer.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/config.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/decorators.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/exceptions/__init__.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/exceptions/injection.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/exceptions/pii.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/input_scanner.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/__init__.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/aiohttp/__init__.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/aiohttp/version.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/cohere/__init__.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/cohere/version.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/fastapi/__init__.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/fastapi/version.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/google_genai/__init__.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/google_genai/config.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/google_genai/utils.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/google_genai/version.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/httpx/__init__.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/httpx/version.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/instruments.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/mistralai/__init__.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/mistralai/config.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/mistralai/utils.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/mistralai/version.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/openai/__init__.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/openai/version.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/openai/wrappers.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/weaviate/__init__.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/instrumentation/weaviate/version.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/pii.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/processors/__init__.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/processors/session_span_processor.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/scanner.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/session_manager.py +0 -0
- {netra_sdk-0.1.12 → netra_sdk-0.1.13}/netra/tracer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: netra-sdk
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.13
|
|
4
4
|
Summary: A Python SDK for AI application observability that provides OpenTelemetry-based monitoring, tracing, and PII protection for LLM and vector database applications. Enables easy instrumentation, session tracking, and privacy-focused data collection for AI systems in production environments.
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Keywords: netra,tracing,observability,sdk,ai,llm,vector,database
|
|
@@ -443,6 +443,7 @@ with Netra.start_span("image_generation") as span:
|
|
|
443
443
|
|
|
444
444
|
# Track database operations and other actions
|
|
445
445
|
action = ActionModel(
|
|
446
|
+
start_time="2025-07-18T10:29:30.855287Z",
|
|
446
447
|
action="DB",
|
|
447
448
|
action_type="INSERT",
|
|
448
449
|
affected_records=[
|
|
@@ -460,6 +461,7 @@ with Netra.start_span("image_generation") as span:
|
|
|
460
461
|
|
|
461
462
|
# Record API calls
|
|
462
463
|
api_action = ActionModel(
|
|
464
|
+
start_time="2025-07-18T10:29:30.855287Z",
|
|
463
465
|
action="API",
|
|
464
466
|
action_type="CALL",
|
|
465
467
|
metadata={
|
|
@@ -480,6 +482,7 @@ Action tracking follows this schema:
|
|
|
480
482
|
```python
|
|
481
483
|
[
|
|
482
484
|
{
|
|
485
|
+
"start_time": str, # Start time of the action
|
|
483
486
|
"action": str, # Type of action (e.g., "DB", "API", "CACHE")
|
|
484
487
|
"action_type": str, # Action subtype (e.g., "INSERT", "SELECT", "CALL")
|
|
485
488
|
"affected_records": [ # Optional: List of records affected
|
|
@@ -367,6 +367,7 @@ with Netra.start_span("image_generation") as span:
|
|
|
367
367
|
|
|
368
368
|
# Track database operations and other actions
|
|
369
369
|
action = ActionModel(
|
|
370
|
+
start_time="2025-07-18T10:29:30.855287Z",
|
|
370
371
|
action="DB",
|
|
371
372
|
action_type="INSERT",
|
|
372
373
|
affected_records=[
|
|
@@ -384,6 +385,7 @@ with Netra.start_span("image_generation") as span:
|
|
|
384
385
|
|
|
385
386
|
# Record API calls
|
|
386
387
|
api_action = ActionModel(
|
|
388
|
+
start_time="2025-07-18T10:29:30.855287Z",
|
|
387
389
|
action="API",
|
|
388
390
|
action_type="CALL",
|
|
389
391
|
metadata={
|
|
@@ -404,6 +406,7 @@ Action tracking follows this schema:
|
|
|
404
406
|
```python
|
|
405
407
|
[
|
|
406
408
|
{
|
|
409
|
+
"start_time": str, # Start time of the action
|
|
407
410
|
"action": str, # Type of action (e.g., "DB", "API", "CACHE")
|
|
408
411
|
"action_type": str, # Action subtype (e.g., "INSERT", "SELECT", "CALL")
|
|
409
412
|
"affected_records": [ # Optional: List of records affected
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
3
|
import time
|
|
4
|
+
from datetime import datetime, timezone
|
|
4
5
|
from typing import Any, Dict, List, Literal, Optional
|
|
5
6
|
|
|
6
7
|
from opentelemetry import context as context_api
|
|
@@ -17,6 +18,7 @@ logger = logging.getLogger(__name__)
|
|
|
17
18
|
|
|
18
19
|
|
|
19
20
|
class ActionModel(BaseModel): # type: ignore[misc]
|
|
21
|
+
start_time: str = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%S.%fZ")
|
|
20
22
|
action: str
|
|
21
23
|
action_type: str
|
|
22
24
|
success: bool
|
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "netra-sdk"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.13"
|
|
8
8
|
description = "A Python SDK for AI application observability that provides OpenTelemetry-based monitoring, tracing, and PII protection for LLM and vector database applications. Enables easy instrumentation, session tracking, and privacy-focused data collection for AI systems in production environments."
|
|
9
9
|
authors = [
|
|
10
10
|
{name = "Sooraj Thomas",email = "sooraj@keyvalue.systems"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|