Supported telemetry types
The ClickHouse integration supports these telemetry types:Prerequisites
The ClickHouse integration has the following prerequisites:- A ClickHouse HTTP interface that the Chronosphere XDOT Collector can reach.
- A ClickHouse account that can run
SELECT 1and read thesystem.metrics,system.events,system.asynchronous_metrics,system.parts,system.replicas, andsystem.dictionariestables.
Configure
To configure the ClickHouse integration, follow these steps:- For discovered ClickHouse targets, provide the HTTP endpoint and credentials through autodiscovery annotations. For more information, see autodiscovery.
-
Optional: Manually configure ClickHouse servers as an alternative to
autodiscovery. List each HTTP interface URL under
instances, and provide the password through your deployment’s secret management. For example, the following Helm values reference theCLICKHOUSE_PASSWORDenvironment variable:
Validate
To validate the ClickHouse integration, follow these steps:-
In Live Telemetry Analyzer, filter for
cxdot.integration.name=clickhouse. Confirm that the ClickHouse metric names appear. -
In Metrics Explorer, run the following query while the ClickHouse servers
process queries:
Confirm that the query returns the expected time series for each target.
Troubleshooting
- Some expected ClickHouse metrics are missing: Confirm that the ClickHouse account can read every system table listed in the prerequisites. The integration collects different metric groups from different system tables, so a permissions error can affect only part of the collected data.
Configuration reference
Configure one ClickHouse integration instance with the following settings. In Helm values, place these settings underconfig.integrations.clickhouse. In a Collector configuration file, place
them under cxdot.integrations.clickhouse.
Optional settings
-
enabledType:boolean. Optional. Default:true. Whether to enable this ClickHouse integration instance. If true, the Collector runs the instance. If false, the Collector doesn’t run it. -
usernameType:string. Optional. Default:default. ClickHouse user name for static instance connections. -
passwordType:string. Optional. ClickHouse password for static instance connections. The Collector masks this sensitive value in diagnostic output, logs, and errors. -
databaseType:string. Optional. Default:default. Database to attach the connection to. -
collection_intervalType:duration. Optional. Default:15s. How often the Collector collects metrics from each ClickHouse target. -
timeoutType:duration. Optional. Default:15s. Maximum time allowed to collect metrics from one ClickHouse instance. The value must not exceedcollection_interval. -
instancesType:array of object. Optional. Static ClickHouse instances. A nonempty list disables automatic discovery for this integration instance, and the Collector collects metrics from only the listed instances. Specify eachendpointas the full URL of the ClickHouse HTTP interface, such ashttp://clickhouse.default.svc:8123. Use an HTTPS URL and thetlssettings for a connection that uses TLS. -
instances[].endpointType:string. Required. URL of the instance’s HTTP interface. -
tlsType:object. Optional. Transport layer security (TLS) settings for static HTTPS instances. Certificate verification is enabled unlessinsecure_skip_verifyis true. These settings don’t apply to HTTP instances or targets configured through discovery annotations. -
tls.ca_fileType:string. Optional. Path to the CA cert. For a client this verifies the server certificate. For a server this verifies client certificates. If empty uses system root CA. (optional) -
tls.ca_pemType:string. Optional. In memory PEM encoded cert. (optional) -
tls.cert_fileType:string. Optional. Path to the TLS cert to use for TLS required connections. (optional) -
tls.cert_pemType:string. Optional. In memory PEM encoded TLS cert to use for TLS required connections. (optional) -
tls.cipher_suitesType:array of string. Optional. CipherSuites is a list of TLS cipher suites that the TLS transport can use. If left blank, a safe default list is used. See https://go.dev/src/crypto/tls/cipher_suites.go for a list of supported cipher suites. -
tls.curve_preferencesType:array of string. Optional. contains the elliptic curves that will be used in an ECDHE handshake, in preference order Defaults to empty list and “crypto/tls” defaults are used, internally. -
tls.include_system_ca_certs_poolType:boolean. Optional. If true, load system CA certificates pool in addition to the certificates configured in this struct. -
tls.insecureType:boolean. Optional. In gRPC and HTTP when set to true, this is used to disable the client transport security. See https://godoc.org/google.golang.org/grpc#WithInsecure for gRPC. Please refer to https://godoc.org/crypto/tls#Config for more information. (optional, default false) -
tls.insecure_skip_verifyType:boolean. Optional. InsecureSkipVerify will enable TLS but not verify the certificate. -
tls.key_fileType:string. Optional. Path to the TLS key to use for TLS required connections. (optional) -
tls.key_pemType:string. Optional. In memory PEM encoded TLS key to use for TLS required connections. (optional) -
tls.max_versionType:string. Optional. MaxVersion sets the maximum TLS version that is acceptable. If not set, refer to crypto/tls for defaults. (optional) -
tls.min_versionType:string. Optional. MinVersion sets the minimum TLS version that is acceptable. If not set, TLS 1.2 will be used. (optional) -
tls.reload_intervalType:duration. Optional. ReloadInterval specifies the duration after which the certificate will be reloaded If not set, it will never be reloaded (optional) -
tls.server_name_overrideType:string. Optional. ServerName requested by client for virtual hosting. This sets the ServerName in the TLSConfig. Please refer to https://godoc.org/crypto/tls#Config for more information. (optional) -
tls.tpmType:object. Optional. Trusted platform module configuration -
tls.tpm.authType:string. Optional. Authorization value for the trusted platform module key. -
tls.tpm.enabledType:boolean. Optional. Whether to use a trusted platform module for the TLS private key. If true, the Collector loads the key from the configured device or socket. If false, the Collector uses the configured key file or in-memory key. -
tls.tpm.owner_authType:string. Optional. Owner authorization value for the trusted platform module. -
tls.tpm.pathType:string. Optional. The path to the TPM device or Unix domain socket. For instance /dev/tpm0 or /dev/tpmrm0.

