GnuRadio's SNR estimators usage
The official documentation of that block:


  An SNR estimator for M-PSK signals that uses 2nd (M2) and 4th
  (M4) order moments. This estimator uses knowledge of the
  kurtosis of the signal ($k_a)$ and noise ($k_w$) to make its
  estimation. We use Beaulieu's approximations here to M-PSK
  signals and AWGN channels such that $k_a=1$ and $k_w=2$. These
  approximations significantly reduce the complexity of the
  calculations (and computations) required.
  
  Reference:
  D. R. Pauluzzi and N. C. Beaulieu, "A comparison of SNR
  estimation techniques for the AWGN channel," IEEE
  Trans. Communications, Vol. 48, No. 10, pp. 1681-1691, 2000.


The documentation of the constructor vaguely hints:


  alpha   the update rate of internal running average calculations."


I.e. probably a single-tap IIR ("exponentially weighted moving average") with feeback coefficient alpha.

Verifying that with the source code:

for(int i = 0; i &lt; noutput_items; i++) {
    double y1 = abs(input[i])*abs(input[i]);
    d_y1 = d_alpha*y1 + d_beta*d_y1;

    double y2 = abs(input[i])*abs(input[i])*abs(input[i])*abs(input[i]);
    d_y2 = d_alpha*y2 + d_beta*d_y2;
}


Yes, that alpha is just the coefficient of a single-tap IIR (further up you'll find d_beta = 1 - d_alpha).

So, this estimator should do exactly what it promises: for a zero-mean signal (where the variance is simply $\text{Var }X = \text E(X^2)$), it calculates the second and fourth central moment and then just 

double
mpsk_snr_est_m2m4::snr()
{
  double y1_2 = d_y1*d_y1;
  d_signal = sqrt(2*y1_2 - d_y2);
  d_noise = d_y1 - sqrt(2*y1_2 - d_y2);
  return 10.0*log10(d_signal / d_noise);
}


So, it does the usual kurtosis-based estimate.

By the way, I'd fully agree the parameter documentation – to put it friendly – leaves a bit of room for improvement. Hit us / me up if you'd be willing to contribute a bit of a documentation improvement!