Akamas Docs
3.2.2
Search
K

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
The name and the parameters of a supported workflow operators
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.

Examples

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