SlideShare a Scribd company logo
openATTIC using
Grafana and
Prometheus
Alex Lau
Technical Consultant
SUSE
alau@suse.com
Things related to openATTIC
● Ceph
● Salt and DeepSea
● Grafana + Prometheus
Ceph Overview
❖ https://github.com/ceph
❖ Ceph is a distributed storage system
❖ Object, Block and File storage all in one!
❖ Self Recovery and Self healing!
❖ openATTIC become part of the management
interface
➢ https://www.openattic.org/posts/ceph-manager-dashboard-v2/
Ceph Architecture
Salt Overview
❖ https://github.com/saltstack/salt
❖ Salt is configuration management like ansible
➢ possible more :)
❖ Agent based distributed remote execution system,
➢ possible agentless with ssh
❖ Python base DevOps Automation tools using ZeroMQ
❖ Communication back channel for multiple product in
SUSE product line, including SES: DeepSea, SUSE
Manager and Cloud
Salt Architecture
DeepSea Overview
❖ Orchestration with Salt to discover, deploy, config and
manage Ceph life cycle
❖ Scalable and unified interface for different cluster size
❖ Run DeepSea Stages:
➢ 0 – Preparation
■ sync salt, install dependencies/updates
➢ 1 – Discovery
■ query hardware and network
➢ 2 – Configuration
■ merge configuration, generate keys
➢ 3 – Deployment
■ install ceph, deploy MONs and OSDs
➢ 4 – Additional Services
■ deploy MDS, RGW, etc.
➢ 5 – Removal
■ if necessary to decommission system(s)
DeepSea Architecture
Salt
Deployment
HardDrive
Storage
Network
Discovery
OSD MDS
Service
CephFS
RADOS Gateway
openATTIC
iSCSI Gateway
NFS Ganesha
MON MSG
RGW iSCSI
openatti
c
ganes
ha
DeepSea
OpenATTIC Overview
❖ https://bitbucket.org/openattic/openattic/
❖ Ceph Management and Monitoring GUI
❖ A easy to use administrative tools that actually work
❖ Highly customizable and scale out with ceph
❖ Expert / Local configuration aware without creating
inconsistent ceph cluster
❖ In 3.X above Grafana and Prometheus included
OpenATTIC Dashboard
Grafana Overview
❖ https://github.com/grafana
❖ A beautiful Visualization and Monitoring platform
❖ Time series Analytics tool support multiple data store
❖ Highly customizable Dashboard design
❖ Query Editors, Alert Notification Service
❖ Community marketplace for Dashboard
Grafana Dashboard
Prometheus Overview
❖ https://github.com/prometheus
❖ Multi-dimensional data collects and store with time
series by metric / key value pairs
❖ Pull distributed model over http, scalable and
effective
➢ Push gateway is also supported
❖ Querying using PromQL is flexible and easy to use
❖ Grafana and other graphing dashboarding supported
Prometheus Architecture
Node Exporter Overview
❖ https://github.com/prometheus/node_exporter
❖ default running on port 9100
❖ Node_exporter is a metrics collectors written in
golang
❖ It act like agent allow prometheus collect data
❖ http://node:9090/graph
Prometheus Web interface
Create your own Node Exporter
module
❖ After forking the node_exporter
➢ git clone https://github.com/AvengerMoJo/node_exporter.git
❖ Use other collect as example to start
➢ https://github.com/AvengerMoJo/node_exporter/blob/lio_exporter/collector/lio.go
❖ create iscsi module using NewLioCollector
70 func init() {
71 registerCollector("iscsi", defaultEnabled, NewLioCollector)
72 }
❖ newLioMetric is internal function to create data structure
for node_exporter being pull from Prom
❖ lioCollector is internal structure store all the statistic data
❖ NewLioCollector return lioCollector with newLioMetric
statistics in the following code sample
75 func NewLioCollector() (Collector, error) {
… ( sysfs is node_exporter format need follow upstream )
80
81 metrics, _ := newLioMetric()
82
83 return &lioCollector{
84 fs: fs,
85 metrics: metrics}, nil
86 }
❖ newLioMetric create data structure as below:
➢ namespace + lio_rbd + iops = iscsi_lio_rbd_iops
➢ namespace + lio_rbd + read = iscsi_lio_rbd_read
➢ namespace + lio_rbd + write = iscsi_lio_rbd_write
103 func newLioMetric() (*lioMetric, error) {
104
105 return &lioMetric{
… ( different backstore support not included here )
138 lioRbdIops: prometheus.NewDesc(
139 prometheus.BuildFQName(namespace, lioRbdSubsystem, "iops"),
140 "iSCSI RBD backstore transport operations.",
141 []string{"iqn", "tpgt", "lun", "rbd", "pool", "image"}, nil,
142 ),
143 lioRbdRead: prometheus.NewDesc(
144 prometheus.BuildFQName(namespace, lioRbdSubsystem, "read"),
145 "iSCSI RBD backstore Read in byte.",
146 []string{"iqn", "tpgt", "lun", "rbd", "pool", "image"}, nil,
147 ),
148 lioRbdWrite: prometheus.NewDesc(
149 prometheus.BuildFQName(namespace, lioRbdSubsystem, "write"),
150 "iSCSI RBD backstore Write in byte.",
151 []string{"iqn", "tpgt", "lun", "rbd", "pool", "image"}, nil,
152 ),
❖ Update return lioCollector status called by Prom
➢ fs.ISCSIStats() is from procfs module, sys status path helper
89 func (c *lioCollector) Update(ch chan<- prometheus.Metric) error {
90
91 stats, err := c.fs.ISCSIStats()
…
97 c.updateStat(ch, s)
...
176 func (c *lioCollector) updateStat(ch chan<- prometheus.Metric, s
*iscsi.Stats) error {
...
214 if err := c.updateRBDStat(ch, label); err != nil {
...
327 func (c *lioCollector) updateRBDStat(ch chan<- prometheus.Metric, label
graphLabel) error {
328
❖ reading status from sys
335 readMB, writeMB, iops, err := iscsi.ReadWriteOPS(label.iqn, label.tpgt,
label.lun)
❖ setting variable to the right unit
340 fReadMB := float64(readMB << 20)
344 fWriteMB := float64(writeMB << 20)
348 fIops := float64(iops)
❖ setting the return Prom.Metrics
351 ch <- prometheus.MustNewConstMetric(c.metrics.lioRbdRead,
352 prometheus.CounterValue, fReadMB, label.iqn, label.tpgt, label.lun,
353 rbd.Name, rbd.Pool, rbd.Image)
354
355 ch <- prometheus.MustNewConstMetric(c.metrics.lioRbdWrite,
356 prometheus.CounterValue, fWriteMB, label.iqn, label.tpgt, label.lun,
357 rbd.Name, rbd.Pool, rbd.Image)
358
359 ch <- prometheus.MustNewConstMetric(c.metrics.lioRbdIops,
360 prometheus.CounterValue, fIops, label.iqn, label.tpgt, label.lun,
361 rbd.Name, rbd.Pool, rbd.Image)
Build and Run Node Exporter
module
❖ You need to copy your update into the your home go dir
➢ go build github.com/prometheus/node_exporter
❖ Default collector doesn’t start / enable
❖ Enable module -collectors or --collectors after 0.15
version
➢ node_exporter -collectors.enabled iscsi
❖ Then you can check your metrics and data in port 9100
➢ http://node:9100/metrics
Node Exporter
http://node:9100/metrics
# HELP iscsi_lio_rbd_iops iSCSI RBD backstore transport operations.
# TYPE iscsi_lio_rbd_iops counter
iscsi_lio_rbd_iops{image="demo",iqn="iqn.2016-11.org.linux-
iscsi.igw.x86:sn.demo",lun="lun_0",pool="iscsi-
images",rbd="rbd_0",tpgt="tpgt_1"} 474
# HELP iscsi_lio_rbd_read iSCSI RBD backstore Read in byte.
# TYPE iscsi_lio_rbd_read counter
iscsi_lio_rbd_read{image="demo",iqn="iqn.2016-11.org.linux-
iscsi.igw.x86:sn.demo",lun="lun_0",pool="iscsi-
images",rbd="rbd_0",tpgt="tpgt_1"} 4.194304e+06
# HELP iscsi_lio_rbd_write iSCSI RBD backstore Write in byte.
# TYPE iscsi_lio_rbd_write counter
iscsi_lio_rbd_write{image="demo",iqn="iqn.2016-11.org.linux-
iscsi.igw.x86:sn.demo",lun="lun_0",pool="iscsi-
images",rbd="rbd_0",tpgt="tpgt_1"} 1.048576e+07
Grafana Template
Thank You
SUSE is hiring!
Start creating your own
dashboard!

More Related Content

What's hot

A user's perspective on SaltStack and other configuration management tools
A user's perspective on SaltStack and other configuration management toolsA user's perspective on SaltStack and other configuration management tools
A user's perspective on SaltStack and other configuration management tools
SaltStack
 
CoreOS Intro
CoreOS IntroCoreOS Intro
CoreOS Intro
Isaac Johnston
 
OpenShift4 Installation by UPI on kvm
OpenShift4 Installation by UPI on kvmOpenShift4 Installation by UPI on kvm
OpenShift4 Installation by UPI on kvm
Jooho Lee
 
Code review and automated testing for Puppet code
Code review and automated testing for Puppet codeCode review and automated testing for Puppet code
Code review and automated testing for Puppet code
wzzrd
 
Using Capifony for Symfony apps deployment (updated)
Using Capifony for Symfony apps deployment (updated)Using Capifony for Symfony apps deployment (updated)
Using Capifony for Symfony apps deployment (updated)
Žilvinas Kuusas
 
The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016
effie mouzeli
 
CoreOS: Control Your Fleet
CoreOS: Control Your FleetCoreOS: Control Your Fleet
CoreOS: Control Your Fleet
Matthew Jones
 
Meetup C++ Floripa - Conan.io
Meetup C++ Floripa - Conan.ioMeetup C++ Floripa - Conan.io
Meetup C++ Floripa - Conan.io
Uilian Ries
 
Foreman presentation
Foreman presentationForeman presentation
Foreman presentation
Glen Ogilvie
 
CoreOS intro
CoreOS introCoreOS intro
CoreOS intro
Timo Derstappen
 
Conan a C/C++ Package Manager
Conan a C/C++ Package ManagerConan a C/C++ Package Manager
Conan a C/C++ Package Manager
Uilian Ries
 
Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017
Giacomo Vacca
 
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
謝 宗穎
 
Deploying Foreman in Enterprise Environments
Deploying Foreman in Enterprise EnvironmentsDeploying Foreman in Enterprise Environments
Deploying Foreman in Enterprise Environments
inovex GmbH
 
Puppet Camp Ghent 2013
Puppet Camp Ghent 2013Puppet Camp Ghent 2013
Puppet Camp Ghent 2013
Server Density
 
CoreOS Overview
CoreOS OverviewCoreOS Overview
CoreOS Overview
Victor S. Recio
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Leo Lorieri
 
Inside Sqale's Backend at Sapporo Ruby Kaigi 2012
Inside Sqale's Backend at Sapporo Ruby Kaigi 2012Inside Sqale's Backend at Sapporo Ruby Kaigi 2012
Inside Sqale's Backend at Sapporo Ruby Kaigi 2012
Gosuke Miyashita
 
Configuration management and orchestration with Salt
Configuration management and orchestration with SaltConfiguration management and orchestration with Salt
Configuration management and orchestration with Salt
Anirban Saha
 
Docker Compose to Production with Docker Swarm
Docker Compose to Production with Docker SwarmDocker Compose to Production with Docker Swarm
Docker Compose to Production with Docker Swarm
Mario IC
 

What's hot (20)

A user's perspective on SaltStack and other configuration management tools
A user's perspective on SaltStack and other configuration management toolsA user's perspective on SaltStack and other configuration management tools
A user's perspective on SaltStack and other configuration management tools
 
CoreOS Intro
CoreOS IntroCoreOS Intro
CoreOS Intro
 
OpenShift4 Installation by UPI on kvm
OpenShift4 Installation by UPI on kvmOpenShift4 Installation by UPI on kvm
OpenShift4 Installation by UPI on kvm
 
Code review and automated testing for Puppet code
Code review and automated testing for Puppet codeCode review and automated testing for Puppet code
Code review and automated testing for Puppet code
 
Using Capifony for Symfony apps deployment (updated)
Using Capifony for Symfony apps deployment (updated)Using Capifony for Symfony apps deployment (updated)
Using Capifony for Symfony apps deployment (updated)
 
The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016The SaltStack Pub Crawl - Fosscomm 2016
The SaltStack Pub Crawl - Fosscomm 2016
 
CoreOS: Control Your Fleet
CoreOS: Control Your FleetCoreOS: Control Your Fleet
CoreOS: Control Your Fleet
 
Meetup C++ Floripa - Conan.io
Meetup C++ Floripa - Conan.ioMeetup C++ Floripa - Conan.io
Meetup C++ Floripa - Conan.io
 
Foreman presentation
Foreman presentationForeman presentation
Foreman presentation
 
CoreOS intro
CoreOS introCoreOS intro
CoreOS intro
 
Conan a C/C++ Package Manager
Conan a C/C++ Package ManagerConan a C/C++ Package Manager
Conan a C/C++ Package Manager
 
Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017
 
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
 
Deploying Foreman in Enterprise Environments
Deploying Foreman in Enterprise EnvironmentsDeploying Foreman in Enterprise Environments
Deploying Foreman in Enterprise Environments
 
Puppet Camp Ghent 2013
Puppet Camp Ghent 2013Puppet Camp Ghent 2013
Puppet Camp Ghent 2013
 
CoreOS Overview
CoreOS OverviewCoreOS Overview
CoreOS Overview
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
 
Inside Sqale's Backend at Sapporo Ruby Kaigi 2012
Inside Sqale's Backend at Sapporo Ruby Kaigi 2012Inside Sqale's Backend at Sapporo Ruby Kaigi 2012
Inside Sqale's Backend at Sapporo Ruby Kaigi 2012
 
Configuration management and orchestration with Salt
Configuration management and orchestration with SaltConfiguration management and orchestration with Salt
Configuration management and orchestration with Salt
 
Docker Compose to Production with Docker Swarm
Docker Compose to Production with Docker SwarmDocker Compose to Production with Docker Swarm
Docker Compose to Production with Docker Swarm
 

Similar to openATTIC using grafana and prometheus

Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
Paul Czarkowski
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with Puppet
Kris Buytaert
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 intro
Terry Cho
 
Beyond Puppet
Beyond PuppetBeyond Puppet
Beyond Puppet
Kris Buytaert
 
Baylisa - Dive Into OpenStack
Baylisa - Dive Into OpenStackBaylisa - Dive Into OpenStack
Baylisa - Dive Into OpenStack
Jesse Andrews
 
Monitoring_with_Prometheus_Grafana_Tutorial
Monitoring_with_Prometheus_Grafana_TutorialMonitoring_with_Prometheus_Grafana_Tutorial
Monitoring_with_Prometheus_Grafana_Tutorial
Tim Vaillancourt
 
OpenStack Summit 2013 Hong Kong - OpenStack and Windows
OpenStack Summit 2013 Hong Kong - OpenStack and WindowsOpenStack Summit 2013 Hong Kong - OpenStack and Windows
OpenStack Summit 2013 Hong Kong - OpenStack and Windows
Alessandro Pilotti
 
ITB2019 NGINX Overview and Technical Aspects - Kevin Jones
ITB2019 NGINX Overview and Technical Aspects - Kevin JonesITB2019 NGINX Overview and Technical Aspects - Kevin Jones
ITB2019 NGINX Overview and Technical Aspects - Kevin Jones
Ortus Solutions, Corp
 
Automating complex infrastructures with Puppet
Automating complex infrastructures with PuppetAutomating complex infrastructures with Puppet
Automating complex infrastructures with Puppet
Kris Buytaert
 
Orchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
Orchestration Tool Roundup - Arthur Berezin & Trammell ScruggsOrchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
Orchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
Cloud Native Day Tel Aviv
 
HTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & socketsHTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & sockets
Remy Sharp
 
Fast SOA with Apache Synapse
Fast SOA with Apache SynapseFast SOA with Apache Synapse
Fast SOA with Apache Synapse
Paul Fremantle
 
NGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA BroadcastNGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA Broadcast
NGINX, Inc.
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
Matt Ray
 
A Universe From Nothing
A Universe From NothingA Universe From Nothing
A Universe From Nothing
StigTelfer
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - Technical
Patrick Chanezon
 
Ceph Day Taipei - Bring Ceph to Enterprise
Ceph Day Taipei - Bring Ceph to EnterpriseCeph Day Taipei - Bring Ceph to Enterprise
Ceph Day Taipei - Bring Ceph to Enterprise
Ceph Community
 
Containerd Project Update: FOSDEM 2018
Containerd Project Update: FOSDEM 2018Containerd Project Update: FOSDEM 2018
Containerd Project Update: FOSDEM 2018
Phil Estes
 
Salting new ground one man ops from scratch
Salting new ground   one man ops from scratchSalting new ground   one man ops from scratch
Salting new ground one man ops from scratch
Jay Harrison
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
Ben Hall
 

Similar to openATTIC using grafana and prometheus (20)

Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with Puppet
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 intro
 
Beyond Puppet
Beyond PuppetBeyond Puppet
Beyond Puppet
 
Baylisa - Dive Into OpenStack
Baylisa - Dive Into OpenStackBaylisa - Dive Into OpenStack
Baylisa - Dive Into OpenStack
 
Monitoring_with_Prometheus_Grafana_Tutorial
Monitoring_with_Prometheus_Grafana_TutorialMonitoring_with_Prometheus_Grafana_Tutorial
Monitoring_with_Prometheus_Grafana_Tutorial
 
OpenStack Summit 2013 Hong Kong - OpenStack and Windows
OpenStack Summit 2013 Hong Kong - OpenStack and WindowsOpenStack Summit 2013 Hong Kong - OpenStack and Windows
OpenStack Summit 2013 Hong Kong - OpenStack and Windows
 
ITB2019 NGINX Overview and Technical Aspects - Kevin Jones
ITB2019 NGINX Overview and Technical Aspects - Kevin JonesITB2019 NGINX Overview and Technical Aspects - Kevin Jones
ITB2019 NGINX Overview and Technical Aspects - Kevin Jones
 
Automating complex infrastructures with Puppet
Automating complex infrastructures with PuppetAutomating complex infrastructures with Puppet
Automating complex infrastructures with Puppet
 
Orchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
Orchestration Tool Roundup - Arthur Berezin & Trammell ScruggsOrchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
Orchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
 
HTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & socketsHTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & sockets
 
Fast SOA with Apache Synapse
Fast SOA with Apache SynapseFast SOA with Apache Synapse
Fast SOA with Apache Synapse
 
NGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA BroadcastNGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA Broadcast
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
 
A Universe From Nothing
A Universe From NothingA Universe From Nothing
A Universe From Nothing
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - Technical
 
Ceph Day Taipei - Bring Ceph to Enterprise
Ceph Day Taipei - Bring Ceph to EnterpriseCeph Day Taipei - Bring Ceph to Enterprise
Ceph Day Taipei - Bring Ceph to Enterprise
 
Containerd Project Update: FOSDEM 2018
Containerd Project Update: FOSDEM 2018Containerd Project Update: FOSDEM 2018
Containerd Project Update: FOSDEM 2018
 
Salting new ground one man ops from scratch
Salting new ground   one man ops from scratchSalting new ground   one man ops from scratch
Salting new ground one man ops from scratch
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 

More from Alex Lau

Aquarium introduction-asia-summit-2021
Aquarium introduction-asia-summit-2021Aquarium introduction-asia-summit-2021
Aquarium introduction-asia-summit-2021
Alex Lau
 
Performance analysis with_ceph
Performance analysis with_cephPerformance analysis with_ceph
Performance analysis with_ceph
Alex Lau
 
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
Alex Lau
 
openSUSE storage workshop 2016
openSUSE storage workshop 2016openSUSE storage workshop 2016
openSUSE storage workshop 2016
Alex Lau
 
Ceph Day Bring Ceph To Enterprise
Ceph Day Bring Ceph To EnterpriseCeph Day Bring Ceph To Enterprise
Ceph Day Bring Ceph To Enterprise
Alex Lau
 
SUSE Enterprise Storage on ThunderX
SUSE Enterprise Storage on ThunderXSUSE Enterprise Storage on ThunderX
SUSE Enterprise Storage on ThunderX
Alex Lau
 
Build an affordable Cloud Stroage
Build an affordable Cloud StroageBuild an affordable Cloud Stroage
Build an affordable Cloud Stroage
Alex Lau
 
Keynote openSUSE Asia Summit 2015
Keynote openSUSE Asia Summit 2015Keynote openSUSE Asia Summit 2015
Keynote openSUSE Asia Summit 2015
Alex Lau
 
Cloud Storage Introduction ( CEPH )
Cloud Storage Introduction ( CEPH )  Cloud Storage Introduction ( CEPH )
Cloud Storage Introduction ( CEPH )
Alex Lau
 
VIA IOT Presentation
VIA IOT PresentationVIA IOT Presentation
VIA IOT Presentation
Alex Lau
 
Open source company and business model
Open source company and business modelOpen source company and business model
Open source company and business model
Alex Lau
 
AvengerGear Presentation for openSUSE Students
AvengerGear Presentation for openSUSE StudentsAvengerGear Presentation for openSUSE Students
AvengerGear Presentation for openSUSE Students
Alex Lau
 
AvengerGear present: From pretotype to prototype
AvengerGear present: From pretotype to prototypeAvengerGear present: From pretotype to prototype
AvengerGear present: From pretotype to prototype
Alex Lau
 

More from Alex Lau (13)

Aquarium introduction-asia-summit-2021
Aquarium introduction-asia-summit-2021Aquarium introduction-asia-summit-2021
Aquarium introduction-asia-summit-2021
 
Performance analysis with_ceph
Performance analysis with_cephPerformance analysis with_ceph
Performance analysis with_ceph
 
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
 
openSUSE storage workshop 2016
openSUSE storage workshop 2016openSUSE storage workshop 2016
openSUSE storage workshop 2016
 
Ceph Day Bring Ceph To Enterprise
Ceph Day Bring Ceph To EnterpriseCeph Day Bring Ceph To Enterprise
Ceph Day Bring Ceph To Enterprise
 
SUSE Enterprise Storage on ThunderX
SUSE Enterprise Storage on ThunderXSUSE Enterprise Storage on ThunderX
SUSE Enterprise Storage on ThunderX
 
Build an affordable Cloud Stroage
Build an affordable Cloud StroageBuild an affordable Cloud Stroage
Build an affordable Cloud Stroage
 
Keynote openSUSE Asia Summit 2015
Keynote openSUSE Asia Summit 2015Keynote openSUSE Asia Summit 2015
Keynote openSUSE Asia Summit 2015
 
Cloud Storage Introduction ( CEPH )
Cloud Storage Introduction ( CEPH )  Cloud Storage Introduction ( CEPH )
Cloud Storage Introduction ( CEPH )
 
VIA IOT Presentation
VIA IOT PresentationVIA IOT Presentation
VIA IOT Presentation
 
Open source company and business model
Open source company and business modelOpen source company and business model
Open source company and business model
 
AvengerGear Presentation for openSUSE Students
AvengerGear Presentation for openSUSE StudentsAvengerGear Presentation for openSUSE Students
AvengerGear Presentation for openSUSE Students
 
AvengerGear present: From pretotype to prototype
AvengerGear present: From pretotype to prototypeAvengerGear present: From pretotype to prototype
AvengerGear present: From pretotype to prototype
 

Recently uploaded

GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 

Recently uploaded (20)

GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 

openATTIC using grafana and prometheus

  • 3. Things related to openATTIC ● Ceph ● Salt and DeepSea ● Grafana + Prometheus
  • 4. Ceph Overview ❖ https://github.com/ceph ❖ Ceph is a distributed storage system ❖ Object, Block and File storage all in one! ❖ Self Recovery and Self healing! ❖ openATTIC become part of the management interface ➢ https://www.openattic.org/posts/ceph-manager-dashboard-v2/
  • 6. Salt Overview ❖ https://github.com/saltstack/salt ❖ Salt is configuration management like ansible ➢ possible more :) ❖ Agent based distributed remote execution system, ➢ possible agentless with ssh ❖ Python base DevOps Automation tools using ZeroMQ ❖ Communication back channel for multiple product in SUSE product line, including SES: DeepSea, SUSE Manager and Cloud
  • 8. DeepSea Overview ❖ Orchestration with Salt to discover, deploy, config and manage Ceph life cycle ❖ Scalable and unified interface for different cluster size ❖ Run DeepSea Stages: ➢ 0 – Preparation ■ sync salt, install dependencies/updates ➢ 1 – Discovery ■ query hardware and network ➢ 2 – Configuration ■ merge configuration, generate keys ➢ 3 – Deployment ■ install ceph, deploy MONs and OSDs ➢ 4 – Additional Services ■ deploy MDS, RGW, etc. ➢ 5 – Removal ■ if necessary to decommission system(s)
  • 9. DeepSea Architecture Salt Deployment HardDrive Storage Network Discovery OSD MDS Service CephFS RADOS Gateway openATTIC iSCSI Gateway NFS Ganesha MON MSG RGW iSCSI openatti c ganes ha DeepSea
  • 10. OpenATTIC Overview ❖ https://bitbucket.org/openattic/openattic/ ❖ Ceph Management and Monitoring GUI ❖ A easy to use administrative tools that actually work ❖ Highly customizable and scale out with ceph ❖ Expert / Local configuration aware without creating inconsistent ceph cluster ❖ In 3.X above Grafana and Prometheus included
  • 12. Grafana Overview ❖ https://github.com/grafana ❖ A beautiful Visualization and Monitoring platform ❖ Time series Analytics tool support multiple data store ❖ Highly customizable Dashboard design ❖ Query Editors, Alert Notification Service ❖ Community marketplace for Dashboard
  • 14. Prometheus Overview ❖ https://github.com/prometheus ❖ Multi-dimensional data collects and store with time series by metric / key value pairs ❖ Pull distributed model over http, scalable and effective ➢ Push gateway is also supported ❖ Querying using PromQL is flexible and easy to use ❖ Grafana and other graphing dashboarding supported
  • 16. Node Exporter Overview ❖ https://github.com/prometheus/node_exporter ❖ default running on port 9100 ❖ Node_exporter is a metrics collectors written in golang ❖ It act like agent allow prometheus collect data
  • 18. Create your own Node Exporter module ❖ After forking the node_exporter ➢ git clone https://github.com/AvengerMoJo/node_exporter.git ❖ Use other collect as example to start ➢ https://github.com/AvengerMoJo/node_exporter/blob/lio_exporter/collector/lio.go ❖ create iscsi module using NewLioCollector 70 func init() { 71 registerCollector("iscsi", defaultEnabled, NewLioCollector) 72 }
  • 19. ❖ newLioMetric is internal function to create data structure for node_exporter being pull from Prom ❖ lioCollector is internal structure store all the statistic data ❖ NewLioCollector return lioCollector with newLioMetric statistics in the following code sample 75 func NewLioCollector() (Collector, error) { … ( sysfs is node_exporter format need follow upstream ) 80 81 metrics, _ := newLioMetric() 82 83 return &lioCollector{ 84 fs: fs, 85 metrics: metrics}, nil 86 }
  • 20. ❖ newLioMetric create data structure as below: ➢ namespace + lio_rbd + iops = iscsi_lio_rbd_iops ➢ namespace + lio_rbd + read = iscsi_lio_rbd_read ➢ namespace + lio_rbd + write = iscsi_lio_rbd_write 103 func newLioMetric() (*lioMetric, error) { 104 105 return &lioMetric{ … ( different backstore support not included here ) 138 lioRbdIops: prometheus.NewDesc( 139 prometheus.BuildFQName(namespace, lioRbdSubsystem, "iops"), 140 "iSCSI RBD backstore transport operations.", 141 []string{"iqn", "tpgt", "lun", "rbd", "pool", "image"}, nil, 142 ), 143 lioRbdRead: prometheus.NewDesc( 144 prometheus.BuildFQName(namespace, lioRbdSubsystem, "read"), 145 "iSCSI RBD backstore Read in byte.", 146 []string{"iqn", "tpgt", "lun", "rbd", "pool", "image"}, nil, 147 ), 148 lioRbdWrite: prometheus.NewDesc( 149 prometheus.BuildFQName(namespace, lioRbdSubsystem, "write"), 150 "iSCSI RBD backstore Write in byte.", 151 []string{"iqn", "tpgt", "lun", "rbd", "pool", "image"}, nil, 152 ),
  • 21. ❖ Update return lioCollector status called by Prom ➢ fs.ISCSIStats() is from procfs module, sys status path helper 89 func (c *lioCollector) Update(ch chan<- prometheus.Metric) error { 90 91 stats, err := c.fs.ISCSIStats() … 97 c.updateStat(ch, s) ... 176 func (c *lioCollector) updateStat(ch chan<- prometheus.Metric, s *iscsi.Stats) error { ... 214 if err := c.updateRBDStat(ch, label); err != nil { ... 327 func (c *lioCollector) updateRBDStat(ch chan<- prometheus.Metric, label graphLabel) error { 328
  • 22. ❖ reading status from sys 335 readMB, writeMB, iops, err := iscsi.ReadWriteOPS(label.iqn, label.tpgt, label.lun) ❖ setting variable to the right unit 340 fReadMB := float64(readMB << 20) 344 fWriteMB := float64(writeMB << 20) 348 fIops := float64(iops) ❖ setting the return Prom.Metrics 351 ch <- prometheus.MustNewConstMetric(c.metrics.lioRbdRead, 352 prometheus.CounterValue, fReadMB, label.iqn, label.tpgt, label.lun, 353 rbd.Name, rbd.Pool, rbd.Image) 354 355 ch <- prometheus.MustNewConstMetric(c.metrics.lioRbdWrite, 356 prometheus.CounterValue, fWriteMB, label.iqn, label.tpgt, label.lun, 357 rbd.Name, rbd.Pool, rbd.Image) 358 359 ch <- prometheus.MustNewConstMetric(c.metrics.lioRbdIops, 360 prometheus.CounterValue, fIops, label.iqn, label.tpgt, label.lun, 361 rbd.Name, rbd.Pool, rbd.Image)
  • 23. Build and Run Node Exporter module ❖ You need to copy your update into the your home go dir ➢ go build github.com/prometheus/node_exporter ❖ Default collector doesn’t start / enable ❖ Enable module -collectors or --collectors after 0.15 version ➢ node_exporter -collectors.enabled iscsi ❖ Then you can check your metrics and data in port 9100 ➢ http://node:9100/metrics
  • 24. Node Exporter http://node:9100/metrics # HELP iscsi_lio_rbd_iops iSCSI RBD backstore transport operations. # TYPE iscsi_lio_rbd_iops counter iscsi_lio_rbd_iops{image="demo",iqn="iqn.2016-11.org.linux- iscsi.igw.x86:sn.demo",lun="lun_0",pool="iscsi- images",rbd="rbd_0",tpgt="tpgt_1"} 474 # HELP iscsi_lio_rbd_read iSCSI RBD backstore Read in byte. # TYPE iscsi_lio_rbd_read counter iscsi_lio_rbd_read{image="demo",iqn="iqn.2016-11.org.linux- iscsi.igw.x86:sn.demo",lun="lun_0",pool="iscsi- images",rbd="rbd_0",tpgt="tpgt_1"} 4.194304e+06 # HELP iscsi_lio_rbd_write iSCSI RBD backstore Write in byte. # TYPE iscsi_lio_rbd_write counter iscsi_lio_rbd_write{image="demo",iqn="iqn.2016-11.org.linux- iscsi.igw.x86:sn.demo",lun="lun_0",pool="iscsi- images",rbd="rbd_0",tpgt="tpgt_1"} 1.048576e+07
  • 25.
  • 27.
  • 28. Thank You SUSE is hiring! Start creating your own dashboard!