Ceilometer/blueprints/monitoring-network
< Ceilometer | blueprints
Contents
Monitoring-network
Summary
This feature collects the network information(devices, connect statuses and statistices) via North Bound API from the SDN controller.
- Supports multi SDN controller types.
- Allows metering from multi controllers in parallel.
- Source SDN controllers are allowed multi controller types in parallel.
This is the pollster who will be implemented in the ceilometer agent central.
User Stories
- Use for optimization of the resource location(e.g. VM)
- Use for testting route of the virtual network
Design
- The pollster doesn't call REST API directly, uses the driver that is passed meter name.
- The driver collects statistics via REST APIs, and returns a volume, a resource ID and a metadata to the pollster.
- The pollster generates the sample. Parameters are as below:
Parameter Name | Value |
---|---|
name | meter name |
type | decided for each meter |
unit | decided for each meter |
volume | returnd from driver |
user_id | None |
project_id | None |
resource_id | returnd from driver |
resource_metadata | returned from driver |
timestamp | timestamp at running pollster |
- The driver names are specified in "setup.cfg". namespace is "network.statistics.drivers".
- The endpoints of SDN controllers are specified in resources in "pipline.yaml".
e.g.
- name: meter_pipeline interval: 600 meters: - "*" resources: - opendaylight://10.3.3.3:8080/controller/nb/v2/ - trema://10.3.3.4?foo=bar transformers: publishers: - rpc://
Implementation
Modules
ceilometer - network - statistics - module for each SDN controller
- ceilometer.network.statistics
This module contains following:- abstract class for drivers
- baseclass for pollster classes.
- fake driver
- ceilometer.network.statistics.switch
- ceilometer.network.statistics.port
- ceilometer.network.statistics.table
- ceilometer.network.statistics.flow
Those modules contain pollster classes.
- module for SDN controller(e.g. ceilometer.network.statistics.opendaylight)
This module contains folowing:- driver
- utilities for the driver.
Meters
These meters are made from OpenFlow Switch Specification 1.0.2 mainly.
Switch
Resource | Switch ID |
---|---|
Origin | pollster |
metadata | {"controller": SDN controller name, "switch.meta": details of switch} |
Meter | Unit | Type | Note |
---|---|---|---|
switch | switch | Gauge | Duration of Switch |
Switch Port
Resource | Switch ID |
---|---|
Origin | pollster |
metadata | {"controller": SDN controller name, "port": port number} |
Meter | Unit | Type | Note |
---|---|---|---|
switch.port | port | Gauge | Duration of Port
Details of port and port that is connected this port are in resource metadata.
e.g. link status, linked node id and etc. |
switch.port.receive.packets | packets | Cumulative | Received Packets |
switch.port.transmit.packets | packets | Cumulative | Transmitted Packets |
switch.port.receive.bytes | B | Cumulative | Received Bytes |
switch.port.transmit.bytes | B | Cumulative | Transmitted Bytes |
switch.port.receive.drops | packets | Cumulative | Receive Drops |
switch.port.transmit.drops | packets | Cumulative | Transmit Drops |
switch.port.receive.errors | packets | Cumulative | Receive Errors |
switch.port.transmit.errors | packets | Cumulative | Transmit Errors |
switch.port.receive.frame_error | packets | Cumulative | Receive Frame Alignment Errors |
switch.port.receive.overrun_error | packets | Cumulative | Receive Overrun Errors |
switch.port.receive.crc_error | packets | Cumulative | Receive CRC Errors |
switch.port.collision.count | count | Cumulative | Collisions |
Switch Table
Resource | Switch ID |
---|---|
Origin | pollster |
metadata | {"controller": SDN controller name, "table.id":Table ID} |
Meter | Unit | Type | Note |
---|---|---|---|
switch.table | table | Gauge | Duration of Table |
switch.table.active.entries | entries | Gauge | Active Entries |
switch.table.lookup.packets | packets | Gauge | Packet Lookups |
switch.table.matched.packets | packets | Gauge | Packet Matches |
Switch Flow
Resource | Switch ID |
---|---|
Origin | pollster |
metadata | {"controller": SDN controller name, "table.id":Table ID, "flow.id": Flow ID} |
Meter | Unit | Type | Note |
---|---|---|---|
switch.flow | flow | Gauge | Duration of Flow. * Details of flow is in resource metadata. |
switch.flow.duration.seconds | sec | Gauge | Duration(seconds) |
switch.flow.duration.nanoseconds | ns | Gauge | Duration(nanoseconds) |
switch.flow.packets | packets | Cumulative | Received Packets |
switch.flow.bytes | B | Cumulative | Received Bytes |