Add atlas-metrics: metrics-driven sizing collector for MongoDB -> DocumentDB - #201
Open
Hanganalyze wants to merge 1 commit into
Open
Add atlas-metrics: metrics-driven sizing collector for MongoDB -> DocumentDB#201Hanganalyze wants to merge 1 commit into
Hanganalyze wants to merge 1 commit into
Conversation
…umentDB Collects a multi-day workload metric series (Atlas Admin API, or Amazon EC2 + CloudWatch) and produces a sizing package: the Cost Estimator CSV plus a sizing report with an instance recommendation. Automatically measures the workload inputs (working set, ops/day, IOPS, connections) that the existing sizing-tool leaves as manual placeholders. Runs operator-compatibility (compat-tool) and index-type-compatibility (index-tool) scans, plus zstd-3-dict compression sampling. Handles replica-set and sharded (mongos) topologies.
Contributor
Python script
READMESince the tool supports Atlas and self-managed MongoDB, should it be called mongodb-metrics? There are 4 items that need to be addressed in the README.
I also recommend reorganizing the content into 2 main section (Atlas and Self-managed MongoDB) so the reader knows where to find everything. Right now it feels like the two are combined and it's confusing. MongoDB Metrics Collector -- User GuideSources (was Which source?)Sharded Cluster SupportWhat Gets CollectedFrom Atlas Admin API (automatic)From Direct MongoDB ConnectionFrom Compat-Tool (requires
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
A new tool at
migration/atlas-metrics/: a metrics-driven sizing collector for MongoDB -> Amazon DocumentDB migrations. It collects a multi-day workload metric series (MongoDB Atlas Admin API, or Amazon EC2 + CloudWatch) and produces a sizing package - the Cost Estimator CSV plus a sizing report with an instance recommendation.Why (relationship to the existing
sizing-tool)This is not a replacement for
migration/sizing-tool- it is the measured, deeper-analysis counterpart, and it reuses the samecompression-reviewplumbing. The existingsizing-toolREADME notes that its workload columns (Data_Working_Set,Inserts/Updates/Deletes/Reads_Per_Day) are placeholder defaults the user must edit by hand, because "these statistics cannot be calculated automatically from database metadata." This tool measures those from a real metric window:sizing-tool(today)--uri, single-shotcompression-review.py(zstd-3-dict)compat-toolindex-toolThe two serve different users:
sizing-toolis the quick self-service CSV; atlas-metrics is the measured deep-dive for a hands-on assessment.What it does
sizing-tool.compat-tool) and an index-type-compatibility scan (viaindex-tool), separating real application issues from monitoring-only artifacts.Single file, Apache-2.0 (inherits the repo LICENSE), with its own README, CHANGELOG, and pinned
requirements.txt. Validated against replica-set and sharded Atlas topologies and against self-managed MongoDB on EC2.Known follow-ups (kept out of this PR to keep it focused)
compat-tool/index-tool/compression-review; today it locates them relative to itself and clonesamazon-documentdb-toolsif not found. Now that it lives inside the repo, a follow-up should resolve those siblings via the repo root instead of cloning. It is functional as-is (the clone is the fallback).A note on process
I went straight to a PR rather than opening an issue first. Fully happy to convert this into an issue/discussion, reshape it (for example, fold just the metric-collection piece into
sizing-tool), or adjust placement and naming - whatever fits how you want the repo organized. Also glad to sign a CLA if a contribution this size needs one.