using the mongodb monitoring service (mms)

37
Engineer, 10gen Mark Hillick - @markofu #mongosv Using the MongoDB Monitoring Service (MMS)

Upload: mongodb

Post on 17-Dec-2014

2.679 views

Category:

Technology


2 download

DESCRIPTION

This talk will cover MMS - the MongoDB monitoring system. MMS is a Free MongoDB monitoring Saas solution built by 10gen and used by many MongoDB users. Monitoring is a necessary activity for any production database system to detect upcoming or ongoing issues. In addition it gives an insight on all the vitals of your system and can help detect bottlenecks and inefficiencies for improved performance. This talk will focus on: - what is MMS and how to get started - understanding each metric and graph - what are signs of trouble, when to take actions or panic - what are signs that your hardware ressources are not properly used - how did we build MMS, the high performance time series system

TRANSCRIPT

Page 1: Using the MongoDB Monitoring Service (MMS)

Engineer, 10gen

Mark Hillick - @markofu

#mongosv

Using the MongoDB Monitoring Service (MMS)

Page 2: Using the MongoDB Monitoring Service (MMS)

What, where, numbers?

Page 3: Using the MongoDB Monitoring Service (MMS)

What is MMS?

• MongoDB monitoring Saas solution with:

– Per minute granularity

– Alerting: host up / down, metrics etc

– Event tracking (server restart, step down, …)

• Host management (auto discover)

• Profiling

• Hardware stats also

Page 4: Using the MongoDB Monitoring Service (MMS)

Why use MMS? (1)

• Overview – Bird’s Eye

– Macro

• Drill down (minute by minute)

– Micro

Page 5: Using the MongoDB Monitoring Service (MMS)

Why use MMS? (2)

• Haz all teh things

• Tailored specifically for MongoDB

• Incredibly helpful for 10gen Support when troubleshooting

Page 6: Using the MongoDB Monitoring Service (MMS)

A few numbers …

• Monitors over 19k database servers

• 40k writes per second

• 400 metrics per ping packet

• 9 billion metrics recorded per day

Page 7: Using the MongoDB Monitoring Service (MMS)

How?

Page 8: Using the MongoDB Monitoring Service (MMS)

Set up MMS – it’s easy

• Go to http://mms.10gen.com

– Create a new account or sign in with jira user.

– Pick an explicit company name

– Download and run the agent

– From MMS dashboard, add a host to monitor

Page 9: Using the MongoDB Monitoring Service (MMS)

The MMS client (agent)

• Small Python app

• A single agent process

– Failover – multiple agents

• Connect to mms.10gen.com (SSL over TCP 443)

Page 10: Using the MongoDB Monitoring Service (MMS)

Host

Page 11: Using the MongoDB Monitoring Service (MMS)

Operational Stats

Page 12: Using the MongoDB Monitoring Service (MMS)

Alerting

Page 13: Using the MongoDB Monitoring Service (MMS)

Alerts - Config

Page 14: Using the MongoDB Monitoring Service (MMS)

All good

Page 15: Using the MongoDB Monitoring Service (MMS)

Alerts - Closed

Page 16: Using the MongoDB Monitoring Service (MMS)

Events

Page 17: Using the MongoDB Monitoring Service (MMS)

Security

Page 18: Using the MongoDB Monitoring Service (MMS)

Security

• Purely stats (metadata). – Log transfer has to be turned on.

• HTTPS & connections are outbound only (from the agent)

• If profiling in db & MMS, then profiling data is sent

Page 19: Using the MongoDB Monitoring Service (MMS)

On-premise MMS

• Locally Hosted in Customer Infrastructure

• PCI, HIPAA etc

• Enterprise Customers (2.4)

Page 20: Using the MongoDB Monitoring Service (MMS)

Measure me!!!

Page 21: Using the MongoDB Monitoring Service (MMS)

Metrics

• Source : http://www.kaushik.net/avinash/wp-content/uploads/2007/10/metrics.jpg

Page 22: Using the MongoDB Monitoring Service (MMS)

opcounters• Count of every operation per second

• getMore – each batch of a query

Page 23: Using the MongoDB Monitoring Service (MMS)

memory• Mapped: sum of files on disk

• Virtual memory: 2 x mapped (j) + process overhead

• Resident memory: data in RAM actively used

Page 24: Using the MongoDB Monitoring Service (MMS)

Lock %• Amount of time spent in the write lock

• From 2.2 : each db has own lock

Page 25: Using the MongoDB Monitoring Service (MMS)

Background flush• Flush every 60 seconds

• Watch: if flush time gets close to sync delay

Page 26: Using the MongoDB Monitoring Service (MMS)

Page faults• Disk IO

• Readahead

Page 27: Using the MongoDB Monitoring Service (MMS)

Replication• On primary: amount of time in oplog

• On secondary: replication delay to primary

Page 28: Using the MongoDB Monitoring Service (MMS)

Metrics that we discussed• Opcounters

• Lock %

• Background Flush

• Page Faults

• Replication

Page 29: Using the MongoDB Monitoring Service (MMS)

Metrics for performance

• Resident memory: how much data in RAM?

• Page Faults: paging to disk? Readahead?

• Journal commits in write lock: separate journal

• High background flush: reduce sync delay to smooth

Page 30: Using the MongoDB Monitoring Service (MMS)

Documentation

Page 31: Using the MongoDB Monitoring Service (MMS)

Docs? Where?

• Manual : https://mms.10gen.com/help/

– Web– PDF

• FAQ : https://mms.10gen.com/docs/faq

• Blah

Page 32: Using the MongoDB Monitoring Service (MMS)

Futures

Page 33: Using the MongoDB Monitoring Service (MMS)

Feature Request

• JIRA Ticket - MMSSUPPORT

Page 34: Using the MongoDB Monitoring Service (MMS)

Coming up…

• Data visualization, e.g. shard distribution (Q1 2013)???

• Move from Python to Java

• Blah – Ryan???

Page 35: Using the MongoDB Monitoring Service (MMS)

Conclusion

Page 36: Using the MongoDB Monitoring Service (MMS)

Conclusion

• Easy to use

• Macro & micro

• Detailed monitoring features

• Aides 10gen Support immensely

Page 37: Using the MongoDB Monitoring Service (MMS)

Engineer, 10gen

Mark Hillick - @markofu

#mongosv

Questions?