gRPC Python CSM Observability
=============================
Package for gRPC Python CSM Observability.
Installation
------------
Currently gRPC Python CSM Observability is **only available for Linux**.
Installing From PyPI
~~~~~~~~~~~~~~~~~~~~
::
$ pip install grpcio-csm-observability
Installing From Source
~~~~~~~~~~~~~~~~~~~~~~
::
$ export REPO_ROOT=grpc # REPO_ROOT can be any directory of your choice
$ git clone -b RELEASE_TAG_HERE https://github.com/grpc/grpc $REPO_ROOT
$ cd $REPO_ROOT
$ git submodule update --init
$ cd src/python/grpcio_csm_observability
# For the next command do `sudo pip install` if you get permission-denied errors
$ pip install .
Dependencies
------------
gRPC Python CSM Observability Depends on the following packages:
::
grpcio
grpcio-observability
opentelemetry-sdk
Usage
-----
Example usage is similar to `the example here <https://github.com/grpc/grpc/tree/master/examples/python/observability>`_, instead of importing from ``grpc_observability``, you should import from ``grpc_csm_observability``:
.. code-block:: python
import grpc_csm_observability
csm_otel_plugin = grpc_csm_observability.CsmOpenTelemetryPlugin(
meter_provider=provider
)
We also provide several environment variables to help you optimize gRPC python observability for your particular use.
* Note: The term "Census" here is just for historical backwards compatibility reasons and does not imply any dependencies.
1. GRPC_PYTHON_CENSUS_EXPORT_BATCH_INTERVAL
* This controls how frequently telemetry data collected within gRPC Core is sent to Python layer.
* Default value is 0.5 (Seconds).
2. GRPC_PYTHON_CENSUS_MAX_EXPORT_BUFFER_SIZE
* This controls the maximum number of telemetry data items that can be held in the buffer within gRPC Core before they are sent to Python.
* Default value is 10,000.
3. GRPC_PYTHON_CENSUS_EXPORT_THRESHOLD
* This setting acts as a trigger: When the buffer in gRPC Core reaches a certain percentage of its capacity, the telemetry data is sent to Python.
* Default value is 0.7 (Which means buffer will start export when it's 70% full).
4. GRPC_PYTHON_CENSUS_EXPORT_THREAD_TIMEOUT
* This controls the maximum time allowed for the exporting thread (responsible for sending data to Python) to complete.
* Main thread will terminate the exporting thread after this timeout.
* Default value is 10 (Seconds).
Raw data
{
"_id": null,
"home_page": "https://grpc.io",
"name": "grpcio-csm-observability",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": null,
"author": "The gRPC Authors",
"author_email": "grpc-io@googlegroups.com",
"download_url": "https://files.pythonhosted.org/packages/ec/25/7dd2983f95dd42a62f59239153293da42628b10b869e6dd287e3b938dceb/grpcio_csm_observability-1.74.0.tar.gz",
"platform": null,
"description": "gRPC Python CSM Observability\n=============================\n\nPackage for gRPC Python CSM Observability.\n\n\nInstallation\n------------\n\nCurrently gRPC Python CSM Observability is **only available for Linux**.\n\nInstalling From PyPI\n~~~~~~~~~~~~~~~~~~~~\n\n::\n\n $ pip install grpcio-csm-observability\n\n\nInstalling From Source\n~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n $ export REPO_ROOT=grpc # REPO_ROOT can be any directory of your choice\n $ git clone -b RELEASE_TAG_HERE https://github.com/grpc/grpc $REPO_ROOT\n $ cd $REPO_ROOT\n $ git submodule update --init\n\n $ cd src/python/grpcio_csm_observability\n\n # For the next command do `sudo pip install` if you get permission-denied errors\n $ pip install .\n\n\nDependencies\n------------\ngRPC Python CSM Observability Depends on the following packages:\n\n::\n\n grpcio\n grpcio-observability\n opentelemetry-sdk\n\n\nUsage\n-----\n\nExample usage is similar to `the example here <https://github.com/grpc/grpc/tree/master/examples/python/observability>`_, instead of importing from ``grpc_observability``, you should import from ``grpc_csm_observability``:\n\n.. code-block:: python\n\n import grpc_csm_observability\n \n csm_otel_plugin = grpc_csm_observability.CsmOpenTelemetryPlugin(\n meter_provider=provider\n )\n\n\nWe also provide several environment variables to help you optimize gRPC python observability for your particular use.\n\n* Note: The term \"Census\" here is just for historical backwards compatibility reasons and does not imply any dependencies.\n\n1. GRPC_PYTHON_CENSUS_EXPORT_BATCH_INTERVAL\n * This controls how frequently telemetry data collected within gRPC Core is sent to Python layer.\n * Default value is 0.5 (Seconds).\n\n2. GRPC_PYTHON_CENSUS_MAX_EXPORT_BUFFER_SIZE\n * This controls the maximum number of telemetry data items that can be held in the buffer within gRPC Core before they are sent to Python.\n * Default value is 10,000.\n\n3. GRPC_PYTHON_CENSUS_EXPORT_THRESHOLD\n * This setting acts as a trigger: When the buffer in gRPC Core reaches a certain percentage of its capacity, the telemetry data is sent to Python.\n * Default value is 0.7 (Which means buffer will start export when it's 70% full).\n\n4. GRPC_PYTHON_CENSUS_EXPORT_THREAD_TIMEOUT\n * This controls the maximum time allowed for the exporting thread (responsible for sending data to Python) to complete.\n * Main thread will terminate the exporting thread after this timeout.\n * Default value is 10 (Seconds).\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "gRPC Python CSM observability package",
"version": "1.74.0",
"project_urls": {
"Bug Tracker": "https://github.com/grpc/grpc/issues",
"Homepage": "https://grpc.io",
"Source Code": "https://github.com/grpc/grpc/tree/master/src/python/grpcio_csm_observability"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "14eec8e9a36c9e064b4c8bcbdcc5b783a453ce7dd2e1d18521e75adb8cb85bfe",
"md5": "99334318ce78e10ddda3907d41201289",
"sha256": "7270c8330a42b8d32c1a194cb5418d5069d20cad86dbbfb7784cb75cd31e45ef"
},
"downloads": -1,
"filename": "grpcio_csm_observability-1.74.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "99334318ce78e10ddda3907d41201289",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 15868,
"upload_time": "2025-07-24T19:01:26",
"upload_time_iso_8601": "2025-07-24T19:01:26.169517Z",
"url": "https://files.pythonhosted.org/packages/14/ee/c8e9a36c9e064b4c8bcbdcc5b783a453ce7dd2e1d18521e75adb8cb85bfe/grpcio_csm_observability-1.74.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ec257dd2983f95dd42a62f59239153293da42628b10b869e6dd287e3b938dceb",
"md5": "3156ce8b58d61f5745277f4c2fbb98c7",
"sha256": "bc33fd882175aa68a6f3bdd7d714f8073a60872c5f6c6ddc2c5369633ee44d88"
},
"downloads": -1,
"filename": "grpcio_csm_observability-1.74.0.tar.gz",
"has_sig": false,
"md5_digest": "3156ce8b58d61f5745277f4c2fbb98c7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 15828,
"upload_time": "2025-07-24T19:01:59",
"upload_time_iso_8601": "2025-07-24T19:01:59.976422Z",
"url": "https://files.pythonhosted.org/packages/ec/25/7dd2983f95dd42a62f59239153293da42628b10b869e6dd287e3b938dceb/grpcio_csm_observability-1.74.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-24 19:01:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "grpc",
"github_project": "grpc",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "coverage",
"specs": [
[
">=",
"4.0"
]
]
},
{
"name": "cython",
"specs": [
[
"==",
"3.1.1"
]
]
},
{
"name": "protobuf",
"specs": [
[
">=",
"6.31.1"
],
[
"<",
"7.0.0"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.12.2"
]
]
},
{
"name": "wheel",
"specs": [
[
">=",
"0.29"
]
]
}
],
"lcname": "grpcio-csm-observability"
}