TELEMETRY PIPELINE
Resource profiles

Resource profiles

Chronosphere Telemetry Pipeline uses templates called resource profiles to configure settings related to buffering and resource consumption. You can choose between several predefined resource profiles or create your own resource profiles that meet your requirements for performance and reliability.

⚠️

To avoid the potential for data loss, avoid using improperly configured resource profiles or resource profiles incompatible with your environment, including profiles that exceed your available resources. Additionally, updating the resource profile for an existing pipeline causes that pipeline to update and potentially restart, which can interrupt the flow of data through that pipeline.

Predefined resource profiles

The following predefined resource profiles are available in Telemetry Pipeline:

  • best-effort-low-resource
  • high-performance-guaranteed-delivery
  • high-performance-optimal-throughput

If you don’t specify a resource profile when you create a pipeline, Telemetry Pipeline uses the best-effort-low-resource profile by default.

Each resource profile uses the following values:

TypeDescription
best-effort-low-resource- StorageMaxChunksUp: 128
- StorageSyncFull: false
- StorageBacklogMemLimit: 5M
- StorageVolumeSize: 250Mi
- CPULimit: 0
- CPURequest: 0
- MemoryLimit: 0
- MemoryRequest: 0
high-performance-guaranteed-delivery- StorageMaxChunksUp: 256
- StorageSyncFull: false
- StorageBacklogMemLimit: 256M
- StorageVolumeSize: 512Mi
- CPULimit: 0
- CPURequest: 0
- MemoryLimit: 0
- MemoryRequest: 0
high-performance-optimal-throughput- StorageMaxChunksUp: 0
- StorageSyncFull: false
- StorageBacklogMemLimit: ""
- StorageVolumeSize: 128Mi
- CPULimit: 0
- CPURequest: 0
- MemoryLimit: 0
- MemoryRequest: 0

You can’t edit these predefined resource profiles, but you can define new resource profiles.

Settings

Each resource profile includes the following settings:

Name in Pipeline CLIJSON configuration keyDescriptionPossible values
STORAGE-SYNC-FULLresources.storage.syncFullIf true, uses the full Fluent Bit storage.sync mode (opens in a new tab). If false, uses the normal mode. This setting affects only StatefulSet pipelines. If unspecified, defaults to false.true, false
STORAGE-BACKLOG-MEM-LIMITresources.storage.backlogMemLimitRequired. Sets the maximum memory size used for the backlog queue when storing data chunks that cannot be sent to output. This setting only affects StatefulSet pipelines, but it’s still required in all resource profile definitions.Memory in MB
STORAGE-VOLUME-SIZEresources.storage.volumeSizeRequired. Sets the size of the volume to mount in Pods for local storage processing.Volume size in Mi/Gi/Ti
STORAGE-MAX-CHUNKS-UPresources.storage.maxChunksUpSets the maximum number of data chunks that can be buffered in memory before being flushed to the filesystem. This setting only affects StatefulSet pipelines. If unspecified, defaults to 0.Any integer greater than or equal to 0
CPU-LIMITresources.cpu.limitRequired. Sets the CPU limit (opens in a new tab).Any Kubernetes CPU value (opens in a new tab)
CPU-REQUESTresources.cpu.requestRequired. Sets the CPU request (opens in a new tab).Any Kubernetes CPU value (opens in a new tab)
MEM-LIMITresources.memory.limitRequired. Sets the memory limit (opens in a new tab).Any Kubernetes memory value (opens in a new tab)
MEM-REQUESTresources.memory.requestRequired. Sets the memory request (opens in a new tab).Kubernetes memory value (opens in a new tab)

A value of 0 sets an unlimited upper bound.

Pipeline CLI commands

Use the following Pipeline CLI commands to interact with resource profiles.

Specify the resource profile for a new pipeline

Set the resource profile for a new pipeline by using the following command:

calyptia create pipeline --core-instance INSTANCE --name PIPELINE --resource-profile PROFILE

Replace the following:

  • INSTANCE: The name of your Core Instance.
  • PIPELINE: A name for your new pipeline.
  • PROFILE: The name of the resource profile to use.

Update the resource profile for an existing pipeline

Update the resource profile for an existing pipeline by using the following command:

calyptia update pipeline --name PIPELINE --resource-profile PROFILE

Replace the following:

  • PIPELINE: The name or unique ID of your pipeline.
  • PROFILE: The name of the resource profile to use.

Define a new resource profile

Use the following command to define your own resource profiles in Telemetry Pipeline:

calyptia create resource_profile --core-instance INSTANCE --name PROFILE --spec FILE_NAME

Replace the following:

  • INSTANCE: The name of your Core Instance.
  • PROFILE: A name for your new resource profile.
  • FILE_NAME: The JSON file that defines your resource profile.

This is an example of a resource profile with a valid JSON structure:

{
 "resources": {
  "storage": {
   "syncFull": false,
   "backlogMemLimit": "5M",
   "volumeSize": "250Mi",
   "maxChunksUp": 128,
  },
  "cpu": {
   "limit": "0",
   "request": "0",
  },
  "memory": {
   "limit": "0",
   "request": "0"
  }
 }
}
 

List available resource profiles

Use the following command to list the resource profiles associated with a specified Core Instance:

calyptia get resource_profiles --core-instance INSTANCE

Replace INSTANCE with the name of the Core Instance.

You can also add the --show-ids flag to print the unique IDs associated with each resource profile.

Get details about a resource profile

Use the following command to get details about a specific resource profile:

calyptia get resource_profile ID

Replace ID with the unique ID of that resource profile.

Delete a resource profile

Use the following command to delete a specific resource profile:

calyptia delete resource_profile ID

Replace ID with the unique ID of that resource profile.