{"id":23826,"library":"grpcio-csds","title":"gRPC xDS Configuration Dump Service","description":"Provides a client for the gRPC Client Status Discovery Service (CSDS), enabling retrieval of xDS configuration dumps for debugging and observability. Version 1.80.0 requires Python >=3.9, follows gRPC's major release cadence.","status":"active","version":"1.80.0","language":"python","source_language":"en","source_url":"https://github.com/grpc/grpc/tree/master/src/python/grpcio_csds","tags":["gRPC","xDS","service-mesh","envoy","observability"],"install":[{"cmd":"pip install grpcio-csds","lang":"bash","label":"pip install grpcio-csds"}],"dependencies":[{"reason":"Core gRPC library with xDS support","package":"grpcio","optional":false},{"reason":"Protocol Buffers for CSDS messages","package":"protobuf","optional":false}],"imports":[{"note":"Module name uses underscore, not hyphen.","wrong":"from grpcio_csds import ClientStatusDiscoveryServiceClient","symbol":"ClientStatusDiscoveryServiceClient","correct":"from grpc_csds import ClientStatusDiscoveryServiceClient"},{"note":"Stub for gRPC async calls.","symbol":"ClientStatusDiscoveryServiceStub","correct":"from grpc_csds import ClientStatusDiscoveryServiceStub"}],"quickstart":{"code":"import grpc\nfrom grpc_csds import ClientStatusDiscoveryServiceStub\nfrom grpc_csds.v2.client_status_pb2 import ClientStatusRequest\n\nchannel = grpc.insecure_channel('localhost:8080')\nstub = ClientStatusDiscoveryServiceStub(channel)\nrequest = ClientStatusRequest(node_identifiers=[])\nresponse = stub.FetchClientStatus(request)\nprint(response.config)\n","lang":"python","description":"Fetch xDS configuration from a CSDS server (assumes gRPC server on localhost:8080)."},"warnings":[{"fix":"Use `from grpc_csds import ...` as the import path.","message":"Import uses underscore (grpc_csds), not hyphen (grpcio-csds) as in the package name.","severity":"gotcha","affected_versions":"all"},{"fix":"Ensure GRPC_XDS_BOOTSTRAP environment variable is set or use `xds_credentials` when creating the channel.","message":"CSDS is only available if the gRPC channel is configured with xDS. Calling FetchClientStatus without xDS bootstrapping will cause errors.","severity":"gotcha","affected_versions":"all"},{"fix":"Use `from grpc_csds.v2 import ...` instead of `from grpc_csds.v1alpha1 import ...`.","message":"The v1alpha1 API is deprecated; use v2 API instead.","severity":"deprecated","affected_versions":">=1.60.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run `pip install grpcio-csds` and ensure import is `from grpc_csds import ...`.","cause":"Package not installed or import name typo (e.g., using grpcio_csds).","error":"ModuleNotFoundError: No module named 'grpc_csds'"},{"fix":"Use `ClientStatusDiscoveryServiceStub` from `grpc_csds` (v2) or import from `grpc_csds.v2`.","cause":"Using deprecated v1alpha1 API or incorrect class name.","error":"AttributeError: module 'grpc_csds' has no attribute 'ClientStatusDiscoveryServiceClient'"},{"fix":"Set `GRPC_XDS_BOOTSTRAP` environment variable to a valid JSON file or use `grpc.xds_channel_credentials()`.","cause":"gRPC channel not configured with xDS bootstrap.","error":"grpc.RpcError: ... Failed to fetch client status: xDS configuration not found"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}