Settings
Client configuration
You can pass configuration arguments directly to the ClientConfig constructor, for example to configure the base url of your requests or any additional headers. For a list of all configuration arguments, see the ClientConfig class definition.
To initialise a CogniteClient
, simply pass this configuration object, (an instance of ClientConfig
) to it:
from cognite.client import CogniteClient, ClientConfig
from cognite.client.credentials import Token
my_config = ClientConfig(
client_name="my-client",
project="myproj",
credentials=Token("verysecret"),
)
client = CogniteClient(my_config)
Global configuration
You can set global configuration options like this:
from cognite.client import global_config, ClientConfig
from cognite.client.credentials import Token
global_config.default_client_config = ClientConfig(
client_name="my-client", project="myproj", credentials=Token("verysecret")
)
global_config.disable_pypi_version_check = True
global_config.disable_gzip = False
global_config.disable_ssl = False
global_config.max_retries = 10
global_config.max_retry_backoff = 10
global_config.max_connection_pool_size = 10
global_config.status_forcelist = {429, 502, 503, 504}
These must be set prior to instantiating a CogniteClient
in order for them to take effect.
Concurrency and connection pooling
This library does not expose API limits to the user. If your request exceeds API limits, the SDK splits your
request into chunks and performs the sub-requests in parallel. To control how many concurrent requests you send
to the API, you can either pass the max_workers
attribute to ClientConfig before
you instantiate the CogniteClient from it, or set the global max_workers
config option.
If you are working with multiple instances of CogniteClient, all instances will share the same connection pool.
If you have several instances, you can increase the max connection pool size to reuse connections if you are performing a large amount of concurrent requests.
You can increase the max connection pool size by setting the max_connection_pool_size
config option.
Debug logging
If you need to know the details of the http requests the SDK sends under the hood, you can enable debug logging. One way
is to pass debug=True
argument to ClientConfig. Alternatively, you can toggle debug
logging on and off by setting the debug
attribute on the ClientConfig object.
from cognite.client import CogniteClient, ClientConfig
from cognite.client.credentials import Token
client = CogniteClient(
ClientConfig(
client_name="my-client",
project="myproj",
credentials=Token("verysecret"),
debug=True,
)
)
print(client.config.debug) # True, all http request details will be logged
client.config.debug = False # disable debug logging
client.config.debug = True # enable debug logging again
HTTP Request logging
Internally this library uses the requests library to perform network calls to the Cognite API service endpoints.
The requests
library is in turn built on urllib3, which means that you can enable DEBUG level logging for
the urllib3
module to log HTTP requests to and from the Cognite API.
Please be advised that doing so may cause sensitive information such as authentication credentials and sensitive data to be logged, and this is not recommended in production environments, or where credentials cannot be easily disabled or rotated, or where log data may be accessed by others.