DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
Stabilising the jenga tower
1. Stabilizing the Jenga tower:
Scaling out Ceilometer
Gordon Chung & Pradeep Kilambi
Engineers @ Red Hat, Inc.
2. Our Mission
“To reliably collect measurements
of the utilization of physical &
virtual resources comprising
deployed clouds, persist this data
for subsequent retrieval &
analysis, and trigger actions when
defined criteria are met."
3. Overview
● Collect physical and virtual resource data
● Transform data to something measurable
● Publish data to various targets
● Persist data to storage
● Retrieve data via API for further analysis, billing,
triggering actions etc.
Collect Transform Publish Persist Retrieve
4. Architecture (Icehouse)
OpenStack Services
Notification Bus
API
External Systems
Notification
Agents
Agent1
AgentN
Agent2
Pipeline
Polling
Agents
Agent1
AgentN
Agent2
Pipeline
Database
Events
Meters
Alarms
AlarmEvaluator
AlarmNotifier
Collectors
Collector1
CollectorN
Collector2
Partial HA
Support
Active-Active
HA support
18. Best Practices (Data Collection)
● Modify your pipeline to match requirements
○ Collect only meters you need by tuning pipeline.yaml
○ Tweak polling interval as needed
● Enable jittering to polling (Kilo+)
● Scale out - add agents as load increases (Juno+)
● Use notifier publisher vs rpc publisher (Juno+)
19. Best Practices (Data Storage)
● Avoid open-ended queries, query on a time range
● Install API behind mod_wsgi
● Tweak WSGIDaemon settings such as threads and
processes
● Set a TTL, expire data to minimise database size
● Run mongodb on a separate node
○ Use sharding and replica-sets
30. Gnocchi: Resource Metering as a Service
● Lightweight time-series metadata
● Separate storage and data models for
resources and time-series data
● indexer for metrics and resources
● Eagerly pre-aggregates metric data
● Supports restricted cross-metric
aggregation
● Per time-series configurable retention policy