blob: d0e4b2040cee113c2df0c362d524cdc5d88979b9 [file] [log] [blame]
..
Copyright 2018 Whitestack, LLC
*************************************************************
This file is part of OSM Monitoring module
All Rights Reserved to Whitestack, LLC
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
For those usages not covered by the Apache License, Version 2.0 please
contact: bdiaz@whitestack.com or glavado@whitestack.com
OSM MON Module
****************
MON is a monitoring module for OSM.
It collects metrics from VIMs and VNFs and exports them to a Prometheus TSDB.
It manages and evaluates alarms based on those metrics.
Components
**********
MON module has the following components:
* MON Central: Handles vim accounts registration and alarms CRUD operations, through messages in the Kafka bus.
* MON Collector: Collects metrics from VIMs and VNFs and then exports them to a TSDB. It uses a plugin model both for collectors and for backends.
* MON Evaluator: Evaluates alarms and sends notifications through the Kafka bus when they trigger.
Supported Collector Plugins
***************************
* OpenStack: Support for Gnocchi and legacy Ceilometer telemetry stacks.
* VROPS: Support for VIO and VCD.
* AWS: TBD
Configuration
*************
Configuration is handled by the file [mon.yaml] (osm_mon/core/mon.yaml). You can pass a personalized configuration file
through the `--config-file` flag.
Example:
osm-mon-server --config-file your-config.yaml
Configuration variables can also be overridden through environment variables by following the convention:
OSMMON_<SECTION>_<VARIABLE>=<VALUE>
Example:
OSMMON_GLOBAL_LOGLEVEL=DEBUG
OSM NFVI Metrics
****************
The supported OSM NFVI metrics are the following:
* average_memory_utilization
* disk_read_ops
* disk_write_ops
* disk_read_bytes
* disk_write_bytes
* packets_in_dropped
* packets_out_dropped
* packets_received
* packets_sent
* cpu_utilization
Development
***********
The following is a reference for making changes to the code and testing them in a running OSM deployment.
::
git clone https://osm.etsi.org/gerrit/osm/MON.git
cd MON
# Make your changes here
# Build the image
docker build -t opensourcemano/mon:develop -f docker/Dockerfile .
# Deploy that image in a running OSM deployment
docker service update --force --image opensourcemano/mon:develop osm_mon
# Change a specific env variable
docker service update --force --env-add VARIABLE_NAME=new_value osm_mon
# View logs
docker logs $(docker ps -qf name=osm_mon.1)
Developers
**********
* Benjamín Díaz <bdiaz@whitestack.com>, Whitestack, Argentina
* Prakash Kasar <pkasar@vmware.com>, VMWare
Maintainers
***********
* Benjamín Díaz, Whitestack, Argentina
Contributions
*************
For information on how to contribute to OSM MON module, please get in touch with
the developer or the maintainer.
Any new code must follow the development guidelines detailed in the Dev Guidelines
in the OSM Wiki and pass all tests.
Dev Guidelines can be found at:
[https://osm.etsi.org/wikipub/index.php/Workflow_with_OSM_tools]