How to write a coverpoint on a data queue

You should explain a little more what you mean by covering the queue as a whole or analyzed separately. For example, you might want to cover that you have received particular data values in your bytes. You can loop through each byte in the queue

covergroup cg with function sample (byte x);
  coverpoint x  {
      bins b1 = {0};
      bins b2 = { [1:84] };
      bins b3 = { [85:169] };
      bins b4 = { [170:255] };
}
endgroup

Then inside the method that does the sampling

foreach(q[i]) cg.sample(q[i]);