Component Types template
Component types are defined using a YAML manifest with the following structure:
1
# General section
2
name: function_branin
3
description: A component type for the branin analytical function
4
5
# Parameters section
6
parameters:
7
- name: x1
8
domain:
9
type: real
10
domain: [-5.0, 10.0]
11
defaultValue: -5.0
12
decimals: 3
13
operators:
14
FileConfigurator:
15
confTemplate: "${value}"
16
17
- name: x2
18
domain:
19
type: real
20
domain: [0.0, 15.0]
21
defaultValue: 0.0
22
23
- name: x3
24
domain:
25
type: categorical
26
categories: [cat1,cat2,cat3]
27
operators:
28
LinuxConfigurator:
29
echo:
30
file: /sys/class/block/nvme0n1/queue/scheduler
31
32
# Metrics section
33
metrics:
34
- name: function_value
and properties for the general section:
Field | Type | Value restrictions | Is required | Default value | Description |
---|---|---|---|---|---|
name | string | should match the following regexp: ^[a-zA-Z][a-zA-Z0-9_]*$ that is only letters, number and underscores, no initial number of underscore Notice: this should not match the name of another component | Yes | | The name of the component. |
description | string | | Yes | | A description to characterize the component. |
componentType | string | notice: this should match the name of an existing component-type | Yes | | The name of the component-type that defines the type of the component. |
properties | object | | No | | General custom properties of the component. These properties can be defined freely and usually have the purpose to expose information useful for configuring the component. |
The parameter section describes the relationship between the component type and already defined parameters with the following properties:
Field | Type | Value restrictions | Is required | Default value | Description |
---|---|---|---|---|---|
name | string | It should match the name of an existing parameter. | Yes | - | The name of the parameter that should be related to the component-type |
domain->type | string | {real, integer, categorical} | Yes | - | The type of domain to be set for the parameter in relationship with the component-type |
domain->domain | array of numbers | The numbers should be either all integers or real numbers(do not omit the " . ") depending on domain->type .The size of the array must be 2. | No | - | The bounds to be used to define the domain of the parameter. These bounds are inclusive |
domain->categories | array of strings | | No | - | The possible categories that the parameter could possess |
defaultValue | string, integer, real | The value must be included in the domain, for real and integer types and must be a value included in the categories | Yes | - | The default value of the parameter |
decimals | integer | [0-255] | No | 5 | The number of decimal digits rendered for this parameter |
operators | object | Yes | - | Specify what operators can be used to apply the parameter |
The metric section describes the relationship between the component type and already defined metrics with the following properties:
Field | Type | Value restrictions | Is required | Default value | Description |
---|---|---|---|---|---|
name | string | It should match the name of an existing metric | Yes | | The name of the metric that should be related to the component type |
Notice that component type definitions are shared across all the workspaces on the same Akamas installation, and require an account with administrative privileges to manage them.
Example of a component for the Cassandra component type:
1
name: Cassandra
2
description: The Cassandra NoSQL database version 3
3
parameters:
4
- name: cassandra_compactionStrategy
5
domain:
6
type: categorical
7
categories: [A, B]
8
defaultValue: A
9
10
metrics:
11
- name: total_rate
12
- name: read_rate
13
- name: write_rate
14
- name: read_response_time_avg
15
- name: read_response_time_p90
16
- name: read_response_time_p99
17
- name: read_response_time_max
18
- name: write_response_time_avg
19
- name: write_response_time_p90
20
- name: write_response_time_p99
21
- name: write_response_time_max
Example of a component for the Linux operating component type:
1
name: Linux OS
2
description: A component type for the Linux Operating System
3
parameters:
4
#CPU Related
5
- name: os_cpuSchedMinGranularity
6
domain:
7
type: integer
8
domain: [300000, 30000000]
9
defaultValue: 3000000
10
- name: os_cpuSchedWakeupGranularity
11
domain:
12
type: integer
13
domain: [400000, 40000000]
14
defaultValue: 4000000
15
- name: osCpu.schedMigrationCost
16
domain:
17
type: integer
18
domain: [100000, 5000000]
19
defaultValue: 500000
20
- name: os_CPUSchedChildRunsFirst
21
domain:
22
type: integer
23
domain: [0, 1]
24
defaultValue: 0
25
- name: os_CPUSchedLatency
26
domain:
27
type: integer
28
domain: [2400000, 240000000]
29
defaultValue: 24000000
30
- name: os_CPUSchedAutogroupEnabled
31
domain:
32
type: integer
33
domain: [0, 1]
34
defaultValue: 1
35
- name: os_CPUSchedNrMigrate
36
domain:
37
type: integer
38
domain: [3, 320]
39
defaultValue: 32
40
#Memory Related
41
- name: os_MemorySwappiness
42
domain:
43
type: integer
44
domain: [0, 100]
45
defaultValue: 60
46
- name: os_MemoryVmVfsCachePressure
47
domain:
48
type: integer
49
domain: [10, 100]
50
defaultValue: 100
51
- name: os_MemoryVmMinFree
52
domain:
53
type: integer
54
domain: [10240, 1024000]
55
defaultValue: 67584
56
- name: os_MemoryVmDirtyRatio
57
domain:
58
type: integer
59
domain: [1, 99]
60
defaultValue: 10
61
- name: os_MemoryTransparentHugepageEnabled
62
domain:
63
type: categorical
64
categories: ['True', 'False']
65
defaultValue: 'True'
66
- name: os_MemoryTransparentHugepageDefrag
67
domain:
68
type: categorical
69
categories: ['True', 'False']
70
defaultValue: 'True'
71
- name: os_MemorySwap
72
domain:
73
type: categorical
74
categories: ['True', 'False']
75
defaultValue: 'True'
76
- name: os_MemoryVmDirtyExpire
77
domain:
78
type: integer
79
domain: [300, 30000]
80
defaultValue: 3000
81
- name: os_MemoryVmDirtyWriteback
82
domain:
83
type: integer
84
domain: [50, 5000]
85
defaultValue: 500
86
87
metrics:
88
- name: cpu_num
89
- name: cpu_util
90
- name: mem_util
91
- name: load_avg
92
- name: swapins
93
- name: swapouts
94
- name: disk_iops_writes
95
- name: disk_iops_reads
96
- name: disk_iops_total
97
- name: disk_await_worst
98
- name: proc_blocked
99
- name: context_switch
100
- name: tcp_retrans
101
- name: tcp_tozerowin
102
- name: net_band_rx_bits
103
- name: net_band_tx_bits
104
- name: network_in_byte_rate
105
- name: network_out_byte_rate
106
- name: mem_fault_minor
107
- name: mem_fault_major
108
- name: mem_active_file
109
- name: mem_active_anon
110
- name: mem_inactive_file
111
- name: mem_inactive_anon
Last modified 12d ago