# Parameter template

Parameters are defined using a YAML manifest with the following structure:

```yaml
parameters:
  - name: jvm_heap_size
    description: the size of the heap of the jvm
    unit: megabytes
    restart: false
  - name: jvm_survival_ratio
    description:  the ratio of the two survivor spaces in the JVM GC
```

with the following properties:

| Field         | Type    | Value restrictions                                                                                                                                                | Is required | Default Value | Description                                                                                                      |
| ------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------------- | ---------------------------------------------------------------------------------------------------------------- |
| `name`        | string  | It should contain only lower/uppercase letters, numbers or underscores. It should start only with a letter. No spaces are allowed.                                | TRUE        |               | The name of the parameter                                                                                        |
| `description` | string  |                                                                                                                                                                   | TRUE        |               | A description characterizing the parameter                                                                       |
| `unit`        | string  | A supported unit or a custom unit (see [supported units of measure](https://docs.akamas.io/akamas-docs/3.6/reference/metric-template#supported-units-of-measure)) | FALSE       | *empty unit*  | The unit of measure of the parameter                                                                             |
| `restart`     | boolean |                                                                                                                                                                   | FALSE       | FALSE         | If the use of the parameters for changing the configuration of a system should cause the system to be restarted. |

Notice that parameter definitions are shared across all the workspaces on the same Akamas installation, and require an account with administrative privileges to manage them.

### Example <a href="#manifests-samples" id="manifests-samples"></a>

The following represents a set of parameters for a JVM component

```yaml
parameters:
  - name: jvm_maxHeapSize
    description: Maximum heap size
    unit: megabytes
    restart: true
  - name: jvm_newRatio
    description: Ratio of old/new generation sizes
    restart: true
  - name: jvm_maxTenuringThreshold
    description: Maximum value for tenuring threshold
    restart: true
  - name: jvm_survivorRatio
    description: Ratio of eden/survivor space size
    restart: true
  - name: jvm_concurrentGCThreads
    description: Number of threads concurrent garbage collection will use
    unit: threads
    restart: true
  - name: jvm_gcType
    description: Type of the garbage collection algorithm
    restart: true
```

The following represents a set of CPU-related parameters for the Linux operating system

```yaml
parameters:
  # CPU Related
  - name: os_cpu_sched_min_granularity_ns
    description: Target minimum scheduler period in which a single task will run
    unit: nanoseconds
    restart: false
  - name: os_cpu_sched_wakeup_granularity_ns
    unit: nanoseconds
    description: desc
    restart: false
  - name: os_cpu_sched_migration_cost_ns
    unit: nanoseconds
    description: desc
    restart: false
  - name: os_cpu_sched_child_runs_first
    description: desc
    restart: false
  - name: os_cpu_sched_latency_ns
    unit: nanoseconds
    description: desc
    restart: false
  - name: os_cpu_sched_autogroup_enabled
    description: desc
    restart: false
  - name: os_cpu_sched_nr_migrate
    description: desc
    restart: false
```
