SlideShare a Scribd company logo
Monitoring in the era of
Cloud Computing
Speakers
Attilio Broglio - abroglio@create-net.org
Silvio Cretti - scretti@create-net.org
Webinar on November 26, 2015 - 15:00 CET
Who are we and what is our offer ?
■ Create-Net is a research centre active in the ICT field
and located in Trento (Italy)
■ Our Cloud Computing offer comprises:
Research and Consultancy in the Cloud Computing field
cloud architectures,
cloud deployment,
cloud management,
distributed cloud,
energy efficiency in the cloud
Training on Cloud Computing/Openstack (authorized Mirantis training
partner)
OpenStack free webinar list offered by Create-Net
Webinar Url
OpenStack fundamentals https://goo.gl/VRg5Nr
Platform as a Service (PaaS) and OpenStack https://goo.gl/VRg5Nr
OpenStack Networking https://goo.gl/Htcs2s
Monitoring in the era of Cloud Computing
Agenda
1. Introduction to Monitoring
2. Introduction to Ceilometer
■ Architecture
■ Agents (Compute/Central)
■ Storage & API
■ Quick Demo
3. Introduction to Monasca
■ Architecture
■ Events/Messages
■ Storage & API
■ Quick Demo
4. Conclusions and Trends
5. QA session
1.
Introduction to Monitoring
...in the Cloud Computing era
Introduction to the Monitoring
■ Monitoring a cloud requires a unified view of physical and
virtual resources and of cloud services focusing on the
customer SLA
■ Two complementary topics:
➪monitoring a cloud computing infrastructure (ref.
Ceilometer)
➪Monitoring as a Service - xaaS - not limited to a
specific cloud and offering higher level functionalities
above the simple data collection (ref. Monasca)
Tools of the trade
■How to monitor a (federated) cloud?
■What is on the market now?
■Some examples:
➪ OpenNMS
➪Nagios
➪Zabbix
➪IBM Tivoli - Netcool
➪Zenoss
➪Openstack Ceilometer
➪OpenStack Monasca
Modular (micro services)
Distributed and scalable
Fault tolerant
Open Source & Open API
Support for Big Data analytics
(trend)
2.
Introduction to Ceilometer
“..quando un nuvol vada sovr’essa..”
[Inf. XXXI ]
Introduction to Ceilometer (1/2)
OpenStack provides infrastructure as a service (IaaS) to end clients, it’s
necessary to be able to meter its performance and utilization for:
■ billing
■ benchmarking
■ scalability
■ statistics
Ceilometer aims to become the infrastructure to collect measurements within
OpenStack. Main goals:
■ efficient collection of metering (CPU, network costs, ..)
■ collecting data by monitoring notifications (from services or by polling the HW)
■ accessing and inserting the metering data through the REST API
■ expanding the framework to collect custom usage data (by plugins)
Introduction to Ceilometer (2/2)
What is a meter?
Three type of meters are defined in ceilometer:
■ Cumulative: Increasing over time (i.e. instance hours)
■ Gauge: Discrete items (i.e. floating IPs ...) and fluctuating values (such as disk I/O)
■ Delta: Changing over time (i.e. bandwidth)
Each meter is collected from one or more samples, which
are represented by counter objects:
■ counter_name: meter id (i.e. disk.ephemeral.size)
■ counter_type: counter types (cumulative, gauge, delta).
■ counter_volume: measured data (CPU, #cores)
Ceilometer-Architecture (1/2)
■ Agents:Rest API
central Agent compute Agent
collectors data
Stores
AMQP
glance
libvirt
nova-compute
RPC RPC
hypervisor APIAPI
■ Rest API: access to metering data
➪ central: Retrieve info not linked
to instances or compute node
➪ compute: polls metering data and
instances statistics from the
compute node
AMQP: message broker (RabbitMQ)
data stores: mongo (read/write)
collectors: message queues for
metrics
Ceilometer-Architecture (2/2)
Ceilometer offers 5 core services
divide in 3 main groups:
■ data agents
■ collection
■ alarming
The 5 blocks “daemons” are:
1. polling agent: polls OpenStack services and build Meters.
2. notification agent:
➪ listens to notifications on message queue
➪ converts to Events and Samples
➪ apply pipeline actions
3. collector daemon: gathers and records event and metering
data
4. api service: to query and view data recorded by collector
service
5. alarming: alarming system based on rules
Data Agent Collection AlarmingPolling Notification Collector API Alarming
Ceilometer-Agents (1/3)
How can we collect
meter/sample?
Two methods available to collect data:
■ Bus listener agent:
➪ events on the notification bus
➪ transforms them into Ceilometer samples
➪ community guideline (Oslo library)
➪ compliant with Notification Agent
■ Polling agents,
➪ polls API or other tool to collect information
(Δt)
➪ local or remote hypervisor API
Ceilometer-Agents (2/3)
Notification Agent?
..it listens for data
■ consumes messages from services
(Nova, Glance, Cinder, Neutron, ..)
■ loads one or more listener plugins
that listen to any topics (by
namespace)
■ redirects to the proper endpoint
(pipeline)
■ Event matching → wildcards e.g.
compute.instance.*.
■ Notifications can be converted into
Events
Ceilometer-Agents (3/3)
Polling Agent?
.. it asks for data
■ compute node: Polling for compute
resources is handled by a polling agent
running on the compute node (where
hypervisor is)
■ central node: Polling via service APIs for
non-compute resources.
■ The polling agent daemon is configured
to run one or more pollsters
✓ Δt for sample from pollsters (set on pipeline)
✓ passes the samples to the pipeline for
processing
Ceilometer-Storage and API (1/2)
Pipeline?
..manipulates data
Ceilometer uses pipeline for:
■ manipulate and publish samples it in various
combinations
■ combined by historical or temporal context
■ transform by a scaling factor
■ publishes using 3 different transports:
1. notifier: a notification based that pushes to a
message queue: (i.e. collector, external system)
2. udp: publishes samples using UDP packets;
3. kafka: publishes to a Kafka message queue
Ceilometer-Storage and API (2/2)
Collector?
■ gathers the processed event and metering data
(notification and polling agents)
■ validates data
■ writes the messages to: database, file, or http
From Juno, database is divided into 3 connections:
■ alarm
■ event
■ metering
API?
RESTFUL API (read/write data)
■ raw
■ statistics/filter/group
Ceilometer-Demo
CC License - Photo by Amy Loves Yah
3.
Introduction to Monasca
“intrammo a ritornar nel chiaro mondo..”
[Inf. XXXIV ]
Monasca - Introduction (1/2)
MONitoring As a Service sCAlable:
■ Highly-performant, scalable
■ Fault-tolerant, capable of big data retention
➪ process 100s of thousands metrics/sec
➪ data stored for ~ 1 year
■ Based on REST API (http not standard CollectID, NSCA ”Nagios”)
➪ storing
➪ querying (metrics/historical data)
■ Multi-tenant (by keystone)
➪ metrics submitted and authenticated by Keystone
➪ metrics stored with tenants reference
Monasca - Introduction (2/2)
MONitoring As a Service sCAlable:
■ Extensible based on micro-services message bus architecture
■ Real-time events processing
➪ threshold/alarm ->Metrics
➪ threshold/alarm ->storage/retrieval/statistics
■ Notification system
■ Real data:
➪ Performances: ~ 25K metrics/sec on three HP Proliant SL390s G7
➪ Apache 2.0 license
➪ Who is working on it: HP, IBM, Rackspace
Monasca - Architecture (1/4)
Monasca API (REST)
Horizon
Dashboard
Monasca
Client (CLI)System
Monasca
Agent
Config DB
mySQL
Metrics
Events DB
Alarms
Notification
Engine
Threshold
Engine
Anomaly and
Prediction
Engine
Events
Engine
Transform
Engine
Persister
Message
Queue
Kafka
Monasca - Architecture (2/4)
Monasca API (REST)
Monasca
Client (CLI)
Notification
Engine
Threshold
Engine
Anomaly &
Prediction
Engine
Events
Engine
Transform
Engine
Persister
Message
Queue
Kafka
Metrics
Events DB
Alarms
System
Monasca
Agent
Horizon
Dashboard
Monasca
Agent
Monasca Agent:
■ different subcomponents
■ different metrics
➪ statsd, nagios plugin, ceilometer
Monasca API:
■ REST API post/get metrics and events
(JSON)
■ query and get statistics and metrics, alarms,
alarm definitions, notifications
Monasca API (REST)
Message Queue “Kafka”:
■ receives
➪ metrics from API
➪ alarms from Threshold engine
➪ Publishes consumes events
■ RabbitMQ-> Kafka
Message
Queue
Kafka
POST
metrics
Publishes
metrics/events
Transform
Engine
Monasca - Architecture (3/4)
Monasca API (REST)
Monasca
Client (CLI)
Notification
Engine
Threshold
Engine
Anomaly &
Prediction
Engine
Events
Engine
Transform
Engine
Persister
Message
Queue
Kafka
Metrics
Events DB
Alarms
System
Monasca
Agent
Horizon
Dashboard
Monasca
Agent
Notification Engine:
➪ consumes alarms from kafka and notifies
(email, sms,.. )
Threshold engine:
➪ stream data processing (Apache Storm)
➪ computes threshold on metrics and publish
on kafka
Monasca API (REST)
Anomaly & Prediction engine:
➪ evaluates predictions and anomalies and
publish predicted metrics (or anomalies)
Message
Queue
Kafka
Events engine:
➪ manages events
Transform engine:
➪ transforms metrics into delta or time-based
derivative
➪ generates new metrics (Kafka) Notification
Engine
Threshold
Engine
Anomaly &
Prediction
Engine
Events
Engine
Monasca - Architecture (4/4)
Monasca API (REST)
Monasca
Client (CLI)
Notification
Engine
Threshold
Engine
Anomaly &
Prediction
Engine
Events
Engine
Transform
Engine
Persister
Message
Queue
Kafka
Metrics
Events DB
Alarms
System
Monasca
Agent
Horizon
Dashboard
Monasca
Agent
Persister:
■ Consumes alarms and metrics from Kafka
and stores into nonRelational DB
➪ InfluxDB
➪ Vertica
Horizon Dashboard:
■ Actions on alarms:
➪ CRUD alarm definitions
➪ read/delete alarm history
■ Actions on notifications:
➪ CRUD notifications methods
■ Actions on metrics
➪ visualizations of metrics “Grafana”
Monasca API (REST)
Message
Queue
Kafka
Notification
Engine
Threshold
Engine
Anomaly &
Prediction
Engine
Events
Engine
Persister
Horizon
Dashboard
Create alarms definitions
Query/Delete alarms
Create notifications method
Query Metrics
Monasca - Metrics flow (1/4)
Monasca
Agent
Metrics
Events DB
Alarms
Notification
Engine
Threshold
Engine
Transform
Engine
Persister
Message
Queue
Kafka
POST metric
1.0 publish metric
1.1.0 consume metrics
1.1.1 store metric
1.2.0 consume metric
1.2.2 publish metric
1.2.1 aggregate metric
1.3.0 consume metric1.3.3 publish alarm
1.3.2 theshold metric
2.1.0 consume alarm
2.1.1 send notification
2.2.0 consume alarms
2.2.1 store alarm
1.0 API authenticates and validates the
request and publishes the metric to Kafka
1.1 Persister consumes the metric from
Kafka and stores in the Metrics Store
1.2 The Transform Engine consumes the
metrics from kafka, performs transform and
aggregation operations on metrics, and
publishes metrics that it creates back to
Message Queue
1.3 Threshold Engine consumes metrics
from Kafka and evaluates alarms. If a state
change occurs in an alarm, an alarm is
published into kafka
2.1 The Notification Engine consumes
"alarm" from kafka, evaluates whether they
have a Notification Method associated with
it, and notifies
2.2 Persister consumes the "alarm" from
Kafka and stores it in the Alarm State
History
Monasca - Events flow (1/4)
Monasca
Agent
Metrics
Events DB
Alarms
Event Engine
Transform
Engine
Persister
Message
Queue
Kafka
POST event
1.0 publish event
1.1.0 consume raw event
1.1.1 store event
1.2.2 publish
tranformed event
1.2.1 transform raw event
into monasca event
1.3.0 consume
transformed event
2.0.0 fire event 1.0 API authenticates and validates the
request and publishes the event to Kafka
1.1 Persister consumes the event from
Kafka and stores in the Events Store
1.2 The Transform Engine consumes the
event from kafka, performs transform
and aggregation operations on events,
and publishes events that it creates back
to Message Queue
1.3 Event Engine consumes compliant
events from Kafka. It converts the event
into stream a “YAML”
2.0 Streams are processed by the Stream
Engine Winchester. If needed it publishes
Metric
Stack Distiller
StackTach
Winchester
1.3.0 add event
2.0.1 publish metric
1.2.0 consume raw event
Monasca - API
Keystone
● Metrics
● Transformations
● Alarms
● Notifications
● Streams
● Events
Service Catalog provided by keystone
http://my_monasca
http://my_stacktach
/metrics/
/transform/
/alarm-definitions/ or /alarms/
/notification-methods/
/streams/
/events/
Monasca API StackTach API Your API * Anomaly API
Monasca client StackTach client Your client* Anomaly client
Monasca-Demo
"Back to the Future with Michael J. Fox as Marty McFly" by Source. Licensed under Fair use via Wikipedia - here
4.
Conclusions
“E quindi uscimmo a riveder le stelle..”
[Inf. XXXIV ]
OpenStack Bootcamp
The main topics covered are:
• Overview on OpenStack and its
architecture,
• OpenStack networking;
• Swift;
• Ceilometer and its architecture,
• Heat Overview;
• OpenStack deployment.
At the end of the Bootcamp each student will be
able to:
• Describe the architecture of an OpenStack
deployment;
• Discuss the main functionalities of OpenStack;
• Deploy, configure and use the Openstack
services;
• Create and manage VMs and Virtual Networks;
• Create and manage, suers, roles, and quotas;
• Use the OpenStack CLI and Dashboard.
In partnership with Mirantis
For further information: http://openstack.create-net.org; openstack@create-net.org
Attilio Broglio
Software architect @ Create-net
abroglio@create-net.org
Tanks for your
attention!!
Silvio Cretti
Deputy Area Head @ Create-net
scretti@create-net.org
Webinar on November 26th, 2015 - 15:00 CET

More Related Content

PPT
Trove Updates - Kilo Edition
PPTX
Commication Framework in OpenStack
PDF
Design and Performance Characteristics of Tap-as-a-Service
PDF
Next Generation Security Solution
PPTX
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
PDF
Monitoring Large-scale Cloud Infrastructures with OpenNebula
PDF
Openstack Networking Internals - first part
PDF
Sanger OpenStack presentation March 2017
Trove Updates - Kilo Edition
Commication Framework in OpenStack
Design and Performance Characteristics of Tap-as-a-Service
Next Generation Security Solution
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
Monitoring Large-scale Cloud Infrastructures with OpenNebula
Openstack Networking Internals - first part
Sanger OpenStack presentation March 2017

What's hot (20)

PDF
Flossuk2015 opennms1.0;21 03-2015
PPTX
NSX, API, Automation and Unicorns
PDF
유연하고 확장성 있는 빅데이터 처리
PPTX
RENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hair
PDF
VMworld 2013: Extreme Performance Series: Network Speed Ahead
PDF
Open stack advanced_part
PDF
Unix Automation using centralized configuration management tool
PDF
CPU Optimizations in the CERN Cloud - February 2016
PPTX
Juniper Network Automation for KrDAG
PDF
Toward 10,000 Containers on OpenStack
PDF
Securing your Pulsar Cluster with Vault_Chris Kellogg
PDF
Openstack starter-guide-diablo
PDF
Cumulus Linux 2.5 Overview
PPT
HA in OpenStack service - meetup #9
DOCX
PDF
Linux conna kpatch-without-stopmachine-fixed
PPTX
Rate limiters in big data systems
PDF
OpenStack Summit Tokyo - Know-how of Challlenging Deploy/Operation NTT DOCOMO...
PPTX
Ovs perf
PDF
neutron_icehouse_update
Flossuk2015 opennms1.0;21 03-2015
NSX, API, Automation and Unicorns
유연하고 확장성 있는 빅데이터 처리
RENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hair
VMworld 2013: Extreme Performance Series: Network Speed Ahead
Open stack advanced_part
Unix Automation using centralized configuration management tool
CPU Optimizations in the CERN Cloud - February 2016
Juniper Network Automation for KrDAG
Toward 10,000 Containers on OpenStack
Securing your Pulsar Cluster with Vault_Chris Kellogg
Openstack starter-guide-diablo
Cumulus Linux 2.5 Overview
HA in OpenStack service - meetup #9
Linux conna kpatch-without-stopmachine-fixed
Rate limiters in big data systems
OpenStack Summit Tokyo - Know-how of Challlenging Deploy/Operation NTT DOCOMO...
Ovs perf
neutron_icehouse_update
Ad

Viewers also liked (13)

PPTX
Openstackサテライトプロジェクトまとめ
PDF
Storing VMs with Cinder and Ceph RBD.pdf
PPTX
Ceilo componentization diagrams
PDF
Building A Scalable Open Source Storage Solution
PPTX
Moving towards unified logging
PPTX
Enforcing Application SLA with Congress and Monasca
PDF
Orchestrierung einer Private Cloud mit OpenStack Heat
PPTX
Monasca 를 이용한 cloud 모니터링 final
PPTX
openstackの仮想マシンHA機能の現状と今後の方向性
PDF
Open technet openstack
PDF
오픈스택 커뮤니티 소개 및 기술 동향
PDF
Salt - A Scalable Systems Management Solution for Datacenters
PDF
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
Openstackサテライトプロジェクトまとめ
Storing VMs with Cinder and Ceph RBD.pdf
Ceilo componentization diagrams
Building A Scalable Open Source Storage Solution
Moving towards unified logging
Enforcing Application SLA with Congress and Monasca
Orchestrierung einer Private Cloud mit OpenStack Heat
Monasca 를 이용한 cloud 모니터링 final
openstackの仮想マシンHA機能の現状と今後の方向性
Open technet openstack
오픈스택 커뮤니티 소개 및 기술 동향
Salt - A Scalable Systems Management Solution for Datacenters
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
Ad

Similar to Webinar Monitoring in era of cloud computing (20)

PDF
Adventures in Observability - Clickhouse and Instana
PDF
Adventures in Observability: How in-house ClickHouse deployment enabled Inst...
PPTX
Kubernetes #2 monitoring
PDF
Monitoring Node.js Microservices on CloudFoundry with Open Source Tools and a...
PPTX
How to Improve the Observability of Apache Cassandra and Kafka applications...
PPTX
Network Telemetry
PDF
Native Container Monitoring
PDF
Native container monitoring
PDF
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
PDF
TimeSeries Machine Learning - PyData London 2025
PPTX
network monitoring system ppt
PDF
Network Monitoring System ppt.pdf
PDF
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
PPTX
Free OpManager training Part3- Network performance monitoring
PPTX
[DSC Europe 23] Pramod Immaneni - Real-time analytics at IoT scale
PDF
Intelligent Monitoring
PDF
Timely Year Two: Lessons Learned Building a Scalable Metrics Analytic System
PDF
Monitoring - deeper dive
PPT
network-management Web base.ppt
PPTX
MeetUp Monitoring with Prometheus and Grafana (September 2018)
Adventures in Observability - Clickhouse and Instana
Adventures in Observability: How in-house ClickHouse deployment enabled Inst...
Kubernetes #2 monitoring
Monitoring Node.js Microservices on CloudFoundry with Open Source Tools and a...
How to Improve the Observability of Apache Cassandra and Kafka applications...
Network Telemetry
Native Container Monitoring
Native container monitoring
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
TimeSeries Machine Learning - PyData London 2025
network monitoring system ppt
Network Monitoring System ppt.pdf
ApacheCon2019 Talk: Improving the Observability of Cassandra, Kafka and Kuber...
Free OpManager training Part3- Network performance monitoring
[DSC Europe 23] Pramod Immaneni - Real-time analytics at IoT scale
Intelligent Monitoring
Timely Year Two: Lessons Learned Building a Scalable Metrics Analytic System
Monitoring - deeper dive
network-management Web base.ppt
MeetUp Monitoring with Prometheus and Grafana (September 2018)

Recently uploaded (20)

PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Spectroscopy.pptx food analysis technology
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Spectral efficient network and resource selection model in 5G networks
PPT
Teaching material agriculture food technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Machine Learning_overview_presentation.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Electronic commerce courselecture one. Pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Spectroscopy.pptx food analysis technology
Digital-Transformation-Roadmap-for-Companies.pptx
Big Data Technologies - Introduction.pptx
NewMind AI Weekly Chronicles - August'25-Week II
20250228 LYD VKU AI Blended-Learning.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Spectral efficient network and resource selection model in 5G networks
Teaching material agriculture food technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Programs and apps: productivity, graphics, security and other tools
Machine Learning_overview_presentation.pptx

Webinar Monitoring in era of cloud computing

  • 1. Monitoring in the era of Cloud Computing Speakers Attilio Broglio - [email protected] Silvio Cretti - [email protected] Webinar on November 26, 2015 - 15:00 CET
  • 2. Who are we and what is our offer ? ■ Create-Net is a research centre active in the ICT field and located in Trento (Italy) ■ Our Cloud Computing offer comprises: Research and Consultancy in the Cloud Computing field cloud architectures, cloud deployment, cloud management, distributed cloud, energy efficiency in the cloud Training on Cloud Computing/Openstack (authorized Mirantis training partner)
  • 3. OpenStack free webinar list offered by Create-Net Webinar Url OpenStack fundamentals https://goo.gl/VRg5Nr Platform as a Service (PaaS) and OpenStack https://goo.gl/VRg5Nr OpenStack Networking https://goo.gl/Htcs2s Monitoring in the era of Cloud Computing
  • 4. Agenda 1. Introduction to Monitoring 2. Introduction to Ceilometer ■ Architecture ■ Agents (Compute/Central) ■ Storage & API ■ Quick Demo 3. Introduction to Monasca ■ Architecture ■ Events/Messages ■ Storage & API ■ Quick Demo 4. Conclusions and Trends 5. QA session
  • 5. 1. Introduction to Monitoring ...in the Cloud Computing era
  • 6. Introduction to the Monitoring ■ Monitoring a cloud requires a unified view of physical and virtual resources and of cloud services focusing on the customer SLA ■ Two complementary topics: ➪monitoring a cloud computing infrastructure (ref. Ceilometer) ➪Monitoring as a Service - xaaS - not limited to a specific cloud and offering higher level functionalities above the simple data collection (ref. Monasca)
  • 7. Tools of the trade ■How to monitor a (federated) cloud? ■What is on the market now? ■Some examples: ➪ OpenNMS ➪Nagios ➪Zabbix ➪IBM Tivoli - Netcool ➪Zenoss ➪Openstack Ceilometer ➪OpenStack Monasca Modular (micro services) Distributed and scalable Fault tolerant Open Source & Open API Support for Big Data analytics (trend)
  • 8. 2. Introduction to Ceilometer “..quando un nuvol vada sovr’essa..” [Inf. XXXI ]
  • 9. Introduction to Ceilometer (1/2) OpenStack provides infrastructure as a service (IaaS) to end clients, it’s necessary to be able to meter its performance and utilization for: ■ billing ■ benchmarking ■ scalability ■ statistics Ceilometer aims to become the infrastructure to collect measurements within OpenStack. Main goals: ■ efficient collection of metering (CPU, network costs, ..) ■ collecting data by monitoring notifications (from services or by polling the HW) ■ accessing and inserting the metering data through the REST API ■ expanding the framework to collect custom usage data (by plugins)
  • 10. Introduction to Ceilometer (2/2) What is a meter? Three type of meters are defined in ceilometer: ■ Cumulative: Increasing over time (i.e. instance hours) ■ Gauge: Discrete items (i.e. floating IPs ...) and fluctuating values (such as disk I/O) ■ Delta: Changing over time (i.e. bandwidth) Each meter is collected from one or more samples, which are represented by counter objects: ■ counter_name: meter id (i.e. disk.ephemeral.size) ■ counter_type: counter types (cumulative, gauge, delta). ■ counter_volume: measured data (CPU, #cores)
  • 11. Ceilometer-Architecture (1/2) ■ Agents:Rest API central Agent compute Agent collectors data Stores AMQP glance libvirt nova-compute RPC RPC hypervisor APIAPI ■ Rest API: access to metering data ➪ central: Retrieve info not linked to instances or compute node ➪ compute: polls metering data and instances statistics from the compute node AMQP: message broker (RabbitMQ) data stores: mongo (read/write) collectors: message queues for metrics
  • 12. Ceilometer-Architecture (2/2) Ceilometer offers 5 core services divide in 3 main groups: ■ data agents ■ collection ■ alarming The 5 blocks “daemons” are: 1. polling agent: polls OpenStack services and build Meters. 2. notification agent: ➪ listens to notifications on message queue ➪ converts to Events and Samples ➪ apply pipeline actions 3. collector daemon: gathers and records event and metering data 4. api service: to query and view data recorded by collector service 5. alarming: alarming system based on rules Data Agent Collection AlarmingPolling Notification Collector API Alarming
  • 13. Ceilometer-Agents (1/3) How can we collect meter/sample? Two methods available to collect data: ■ Bus listener agent: ➪ events on the notification bus ➪ transforms them into Ceilometer samples ➪ community guideline (Oslo library) ➪ compliant with Notification Agent ■ Polling agents, ➪ polls API or other tool to collect information (Δt) ➪ local or remote hypervisor API
  • 14. Ceilometer-Agents (2/3) Notification Agent? ..it listens for data ■ consumes messages from services (Nova, Glance, Cinder, Neutron, ..) ■ loads one or more listener plugins that listen to any topics (by namespace) ■ redirects to the proper endpoint (pipeline) ■ Event matching → wildcards e.g. compute.instance.*. ■ Notifications can be converted into Events
  • 15. Ceilometer-Agents (3/3) Polling Agent? .. it asks for data ■ compute node: Polling for compute resources is handled by a polling agent running on the compute node (where hypervisor is) ■ central node: Polling via service APIs for non-compute resources. ■ The polling agent daemon is configured to run one or more pollsters ✓ Δt for sample from pollsters (set on pipeline) ✓ passes the samples to the pipeline for processing
  • 16. Ceilometer-Storage and API (1/2) Pipeline? ..manipulates data Ceilometer uses pipeline for: ■ manipulate and publish samples it in various combinations ■ combined by historical or temporal context ■ transform by a scaling factor ■ publishes using 3 different transports: 1. notifier: a notification based that pushes to a message queue: (i.e. collector, external system) 2. udp: publishes samples using UDP packets; 3. kafka: publishes to a Kafka message queue
  • 17. Ceilometer-Storage and API (2/2) Collector? ■ gathers the processed event and metering data (notification and polling agents) ■ validates data ■ writes the messages to: database, file, or http From Juno, database is divided into 3 connections: ■ alarm ■ event ■ metering API? RESTFUL API (read/write data) ■ raw ■ statistics/filter/group
  • 18. Ceilometer-Demo CC License - Photo by Amy Loves Yah
  • 19. 3. Introduction to Monasca “intrammo a ritornar nel chiaro mondo..” [Inf. XXXIV ]
  • 20. Monasca - Introduction (1/2) MONitoring As a Service sCAlable: ■ Highly-performant, scalable ■ Fault-tolerant, capable of big data retention ➪ process 100s of thousands metrics/sec ➪ data stored for ~ 1 year ■ Based on REST API (http not standard CollectID, NSCA ”Nagios”) ➪ storing ➪ querying (metrics/historical data) ■ Multi-tenant (by keystone) ➪ metrics submitted and authenticated by Keystone ➪ metrics stored with tenants reference
  • 21. Monasca - Introduction (2/2) MONitoring As a Service sCAlable: ■ Extensible based on micro-services message bus architecture ■ Real-time events processing ➪ threshold/alarm ->Metrics ➪ threshold/alarm ->storage/retrieval/statistics ■ Notification system ■ Real data: ➪ Performances: ~ 25K metrics/sec on three HP Proliant SL390s G7 ➪ Apache 2.0 license ➪ Who is working on it: HP, IBM, Rackspace
  • 22. Monasca - Architecture (1/4) Monasca API (REST) Horizon Dashboard Monasca Client (CLI)System Monasca Agent Config DB mySQL Metrics Events DB Alarms Notification Engine Threshold Engine Anomaly and Prediction Engine Events Engine Transform Engine Persister Message Queue Kafka
  • 23. Monasca - Architecture (2/4) Monasca API (REST) Monasca Client (CLI) Notification Engine Threshold Engine Anomaly & Prediction Engine Events Engine Transform Engine Persister Message Queue Kafka Metrics Events DB Alarms System Monasca Agent Horizon Dashboard Monasca Agent Monasca Agent: ■ different subcomponents ■ different metrics ➪ statsd, nagios plugin, ceilometer Monasca API: ■ REST API post/get metrics and events (JSON) ■ query and get statistics and metrics, alarms, alarm definitions, notifications Monasca API (REST) Message Queue “Kafka”: ■ receives ➪ metrics from API ➪ alarms from Threshold engine ➪ Publishes consumes events ■ RabbitMQ-> Kafka Message Queue Kafka POST metrics Publishes metrics/events
  • 24. Transform Engine Monasca - Architecture (3/4) Monasca API (REST) Monasca Client (CLI) Notification Engine Threshold Engine Anomaly & Prediction Engine Events Engine Transform Engine Persister Message Queue Kafka Metrics Events DB Alarms System Monasca Agent Horizon Dashboard Monasca Agent Notification Engine: ➪ consumes alarms from kafka and notifies (email, sms,.. ) Threshold engine: ➪ stream data processing (Apache Storm) ➪ computes threshold on metrics and publish on kafka Monasca API (REST) Anomaly & Prediction engine: ➪ evaluates predictions and anomalies and publish predicted metrics (or anomalies) Message Queue Kafka Events engine: ➪ manages events Transform engine: ➪ transforms metrics into delta or time-based derivative ➪ generates new metrics (Kafka) Notification Engine Threshold Engine Anomaly & Prediction Engine Events Engine
  • 25. Monasca - Architecture (4/4) Monasca API (REST) Monasca Client (CLI) Notification Engine Threshold Engine Anomaly & Prediction Engine Events Engine Transform Engine Persister Message Queue Kafka Metrics Events DB Alarms System Monasca Agent Horizon Dashboard Monasca Agent Persister: ■ Consumes alarms and metrics from Kafka and stores into nonRelational DB ➪ InfluxDB ➪ Vertica Horizon Dashboard: ■ Actions on alarms: ➪ CRUD alarm definitions ➪ read/delete alarm history ■ Actions on notifications: ➪ CRUD notifications methods ■ Actions on metrics ➪ visualizations of metrics “Grafana” Monasca API (REST) Message Queue Kafka Notification Engine Threshold Engine Anomaly & Prediction Engine Events Engine Persister Horizon Dashboard Create alarms definitions Query/Delete alarms Create notifications method Query Metrics
  • 26. Monasca - Metrics flow (1/4) Monasca Agent Metrics Events DB Alarms Notification Engine Threshold Engine Transform Engine Persister Message Queue Kafka POST metric 1.0 publish metric 1.1.0 consume metrics 1.1.1 store metric 1.2.0 consume metric 1.2.2 publish metric 1.2.1 aggregate metric 1.3.0 consume metric1.3.3 publish alarm 1.3.2 theshold metric 2.1.0 consume alarm 2.1.1 send notification 2.2.0 consume alarms 2.2.1 store alarm 1.0 API authenticates and validates the request and publishes the metric to Kafka 1.1 Persister consumes the metric from Kafka and stores in the Metrics Store 1.2 The Transform Engine consumes the metrics from kafka, performs transform and aggregation operations on metrics, and publishes metrics that it creates back to Message Queue 1.3 Threshold Engine consumes metrics from Kafka and evaluates alarms. If a state change occurs in an alarm, an alarm is published into kafka 2.1 The Notification Engine consumes "alarm" from kafka, evaluates whether they have a Notification Method associated with it, and notifies 2.2 Persister consumes the "alarm" from Kafka and stores it in the Alarm State History
  • 27. Monasca - Events flow (1/4) Monasca Agent Metrics Events DB Alarms Event Engine Transform Engine Persister Message Queue Kafka POST event 1.0 publish event 1.1.0 consume raw event 1.1.1 store event 1.2.2 publish tranformed event 1.2.1 transform raw event into monasca event 1.3.0 consume transformed event 2.0.0 fire event 1.0 API authenticates and validates the request and publishes the event to Kafka 1.1 Persister consumes the event from Kafka and stores in the Events Store 1.2 The Transform Engine consumes the event from kafka, performs transform and aggregation operations on events, and publishes events that it creates back to Message Queue 1.3 Event Engine consumes compliant events from Kafka. It converts the event into stream a “YAML” 2.0 Streams are processed by the Stream Engine Winchester. If needed it publishes Metric Stack Distiller StackTach Winchester 1.3.0 add event 2.0.1 publish metric 1.2.0 consume raw event
  • 28. Monasca - API Keystone ● Metrics ● Transformations ● Alarms ● Notifications ● Streams ● Events Service Catalog provided by keystone http://my_monasca http://my_stacktach /metrics/ /transform/ /alarm-definitions/ or /alarms/ /notification-methods/ /streams/ /events/ Monasca API StackTach API Your API * Anomaly API Monasca client StackTach client Your client* Anomaly client
  • 29. Monasca-Demo "Back to the Future with Michael J. Fox as Marty McFly" by Source. Licensed under Fair use via Wikipedia - here
  • 30. 4. Conclusions “E quindi uscimmo a riveder le stelle..” [Inf. XXXIV ]
  • 31. OpenStack Bootcamp The main topics covered are: • Overview on OpenStack and its architecture, • OpenStack networking; • Swift; • Ceilometer and its architecture, • Heat Overview; • OpenStack deployment. At the end of the Bootcamp each student will be able to: • Describe the architecture of an OpenStack deployment; • Discuss the main functionalities of OpenStack; • Deploy, configure and use the Openstack services; • Create and manage VMs and Virtual Networks; • Create and manage, suers, roles, and quotas; • Use the OpenStack CLI and Dashboard. In partnership with Mirantis For further information: http://openstack.create-net.org; [email protected]
  • 32. Attilio Broglio Software architect @ Create-net [email protected] Tanks for your attention!! Silvio Cretti Deputy Area Head @ Create-net [email protected] Webinar on November 26th, 2015 - 15:00 CET