SlideShare ist ein Scribd-Unternehmen logo
1 von 28
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!

Weitere ähnliche Inhalte

Was ist angesagt?

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 toolsSaltStack
 
OpenShift4 Installation by UPI on kvm
OpenShift4 Installation by UPI on kvmOpenShift4 Installation by UPI on kvm
OpenShift4 Installation by UPI on kvmJooho 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 codewzzrd
 
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 2016effie mouzeli
 
CoreOS: Control Your Fleet
CoreOS: Control Your FleetCoreOS: Control Your Fleet
CoreOS: Control Your FleetMatthew Jones
 
Meetup C++ Floripa - Conan.io
Meetup C++ Floripa - Conan.ioMeetup C++ Floripa - Conan.io
Meetup C++ Floripa - Conan.ioUilian Ries
 
Foreman presentation
Foreman presentationForeman presentation
Foreman presentationGlen Ogilvie
 
Conan a C/C++ Package Manager
Conan a C/C++ Package ManagerConan a C/C++ Package Manager
Conan a C/C++ Package ManagerUilian Ries
 
Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Giacomo 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 Environmentsinovex GmbH
 
Puppet Camp Ghent 2013
Puppet Camp Ghent 2013Puppet Camp Ghent 2013
Puppet Camp Ghent 2013Server Density
 
[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 OverviewLeo 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 2012Gosuke Miyashita
 
Configuration management and orchestration with Salt
Configuration management and orchestration with SaltConfiguration management and orchestration with Salt
Configuration management and orchestration with SaltAnirban 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 SwarmMario IC
 

Was ist angesagt? (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
 

Ähnlich wie openATTIC using grafana and prometheus

Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developerPaul Czarkowski
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with PuppetKris Buytaert
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 introTerry Cho
 
Baylisa - Dive Into OpenStack
Baylisa - Dive Into OpenStackBaylisa - Dive Into OpenStack
Baylisa - Dive Into OpenStackJesse Andrews
 
Monitoring_with_Prometheus_Grafana_Tutorial
Monitoring_with_Prometheus_Grafana_TutorialMonitoring_with_Prometheus_Grafana_Tutorial
Monitoring_with_Prometheus_Grafana_TutorialTim 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 WindowsAlessandro 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 JonesOrtus Solutions, Corp
 
Automating complex infrastructures with Puppet
Automating complex infrastructures with PuppetAutomating complex infrastructures with Puppet
Automating complex infrastructures with PuppetKris 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 ScruggsCloud Native Day Tel Aviv
 
HTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & socketsHTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & socketsRemy Sharp
 
Fast SOA with Apache Synapse
Fast SOA with Apache SynapseFast SOA with Apache Synapse
Fast SOA with Apache SynapsePaul Fremantle
 
NGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA BroadcastNGINX: Basics & Best Practices - EMEA Broadcast
NGINX: Basics & Best Practices - EMEA BroadcastNGINX, 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 ChefMatt Ray
 
A Universe From Nothing
A Universe From NothingA Universe From Nothing
A Universe From NothingStigTelfer
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalPatrick 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 EnterpriseCeph Community
 
Containerd Project Update: FOSDEM 2018
Containerd Project Update: FOSDEM 2018Containerd Project Update: FOSDEM 2018
Containerd Project Update: FOSDEM 2018Phil 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 scratchJay Harrison
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetesBen Hall
 

Ähnlich wie 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
 

Mehr von Alex Lau

Aquarium introduction-asia-summit-2021
Aquarium introduction-asia-summit-2021Aquarium introduction-asia-summit-2021
Aquarium introduction-asia-summit-2021Alex Lau
 
Performance analysis with_ceph
Performance analysis with_cephPerformance analysis with_ceph
Performance analysis with_cephAlex Lau
 
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局Alex Lau
 
openSUSE storage workshop 2016
openSUSE storage workshop 2016openSUSE storage workshop 2016
openSUSE storage workshop 2016Alex Lau
 
Ceph Day Bring Ceph To Enterprise
Ceph Day Bring Ceph To EnterpriseCeph Day Bring Ceph To Enterprise
Ceph Day Bring Ceph To EnterpriseAlex Lau
 
SUSE Enterprise Storage on ThunderX
SUSE Enterprise Storage on ThunderXSUSE Enterprise Storage on ThunderX
SUSE Enterprise Storage on ThunderXAlex Lau
 
Build an affordable Cloud Stroage
Build an affordable Cloud StroageBuild an affordable Cloud Stroage
Build an affordable Cloud StroageAlex Lau
 
Keynote openSUSE Asia Summit 2015
Keynote openSUSE Asia Summit 2015Keynote openSUSE Asia Summit 2015
Keynote openSUSE Asia Summit 2015Alex 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 PresentationAlex Lau
 
Open source company and business model
Open source company and business modelOpen source company and business model
Open source company and business modelAlex Lau
 
AvengerGear Presentation for openSUSE Students
AvengerGear Presentation for openSUSE StudentsAvengerGear Presentation for openSUSE Students
AvengerGear Presentation for openSUSE StudentsAlex Lau
 
AvengerGear present: From pretotype to prototype
AvengerGear present: From pretotype to prototypeAvengerGear present: From pretotype to prototype
AvengerGear present: From pretotype to prototypeAlex Lau
 

Mehr von 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
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 

Kürzlich hochgeladen (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 

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!