How do I approach grouped anomaly detection?
It seems that your solution does not have to include an "anomaly detection" in context of data analysis, but can more easily be solved with an iteration through the vector assuming a chronological order of the data (you did not mention any other feature so the problem is 1D).

I would suggest the following approaches: 

1) Iterate through the vector and if you find N > threshold non-2xx responses in a row, mark starting index of a "cluster". 

    vector&lt;int&gt; status, indices;
    int threshold = 10, counter = 0, flag = 0;
    status = read_data("data.csv");
    for(int i = 0; i &lt; status.size(); i++) {
            if (status[i] &lt; 200 &amp;&amp; status[i] &gt; 299) {
                    if (++counter &gt;= threshold &amp;&amp; !flag) {
                            indices.push_back(i - counter);
                            flag = 1;
                    }
            } else {
                    counter = 0;
                    flag = 0;
            }
    }
    return indices;


2) Once you cross over some non-2xx example, initialize the weight to, let's say 0.0 (zero). For every new negative example, subtract, let's say 0.2 and for a positive example add 0.05 or something and if you end up bellow -2.0 or above 2.0, reset the procedure and in case that it's &lt; -2.0, return the starting index. You can play around with given numbers.  

3) Some more complex strategy?

But yes, your solution does not have to include a machinery, try to start from something more simple and it will lead you in the right direction.