SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Storing metrics at
scale with
Julien Danjou/Gordon Chung – OpenStack Days Canada 2017
Hello!
I am Gordon Chung
Engineer at Huawei Technologies Canada
You can find me at gord[at]live.ca and @gordchung
What we’ll talk about today
◎ What is Gnocchi?
(history, reasons, features)
◎ How does Gnocchi work?
(technology, principles)
◎ How to use Gnocchi?
(install, config, SDK)
What’s Gocchi?
Why is it there?
1
Perfect solution
Scalable
Targeting cloud
platforms where
thousands of
instances and
resources pop up
every day.
Storing and
retrieving data
should be fast.
Easy to use
Provide an API
that makes it easy
to program
against the
solution. Build
any kind of
solution easily
(billing, capacity
planning,
statistical
analysis…)
Easy to operate
Installation and
operation should
be easy for
administrators
used to standard
UNIX tools.
Time series
Existing solutions
◎ Graphite
◉ Not scalable
◉ Poor code base
◉ Not modulable
◎ InfluxDB
◉ Does not work
◉ Does not scale
◎ OpenTSDB
◉ Need to set up Hadoop
…
Gnocchi – started in May 2014
Started in OpenStack
Telemetry
Designed to solve
Ceilometer storage issue
back then.
But work stand-alone
since the beginning!
Easy to install
pip install gnocchi
Written in Python
With some standard
used libraries
(SQLAlchemy,
Pandas/Numpy...)
Free Software
Apache Licensed.
Documented
Everything is
documented.
“No doc: no merge”
policy.
Distributed & resilient
Design to run on cloud
platforms. Native
high-availability and
workload distribution
support.
Awesome features!
Search by metric value,
compute aggregations
Look into metrics value
and search for outliers.
Compute aggregation
across several metrics.
Compression
Using LZ4 compression
to compress data on the
fly. Fast, reduce storage
usage between x2-5.
Multi-tenant
ACL that guarantees
your different tenants
can’t see each other
resources. But the admin
can see everything.
Customizable. Batching
Send batch of measures
in one single HTTP call.
Collectd, Nagios &
statsd support
If you’re already a
Graphite user or you’re
polling tool support
statsd, it’s drop-in
compatible.
Same for Nagios.
HTTP REST API
That’s what’s used by
the `gnocchi’ CLI. Add
--debug to discover the
HTTP requests, or read
the API specs!
Trigger alarms
Using Aodh, Hawkular to
evaluate your alarms.
Aggregation as first
class
Aggregate measures on
ingestion rather than on
request.
How does it work?
How the magic happens.
2
Resource
type
Data model
Archive
policy
Metric
Archive
policy
Resource
type
Resource
Resource
Metric
Metric
Metric
Metric
Metric
Metric
How to
aggregate
metrics
Description of
resources:
attributes, like a
class in Python
Instances of
resource
types
A time series
cpu
memory
visitors
Resource
Index
Architecture
Index
Any RDBMS
supported by
SQLAlchemy.
Best choice:
PostgreSQL.
Though MySQL is
also supported, sigh.
Backends
Storage
Simple deployment?
Plain files (with NFS if
you want).
Scalable and robust?
Go for Ceph.
Less durable but fast?
Try Redis.
Got OpenStack?
Leverage Swift.
On AWS, use S3.
Architecture
How to use it?
Basic things you need to know
3
Installation
pip install gnocchi[file,postgresql]
gnocchiclient
$EDITOR
/etc/gnocchi/gnocchi.conf
Run:
gnocchi-upgrade
Run:
gnocchi-api &
gnocchi-metricd &
List archive policies and create a metric
➔ gnocchi archive-policy list
+--------+-------------+-------------------------------------------------------------------------+------------------------------------------------+
| name | back_window | definition | aggregation_methods |
+--------+-------------+-------------------------------------------------------------------------+------------------------------------------------+
| high | 0 | - points: 3600, granularity: 0:00:01, timespan: 1:00:00 | std, count, 95pct, min, max, sum, median, mean |
| | | - points: 10080, granularity: 0:01:00, timespan: 7 days, 0:00:00 | |
| | | - points: 8760, granularity: 1:00:00, timespan: 365 days, 0:00:00 | |
| medium | 0 | - points: 1440, granularity: 0:01:00, timespan: 1 day, 0:00:00 | std, count, 95pct, min, max, sum, median, mean |
| | | - points: 168, granularity: 1:00:00, timespan: 7 days, 0:00:00 | |
| | | - points: 365, granularity: 1 day, 0:00:00, timespan: 365 days, 0:00:00 | |
| low | 0 | - points: 12, granularity: 0:05:00, timespan: 1:00:00 | std, count, 95pct, min, max, sum, median, mean |
| | | - points: 24, granularity: 1:00:00, timespan: 1 day, 0:00:00 | |
| | | - points: 30, granularity: 1 day, 0:00:00, timespan: 30 days, 0:00:00 | |
+--------+-------------+-------------------------------------------------------------------------+------------------------------------------------+
➔ gnocchi metric create --archive-policy-name low
+------------------------------------+-----------------------------------------------------------------------+
| Field | Value |
+------------------------------------+-----------------------------------------------------------------------+
| archive_policy/aggregation_methods | std, count, 95pct, min, max, sum, median, mean |
| archive_policy/back_window | 0 |
| archive_policy/definition | - points: 12, granularity: 0:05:00, timespan: 1:00:00 |
| | - points: 24, granularity: 1:00:00, timespan: 1 day, 0:00:00 |
| | - points: 30, granularity: 1 day, 0:00:00, timespan: 30 days, 0:00:00 |
| archive_policy/name | low |
| created_by_project_id | admin |
| created_by_user_id | admin |
| id | 95fdc8ff-1aed-4dd3-b65b-bfb53f91081b |
| name | None |
| resource/id | None |
+------------------------------------+-----------------------------------------------------------------------+
Send & retrieve measures
➔ gnocchi measures add -m 2016-05-16T12:00:00@42 -m 2016-05-16T12:01:03@45 -m 2016-05-16T12:06:07@22
95fdc8ff-1aed-4dd3-b65b-bfb53f91081b
➔ gnocchi measures show 95fdc8ff-1aed-4dd3-b65b-bfb53f91081b
+---------------------------+-------------+---------------+
| timestamp | granularity | value |
+---------------------------+-------------+---------------+
| 2016-05-16T00:00:00+00:00 | 86400.0 | 36.3333333333 |
| 2016-05-16T12:00:00+00:00 | 3600.0 | 36.3333333333 |
| 2016-05-16T12:00:00+00:00 | 300.0 | 43.5 |
| 2016-05-16T12:05:00+00:00 | 300.0 | 22.0 |
+---------------------------+-------------+---------------+
➔ gnocchi measures show --aggregation min 95fdc8ff-1aed-4dd3-b65b-bfb53f91081b
+---------------------------+-------------+-------+
| timestamp | granularity | value |
+---------------------------+-------------+-------+
| 2016-05-16T00:00:00+00:00 | 86400.0 | 22.0 |
| 2016-05-16T12:00:00+00:00 | 3600.0 | 22.0 |
| 2016-05-16T12:00:00+00:00 | 300.0 | 42.0 |
| 2016-05-16T12:05:00+00:00 | 300.0 | 22.0 |
+---------------------------+-------------+-------+
➔ gnocchi measures show --aggregation 95pct 95fdc8ff-1aed-4dd3-b65b-bfb53f91081b
+---------------------------+-------------+-------+
| timestamp | granularity | value |
+---------------------------+-------------+-------+
| 2016-05-16T00:00:00+00:00 | 86400.0 | 44.7 |
| 2016-05-16T12:00:00+00:00 | 3600.0 | 44.7 |
| 2016-05-16T12:00:00+00:00 | 300.0 | 44.85 |
| 2016-05-16T12:05:00+00:00 | 300.0 | 22.0 |
+---------------------------+-------------+-------+
Create a resource
➔ gnocchi resource-type create --attribute name:string --attribute host:string server
+-----------------+----------------------------------------------------------+
| Field | Value |
+-----------------+----------------------------------------------------------+
| attributes/host | max_length=255, min_length=0, required=True, type=string |
| attributes/name | max_length=255, min_length=0, required=True, type=string |
| name | server |
+-----------------+----------------------------------------------------------+
➔ gnocchi resource create --attribute name:www-42 --attribute host:compute1 --create-metric
cpu:medium --create-metric memory:low --type server `uuidgen`
+-----------------------+----------------------------------------------+
| Field | Value |
+-----------------------+----------------------------------------------+
| created_by_project_id | admin |
| created_by_user_id | admin |
| ended_at | None |
| host | compute1 |
| id | e4c2eab7-52ed-4447-bbcb-48cb04f12015 |
| metrics | cpu: d51d8ba3-ab06-4f0c-af6c-d88dbac8c2a8 |
| | memory: 0240ceb8-d1d6-435d-a37c-f7f3bf99a388 |
| name | www-42 |
| original_resource_id | E4C2EAB7-52ED-4447-BBCB-48CB04F12015 |
| project_id | None |
| revision_end | None |
| revision_start | 2016-05-16T13:35:43.985927+00:00 |
| started_at | 2016-05-16T13:35:43.985815+00:00 |
| type | server |
| user_id | None |
+-----------------------+----------------------------------------------+
Update a resource
➔ gnocchi resource update --attribute host:compute2 --type server
e4c2eab7-52ed-4447-bbcb-48cb04f12015
+-----------------------+----------------------------------------------+
| Field | Value |
+-----------------------+----------------------------------------------+
| created_by_project_id | admin |
| created_by_user_id | admin |
| ended_at | None |
| host | compute2 |
| id | e4c2eab7-52ed-4447-bbcb-48cb04f12015 |
| metrics | cpu: d51d8ba3-ab06-4f0c-af6c-d88dbac8c2a8 |
| | memory: 0240ceb8-d1d6-435d-a37c-f7f3bf99a388 |
| name | www-42 |
| original_resource_id | E4C2EAB7-52ED-4447-BBCB-48CB04F12015 |
| project_id | None |
| revision_end | None |
| revision_start | 2016-05-16T13:37:38.140460+00:00 |
| started_at | 2016-05-16T13:35:43.985815+00:00 |
| type | server |
| user_id | None |
+-----------------------+----------------------------------------------+
See previous updates in JSON
➔ gnocchi resource history --format json --details e4c2eab7-52ed-4447-bbcb-48cb04f12015
[
{
"created_by_user_id": "admin",
"started_at": "2016-05-16T13:35:43.985815+00:00",
"user_id": null,
"revision_end": "2016-05-16T13:37:38.140460+00:00",
"ended_at": null,
"created_by_project_id": "admin",
"metrics": "cpu: d51d8ba3-ab06-4f0c-af6c-d88dbac8c2a8nmemory: 0240ceb8-d1d6-435d-a37c-f7f3bf99a388",
"host": "compute1",
"revision_start": "2016-05-16T13:35:43.985927+00:00",
"project_id": null,
"type": "server",
"id": "e4c2eab7-52ed-4447-bbcb-48cb04f12015",
"name": "www-42"
},
{
"created_by_user_id": "admin",
"started_at": "2016-05-16T13:35:43.985815+00:00",
"user_id": null,
"revision_end": null,
"ended_at": null,
"created_by_project_id": "admin",
"metrics": "cpu: d51d8ba3-ab06-4f0c-af6c-d88dbac8c2a8nmemory: 0240ceb8-d1d6-435d-a37c-f7f3bf99a388",
"host": "compute2",
"revision_start": "2016-05-16T13:37:38.140460+00:00",
"project_id": null,
"type": "server",
"id": "e4c2eab7-52ed-4447-bbcb-48cb04f12015",
"name": "www-42"
}
]
Search for resources
➔ gnocchi resource search --type server host=compute2
+----------------------------+--------+------------+---------+----------------------------+----------+-----------------------------+--------------+
| id | type | project_id | user_id | started_at | ended_at | revision_start | revision_end |
+----------------------------+--------+------------+---------+----------------------------+----------+-----------------------------+--------------+
| e4c2eab7-52ed-4447-bbcb- | server | None | None | 2016-05-16T13:35:43.985815 | None | 2016-05-16T13:37:38.140460+ | None |
| 48cb04f12015 | | | | +00:00 | | 00:00 | |
+----------------------------+--------+------------+---------+----------------------------+----------+-----------------------------+--------------+
Manipulating time-series (sneak peak)
Aggregation across multiple metrics
➔ curl -X POST http://gnocchi-url/v1/aggregates/fetch 
-d ‘{“operations”:
“(aggregate mean (metric (metric-idA mean) (metric-idB mean)))”}’
Compute rolling mean
➔ curl -X POST http://gnocchi-url/v1/aggregates/fetch 
-d ‘{“operations”: “(rolling mean 5 (metric stockA-id mean))”}’
Compute cpu utilisation from cputime
➔ curl -X POST http://gnocchi-url/v1/aggregates/fetch 
-d ‘{“operations”:
“(- 100 (/ (metric metric-id-cputime-delta last) 10000000000))”}’
* disclaimer: still work in progress so syntax might change
Grafana support
Performance
Does it scale?
4
System resource usage
Write throughput
Hardware:
24 core Xeon
20 OSD
256 GB RAM
Capacity:
Incoming: ~1.35 million
measures/s
Full report: https://medium.com/@gord.chung/gnocchi-4-introspective-a83055e99776
Aggregation performance
Hardware:
24 core Xeon
20 OSD
256 GB RAM
Test Case:
Send 10K metrics with
720 measures each
every 10 minutes
Full report: https://medium.com/@gord.chung/gnocchi-4-introspective-a83055e99776
Thanks!
Any questions?
You can find me at gord@live.ca or
Julien Danjou, @juldanjou and julien@danjou.info
http://gnocchi.xyz
#gnocchi @ Freenode
Credits
Special thanks to all the people
who made and released these
awesome resources for free:
◎ Presentation template by
SlidesCarnival
◎ Photographs by Unsplash

Weitere ähnliche Inhalte

Was ist angesagt?

Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Henning Jacobs
 
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화OpenStack Korea Community
 
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?OpenStack Korea Community
 
이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정Arawn Park
 
IDC 서버 몽땅 AWS로 이전하기 위한 5가지 방법 - 윤석찬 (AWS 테크에반젤리스트)
IDC 서버 몽땅 AWS로 이전하기 위한 5가지 방법 - 윤석찬 (AWS 테크에반젤리스트) IDC 서버 몽땅 AWS로 이전하기 위한 5가지 방법 - 윤석찬 (AWS 테크에반젤리스트)
IDC 서버 몽땅 AWS로 이전하기 위한 5가지 방법 - 윤석찬 (AWS 테크에반젤리스트) Amazon Web Services Korea
 
AWS 네트워크 보안을 위한 계층별 보안 구성 모범 사례 – 조이정, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
AWS 네트워크 보안을 위한 계층별 보안 구성 모범 사례 – 조이정, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집AWS 네트워크 보안을 위한 계층별 보안 구성 모범 사례 – 조이정, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
AWS 네트워크 보안을 위한 계층별 보안 구성 모범 사례 – 조이정, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집Amazon Web Services Korea
 
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링OpenStack Korea Community
 
Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Ji-Woong Choi
 
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...Amazon Web Services Korea
 
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기Ian Choi
 
Creating_scheduled_reports_with_Zabbix.pdf
Creating_scheduled_reports_with_Zabbix.pdfCreating_scheduled_reports_with_Zabbix.pdf
Creating_scheduled_reports_with_Zabbix.pdfITDispendik
 
Advanced Load Balancer/Traffic Manager and App Gateway for Microsoft Azure
Advanced Load Balancer/Traffic Manager and App Gateway for Microsoft AzureAdvanced Load Balancer/Traffic Manager and App Gateway for Microsoft Azure
Advanced Load Balancer/Traffic Manager and App Gateway for Microsoft AzureKemp
 
(CMP402) Amazon EC2 Instances Deep Dive
(CMP402) Amazon EC2 Instances Deep Dive(CMP402) Amazon EC2 Instances Deep Dive
(CMP402) Amazon EC2 Instances Deep DiveAmazon Web Services
 
Kubernetes Security Best Practices - With tips for the CKS exam
Kubernetes Security Best Practices - With tips for the CKS examKubernetes Security Best Practices - With tips for the CKS exam
Kubernetes Security Best Practices - With tips for the CKS examAhmed AbouZaid
 
Amazon VPC와 ELB/Direct Connect/VPN 알아보기 - 김세준, AWS 솔루션즈 아키텍트
Amazon VPC와 ELB/Direct Connect/VPN 알아보기 - 김세준, AWS 솔루션즈 아키텍트Amazon VPC와 ELB/Direct Connect/VPN 알아보기 - 김세준, AWS 솔루션즈 아키텍트
Amazon VPC와 ELB/Direct Connect/VPN 알아보기 - 김세준, AWS 솔루션즈 아키텍트Amazon Web Services Korea
 
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵Amazon Web Services Korea
 
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
(SEC323) New: Securing Web Applications with AWS WAF
(SEC323) New: Securing Web Applications with AWS WAF(SEC323) New: Securing Web Applications with AWS WAF
(SEC323) New: Securing Web Applications with AWS WAFAmazon Web Services
 
AWS Networking Fundamentals - SVC304 - Anaheim AWS Summit
AWS Networking Fundamentals - SVC304 - Anaheim AWS SummitAWS Networking Fundamentals - SVC304 - Anaheim AWS Summit
AWS Networking Fundamentals - SVC304 - Anaheim AWS SummitAmazon Web Services
 

Was ist angesagt? (20)

Aws route 53
Aws route 53Aws route 53
Aws route 53
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
 
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
 
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
 
이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정
 
IDC 서버 몽땅 AWS로 이전하기 위한 5가지 방법 - 윤석찬 (AWS 테크에반젤리스트)
IDC 서버 몽땅 AWS로 이전하기 위한 5가지 방법 - 윤석찬 (AWS 테크에반젤리스트) IDC 서버 몽땅 AWS로 이전하기 위한 5가지 방법 - 윤석찬 (AWS 테크에반젤리스트)
IDC 서버 몽땅 AWS로 이전하기 위한 5가지 방법 - 윤석찬 (AWS 테크에반젤리스트)
 
AWS 네트워크 보안을 위한 계층별 보안 구성 모범 사례 – 조이정, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
AWS 네트워크 보안을 위한 계층별 보안 구성 모범 사례 – 조이정, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집AWS 네트워크 보안을 위한 계층별 보안 구성 모범 사례 – 조이정, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
AWS 네트워크 보안을 위한 계층별 보안 구성 모범 사례 – 조이정, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
 
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링
 
Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드
 
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
 
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
 
Creating_scheduled_reports_with_Zabbix.pdf
Creating_scheduled_reports_with_Zabbix.pdfCreating_scheduled_reports_with_Zabbix.pdf
Creating_scheduled_reports_with_Zabbix.pdf
 
Advanced Load Balancer/Traffic Manager and App Gateway for Microsoft Azure
Advanced Load Balancer/Traffic Manager and App Gateway for Microsoft AzureAdvanced Load Balancer/Traffic Manager and App Gateway for Microsoft Azure
Advanced Load Balancer/Traffic Manager and App Gateway for Microsoft Azure
 
(CMP402) Amazon EC2 Instances Deep Dive
(CMP402) Amazon EC2 Instances Deep Dive(CMP402) Amazon EC2 Instances Deep Dive
(CMP402) Amazon EC2 Instances Deep Dive
 
Kubernetes Security Best Practices - With tips for the CKS exam
Kubernetes Security Best Practices - With tips for the CKS examKubernetes Security Best Practices - With tips for the CKS exam
Kubernetes Security Best Practices - With tips for the CKS exam
 
Amazon VPC와 ELB/Direct Connect/VPN 알아보기 - 김세준, AWS 솔루션즈 아키텍트
Amazon VPC와 ELB/Direct Connect/VPN 알아보기 - 김세준, AWS 솔루션즈 아키텍트Amazon VPC와 ELB/Direct Connect/VPN 알아보기 - 김세준, AWS 솔루션즈 아키텍트
Amazon VPC와 ELB/Direct Connect/VPN 알아보기 - 김세준, AWS 솔루션즈 아키텍트
 
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
 
(SEC323) New: Securing Web Applications with AWS WAF
(SEC323) New: Securing Web Applications with AWS WAF(SEC323) New: Securing Web Applications with AWS WAF
(SEC323) New: Securing Web Applications with AWS WAF
 
AWS Networking Fundamentals - SVC304 - Anaheim AWS Summit
AWS Networking Fundamentals - SVC304 - Anaheim AWS SummitAWS Networking Fundamentals - SVC304 - Anaheim AWS Summit
AWS Networking Fundamentals - SVC304 - Anaheim AWS Summit
 

Ähnlich wie Storing metrics at scale with Gnocchi

Big query - Command line tools and Tips - (MOSG)
Big query - Command line tools and Tips - (MOSG)Big query - Command line tools and Tips - (MOSG)
Big query - Command line tools and Tips - (MOSG)Soshi Nemoto
 
An Introduction to OpenStack Heat
An Introduction to OpenStack HeatAn Introduction to OpenStack Heat
An Introduction to OpenStack HeatMirantis
 
Openstack Summit Tokyo 2015 - Building a private cloud to efficiently handle ...
Openstack Summit Tokyo 2015 - Building a private cloud to efficiently handle ...Openstack Summit Tokyo 2015 - Building a private cloud to efficiently handle ...
Openstack Summit Tokyo 2015 - Building a private cloud to efficiently handle ...Pierre GRANDIN
 
Django deployment with PaaS
Django deployment with PaaSDjango deployment with PaaS
Django deployment with PaaSAppsembler
 
Common schema my sql uc 2012
Common schema   my sql uc 2012Common schema   my sql uc 2012
Common schema my sql uc 2012Roland Bouman
 
Common schema my sql uc 2012
Common schema   my sql uc 2012Common schema   my sql uc 2012
Common schema my sql uc 2012Roland Bouman
 
Week 4 lecture material cc (1)
Week 4 lecture material cc (1)Week 4 lecture material cc (1)
Week 4 lecture material cc (1)Ankit Gupta
 
Altitude San Francisco 2018: Logging at the Edge
Altitude San Francisco 2018: Logging at the Edge Altitude San Francisco 2018: Logging at the Edge
Altitude San Francisco 2018: Logging at the Edge Fastly
 
忙しい人のためのSphinx 入門 demo
忙しい人のためのSphinx 入門 demo忙しい人のためのSphinx 入門 demo
忙しい人のためのSphinx 入門 demoFumihito Yokoyama
 
How to build and run oci containers
How to build and run oci containersHow to build and run oci containers
How to build and run oci containersSpyros Trigazis
 
The story and tech of Read the Docs
The story and tech of Read the DocsThe story and tech of Read the Docs
The story and tech of Read the Docsericholscher
 
Quick and Dirty GUI Applications using GUIDeFATE
Quick and Dirty GUI Applications using GUIDeFATEQuick and Dirty GUI Applications using GUIDeFATE
Quick and Dirty GUI Applications using GUIDeFATEConnie New
 
AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)
AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)
AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)Amazon Web Services Korea
 
Data Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFixData Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFixC4Media
 
OSA Con 2022 - Switching Jaeger Distributed Tracing to ClickHouse to Enable A...
OSA Con 2022 - Switching Jaeger Distributed Tracing to ClickHouse to Enable A...OSA Con 2022 - Switching Jaeger Distributed Tracing to ClickHouse to Enable A...
OSA Con 2022 - Switching Jaeger Distributed Tracing to ClickHouse to Enable A...Altinity Ltd
 
How to Puppetize Google Cloud Platform - PuppetConf 2014
How to Puppetize Google Cloud Platform - PuppetConf 2014How to Puppetize Google Cloud Platform - PuppetConf 2014
How to Puppetize Google Cloud Platform - PuppetConf 2014Puppet
 
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...NETWAYS
 

Ähnlich wie Storing metrics at scale with Gnocchi (20)

Big query - Command line tools and Tips - (MOSG)
Big query - Command line tools and Tips - (MOSG)Big query - Command line tools and Tips - (MOSG)
Big query - Command line tools and Tips - (MOSG)
 
An Introduction to OpenStack Heat
An Introduction to OpenStack HeatAn Introduction to OpenStack Heat
An Introduction to OpenStack Heat
 
Openstack Summit Tokyo 2015 - Building a private cloud to efficiently handle ...
Openstack Summit Tokyo 2015 - Building a private cloud to efficiently handle ...Openstack Summit Tokyo 2015 - Building a private cloud to efficiently handle ...
Openstack Summit Tokyo 2015 - Building a private cloud to efficiently handle ...
 
Django deployment with PaaS
Django deployment with PaaSDjango deployment with PaaS
Django deployment with PaaS
 
Common schema my sql uc 2012
Common schema   my sql uc 2012Common schema   my sql uc 2012
Common schema my sql uc 2012
 
Common schema my sql uc 2012
Common schema   my sql uc 2012Common schema   my sql uc 2012
Common schema my sql uc 2012
 
Week 4 lecture material cc (1)
Week 4 lecture material cc (1)Week 4 lecture material cc (1)
Week 4 lecture material cc (1)
 
Altitude San Francisco 2018: Logging at the Edge
Altitude San Francisco 2018: Logging at the Edge Altitude San Francisco 2018: Logging at the Edge
Altitude San Francisco 2018: Logging at the Edge
 
Droidcon Paris 2015
Droidcon Paris 2015Droidcon Paris 2015
Droidcon Paris 2015
 
忙しい人のためのSphinx 入門 demo
忙しい人のためのSphinx 入門 demo忙しい人のためのSphinx 入門 demo
忙しい人のためのSphinx 入門 demo
 
How to build and run oci containers
How to build and run oci containersHow to build and run oci containers
How to build and run oci containers
 
How we build Vox
How we build VoxHow we build Vox
How we build Vox
 
The story and tech of Read the Docs
The story and tech of Read the DocsThe story and tech of Read the Docs
The story and tech of Read the Docs
 
Quick and Dirty GUI Applications using GUIDeFATE
Quick and Dirty GUI Applications using GUIDeFATEQuick and Dirty GUI Applications using GUIDeFATE
Quick and Dirty GUI Applications using GUIDeFATE
 
AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)
AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)
AWS Batch를 통한 손쉬운 일괄 처리 작업 관리하기 - 윤석찬 (AWS 테크에반젤리스트)
 
Development Workflows on AWS
Development Workflows on AWSDevelopment Workflows on AWS
Development Workflows on AWS
 
Data Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFixData Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFix
 
OSA Con 2022 - Switching Jaeger Distributed Tracing to ClickHouse to Enable A...
OSA Con 2022 - Switching Jaeger Distributed Tracing to ClickHouse to Enable A...OSA Con 2022 - Switching Jaeger Distributed Tracing to ClickHouse to Enable A...
OSA Con 2022 - Switching Jaeger Distributed Tracing to ClickHouse to Enable A...
 
How to Puppetize Google Cloud Platform - PuppetConf 2014
How to Puppetize Google Cloud Platform - PuppetConf 2014How to Puppetize Google Cloud Platform - PuppetConf 2014
How to Puppetize Google Cloud Platform - PuppetConf 2014
 
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...
 

Mehr von Gordon Chung

Gnocchi v4 - past and present
Gnocchi v4 - past and presentGnocchi v4 - past and present
Gnocchi v4 - past and presentGordon Chung
 
Gnocchi v4 (preview)
Gnocchi v4 (preview)Gnocchi v4 (preview)
Gnocchi v4 (preview)Gordon Chung
 
beyond the technology: privacy, trust and security in the cloud
beyond the technology: privacy, trust and security in the cloudbeyond the technology: privacy, trust and security in the cloud
beyond the technology: privacy, trust and security in the cloudGordon Chung
 
Gnocchi v3 brownbag
Gnocchi v3 brownbagGnocchi v3 brownbag
Gnocchi v3 brownbagGordon Chung
 
Gnocchi Profiling v2
Gnocchi Profiling v2Gnocchi Profiling v2
Gnocchi Profiling v2Gordon Chung
 
The Gnocchi Experiment
The Gnocchi ExperimentThe Gnocchi Experiment
The Gnocchi ExperimentGordon Chung
 
Gnocchi Profiling 2.1.x
Gnocchi Profiling 2.1.xGnocchi Profiling 2.1.x
Gnocchi Profiling 2.1.xGordon Chung
 
Ceilometer to Gnocchi
Ceilometer to GnocchiCeilometer to Gnocchi
Ceilometer to GnocchiGordon Chung
 
Anatomy of an action
Anatomy of an actionAnatomy of an action
Anatomy of an actionGordon Chung
 
Stabilising the jenga tower
Stabilising the jenga towerStabilising the jenga tower
Stabilising the jenga towerGordon Chung
 

Mehr von Gordon Chung (11)

Gnocchi v4 - past and present
Gnocchi v4 - past and presentGnocchi v4 - past and present
Gnocchi v4 - past and present
 
Gnocchi v4 (preview)
Gnocchi v4 (preview)Gnocchi v4 (preview)
Gnocchi v4 (preview)
 
beyond the technology: privacy, trust and security in the cloud
beyond the technology: privacy, trust and security in the cloudbeyond the technology: privacy, trust and security in the cloud
beyond the technology: privacy, trust and security in the cloud
 
Gnocchi v3 brownbag
Gnocchi v3 brownbagGnocchi v3 brownbag
Gnocchi v3 brownbag
 
Gnocchi v3
Gnocchi v3Gnocchi v3
Gnocchi v3
 
Gnocchi Profiling v2
Gnocchi Profiling v2Gnocchi Profiling v2
Gnocchi Profiling v2
 
The Gnocchi Experiment
The Gnocchi ExperimentThe Gnocchi Experiment
The Gnocchi Experiment
 
Gnocchi Profiling 2.1.x
Gnocchi Profiling 2.1.xGnocchi Profiling 2.1.x
Gnocchi Profiling 2.1.x
 
Ceilometer to Gnocchi
Ceilometer to GnocchiCeilometer to Gnocchi
Ceilometer to Gnocchi
 
Anatomy of an action
Anatomy of an actionAnatomy of an action
Anatomy of an action
 
Stabilising the jenga tower
Stabilising the jenga towerStabilising the jenga tower
Stabilising the jenga tower
 

Kürzlich hochgeladen

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Kürzlich hochgeladen (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

Storing metrics at scale with Gnocchi

  • 1. Storing metrics at scale with Julien Danjou/Gordon Chung – OpenStack Days Canada 2017
  • 2. Hello! I am Gordon Chung Engineer at Huawei Technologies Canada You can find me at gord[at]live.ca and @gordchung
  • 3. What we’ll talk about today ◎ What is Gnocchi? (history, reasons, features) ◎ How does Gnocchi work? (technology, principles) ◎ How to use Gnocchi? (install, config, SDK)
  • 5. Perfect solution Scalable Targeting cloud platforms where thousands of instances and resources pop up every day. Storing and retrieving data should be fast. Easy to use Provide an API that makes it easy to program against the solution. Build any kind of solution easily (billing, capacity planning, statistical analysis…) Easy to operate Installation and operation should be easy for administrators used to standard UNIX tools.
  • 7. Existing solutions ◎ Graphite ◉ Not scalable ◉ Poor code base ◉ Not modulable ◎ InfluxDB ◉ Does not work ◉ Does not scale ◎ OpenTSDB ◉ Need to set up Hadoop …
  • 8. Gnocchi – started in May 2014 Started in OpenStack Telemetry Designed to solve Ceilometer storage issue back then. But work stand-alone since the beginning! Easy to install pip install gnocchi Written in Python With some standard used libraries (SQLAlchemy, Pandas/Numpy...) Free Software Apache Licensed. Documented Everything is documented. “No doc: no merge” policy. Distributed & resilient Design to run on cloud platforms. Native high-availability and workload distribution support.
  • 9. Awesome features! Search by metric value, compute aggregations Look into metrics value and search for outliers. Compute aggregation across several metrics. Compression Using LZ4 compression to compress data on the fly. Fast, reduce storage usage between x2-5. Multi-tenant ACL that guarantees your different tenants can’t see each other resources. But the admin can see everything. Customizable. Batching Send batch of measures in one single HTTP call. Collectd, Nagios & statsd support If you’re already a Graphite user or you’re polling tool support statsd, it’s drop-in compatible. Same for Nagios. HTTP REST API That’s what’s used by the `gnocchi’ CLI. Add --debug to discover the HTTP requests, or read the API specs! Trigger alarms Using Aodh, Hawkular to evaluate your alarms. Aggregation as first class Aggregate measures on ingestion rather than on request.
  • 10. How does it work? How the magic happens. 2
  • 11. Resource type Data model Archive policy Metric Archive policy Resource type Resource Resource Metric Metric Metric Metric Metric Metric How to aggregate metrics Description of resources: attributes, like a class in Python Instances of resource types A time series cpu memory visitors Resource
  • 12. Index
  • 14. Index Any RDBMS supported by SQLAlchemy. Best choice: PostgreSQL. Though MySQL is also supported, sigh. Backends Storage Simple deployment? Plain files (with NFS if you want). Scalable and robust? Go for Ceph. Less durable but fast? Try Redis. Got OpenStack? Leverage Swift. On AWS, use S3.
  • 16. How to use it? Basic things you need to know 3
  • 18. List archive policies and create a metric ➔ gnocchi archive-policy list +--------+-------------+-------------------------------------------------------------------------+------------------------------------------------+ | name | back_window | definition | aggregation_methods | +--------+-------------+-------------------------------------------------------------------------+------------------------------------------------+ | high | 0 | - points: 3600, granularity: 0:00:01, timespan: 1:00:00 | std, count, 95pct, min, max, sum, median, mean | | | | - points: 10080, granularity: 0:01:00, timespan: 7 days, 0:00:00 | | | | | - points: 8760, granularity: 1:00:00, timespan: 365 days, 0:00:00 | | | medium | 0 | - points: 1440, granularity: 0:01:00, timespan: 1 day, 0:00:00 | std, count, 95pct, min, max, sum, median, mean | | | | - points: 168, granularity: 1:00:00, timespan: 7 days, 0:00:00 | | | | | - points: 365, granularity: 1 day, 0:00:00, timespan: 365 days, 0:00:00 | | | low | 0 | - points: 12, granularity: 0:05:00, timespan: 1:00:00 | std, count, 95pct, min, max, sum, median, mean | | | | - points: 24, granularity: 1:00:00, timespan: 1 day, 0:00:00 | | | | | - points: 30, granularity: 1 day, 0:00:00, timespan: 30 days, 0:00:00 | | +--------+-------------+-------------------------------------------------------------------------+------------------------------------------------+ ➔ gnocchi metric create --archive-policy-name low +------------------------------------+-----------------------------------------------------------------------+ | Field | Value | +------------------------------------+-----------------------------------------------------------------------+ | archive_policy/aggregation_methods | std, count, 95pct, min, max, sum, median, mean | | archive_policy/back_window | 0 | | archive_policy/definition | - points: 12, granularity: 0:05:00, timespan: 1:00:00 | | | - points: 24, granularity: 1:00:00, timespan: 1 day, 0:00:00 | | | - points: 30, granularity: 1 day, 0:00:00, timespan: 30 days, 0:00:00 | | archive_policy/name | low | | created_by_project_id | admin | | created_by_user_id | admin | | id | 95fdc8ff-1aed-4dd3-b65b-bfb53f91081b | | name | None | | resource/id | None | +------------------------------------+-----------------------------------------------------------------------+
  • 19. Send & retrieve measures ➔ gnocchi measures add -m 2016-05-16T12:00:00@42 -m 2016-05-16T12:01:03@45 -m 2016-05-16T12:06:07@22 95fdc8ff-1aed-4dd3-b65b-bfb53f91081b ➔ gnocchi measures show 95fdc8ff-1aed-4dd3-b65b-bfb53f91081b +---------------------------+-------------+---------------+ | timestamp | granularity | value | +---------------------------+-------------+---------------+ | 2016-05-16T00:00:00+00:00 | 86400.0 | 36.3333333333 | | 2016-05-16T12:00:00+00:00 | 3600.0 | 36.3333333333 | | 2016-05-16T12:00:00+00:00 | 300.0 | 43.5 | | 2016-05-16T12:05:00+00:00 | 300.0 | 22.0 | +---------------------------+-------------+---------------+ ➔ gnocchi measures show --aggregation min 95fdc8ff-1aed-4dd3-b65b-bfb53f91081b +---------------------------+-------------+-------+ | timestamp | granularity | value | +---------------------------+-------------+-------+ | 2016-05-16T00:00:00+00:00 | 86400.0 | 22.0 | | 2016-05-16T12:00:00+00:00 | 3600.0 | 22.0 | | 2016-05-16T12:00:00+00:00 | 300.0 | 42.0 | | 2016-05-16T12:05:00+00:00 | 300.0 | 22.0 | +---------------------------+-------------+-------+ ➔ gnocchi measures show --aggregation 95pct 95fdc8ff-1aed-4dd3-b65b-bfb53f91081b +---------------------------+-------------+-------+ | timestamp | granularity | value | +---------------------------+-------------+-------+ | 2016-05-16T00:00:00+00:00 | 86400.0 | 44.7 | | 2016-05-16T12:00:00+00:00 | 3600.0 | 44.7 | | 2016-05-16T12:00:00+00:00 | 300.0 | 44.85 | | 2016-05-16T12:05:00+00:00 | 300.0 | 22.0 | +---------------------------+-------------+-------+
  • 20. Create a resource ➔ gnocchi resource-type create --attribute name:string --attribute host:string server +-----------------+----------------------------------------------------------+ | Field | Value | +-----------------+----------------------------------------------------------+ | attributes/host | max_length=255, min_length=0, required=True, type=string | | attributes/name | max_length=255, min_length=0, required=True, type=string | | name | server | +-----------------+----------------------------------------------------------+ ➔ gnocchi resource create --attribute name:www-42 --attribute host:compute1 --create-metric cpu:medium --create-metric memory:low --type server `uuidgen` +-----------------------+----------------------------------------------+ | Field | Value | +-----------------------+----------------------------------------------+ | created_by_project_id | admin | | created_by_user_id | admin | | ended_at | None | | host | compute1 | | id | e4c2eab7-52ed-4447-bbcb-48cb04f12015 | | metrics | cpu: d51d8ba3-ab06-4f0c-af6c-d88dbac8c2a8 | | | memory: 0240ceb8-d1d6-435d-a37c-f7f3bf99a388 | | name | www-42 | | original_resource_id | E4C2EAB7-52ED-4447-BBCB-48CB04F12015 | | project_id | None | | revision_end | None | | revision_start | 2016-05-16T13:35:43.985927+00:00 | | started_at | 2016-05-16T13:35:43.985815+00:00 | | type | server | | user_id | None | +-----------------------+----------------------------------------------+
  • 21. Update a resource ➔ gnocchi resource update --attribute host:compute2 --type server e4c2eab7-52ed-4447-bbcb-48cb04f12015 +-----------------------+----------------------------------------------+ | Field | Value | +-----------------------+----------------------------------------------+ | created_by_project_id | admin | | created_by_user_id | admin | | ended_at | None | | host | compute2 | | id | e4c2eab7-52ed-4447-bbcb-48cb04f12015 | | metrics | cpu: d51d8ba3-ab06-4f0c-af6c-d88dbac8c2a8 | | | memory: 0240ceb8-d1d6-435d-a37c-f7f3bf99a388 | | name | www-42 | | original_resource_id | E4C2EAB7-52ED-4447-BBCB-48CB04F12015 | | project_id | None | | revision_end | None | | revision_start | 2016-05-16T13:37:38.140460+00:00 | | started_at | 2016-05-16T13:35:43.985815+00:00 | | type | server | | user_id | None | +-----------------------+----------------------------------------------+
  • 22. See previous updates in JSON ➔ gnocchi resource history --format json --details e4c2eab7-52ed-4447-bbcb-48cb04f12015 [ { "created_by_user_id": "admin", "started_at": "2016-05-16T13:35:43.985815+00:00", "user_id": null, "revision_end": "2016-05-16T13:37:38.140460+00:00", "ended_at": null, "created_by_project_id": "admin", "metrics": "cpu: d51d8ba3-ab06-4f0c-af6c-d88dbac8c2a8nmemory: 0240ceb8-d1d6-435d-a37c-f7f3bf99a388", "host": "compute1", "revision_start": "2016-05-16T13:35:43.985927+00:00", "project_id": null, "type": "server", "id": "e4c2eab7-52ed-4447-bbcb-48cb04f12015", "name": "www-42" }, { "created_by_user_id": "admin", "started_at": "2016-05-16T13:35:43.985815+00:00", "user_id": null, "revision_end": null, "ended_at": null, "created_by_project_id": "admin", "metrics": "cpu: d51d8ba3-ab06-4f0c-af6c-d88dbac8c2a8nmemory: 0240ceb8-d1d6-435d-a37c-f7f3bf99a388", "host": "compute2", "revision_start": "2016-05-16T13:37:38.140460+00:00", "project_id": null, "type": "server", "id": "e4c2eab7-52ed-4447-bbcb-48cb04f12015", "name": "www-42" } ]
  • 23. Search for resources ➔ gnocchi resource search --type server host=compute2 +----------------------------+--------+------------+---------+----------------------------+----------+-----------------------------+--------------+ | id | type | project_id | user_id | started_at | ended_at | revision_start | revision_end | +----------------------------+--------+------------+---------+----------------------------+----------+-----------------------------+--------------+ | e4c2eab7-52ed-4447-bbcb- | server | None | None | 2016-05-16T13:35:43.985815 | None | 2016-05-16T13:37:38.140460+ | None | | 48cb04f12015 | | | | +00:00 | | 00:00 | | +----------------------------+--------+------------+---------+----------------------------+----------+-----------------------------+--------------+
  • 24. Manipulating time-series (sneak peak) Aggregation across multiple metrics ➔ curl -X POST http://gnocchi-url/v1/aggregates/fetch -d ‘{“operations”: “(aggregate mean (metric (metric-idA mean) (metric-idB mean)))”}’ Compute rolling mean ➔ curl -X POST http://gnocchi-url/v1/aggregates/fetch -d ‘{“operations”: “(rolling mean 5 (metric stockA-id mean))”}’ Compute cpu utilisation from cputime ➔ curl -X POST http://gnocchi-url/v1/aggregates/fetch -d ‘{“operations”: “(- 100 (/ (metric metric-id-cputime-delta last) 10000000000))”}’ * disclaimer: still work in progress so syntax might change
  • 28. Write throughput Hardware: 24 core Xeon 20 OSD 256 GB RAM Capacity: Incoming: ~1.35 million measures/s Full report: https://medium.com/@gord.chung/gnocchi-4-introspective-a83055e99776
  • 29. Aggregation performance Hardware: 24 core Xeon 20 OSD 256 GB RAM Test Case: Send 10K metrics with 720 measures each every 10 minutes Full report: https://medium.com/@gord.chung/gnocchi-4-introspective-a83055e99776
  • 30. Thanks! Any questions? You can find me at gord@live.ca or Julien Danjou, @juldanjou and julien@danjou.info http://gnocchi.xyz #gnocchi @ Freenode
  • 31. Credits Special thanks to all the people who made and released these awesome resources for free: ◎ Presentation template by SlidesCarnival ◎ Photographs by Unsplash