SlideShare uma empresa Scribd logo
1 de 60
Baixar para ler offline
Copyright 2017 Severalnines AB
MongoDB Monitoring
Art van Scheppingen
Senior Support Engineer, Severalnines
Become a MongoDB DBA - Monitoring Essentials
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Monitoring and trending
● Why do we collect data?
● What metrics to collect from MongoDB?
● Key MongoDB metrics in depth
● Available MongoDB monitoring tools
● How to monitor MongoDB using ClusterControl
Agenda
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Monitoring and trending
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Do you need monitoring and trending?
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
There is only one person who can land a plane without instruments
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Monitoring system (i.e. Nagios)
○ Checks if services are healthy
○ Sends pages
● Trending system (i.e. Cacti, Graphite, Prometheus)
○ Collects metrics
○ Generate graphs
Monitoring vs Trending
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Do more than just opening a connection
○ Measure true status of nodes and cluster
○ Test read/write
○ Open essential databases and collections
○ Keep an eye on the replication lag
■ Increase oplog size?
○ Check the full topology
Monitoring: Availability
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Trending
○ Plot trends of key (performance) metrics
○ Create timelines of metrics
○ Correlate various metrics
○ Find problems before they arise
○ Pre-emptive problem management
● Trending tools
○ Granularity of sampling
○ More datapoints = better
Trending: why do we need trends?
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Why do we collect data?
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Periodical (daily/weekly) healthchecks
● Insight into all aspects of the database operations
● Post mortem and proactive monitoring
● Capacity planning
Why do we collect data?
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Healthchecks are a pain
● You want to see aggregated
data
● You want to be able to drill
down to a particular host
● You want to see the most
important data first and dig in
later on
Healthchecks
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Ability to dig into past data
● Even less than 5s of data
granularity
(hardware-dependent)
● Low granularity allows you to
catch the issue as it evolves -
no need to wait 5 minutes
for a graph to refresh
Post mortem and proactive monitoring
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Graphs based on MongoDB
status metrics
● Overall status and per-node
graphs
● Ability to get a timeshifted
graphs - useful for
comparing workload
changes across the time
Insight into internals, capacity planning
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
What metrics to collect from MongoDB?
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Quite similar to other database systems
○ Host metrics
○ Operational metrics
○ Storage engine metrics
○ Replication metrics
○ Shard metrics
Type of metrics to collect
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Similar to most other databases
● Understand the utilization of the machine
● Capacity planning
● Determine the type of an issue
○ I/O related?
○ CPU related?
○ Network related?
Host metrics: what for?
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● CPU utilization (should I add more nodes to the cluster?)
● Network utilization (am I running out of bandwidth?)
● Ping (how badly latency affects my MongoDB cluster?)
● Disk throughput and IOPS (am I within my hardware limits?)
● Disk space (do I have to plan for larger disks?)
● Memory utilization (do I suffer from a memory leak?)
Host metrics: what to look for?
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Similar to most other databases
● Throughput of the cluster
● Relate throughput to cluster performance
● Determine the type of an issue
○ Request spikes?
○ Write amplification related?
○ Queueing?
Operational metrics
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Storage engine specific
○ MMAP
○ Wired Tiger
○ MongoRocks
● Insight in how the engine performs
● Internal congestion
Storage engine metrics
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Throughput of the replication
● Durability of the oplog
● Replication lag
● Cluster replication acknowledgement
○ Quorum based
○ At least one secondary needs to acknowledge
Replication metrics
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Eventual consistency
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Shard chunks and balancing
○ Chunks per shard
○ Disk usage
● Non-sharded collections
○ Sharding has to be enabled on collection level
○ Non-sharded collections get a primary shard assigned
○ Once the primary shard is full, no writes can happen
● Connection pool (mongos)
○ All queries will be sent to the primary in a shard
○ Range queries will block connections of the connection pool
Sharding related metrics
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Key MongoDB metrics to know about
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Oplog: a special collection containing all transactions
○ Limited in size (configurable)
○ Eviction of transactions (FIFO)
○ Comparable to a ringbuffer
● Used for replication
○ Secondaries copy transactions from the oplog on other nodes
○ Full data sync necessary once the last executed transaction has been evicted
● Replication window
○ Time between first and last transaction in the oplog
○ Time that allows your secondary to be offline before performing a full sync
Oplog
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
From the MongoDB CLI
mongo_replica_0:PRIMARY> db.getReplicationInfo()
{
"logSizeMB" : 1895.7751951217651,
"usedMB" : 419.86,
"timeDiff" : 281419,
"timeDiffHours" : 78.17,
"tFirst" : "Fri Jul 08 2016 10:56:01 GMT+0000 (UTC)",
"tLast" : "Mon Jul 11 2016 17:06:20 GMT+0000 (UTC)",
"now" : "Mon Jul 11 2016 17:15:06 GMT+0000 (UTC)"
}
Oplog: replication window
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
From the ClusterControl advisor:
function getReplicationWindow(host) {
var replwindow = {};
replwindow['newset'] = false;
// Fetch the first and last record from the Oplog and take it's timestamp
var res = host.executeMongoQuery("local", '{find: "oplog.rs", sort: { $natural: 1}, limit: 1}');
replwindow['first'] = res["result"]["cursor"]["firstBatch"][0]["ts"]["$timestamp"]["t"];
if (res["result"]["cursor"]["firstBatch"][0]["o"]["msg"] == "initiating set") {
replwindow['newset'] = true;
}
res = host.executeMongoQuery("local", '{find: "oplog.rs", sort: { $natural: -1}, limit: 1}');
replwindow['last'] = res["result"]["cursor"]["firstBatch"][0]["ts"]["$timestamp"]["t"];
replwindow['replwindow'] = replwindow['last'] - replwindow['first'];
return replwindow;
}
Oplog: replication window
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● CPU, IO or lock related
● Outcome:
○ Secondary not used by Mongo client drivers
○ Puts larger strain on other secondaries
○ Less likely to be elected during a failover
■ If it will be elected it could be disastrous
○ Lagging behind too far could cause a full sync
Replication lag
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
my_mongodb_0:PRIMARY> db.runCommand( { replSetGetStatus: 1 } ) {
…
"members" : [
{
"_id" : 0,
"name" : "10.10.32.11:27017",
"stateStr" : "PRIMARY",
"optime" : {
"ts" : Timestamp(1466247801, 5),
"t" : NumberLong(1)
},
},
{
"_id" : 1,
"name" : "10.10.32.12:27017",
"stateStr" : "SECONDARY",
"optime" : {
"ts" : Timestamp(1466247801, 5),
"t" : NumberLong(1)
},
},
…
],
"ok" : 1
}
Replication lag
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Like any other databases: availability
● Client drivers may support connection pooling
○ Multiple non-blocking queries can use the same connection
○ Spawns new connections when low on threshold
● Increase of connections
○ Locking issues
○ Application request bursts
Connections
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
From the MongoDB CLI
mongo_replica_0:PRIMARY> db.serverStatus().connections
{ "current" : 25, "available" : 794, "totalCreated" : NumberLong(122418) }
From any mongo client
mongo_replica_0:PRIMARY> db.runCommand( { serverStatus: 1 } ).connections
{ "current" : 25, "available" : 794, "totalCreated" : NumberLong(122418) }
Connections
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Atomicity on document level
○ Wiredtiger and MongoRocks
● No “real” transactions
● Write data with the $isolated operator
○ Similar to READ UNCOMMITTED in MySQL (dirty reads in ANSI SQL)
○ No rollback
○ Does not work on shards
Transactions
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Transactions
From the MongoDB CLI
mongo_replica_0:PRIMARY> db.serverStatus().opcounters
{
"insert" : 1355272,
"query" : 20712,
"update" : 8995,
"delete" : 0,
"getmore" : 400791,
"command" : 2405749
}
From any mongo client
mongo_replica_0:PRIMARY> db.runCommand({serverStatus: 1}).opcounters
{
"insert" : 1355272,
"query" : 20712,
"update" : 8995,
"delete" : 0,
"getmore" : 400791,
"command" : 2405749
}
Transactions
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Three levels of (generic) locking
○ Global
○ Database
○ Collection
● Global lock hardly ever happens (full lock on MongoDB)
● Database locks occur when dropping a collection
● Collection locks occur mostly in MMAP
Locks
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
From the MongoDB CLI
mongo_replica_0:PRIMARY> db.serverStatus().locks
{
"Global" : {
"acquireCount" : {
"r" : NumberLong(6050583),
"w" : NumberLong(2416551),
"R" : NumberLong(1),
"W" : NumberLong(7)
},
"acquireWaitCount" : {
"r" : NumberLong(1),
"w" : NumberLong(1),
"W" : NumberLong(1)
},
…
}
Locks (generic)
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Optimistic concurrency control
○ If two write operations conflict, the transaction will be paused and retried
● Document level locking
● Tickets (threads)
○ Read
○ Write
Locks (WiredTiger)
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
From the MongoDB CLI
mongo_replica_0:PRIMARY> db.serverStatus().wiredTiger.concurrentTransactions
{
"write" : {
"out" : 0,
"available" : 128,
"totalTickets" : 128
},
"read" : {
"out" : 0,
"available" : 128,
"totalTickets" : 128
}
}
Locks (WiredTiger)
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● MongoDB uses three tiers of cache
○ Filesystem
○ Active memory
○ Storage engine (WiredTiger / MongoRocks)
● Page faults
○ Cache miss
● Evictions
Cache
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
From the MongoDB CLI
mongo_replica_0:PRIMARY> db.serverStatus().extra_info.page_faults
37912924
mongo_replica_0:PRIMARY> db.serverStatus().wiredTiger.cache
{
"bytes currently in the cache" : 887889617,
"modified pages evicted" : 561514,
"tracked dirty pages in the cache" : 626,
"unmodified pages evicted" : 15823118
}
Page faults and cache usage
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Shards make write scaling transparently
● Sharding can be solved with two methods:
○ Hash key distribution (limited)
○ Shard lookup table
● MongoDB uses a combination of hash key distribution and shard lookup table
○ Hash key (or range key) distribution gets divided into chunks (ranges)
○ The chunk metadata gets stored in the config server
● The config server is the most important data in a MongoDB sharded cluster!
● The shard router is the the second most important component
● Shards can get out of balance
○ Non-sharded collections
○ Heavy / large writes on a single chunk
○ Auto balancing by the primary of the Config server (3.4) or mongos (< 3.2)
Shard metrics
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
From the MongoDB CLI:
mongos> sh.status()
--- Sharding Status ---
…
databases:
{ "_id" : "shardtest", "primary" : "sh1", "partitioned" : true }
shardtest.collection
shard key: { "_id" : 1 }
unique: false
balancing: true
chunks:
sh1 1
sh2 2
sh3 1
From any mongo client:
mongos> use config
switched to db config
mongos> db.config.runCommand({aggregate: "chunks", pipeline: [{$group: {"_id": {"ns": "$ns", "shard": "$shard"}, "total_chunks": {$sum: 1}}}]})
{ "_id" : { "ns" : "test.usertable", "shard" : "mongo_replica_1" }, "total_chunks" : 330 }
{ "_id" : { "ns" : "test.usertable", "shard" : "mongo_replica_0" }, "total_chunks" : 328 }
{ "_id" : { "ns" : "test.usertable", "shard" : "mongo_replica_2" }, "total_chunks" : 335 }
Shard chunks and balancing
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
From the ClusterControl non-sharded collection advisor:
use config;
var shard_collections = db.collections.find();
var sharded_names = {};
while (shard_collections.hasNext()) {
shard = shard_collections.next();
sharded_names[shard._id] = 1;
}
var admin_db = db.getSiblingDB("admin");
dbs = admin_db.runCommand({ "listDatabases": 1 }).databases;
dbs.forEach(function(database) {
if (database.name != "config") {
db = db.getSiblingDB(database.name);
cols = db.getCollectionNames();
cols.forEach(function(col) {
if( col != "system.indexes" ) {
if( shard_names[database.name + "." + col] != 1) {
print (database.name + "." + col);
}
}
});
}
});
Non-sharded collections
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
From the MongoDB CLI
mongos> db.runCommand( { "connPoolStats" : 1 } )
{
"numClientConnections" : 10,
"numAScopedConnections" : 0,
"totalInUse" : 4,
"totalAvailable" : 8,
"totalCreated" : 23,
"hosts" : {
"10.10.34.11:27019" : {
"inUse" : 1,
"available" : 1,
"created" : 1
},
"10.10.34.12:27018" : {
"inUse" : 3,
"available" : 1,
"created" : 2
}
},
...
"ok" : 1
}
Connection pool
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Available MongoDB monitoring tools
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Open Source
○ Nagios
○ Zabbix
● Subscription based
○ MongoDB Cloud Manager
○ VividCortex
○ ClusterControl
Alerting solutions
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Nagios-MongoDB
○ https://github.com/mzupan/nagios-plugin-mongodb/
○ Performs some very important checks
■ Replication lag
■ Lock time percentage
■ Index miss ratio
Nagios
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● MongoDB Zabbix monitoring plugin
○ https://github.com/nightw/mikoomi-zabbix-mongodb-monitoring
○ All the necessary metrics and more
■ Entries in oplog
○ Pre-canned triggers
Zabbix
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Trending tools
○ Statsd/Grafana
○ Cacti
○ Zabbix
● Subscription based
○ MongoDB Cloud Manager
○ VividCortex
○ ClusterControl
Trending solutions
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Percona MongoDB Monitoring Templates
○ https://www.percona.com/doc/percona-monitoring-plugins/1.1/cacti/mongodb-templates.
html
Cacti
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● PMM
○ https://www.percona.com/doc/percona-monitoring-and-management/
○ Open Source Monitoring & Management framework
○ Can deploy, manage and monitor MySQL & MongoDB
○ Uses Prometheus and Grafana
Orchestration systems: Percona Monitoring & Management
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● PMM
○ https://www.percona.com/doc/percona-monitoring-and-management/
○ Open Source Monitoring & Management framework
○ Can deploy, manage and monitor MySQL & MongoDB
○ Uses Prometheus and Grafana
Percona Monitoring & Management sessions:
● MySQL Monitoring with Percona Monitoring and Management, Tue 11:30 - 12:20 in Ballroom E
● Hipster MySQL Monitoring: Serving a deconstructed PMM, Tue 11:30 - 12:20 in Ballroom H
● Monitoring production environment with Percona Monitoring and Management (PMM), Thu 3:00 - 3:50 in room 209
Orchestration systems: Percona Monitoring & Management
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
How to monitor MongoDB using ClusterControl
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● ClusterControl
○ http://www.severalnines.com
○ Deploy Mongo shards & replicasets
○ Monitor and trend
○ Manage configuration and backups
○ Scale
○ Community edition
Orechestration systems: ClusterControl
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Easily deploy and import MongoDB replicaSets and Shards
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Monitor and trend
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Cluster management
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Scale replicaSets and Shards
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Convert replicaSet into a Sharded cluster
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
Q & A
Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB
● Blog series: Become a MongoDB DBA
○ http://severalnines.com/blog-categories/mongodb
● Webinar series: Become a MongoDB DBA
○ http://severalnines.com/upcoming-webinars
● Visit our website for more resources!
○ http://www.severalnines.com
● Stop by our booth in the exhibit hall
● Other sessions by Severalnines at Percona Live 2017
MySQL Load Balancers - MaxScale, ProxySQL, HAProxy, MySQL Router & nginx - a close up look, Wed
11:10am - 12:00pm in Ballroom D
MySQL (NDB) Cluster Best Practices (Die Hard VIII), Wed 3:30pm - 4:20pm in Room 210
Additional resources
Copyright 2017 Severalnines AB
Thank You!

Mais conteúdo relacionado

Mais procurados

MySQL Shell for Database Engineers
MySQL Shell for Database EngineersMySQL Shell for Database Engineers
MySQL Shell for Database EngineersMydbops
 
Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?Severalnines
 
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Mydbops
 
MySQL on Docker - Containerizing the Dolphin
MySQL on Docker - Containerizing the DolphinMySQL on Docker - Containerizing the Dolphin
MySQL on Docker - Containerizing the DolphinSeveralnines
 
MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...
MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...
MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...MongoDB
 
MariaDB adoption in Linux distributions and development environments
MariaDB adoption in Linux distributions and development environmentsMariaDB adoption in Linux distributions and development environments
MariaDB adoption in Linux distributions and development environmentsOtto Kekäläinen
 
ProxySQL for MySQL
ProxySQL for MySQLProxySQL for MySQL
ProxySQL for MySQLMydbops
 
Where is my cache architectural patterns for caching microservices by example
Where is my cache  architectural patterns for caching microservices by exampleWhere is my cache  architectural patterns for caching microservices by example
Where is my cache architectural patterns for caching microservices by exampleRafał Leszko
 
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...MongoDB
 
Webinar slides: How to deploy and manage HAProxy, MaxScale or ProxySQL with C...
Webinar slides: How to deploy and manage HAProxy, MaxScale or ProxySQL with C...Webinar slides: How to deploy and manage HAProxy, MaxScale or ProxySQL with C...
Webinar slides: How to deploy and manage HAProxy, MaxScale or ProxySQL with C...Severalnines
 
MySQL HA Percona cluster @ MySQL meetup Mumbai
MySQL HA Percona cluster @ MySQL meetup MumbaiMySQL HA Percona cluster @ MySQL meetup Mumbai
MySQL HA Percona cluster @ MySQL meetup MumbaiRemote MySQL DBA
 
Performance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDBPerformance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDBSeveralnines
 
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQLWebinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQLSeveralnines
 
How to upgrade like a boss to my sql 8.0?
How to upgrade like a boss to my sql 8.0?How to upgrade like a boss to my sql 8.0?
How to upgrade like a boss to my sql 8.0?Alkin Tezuysal
 
Tips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudTips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudSeveralnines
 
Webseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
Webseminar: MariaDB Enterprise und MariaDB Enterprise ClusterWebseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
Webseminar: MariaDB Enterprise und MariaDB Enterprise ClusterMariaDB Corporation
 
High performance and high availability proxies for MySQL
High performance and high availability proxies for MySQLHigh performance and high availability proxies for MySQL
High performance and high availability proxies for MySQLMydbops
 
HBaseCon2017 Analyzing cryptocurrencies in real time with hBase, Kafka and St...
HBaseCon2017 Analyzing cryptocurrencies in real time with hBase, Kafka and St...HBaseCon2017 Analyzing cryptocurrencies in real time with hBase, Kafka and St...
HBaseCon2017 Analyzing cryptocurrencies in real time with hBase, Kafka and St...HBaseCon
 
Deploying MariaDB databases with containers at Nokia Networks
Deploying MariaDB databases with containers at Nokia NetworksDeploying MariaDB databases with containers at Nokia Networks
Deploying MariaDB databases with containers at Nokia NetworksMariaDB plc
 

Mais procurados (20)

MySQL Shell for Database Engineers
MySQL Shell for Database EngineersMySQL Shell for Database Engineers
MySQL Shell for Database Engineers
 
Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?
 
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
 
MySQL on Docker - Containerizing the Dolphin
MySQL on Docker - Containerizing the DolphinMySQL on Docker - Containerizing the Dolphin
MySQL on Docker - Containerizing the Dolphin
 
MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...
MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...
MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...
 
MariaDB adoption in Linux distributions and development environments
MariaDB adoption in Linux distributions and development environmentsMariaDB adoption in Linux distributions and development environments
MariaDB adoption in Linux distributions and development environments
 
ProxySQL for MySQL
ProxySQL for MySQLProxySQL for MySQL
ProxySQL for MySQL
 
Where is my cache architectural patterns for caching microservices by example
Where is my cache  architectural patterns for caching microservices by exampleWhere is my cache  architectural patterns for caching microservices by example
Where is my cache architectural patterns for caching microservices by example
 
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
 
Webinar slides: How to deploy and manage HAProxy, MaxScale or ProxySQL with C...
Webinar slides: How to deploy and manage HAProxy, MaxScale or ProxySQL with C...Webinar slides: How to deploy and manage HAProxy, MaxScale or ProxySQL with C...
Webinar slides: How to deploy and manage HAProxy, MaxScale or ProxySQL with C...
 
MySQL HA Percona cluster @ MySQL meetup Mumbai
MySQL HA Percona cluster @ MySQL meetup MumbaiMySQL HA Percona cluster @ MySQL meetup Mumbai
MySQL HA Percona cluster @ MySQL meetup Mumbai
 
Performance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDBPerformance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDB
 
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQLWebinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
 
How to upgrade like a boss to my sql 8.0?
How to upgrade like a boss to my sql 8.0?How to upgrade like a boss to my sql 8.0?
How to upgrade like a boss to my sql 8.0?
 
Tips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudTips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloud
 
Galaxy Big Data with MariaDB
Galaxy Big Data with MariaDBGalaxy Big Data with MariaDB
Galaxy Big Data with MariaDB
 
Webseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
Webseminar: MariaDB Enterprise und MariaDB Enterprise ClusterWebseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
Webseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
 
High performance and high availability proxies for MySQL
High performance and high availability proxies for MySQLHigh performance and high availability proxies for MySQL
High performance and high availability proxies for MySQL
 
HBaseCon2017 Analyzing cryptocurrencies in real time with hBase, Kafka and St...
HBaseCon2017 Analyzing cryptocurrencies in real time with hBase, Kafka and St...HBaseCon2017 Analyzing cryptocurrencies in real time with hBase, Kafka and St...
HBaseCon2017 Analyzing cryptocurrencies in real time with hBase, Kafka and St...
 
Deploying MariaDB databases with containers at Nokia Networks
Deploying MariaDB databases with containers at Nokia NetworksDeploying MariaDB databases with containers at Nokia Networks
Deploying MariaDB databases with containers at Nokia Networks
 

Semelhante a Mongo DB Monitoring - Become a MongoDB DBA

Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDBWebinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDBSeveralnines
 
Webinar slides: DevOps Tutorial: how to automate your database infrastructure
Webinar slides: DevOps Tutorial: how to automate your database infrastructureWebinar slides: DevOps Tutorial: how to automate your database infrastructure
Webinar slides: DevOps Tutorial: how to automate your database infrastructureSeveralnines
 
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...Severalnines
 
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB AtlasMongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB AtlasMongoDB
 
Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...
Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...
Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...Severalnines
 
Big Query - Women Techmarkers (Ukraine - March 2014)
Big Query - Women Techmarkers (Ukraine - March 2014)Big Query - Women Techmarkers (Ukraine - March 2014)
Big Query - Women Techmarkers (Ukraine - March 2014)Ido Green
 
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Severalnines
 
Webinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High AvailabilityWebinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High AvailabilitySeveralnines
 
Containerizing MongoDB with kubernetes
Containerizing MongoDB with kubernetesContainerizing MongoDB with kubernetes
Containerizing MongoDB with kubernetesBrian McNamara
 
Big data @ Hootsuite analtyics
Big data @ Hootsuite analtyicsBig data @ Hootsuite analtyics
Big data @ Hootsuite analtyicsClaudiu Coman
 
Webinar slides: How to Achieve PCI Compliance for MySQL & MariaDB with Cluste...
Webinar slides: How to Achieve PCI Compliance for MySQL & MariaDB with Cluste...Webinar slides: How to Achieve PCI Compliance for MySQL & MariaDB with Cluste...
Webinar slides: How to Achieve PCI Compliance for MySQL & MariaDB with Cluste...Severalnines
 
Apache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsApache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsAlluxio, Inc.
 
Webinar slides: Severalnines & MariaDB present: Automation & Management of Ma...
Webinar slides: Severalnines & MariaDB present: Automation & Management of Ma...Webinar slides: Severalnines & MariaDB present: Automation & Management of Ma...
Webinar slides: Severalnines & MariaDB present: Automation & Management of Ma...Severalnines
 
Workshop on Advanced Design Patterns for Amazon DynamoDB - DAT405 - re:Invent...
Workshop on Advanced Design Patterns for Amazon DynamoDB - DAT405 - re:Invent...Workshop on Advanced Design Patterns for Amazon DynamoDB - DAT405 - re:Invent...
Workshop on Advanced Design Patterns for Amazon DynamoDB - DAT405 - re:Invent...Amazon Web Services
 
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlWebinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlSeveralnines
 
Data Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFixData Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFixC4Media
 
Csa Summit 2017 - Managing multicloud environments
Csa Summit 2017 - Managing multicloud environmentsCsa Summit 2017 - Managing multicloud environments
Csa Summit 2017 - Managing multicloud environmentsCSA Argentina
 
Scaling 100PB Data Warehouse in Cloud
Scaling 100PB Data Warehouse in CloudScaling 100PB Data Warehouse in Cloud
Scaling 100PB Data Warehouse in CloudChangshu Liu
 
Bridging Your Business Across the Enterprise and Cloud with MongoDB and NetApp
Bridging Your Business Across the Enterprise and Cloud with MongoDB and NetAppBridging Your Business Across the Enterprise and Cloud with MongoDB and NetApp
Bridging Your Business Across the Enterprise and Cloud with MongoDB and NetAppMongoDB
 

Semelhante a Mongo DB Monitoring - Become a MongoDB DBA (20)

Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDBWebinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
 
Webinar slides: DevOps Tutorial: how to automate your database infrastructure
Webinar slides: DevOps Tutorial: how to automate your database infrastructureWebinar slides: DevOps Tutorial: how to automate your database infrastructure
Webinar slides: DevOps Tutorial: how to automate your database infrastructure
 
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
 
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB AtlasMongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
 
Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...
Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...
Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...
 
Big Query - Women Techmarkers (Ukraine - March 2014)
Big Query - Women Techmarkers (Ukraine - March 2014)Big Query - Women Techmarkers (Ukraine - March 2014)
Big Query - Women Techmarkers (Ukraine - March 2014)
 
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
 
Webinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High AvailabilityWebinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High Availability
 
Containerizing MongoDB with kubernetes
Containerizing MongoDB with kubernetesContainerizing MongoDB with kubernetes
Containerizing MongoDB with kubernetes
 
Big data @ Hootsuite analtyics
Big data @ Hootsuite analtyicsBig data @ Hootsuite analtyics
Big data @ Hootsuite analtyics
 
Webinar slides: How to Achieve PCI Compliance for MySQL & MariaDB with Cluste...
Webinar slides: How to Achieve PCI Compliance for MySQL & MariaDB with Cluste...Webinar slides: How to Achieve PCI Compliance for MySQL & MariaDB with Cluste...
Webinar slides: How to Achieve PCI Compliance for MySQL & MariaDB with Cluste...
 
Cloud arch patterns
Cloud arch patternsCloud arch patterns
Cloud arch patterns
 
Apache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsApache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic Datasets
 
Webinar slides: Severalnines & MariaDB present: Automation & Management of Ma...
Webinar slides: Severalnines & MariaDB present: Automation & Management of Ma...Webinar slides: Severalnines & MariaDB present: Automation & Management of Ma...
Webinar slides: Severalnines & MariaDB present: Automation & Management of Ma...
 
Workshop on Advanced Design Patterns for Amazon DynamoDB - DAT405 - re:Invent...
Workshop on Advanced Design Patterns for Amazon DynamoDB - DAT405 - re:Invent...Workshop on Advanced Design Patterns for Amazon DynamoDB - DAT405 - re:Invent...
Workshop on Advanced Design Patterns for Amazon DynamoDB - DAT405 - re:Invent...
 
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlWebinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
 
Data Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFixData Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFix
 
Csa Summit 2017 - Managing multicloud environments
Csa Summit 2017 - Managing multicloud environmentsCsa Summit 2017 - Managing multicloud environments
Csa Summit 2017 - Managing multicloud environments
 
Scaling 100PB Data Warehouse in Cloud
Scaling 100PB Data Warehouse in CloudScaling 100PB Data Warehouse in Cloud
Scaling 100PB Data Warehouse in Cloud
 
Bridging Your Business Across the Enterprise and Cloud with MongoDB and NetApp
Bridging Your Business Across the Enterprise and Cloud with MongoDB and NetAppBridging Your Business Across the Enterprise and Cloud with MongoDB and NetApp
Bridging Your Business Across the Enterprise and Cloud with MongoDB and NetApp
 

Mais de Severalnines

Cloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaSCloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaSSeveralnines
 
Working with the Moodle Database: The Basics
Working with the Moodle Database: The BasicsWorking with the Moodle Database: The Basics
Working with the Moodle Database: The BasicsSeveralnines
 
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDBSysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDBSeveralnines
 
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...Severalnines
 
Webinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDBWebinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDBSeveralnines
 
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...Severalnines
 
Disaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDBDisaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDBSeveralnines
 
MariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseMariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseSeveralnines
 
Advanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona ServerAdvanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona ServerSeveralnines
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifeSeveralnines
 
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance TuningWebinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance TuningSeveralnines
 
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDBWebinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDBSeveralnines
 
Webinar slides: How to Get Started with Open Source Database Management
Webinar slides: How to Get Started with Open Source Database ManagementWebinar slides: How to Get Started with Open Source Database Management
Webinar slides: How to Get Started with Open Source Database ManagementSeveralnines
 

Mais de Severalnines (13)

Cloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaSCloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaS
 
Working with the Moodle Database: The Basics
Working with the Moodle Database: The BasicsWorking with the Moodle Database: The Basics
Working with the Moodle Database: The Basics
 
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDBSysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
 
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
 
Webinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDBWebinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDB
 
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
 
Disaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDBDisaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDB
 
MariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseMariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash Course
 
Advanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona ServerAdvanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona Server
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
 
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance TuningWebinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
 
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDBWebinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
 
Webinar slides: How to Get Started with Open Source Database Management
Webinar slides: How to Get Started with Open Source Database ManagementWebinar slides: How to Get Started with Open Source Database Management
Webinar slides: How to Get Started with Open Source Database Management
 

Último

So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 

Último (20)

So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 

Mongo DB Monitoring - Become a MongoDB DBA

  • 1. Copyright 2017 Severalnines AB MongoDB Monitoring Art van Scheppingen Senior Support Engineer, Severalnines Become a MongoDB DBA - Monitoring Essentials
  • 2. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Monitoring and trending ● Why do we collect data? ● What metrics to collect from MongoDB? ● Key MongoDB metrics in depth ● Available MongoDB monitoring tools ● How to monitor MongoDB using ClusterControl Agenda
  • 3. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Monitoring and trending
  • 4. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Do you need monitoring and trending?
  • 5. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB There is only one person who can land a plane without instruments
  • 6. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Monitoring system (i.e. Nagios) ○ Checks if services are healthy ○ Sends pages ● Trending system (i.e. Cacti, Graphite, Prometheus) ○ Collects metrics ○ Generate graphs Monitoring vs Trending
  • 7. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Do more than just opening a connection ○ Measure true status of nodes and cluster ○ Test read/write ○ Open essential databases and collections ○ Keep an eye on the replication lag ■ Increase oplog size? ○ Check the full topology Monitoring: Availability
  • 8. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Trending ○ Plot trends of key (performance) metrics ○ Create timelines of metrics ○ Correlate various metrics ○ Find problems before they arise ○ Pre-emptive problem management ● Trending tools ○ Granularity of sampling ○ More datapoints = better Trending: why do we need trends?
  • 9. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Why do we collect data?
  • 10. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Periodical (daily/weekly) healthchecks ● Insight into all aspects of the database operations ● Post mortem and proactive monitoring ● Capacity planning Why do we collect data?
  • 11. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Healthchecks are a pain ● You want to see aggregated data ● You want to be able to drill down to a particular host ● You want to see the most important data first and dig in later on Healthchecks
  • 12. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Ability to dig into past data ● Even less than 5s of data granularity (hardware-dependent) ● Low granularity allows you to catch the issue as it evolves - no need to wait 5 minutes for a graph to refresh Post mortem and proactive monitoring
  • 13. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Graphs based on MongoDB status metrics ● Overall status and per-node graphs ● Ability to get a timeshifted graphs - useful for comparing workload changes across the time Insight into internals, capacity planning
  • 14. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB What metrics to collect from MongoDB?
  • 15. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Quite similar to other database systems ○ Host metrics ○ Operational metrics ○ Storage engine metrics ○ Replication metrics ○ Shard metrics Type of metrics to collect
  • 16. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Similar to most other databases ● Understand the utilization of the machine ● Capacity planning ● Determine the type of an issue ○ I/O related? ○ CPU related? ○ Network related? Host metrics: what for?
  • 17. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● CPU utilization (should I add more nodes to the cluster?) ● Network utilization (am I running out of bandwidth?) ● Ping (how badly latency affects my MongoDB cluster?) ● Disk throughput and IOPS (am I within my hardware limits?) ● Disk space (do I have to plan for larger disks?) ● Memory utilization (do I suffer from a memory leak?) Host metrics: what to look for?
  • 18. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Similar to most other databases ● Throughput of the cluster ● Relate throughput to cluster performance ● Determine the type of an issue ○ Request spikes? ○ Write amplification related? ○ Queueing? Operational metrics
  • 19. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Storage engine specific ○ MMAP ○ Wired Tiger ○ MongoRocks ● Insight in how the engine performs ● Internal congestion Storage engine metrics
  • 20. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Throughput of the replication ● Durability of the oplog ● Replication lag ● Cluster replication acknowledgement ○ Quorum based ○ At least one secondary needs to acknowledge Replication metrics
  • 21. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Eventual consistency
  • 22. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Shard chunks and balancing ○ Chunks per shard ○ Disk usage ● Non-sharded collections ○ Sharding has to be enabled on collection level ○ Non-sharded collections get a primary shard assigned ○ Once the primary shard is full, no writes can happen ● Connection pool (mongos) ○ All queries will be sent to the primary in a shard ○ Range queries will block connections of the connection pool Sharding related metrics
  • 23. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Key MongoDB metrics to know about
  • 24. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Oplog: a special collection containing all transactions ○ Limited in size (configurable) ○ Eviction of transactions (FIFO) ○ Comparable to a ringbuffer ● Used for replication ○ Secondaries copy transactions from the oplog on other nodes ○ Full data sync necessary once the last executed transaction has been evicted ● Replication window ○ Time between first and last transaction in the oplog ○ Time that allows your secondary to be offline before performing a full sync Oplog
  • 25. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB From the MongoDB CLI mongo_replica_0:PRIMARY> db.getReplicationInfo() { "logSizeMB" : 1895.7751951217651, "usedMB" : 419.86, "timeDiff" : 281419, "timeDiffHours" : 78.17, "tFirst" : "Fri Jul 08 2016 10:56:01 GMT+0000 (UTC)", "tLast" : "Mon Jul 11 2016 17:06:20 GMT+0000 (UTC)", "now" : "Mon Jul 11 2016 17:15:06 GMT+0000 (UTC)" } Oplog: replication window
  • 26. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB From the ClusterControl advisor: function getReplicationWindow(host) { var replwindow = {}; replwindow['newset'] = false; // Fetch the first and last record from the Oplog and take it's timestamp var res = host.executeMongoQuery("local", '{find: "oplog.rs", sort: { $natural: 1}, limit: 1}'); replwindow['first'] = res["result"]["cursor"]["firstBatch"][0]["ts"]["$timestamp"]["t"]; if (res["result"]["cursor"]["firstBatch"][0]["o"]["msg"] == "initiating set") { replwindow['newset'] = true; } res = host.executeMongoQuery("local", '{find: "oplog.rs", sort: { $natural: -1}, limit: 1}'); replwindow['last'] = res["result"]["cursor"]["firstBatch"][0]["ts"]["$timestamp"]["t"]; replwindow['replwindow'] = replwindow['last'] - replwindow['first']; return replwindow; } Oplog: replication window
  • 27. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● CPU, IO or lock related ● Outcome: ○ Secondary not used by Mongo client drivers ○ Puts larger strain on other secondaries ○ Less likely to be elected during a failover ■ If it will be elected it could be disastrous ○ Lagging behind too far could cause a full sync Replication lag
  • 28. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB my_mongodb_0:PRIMARY> db.runCommand( { replSetGetStatus: 1 } ) { … "members" : [ { "_id" : 0, "name" : "10.10.32.11:27017", "stateStr" : "PRIMARY", "optime" : { "ts" : Timestamp(1466247801, 5), "t" : NumberLong(1) }, }, { "_id" : 1, "name" : "10.10.32.12:27017", "stateStr" : "SECONDARY", "optime" : { "ts" : Timestamp(1466247801, 5), "t" : NumberLong(1) }, }, … ], "ok" : 1 } Replication lag
  • 29. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Like any other databases: availability ● Client drivers may support connection pooling ○ Multiple non-blocking queries can use the same connection ○ Spawns new connections when low on threshold ● Increase of connections ○ Locking issues ○ Application request bursts Connections
  • 30. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB From the MongoDB CLI mongo_replica_0:PRIMARY> db.serverStatus().connections { "current" : 25, "available" : 794, "totalCreated" : NumberLong(122418) } From any mongo client mongo_replica_0:PRIMARY> db.runCommand( { serverStatus: 1 } ).connections { "current" : 25, "available" : 794, "totalCreated" : NumberLong(122418) } Connections
  • 31. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Atomicity on document level ○ Wiredtiger and MongoRocks ● No “real” transactions ● Write data with the $isolated operator ○ Similar to READ UNCOMMITTED in MySQL (dirty reads in ANSI SQL) ○ No rollback ○ Does not work on shards Transactions
  • 32. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Transactions From the MongoDB CLI mongo_replica_0:PRIMARY> db.serverStatus().opcounters { "insert" : 1355272, "query" : 20712, "update" : 8995, "delete" : 0, "getmore" : 400791, "command" : 2405749 } From any mongo client mongo_replica_0:PRIMARY> db.runCommand({serverStatus: 1}).opcounters { "insert" : 1355272, "query" : 20712, "update" : 8995, "delete" : 0, "getmore" : 400791, "command" : 2405749 } Transactions
  • 33. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Three levels of (generic) locking ○ Global ○ Database ○ Collection ● Global lock hardly ever happens (full lock on MongoDB) ● Database locks occur when dropping a collection ● Collection locks occur mostly in MMAP Locks
  • 34. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB From the MongoDB CLI mongo_replica_0:PRIMARY> db.serverStatus().locks { "Global" : { "acquireCount" : { "r" : NumberLong(6050583), "w" : NumberLong(2416551), "R" : NumberLong(1), "W" : NumberLong(7) }, "acquireWaitCount" : { "r" : NumberLong(1), "w" : NumberLong(1), "W" : NumberLong(1) }, … } Locks (generic)
  • 35. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Optimistic concurrency control ○ If two write operations conflict, the transaction will be paused and retried ● Document level locking ● Tickets (threads) ○ Read ○ Write Locks (WiredTiger)
  • 36. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB From the MongoDB CLI mongo_replica_0:PRIMARY> db.serverStatus().wiredTiger.concurrentTransactions { "write" : { "out" : 0, "available" : 128, "totalTickets" : 128 }, "read" : { "out" : 0, "available" : 128, "totalTickets" : 128 } } Locks (WiredTiger)
  • 37. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● MongoDB uses three tiers of cache ○ Filesystem ○ Active memory ○ Storage engine (WiredTiger / MongoRocks) ● Page faults ○ Cache miss ● Evictions Cache
  • 38. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB From the MongoDB CLI mongo_replica_0:PRIMARY> db.serverStatus().extra_info.page_faults 37912924 mongo_replica_0:PRIMARY> db.serverStatus().wiredTiger.cache { "bytes currently in the cache" : 887889617, "modified pages evicted" : 561514, "tracked dirty pages in the cache" : 626, "unmodified pages evicted" : 15823118 } Page faults and cache usage
  • 39. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Shards make write scaling transparently ● Sharding can be solved with two methods: ○ Hash key distribution (limited) ○ Shard lookup table ● MongoDB uses a combination of hash key distribution and shard lookup table ○ Hash key (or range key) distribution gets divided into chunks (ranges) ○ The chunk metadata gets stored in the config server ● The config server is the most important data in a MongoDB sharded cluster! ● The shard router is the the second most important component ● Shards can get out of balance ○ Non-sharded collections ○ Heavy / large writes on a single chunk ○ Auto balancing by the primary of the Config server (3.4) or mongos (< 3.2) Shard metrics
  • 40. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB From the MongoDB CLI: mongos> sh.status() --- Sharding Status --- … databases: { "_id" : "shardtest", "primary" : "sh1", "partitioned" : true } shardtest.collection shard key: { "_id" : 1 } unique: false balancing: true chunks: sh1 1 sh2 2 sh3 1 From any mongo client: mongos> use config switched to db config mongos> db.config.runCommand({aggregate: "chunks", pipeline: [{$group: {"_id": {"ns": "$ns", "shard": "$shard"}, "total_chunks": {$sum: 1}}}]}) { "_id" : { "ns" : "test.usertable", "shard" : "mongo_replica_1" }, "total_chunks" : 330 } { "_id" : { "ns" : "test.usertable", "shard" : "mongo_replica_0" }, "total_chunks" : 328 } { "_id" : { "ns" : "test.usertable", "shard" : "mongo_replica_2" }, "total_chunks" : 335 } Shard chunks and balancing
  • 41. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB From the ClusterControl non-sharded collection advisor: use config; var shard_collections = db.collections.find(); var sharded_names = {}; while (shard_collections.hasNext()) { shard = shard_collections.next(); sharded_names[shard._id] = 1; } var admin_db = db.getSiblingDB("admin"); dbs = admin_db.runCommand({ "listDatabases": 1 }).databases; dbs.forEach(function(database) { if (database.name != "config") { db = db.getSiblingDB(database.name); cols = db.getCollectionNames(); cols.forEach(function(col) { if( col != "system.indexes" ) { if( shard_names[database.name + "." + col] != 1) { print (database.name + "." + col); } } }); } }); Non-sharded collections
  • 42. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB From the MongoDB CLI mongos> db.runCommand( { "connPoolStats" : 1 } ) { "numClientConnections" : 10, "numAScopedConnections" : 0, "totalInUse" : 4, "totalAvailable" : 8, "totalCreated" : 23, "hosts" : { "10.10.34.11:27019" : { "inUse" : 1, "available" : 1, "created" : 1 }, "10.10.34.12:27018" : { "inUse" : 3, "available" : 1, "created" : 2 } }, ... "ok" : 1 } Connection pool
  • 43. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Available MongoDB monitoring tools
  • 44. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Open Source ○ Nagios ○ Zabbix ● Subscription based ○ MongoDB Cloud Manager ○ VividCortex ○ ClusterControl Alerting solutions
  • 45. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Nagios-MongoDB ○ https://github.com/mzupan/nagios-plugin-mongodb/ ○ Performs some very important checks ■ Replication lag ■ Lock time percentage ■ Index miss ratio Nagios
  • 46. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● MongoDB Zabbix monitoring plugin ○ https://github.com/nightw/mikoomi-zabbix-mongodb-monitoring ○ All the necessary metrics and more ■ Entries in oplog ○ Pre-canned triggers Zabbix
  • 47. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Trending tools ○ Statsd/Grafana ○ Cacti ○ Zabbix ● Subscription based ○ MongoDB Cloud Manager ○ VividCortex ○ ClusterControl Trending solutions
  • 48. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Percona MongoDB Monitoring Templates ○ https://www.percona.com/doc/percona-monitoring-plugins/1.1/cacti/mongodb-templates. html Cacti
  • 49. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● PMM ○ https://www.percona.com/doc/percona-monitoring-and-management/ ○ Open Source Monitoring & Management framework ○ Can deploy, manage and monitor MySQL & MongoDB ○ Uses Prometheus and Grafana Orchestration systems: Percona Monitoring & Management
  • 50. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● PMM ○ https://www.percona.com/doc/percona-monitoring-and-management/ ○ Open Source Monitoring & Management framework ○ Can deploy, manage and monitor MySQL & MongoDB ○ Uses Prometheus and Grafana Percona Monitoring & Management sessions: ● MySQL Monitoring with Percona Monitoring and Management, Tue 11:30 - 12:20 in Ballroom E ● Hipster MySQL Monitoring: Serving a deconstructed PMM, Tue 11:30 - 12:20 in Ballroom H ● Monitoring production environment with Percona Monitoring and Management (PMM), Thu 3:00 - 3:50 in room 209 Orchestration systems: Percona Monitoring & Management
  • 51. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB How to monitor MongoDB using ClusterControl
  • 52. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● ClusterControl ○ http://www.severalnines.com ○ Deploy Mongo shards & replicasets ○ Monitor and trend ○ Manage configuration and backups ○ Scale ○ Community edition Orechestration systems: ClusterControl
  • 53. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Easily deploy and import MongoDB replicaSets and Shards
  • 54. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Monitor and trend
  • 55. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Cluster management
  • 56. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Scale replicaSets and Shards
  • 57. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Convert replicaSet into a Sharded cluster
  • 58. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB Q & A
  • 59. Copyright 2017 Severalnines ABCopyright 2017 Severalnines AB ● Blog series: Become a MongoDB DBA ○ http://severalnines.com/blog-categories/mongodb ● Webinar series: Become a MongoDB DBA ○ http://severalnines.com/upcoming-webinars ● Visit our website for more resources! ○ http://www.severalnines.com ● Stop by our booth in the exhibit hall ● Other sessions by Severalnines at Percona Live 2017 MySQL Load Balancers - MaxScale, ProxySQL, HAProxy, MySQL Router & nginx - a close up look, Wed 11:10am - 12:00pm in Ballroom D MySQL (NDB) Cluster Best Practices (Die Hard VIII), Wed 3:30pm - 4:20pm in Room 210 Additional resources