I was running btrfs for almost a month before I got around to setting up some automated snapshotting. I was expecting to have to write some scripts of my own, but I luckily I found btrfs-snap. All you have to do is pass btrfs-snap the path of the volume to snapshot, a tag for the snapshot (daily, weekly, etc), and the number of snaphots to keep. It stores the snapshots in a .snapshot directory at the root of the volume and names the snapshots using the tag and a time stamp.
I have mine set up to keep 4 weekly snapshots, 7 daily snapshots, and 24 hourly snapshots. I also tried keeping a dozen five-minute snapshots (fivers). Things got gummed up when I tried that and I had dozens of snapshots processes sitting around idling. I could probably get around that issue by making sure only one snapshot job is running at any given time.
Everything has been running fine for about a month. I haven’t filled up my disk with junk snapshots yet. One of the nice things about these writeable snapshots is that I can always prune big files that I don’t need right out of them.