Up to you:

If I were doing this, I might put this collection behavior in the ``CollectMetricNamesOp`` struct as something akin to this:

```go

type CollectMetricNamesOp struct {
  // Other bits elided…
  labelNames: []string
}

func (o * CollectMetricNamesOp) Operate(…) {
  // if metricName not in set {
  //   add to set
  //   append to labelName
  // }
}
```

Even more poignant:

In fact, now that I think about it, I think the use of the ``utility.Set`` is superfluous in terms of the LevelDB never containing a duplicate ``(Label Name, Label Value)`` double.