Protocol buffers and gRPC service definitions for building Chaukas-compatible observability backends
Project description
Chaukas Spec Server
Protocol buffers and gRPC service definitions for building Chaukas-compatible observability backends
What is this?
chaukas-spec-server provides the server-side Protocol Buffer definitions and gRPC service interfaces for the Chaukas agent observability platform. Use this package to:
- Build observability backends that comply with the Chaukas specification
- Implement gRPC services for ingesting agent telemetry
- Process and store 19+ standardized event types
- Provide analytics on agent performance and behavior
- Enable compliance with audit trail requirements
Who should use this?
- Platform engineers building observability and monitoring platforms
- Backend developers implementing telemetry collection services
- DevOps teams deploying agent monitoring infrastructure
- Security teams building compliance and audit systems
Note: If you're instrumenting an agent or SDK to send events, use
chaukas-spec-clientinstead.
Installation
pip install chaukas-spec-server
Quick Start
from concurrent import futures
import grpc
from chaukas.spec.server.v1.server_pb2_grpc import (
ChaukasServerServiceServicer,
add_ChaukasServerServiceServicer_to_server
)
from chaukas.spec.server.v1.server_pb2 import IngestEventResponse
class MyChaukasServer(ChaukasServerServiceServicer):
def IngestEvent(self, request, context):
# Process the event
event = request.event
print(f"Received event: {event.event_id} of type {event.type}")
# Store in your database, send to analytics, etc.
# ...
# Return response with processing details
return IngestEventResponse(
event_id=event.event_id,
status="accepted",
processed_at=int(time.time() * 1000)
)
# Start gRPC server
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
add_ChaukasServerServiceServicer_to_server(MyChaukasServer(), server)
server.add_insecure_port('[::]:50051')
server.start()
server.wait_for_termination()
Server-Specific Features
The server package includes additional capabilities beyond the client package:
Enhanced Response Types
- IngestEventResponse - Detailed ingestion status with timestamps
- IngestEventBatchResponse - Batch processing results with accept/reject counts
- GetEventStatsResponse - Analytics and statistics on event data
Additional RPC Methods
- GetEventStats - Retrieve aggregated statistics by tenant, project, or time range
Event Analytics
def GetEventStats(self, request, context):
# Return aggregated metrics
return GetEventStatsResponse(
total_events=1000,
total_sessions=50,
events_by_type={
"EVENT_TYPE_AGENT_START": 50,
"EVENT_TYPE_MODEL_INVOCATION_START": 300,
},
avg_session_duration_ms=45000.0
)
Event Types
Handle comprehensive event types for complete agent observability:
| Category | Event Types |
|---|---|
| Session | SESSION_START, SESSION_END |
| Agent | AGENT_START, AGENT_END, AGENT_HANDOFF |
| Model | MODEL_INVOCATION_START, MODEL_INVOCATION_END |
| Tools | TOOL_CALL_START, TOOL_CALL_END, MCP_CALL_START, MCP_CALL_END |
| I/O | INPUT_RECEIVED, OUTPUT_EMITTED |
| Errors | ERROR, RETRY |
| Extensions | POLICY_DECISION, DATA_ACCESS, STATE_UPDATE, SYSTEM |
Package Contents
chaukas/spec/
├── server/v1/ # Server gRPC service interfaces
│ ├── server_pb2.py
│ └── server_pb2_grpc.py
└── common/v1/ # Shared event definitions
├── events_pb2.py
└── query_pb2.py
Architecture Considerations
When building your observability backend:
- Storage: Design for high-volume event ingestion (consider time-series databases)
- Multi-tenancy: Use tenant_id and project_id fields for isolation
- Analytics: Pre-aggregate statistics for common queries
- Compliance: Implement WORM (Write-Once-Read-Many) for audit trails
- Privacy: Respect PII categorization and redaction fields
- Performance: Use batch ingestion for high-throughput scenarios
Documentation
- Full Specification: chaukas-spec repository
- Protocol Definitions: proto/chaukas/spec/
- Architecture: See main README
- Examples: Usage examples
Related Packages
- chaukas-spec-client - Client-side SDK for sending events
- chaukas-sdk - One-line instrumentation for popular agent frameworks
Contributing
We welcome contributions! Please see our Contributing Guide and Code of Conduct.
License
Apache 2.0 - See LICENSE for details.
Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Security: See SECURITY.md
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chaukas_spec_server-1.0.5.tar.gz.
File metadata
- Download URL: chaukas_spec_server-1.0.5.tar.gz
- Upload date:
- Size: 27.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a5de124f052e14163f81b0d10a6c98a78ba863a202e199311fe20ef4e7e0d85
|
|
| MD5 |
6b2289c9d43e85d22efc5b97a03ad734
|
|
| BLAKE2b-256 |
0f39a9e34a919ed795a3037957914805c4a66dc9435c583a424e02d2ffb5f5b3
|
Provenance
The following attestation bundles were made for chaukas_spec_server-1.0.5.tar.gz:
Publisher:
release.yml on chaukasai/chaukas-spec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chaukas_spec_server-1.0.5.tar.gz -
Subject digest:
5a5de124f052e14163f81b0d10a6c98a78ba863a202e199311fe20ef4e7e0d85 - Sigstore transparency entry: 690600089
- Sigstore integration time:
-
Permalink:
chaukasai/chaukas-spec@f1889cea3f05e64b44f7ca6935118c90b561e001 -
Branch / Tag:
refs/tags/v1.0.5 - Owner: https://github.com/chaukasai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f1889cea3f05e64b44f7ca6935118c90b561e001 -
Trigger Event:
push
-
Statement type:
File details
Details for the file chaukas_spec_server-1.0.5-py3-none-any.whl.
File metadata
- Download URL: chaukas_spec_server-1.0.5-py3-none-any.whl
- Upload date:
- Size: 28.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70738b095cda8e94e74151f89257ee70af58bbcfdf0805865733c1000435561e
|
|
| MD5 |
e38c9522cfc70871ea3dbf36f4f37e63
|
|
| BLAKE2b-256 |
449e1d74a5a7a20d25dc7996e959934d20d7e3218d3ce693c5dd2f49cd751ee0
|
Provenance
The following attestation bundles were made for chaukas_spec_server-1.0.5-py3-none-any.whl:
Publisher:
release.yml on chaukasai/chaukas-spec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chaukas_spec_server-1.0.5-py3-none-any.whl -
Subject digest:
70738b095cda8e94e74151f89257ee70af58bbcfdf0805865733c1000435561e - Sigstore transparency entry: 690600091
- Sigstore integration time:
-
Permalink:
chaukasai/chaukas-spec@f1889cea3f05e64b44f7ca6935118c90b561e001 -
Branch / Tag:
refs/tags/v1.0.5 - Owner: https://github.com/chaukasai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f1889cea3f05e64b44f7ca6935118c90b561e001 -
Trigger Event:
push
-
Statement type: