microsoft.opentelemetry.a365.core.exporters.persistent_storage module

Agent365 record adapter for Azure Monitor’s offline storage provider.

class microsoft.opentelemetry.a365.core.exporters.persistent_storage.DurableRecord(schema_version, tenant_id, agent_id, agentic_user_id, use_s2s_endpoint, payload, created_at, lease_until=None, retry_count=0, record_id=None)[source]

Bases: object

An identity and telemetry payload, never a replay URL or bearer token.

schema_version: int
tenant_id: str
agent_id: str
agentic_user_id: str | None
use_s2s_endpoint: bool
payload: str
created_at: float
lease_until: float | None = None
retry_count: int = 0
record_id: int | None = None
static new(key, payload)[source]

Construct an unpersisted record from an IdentityKey.

Return type:

DurableRecord

class microsoft.opentelemetry.a365.core.exporters.persistent_storage.PersistentStorage(directory=None, capacity_bytes=52428800, retention_seconds=172800)[source]

Bases: object

Adapt Agent365 replay to Azure Monitor’s files, leases and permissions.

Each blob holds one identity envelope. Configured roots get an a365 child. Use separate sibling roots for Azure Monitor and Agent365; shared or overlapping cache paths are unsupported and are not rejected.

store(record)[source]

Persist one envelope using the upstream atomic blob writer.

Return type:

bool

claim(limit, lease_seconds)[source]

Lease blobs with serialized Windows enumeration and lease transitions.

Return type:

list[DurableRecord]

delete(record_id)[source]

Delete a claimed blob, reporting upstream’s otherwise-silent failure.

Return type:

bool

release(record_id)[source]

Expire a claimed blob’s lease so another replay pass can claim it.

Return type:

bool

close()[source]

Stop the upstream maintenance task.

Return type:

None