Configuration reference
Important
This information refers to the previous helm install method for the ITRS Analytics Platform. If you are looking to install using the more streamlined Kubernetes Off-the-Shelf (KOTS) method, see the updated deployment options.
ITRS provides sample configuration files for installing an ITRS Analytics instance. You can download sample scenarios in Sample configuration files.
Advanced configuration settings are all optional.
You are not required to change the settings described here for a default installation of ITRS Analytics.
Resource settings Copied
For each ITRS Analytics workload there is a resources parameter that defines the resource requests and limits for the pods in that workload. We recommend setting these parameters for all applications, otherwise some pods may consume all available resources on your Kubernetes cluster.
The provided configuration examples have baseline resources and limits set for all workloads. They can be altered as needed, for example:
kafka:
resources:
requests:
memory: "1Gi"
cpu: "500m"
limits:
memory: "2Gi"
cpu: "1"
ClickHouse volume sizing Copied
The current sample configuration files for fresh installs use clickhouse rather than timescale. Each ClickHouse workload has its own disk settings under clickhouse.platform, clickhouse.metrics, clickhouse.logs, and clickhouse.traces.
clickhouse:
traces:
diskSize: "80Gi"
metrics:
diskSize: "500Gi"
diskCount: 4
storageClass: "gp3-clickhouse"
platform:
diskSize: "100Gi"
storageClass: "gp3-clickhouse"
logs:
diskSize: "500Gi"
storageClass: "gp3-clickhouse"
keeper:
replicas: 3
Use diskSize to set the size of the persistent volume for a ClickHouse workload. Each ClickHouse workload also supports diskCount, which can be used to distribute data across multiple disks. In practice, this is most likely to be used for traces, metrics, and logs, but it is available for all ClickHouse workloads. You can also set storageClass per workload when ClickHouse data needs a different storage class from defaultStorageClass.
When clickhouse.metrics.diskCount is greater than 1, calculate the total metrics disk capacity per replica using the following formula:
clickhouse.metrics.diskSize * clickhouse.metrics.diskCount
The clickhouse.keeper.replicas setting controls the size of the ClickHouse Keeper cluster used by replicated ClickHouse deployments.
Note
The nginx sample configuration files still include commentedtimescaleandlokisections for upgrades from pre-2.18 deployments. These are upgrade-only examples and are not used for fresh installs.
Kafka retention settings Copied
The kafka.defaultRetentionMillis parameter controls how long data is retained in Kafka topics, which defaults to
21600000 (6 hours).
ClickHouse on reserved nodes Copied
For larger deployments, you may want to run ClickHouse workloads on reserved Kubernetes nodes. The current medium and large sample configurations do this by using Kubernetes labels and taints on the nodes and nodeSelector and tolerations on the ClickHouse workloads.
-
Add a
labelto the ClickHouse nodes in the manifest or by usingkubectl:instancegroup: clickhouse-nodes -
Add a
taintto the ClickHouse nodes in the manifest or by usingkubectl:dedicated=clickhouse-nodes:NoSchedule -
Set the following for each ClickHouse workload that should run on the reserved nodes:
clickhouse: metrics: nodeSelector: instancegroup: clickhouse-nodes tolerations: - key: dedicated operator: Equal value: clickhouse-nodes effect: NoSchedule
Apply the same pattern to clickhouse.platform, clickhouse.logs, and clickhouse.traces if those workloads should also run on the reserved nodes.
Ingestion services Copied
ITRS Analytics supports ingesting data via two gRPC endpoints, which are both serviced from the same external host name (as defined by ingestion.externalHostname) and port (443).
The current sample configuration files tune ingestion by setting ingestion and ingestion.traces resources and producer settings, for example:
ingestion:
externalHostname: "iax-ingestion.mydomain.internal"
ingress:
className: "nginx"
annotations:
nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
traces:
sampler:
expectedSpanRate: 20000
producerProperties:
buffer.memory: 67108864
If your deployment ingests OpenTelemetry traces, review the ingestion.traces settings in the sample configuration that most closely matches your expected load. The larger sample configurations also override ingestion.traces.resources to account for higher span rates.
OpenTelemetry ingestion service Copied
While raw traces are currently not stored, the OpenTelemetry ingestion service in the ITRS Analytics platform captures the following metrics (where <span> is the span name):
<span>_count<span>_error_count<span>_latency
When pointing your instrumentation to the ITRS Analytics OpenTelemetry API, make sure to:
- Provide the correct endpoint. The service uses the same hostname and port to ingest OpenTelemetry data as it does other data.
- Add API keys with the following parameter values:
otel-client-username: ingestion-apiotel-client-password: ingestion
For more information, refer to the instrumentation guide from Open Telemetry.
Kubernetes log collection Copied
ITRS Analytics is configured to collect logs for Kubernetes pods and containers in the configured namespaces, or the ITRS Analytics namespace by default. This behavior is controlled by the following setting:
collection:
logs:
enabled: true
# Restrict collection to specific namespaces. If empty, only the ITRS Analytics installation namespace
# will be collected. To collect all, specify "*".
namespaces: []
Note
For the log collection process to function properly, theobcerv-operatorKubernetes service account must have appropriate permissions to create resources with read and write access tohostPathvolumes. The process for granting these permissions may vary depending on your Kubernetes distribution.