I also had this issue. The thing to note is that while SReclaimable is not available via SNMP, the definitions of what is available have changed in such a way that you can still create a workable stackable memory graph with a little bit of calculating.
My old memory graphs had (showing from top to bottom of graph):
Total mem (black line) = memTotalReal
Free (area:stack) = memTotalFree
Cached (area:stack) = memCached
Buffers (area:stack) = memBuffer
Used (area) = memTotalReal - memBuffer - memCached - memTotalFree
Everything added up and produced a clean graph.
With the changes to SNMP, memTotalFree had memAvailSwap added to it, and memCached had SReclaimable from /proc/meminfo added to it.
My new graph requires pulling in the memAvailReal data source, even though I never graph it.
I now use (again, showing from top to bottom of graph):
Total mem (black line) = memTotalReal
Free (area:stack) = memAvailReal - memBuffer - memCached
Cached (area:stack) = memCached
Buffers (area:stack) = memBuffer
Used (area) = memTotalReal - memAvailReal
While the new values may not match the old ones precisely, they are close enough to the values produced by /usr/bin/free to have the graph look accurate.
Below is the debug info for my graph, which shows the CDEFs I use. Note the DEF:f = mem_free = memAvaileReal isn't actually graphed. It's only used for calculations to get values as close as possible to free's used and free values.
The important thing is that the new calculations only involve values returned from SNMP memory OIDs.
DEF:a='/usr/share/cacti/rra/util2_mem_buffers_1101.rrd':'mem_buffers':AVERAGE \
DEF:b='/usr/share/cacti/rra/util2_mem_cached_1102.rrd':'mem_cached':AVERAGE \
DEF:c='/usr/share/cacti/rra/util2_mem_total_1105.rrd':'mem_total':AVERAGE \
DEF:d='/usr/share/cacti/rra/util2_swap_total_1106.rrd':'swap_total':AVERAGE \
DEF:e='/usr/share/cacti/rra/util2_swap_free_1104.rrd':'swap_free':AVERAGE \
DEF:f='/usr/share/cacti/rra/util2_mem_free_1103.rrd':'mem_free':AVERAGE \
CDEF:cdefa='c,f,-,1024,*' \
CDEF:cdefe='a,1024,*' \
CDEF:cdefi='b,1024,*' \
CDEF:cdefbc='f,b,-,a,-,1024,*' \
CDEF:cdefbg='c,1024,*' \
CDEF:cdefca='d,e,-,1024,*' \
CDEF:cdefce='d,1024,*' \
CDEF:cdefzzcf='e,1024,*' \
CDEF:cdefcg='f,1024,*' \
AREA:cdefa#007283FF:'Used Memory ' \
GPRINT:cdefa:LAST:'Current\:%8.2lf %s' \
GPRINT:cdefa:AVERAGE:'Average\:%8.2lf %s' \
GPRINT:cdefa:MAX:'Maximum\:%8.2lf %s\n' \
AREA:cdefe#6EA100FF:'Buffers ':STACK \
GPRINT:cdefe:LAST:'Current\:%8.2lf %s' \
GPRINT:cdefe:AVERAGE:'Average\:%8.2lf %s' \
GPRINT:cdefe:MAX:'Maximum\:%8.2lf %s\n' \
AREA:cdefi#C0C0C0FF:'Cached ':STACK \
GPRINT:cdefi:LAST:'Current\:%8.2lf %s' \
GPRINT:cdefi:AVERAGE:'Average\:%8.2lf %s' \
GPRINT:cdefi:MAX:'Maximum\:%8.2lf %s\n' \
AREA:cdefbc#FFFFFFFF:'Free ':STACK \
GPRINT:cdefbc:LAST:'Current\:%8.2lf %s' \
GPRINT:cdefbc:AVERAGE:'Average\:%8.2lf %s' \
GPRINT:cdefbc:MAX:'Maximum\:%8.2lf %s\n' \
LINE1:cdefbg#000000FF:'Total Memory\:' \
GPRINT:cdefbg:LAST:'Current\:%8.2lf %s' \
GPRINT:cdefbg:AVERAGE:'Average\:%8.2lf %s' \
GPRINT:cdefbg:MAX:'Maximum\:%8.2lf %s\n' \
LINE1:cdefca#FFC73BFF:'Used Swap ' \
GPRINT:cdefca:LAST:'Current\:%8.2lf %s' \
GPRINT:cdefca:AVERAGE:'Average\:%8.2lf %s' \
GPRINT:cdefca:MAX:'Maximum\:%8.2lf %s\n' \
GPRINT:cdefce:LAST:'Total Swap\:%8.2lf %s\n' \
GPRINT:cdefzzcf:LAST:'Free Swap\: %8.2lf %s\n' \
GPRINT:cdefcg:LAST:'Avail Mem%8.2lf %s\n'