github.com/sacloud/iaas-api-go@v1.12.0/internal/define/monitors.go (about) 1 // Copyright 2022-2023 The sacloud/iaas-api-go Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package define 16 17 import ( 18 "github.com/sacloud/iaas-api-go/internal/dsl" 19 "github.com/sacloud/iaas-api-go/internal/dsl/meta" 20 "github.com/sacloud/iaas-api-go/naked" 21 ) 22 23 type monitorsDef struct{} 24 25 var monitors = &monitorsDef{} 26 27 func (m *monitorsDef) cpuTimeModel() *dsl.Model { 28 return &dsl.Model{ 29 Name: "CPUTimeActivity", 30 Fields: []*dsl.FieldDesc{ 31 { 32 Name: "Values", 33 Type: &dsl.Model{ 34 Name: "MonitorCPUTimeValue", 35 NakedType: meta.Static(naked.MonitorCPUTimeValue{}), 36 IsArray: true, 37 Fields: []*dsl.FieldDesc{ 38 fields.MonitorTime(), 39 fields.MonitorCPUTime(), 40 }, 41 }, 42 Tags: &dsl.FieldTags{ 43 MapConv: "[]CPU", 44 }, 45 }, 46 }, 47 NakedType: meta.Static(naked.MonitorValues{}), 48 } 49 } 50 51 func (m *monitorsDef) diskModel() *dsl.Model { 52 return &dsl.Model{ 53 Name: "DiskActivity", 54 Fields: []*dsl.FieldDesc{ 55 { 56 Name: "Values", 57 Type: &dsl.Model{ 58 Name: "MonitorDiskValue", 59 NakedType: meta.Static(naked.MonitorDiskValue{}), 60 IsArray: true, 61 Fields: []*dsl.FieldDesc{ 62 fields.MonitorTime(), 63 fields.MonitorDiskRead(), 64 fields.MonitorDiskWrite(), 65 }, 66 }, 67 Tags: &dsl.FieldTags{ 68 MapConv: "[]Disk", 69 }, 70 }, 71 }, 72 NakedType: meta.Static(naked.MonitorValues{}), 73 } 74 } 75 76 func (m *monitorsDef) interfaceModel() *dsl.Model { 77 return &dsl.Model{ 78 Name: "InterfaceActivity", 79 Fields: []*dsl.FieldDesc{ 80 { 81 Name: "Values", 82 Type: &dsl.Model{ 83 Name: "MonitorInterfaceValue", 84 NakedType: meta.Static(naked.MonitorInterfaceValue{}), 85 IsArray: true, 86 Fields: []*dsl.FieldDesc{ 87 fields.MonitorTime(), 88 fields.MonitorInterfaceReceive(), 89 fields.MonitorInterfaceSend(), 90 }, 91 }, 92 Tags: &dsl.FieldTags{ 93 MapConv: "[]Interface", 94 }, 95 }, 96 }, 97 NakedType: meta.Static(naked.MonitorValues{}), 98 } 99 } 100 101 func (m *monitorsDef) routerModel() *dsl.Model { 102 return &dsl.Model{ 103 Name: "RouterActivity", 104 Fields: []*dsl.FieldDesc{ 105 { 106 Name: "Values", 107 Type: &dsl.Model{ 108 Name: "MonitorRouterValue", 109 NakedType: meta.Static(naked.MonitorRouterValue{}), 110 IsArray: true, 111 Fields: []*dsl.FieldDesc{ 112 fields.MonitorTime(), 113 fields.MonitorRouterIn(), 114 fields.MonitorRouterOut(), 115 }, 116 }, 117 Tags: &dsl.FieldTags{ 118 MapConv: "[]Router", 119 }, 120 }, 121 }, 122 NakedType: meta.Static(naked.MonitorValues{}), 123 } 124 } 125 126 func (m *monitorsDef) databaseModel() *dsl.Model { 127 return &dsl.Model{ 128 Name: "DatabaseActivity", 129 Fields: []*dsl.FieldDesc{ 130 { 131 Name: "Values", 132 //Type: meta.Static([]naked.MonitorDatabaseValue{}), 133 Type: &dsl.Model{ 134 Name: "MonitorDatabaseValue", 135 NakedType: meta.Static(naked.MonitorDatabaseValue{}), 136 IsArray: true, 137 Fields: []*dsl.FieldDesc{ 138 fields.MonitorTime(), 139 fields.MonitorDatabaseTotalMemorySize(), 140 fields.MonitorDatabaseUsedMemorySize(), 141 fields.MonitorDatabaseTotalDisk1Size(), 142 fields.MonitorDatabaseUsedDisk1Size(), 143 fields.MonitorDatabaseTotalDisk2Size(), 144 fields.MonitorDatabaseUsedDisk2Size(), 145 fields.MonitorDatabaseBinlogUsedSizeKiB(), 146 fields.MonitorDatabaseDelayTimeSec(), 147 }, 148 }, 149 Tags: &dsl.FieldTags{ 150 MapConv: "[]Database", 151 }, 152 }, 153 }, 154 NakedType: meta.Static(naked.MonitorValues{}), 155 } 156 } 157 158 func (m *monitorsDef) freeDiskSizeModel() *dsl.Model { 159 return &dsl.Model{ 160 Name: "FreeDiskSizeActivity", 161 Fields: []*dsl.FieldDesc{ 162 { 163 Name: "Values", 164 Type: &dsl.Model{ 165 Name: "MonitorFreeDiskSizeValue", 166 NakedType: meta.Static(naked.MonitorFreeDiskSizeValue{}), 167 IsArray: true, 168 Fields: []*dsl.FieldDesc{ 169 fields.MonitorTime(), 170 fields.MonitorFreeDiskSize(), 171 }, 172 }, 173 Tags: &dsl.FieldTags{ 174 MapConv: "[]FreeDiskSize", 175 }, 176 }, 177 }, 178 NakedType: meta.Static(naked.MonitorValues{}), 179 } 180 } 181 182 func (m *monitorsDef) responseTimeSecModel() *dsl.Model { 183 return &dsl.Model{ 184 Name: "ResponseTimeSecActivity", 185 Fields: []*dsl.FieldDesc{ 186 { 187 Name: "Values", 188 Type: &dsl.Model{ 189 Name: "MonitorResponseTimeSecValue", 190 NakedType: meta.Static(naked.MonitorResponseTimeSecValue{}), 191 IsArray: true, 192 Fields: []*dsl.FieldDesc{ 193 fields.MonitorTime(), 194 fields.MonitorResponseTimeSec(), 195 }, 196 }, 197 Tags: &dsl.FieldTags{ 198 MapConv: "[]ResponseTimeSec", 199 }, 200 }, 201 }, 202 NakedType: meta.Static(naked.MonitorValues{}), 203 } 204 } 205 206 func (m *monitorsDef) linkModel() *dsl.Model { 207 return &dsl.Model{ 208 Name: "LinkActivity", 209 Fields: []*dsl.FieldDesc{ 210 { 211 Name: "Values", 212 Type: &dsl.Model{ 213 Name: "MonitorLinkValue", 214 NakedType: meta.Static(naked.MonitorLinkValue{}), 215 IsArray: true, 216 Fields: []*dsl.FieldDesc{ 217 fields.MonitorTime(), 218 fields.MonitorUplinkBPS(), 219 fields.MonitorDownlinkBPS(), 220 }, 221 }, 222 Tags: &dsl.FieldTags{ 223 MapConv: "[]Link", 224 }, 225 }, 226 }, 227 NakedType: meta.Static(naked.MonitorValues{}), 228 } 229 } 230 231 func (m *monitorsDef) connectionModel() *dsl.Model { 232 return &dsl.Model{ 233 Name: "ConnectionActivity", 234 Fields: []*dsl.FieldDesc{ 235 { 236 Name: "Values", 237 //Type: meta.Static([]naked.MonitorConnectionValue{}), 238 Type: &dsl.Model{ 239 Name: "MonitorConnectionValue", 240 NakedType: meta.Static(naked.MonitorConnectionValue{}), 241 IsArray: true, 242 Fields: []*dsl.FieldDesc{ 243 fields.MonitorTime(), 244 fields.MonitorActiveConnections(), 245 fields.MonitorConnectionsPerSec(), 246 }, 247 }, 248 Tags: &dsl.FieldTags{ 249 MapConv: "[]Connection", 250 }, 251 }, 252 }, 253 NakedType: meta.Static(naked.MonitorValues{}), 254 } 255 } 256 257 func (m *monitorsDef) localRouterModel() *dsl.Model { 258 return &dsl.Model{ 259 Name: "LocalRouterActivity", 260 Fields: []*dsl.FieldDesc{ 261 { 262 Name: "Values", 263 Type: &dsl.Model{ 264 Name: "MonitorLocalRouterValue", 265 NakedType: meta.Static(naked.MonitorLocalRouterValue{}), 266 IsArray: true, 267 Fields: []*dsl.FieldDesc{ 268 fields.MonitorTime(), 269 fields.MonitorLocalRouterReceiveBytesPerSec(), 270 fields.MonitorLocalRouterSendBytesPerSec(), 271 }, 272 }, 273 Tags: &dsl.FieldTags{ 274 MapConv: "[]LocalRouter", 275 }, 276 }, 277 }, 278 NakedType: meta.Static(naked.MonitorValues{}), 279 } 280 }